오늘 구글은 새로운 모델 시리즈인 Gemma 3을 출시했습니다. 이는 Gemma 모델 가족의 새로운 버전으로, 파라미터는 1B 에서 27B 까지 다양하며, 컨텍스트 윈도우는 최대 128k 토큰까지 지원하고 있습니다. 이미지와 텍스트를 모두 처리할 수 있으며, 140 개 이상의 언어를 지원합니다.
이제 바로 Gemma 3 를 사용해 보세요 👉🏻 Gemma 3 Space
| Gemma 2 | Gemma 3 | |
|---|
| Size Variants | | |
| ... | | |
| 모든 모델은 Hub 에 있으며 Hugging Face 생태계와 밀접하게 통합되어 있습니다. | | |
Pre-trained 과 Instruction tuned 모델이 모두 출시되었습니다. Gemma-3-4B-IT 는 Gemma-2-27B IT 를, 그리고 Gemma-3-27B-IT 는 Gemini 1.5-Pro 를 벤치마크에서 모두 압도했습니다.
Gemma 3 은 구글의 최신 오픈 웨이트 LLM 시리즈입니다. 1 billion, 4 billion, 12 billion, 27 billion 파라미터로 이루어진 네 가지 사이즈에, base (pre-trained) 와 instruction-tuned 버전이 있습니다. Gemma 3 은 multimodal이 되었습니다! 4B, 12B, 27B 파라미터 모델은 images와 text를 모두 처리할 수 있으며, 1B 변형은 text only 입니다.
입력 컨텍스트 윈도우 길이는 Gemma 2 의 8k 에서 1B 변형의 경우 32k, 나머지 모든 모델의 경우 128k로 증가했습니다. 다른 VLMs (vision-language models) 과 마찬가지로, Gemma 3 은 사용자 입력에 텍스트를 생성합니다. 이 입력은 텍스트와 선택적으로 이미지를 포함할 수 있습니다. 예시 용도는 질문 답변, 이미지 내용 분석, 문서 요약 등입니다.
| Pre Trained | Instruction Tuned | Multimodal | Multilingual | Input Context Window |
|---|
| gemma-3-1b-pt | gemma-3-1b-it | ❌ | English | 32K |
| ... | | | | |
이 모델들은 multimodal 이지만, Vision encoder 을 메모리에 로드하지 않고도 텍스트 only model (LLM 으로) 로 사용할 수 있습니다. 이는 추론 섹션에서 더 자세히 다룰 예정입니다.
Gemma 2 과 비교하여 Gemma 3 의 세 가지 핵심 향상은:
- Longer context length
- Multimodality
- Multilinguality
이 섹션에서는 이러한 향상을 가능하게 한 기술적 세부 사항을 다룹니다. Gemma 2 의 지식을 시작하고 이 모델들을 더 좋게 만들기 위해 필요한 것을 탐구하는 것은 흥미롭습니다. 이는 Gemma 팀과 같은 방식으로 생각할 수 있도록 도와주고, 세부 사항에 감사함을 느끼게 할 것입니다!
컨텍스트 길이를 128k 토큰으로 확장하는 것은 모델을从头부터 훈련하지 않고 효율적으로 달성할 수 있습니다. 대신 모델은 32k 시퀀스로 pre-trained 되며, 4B, 12B, 27B 모델만 마지막 Pretraining 단계에서 128k 토큰으로 확장됩니다. 이는 상당한 컴퓨팅 자원을 절약합니다. Positional embeddings (예: RoPE) 은 조정되었습니다—Gemma 2 의 10k 기본 주파수에서 Gemma 3 의 1M 으로 업그레이드되었으며, 더 긴 컨텍스트를 위해 8 배로 확장됩니다.
KV Cache 관리 는 Gemma 2 의 sliding window interleaved attention 을 사용하여 최적화되었습니다. 하이퍼파라미터는 5 개의 로컬 레이어와 1 개의 글로벌 레이어를 (이전에는 1:1) 인터리빙하고 윈도우 크기를 4096 토큰에서 1024 토큰으로 줄이는 것으로 튜닝되었습니다. 중요한 것은 Perplexity 를 저하시키지 않으면서 메모리 절약을 달성했다는 것입니다.
Gemma 3 모델은 SigLIP 을 이미지 인코더로 사용하여 이미지를 토큰으로 인코딩하고 이를 언어 모델에 입력합니다. Vision encoder 는 896x896 으로 리사이즈된 정방형 이미지를 입력으로 받습니다.
고정된 입력 해상도는 비정방형 비율과 고해상도 이미지를 처리하는 데 더 어렵게 만듭니다. 이러한 한계를 해결하기 위해 inference 단계에서 이미지를 적응적으로 crop 할 수 있으며, 각 crop 는 896x896 으로 리사이즈되어 이미지 인코더에 의해 인코딩됩니다. 이 알고리즘은 pan and scan으로 불리며, 모델이 이미지 내의 작은 세부 사항을 확대하는 것을 효과적으로 가능하게 합니다.
PaliGemma 와 마찬가지로, Gemma 3 의 attention 은 텍스트 입력과 이미지 입력에 대해 다르게 작동합니다. 텍스트는 일방향 attention 을 사용하여 시퀀스 내의 이전 단어에만 집중하며, 이미지는 마스크 없이 전체 attention 을 받아 모든 이미지 부분을 bidirectional 방식으로 파악할 수 있어 시각적 입력에 대한 완전하고 제한 없는 이해를 제공합니다.
아래 그림에서 볼 수 있듯이, 이미지 토큰 <img> 은 bi-directional attention 을 받으며 (전체 사각지가 점등됨), 텍스트 토큰은 causal attention 을 받습니다. 또한 sliding window algorithm 이 attention 을 어떻게 작동하는지도 보여줍니다.
LLM 을 다국어화하기 위해 pretraining dataset 에 더 많은 언어를 포함합니다. Gemma 3 의 dataset 은 언어 커버리지를 개선하기 위해 double 만큼의 다국어 데이터를 포함하고 있습니다.
변화를 고려하기 위해 tokenizer 는 Gemini 2.0 과 동일합니다. SentencePiece tokenizer 로, 262K entries 를 가집니다. 새로운 tokenizer 는 Chinese, Japanese, Korean 텍스트의 인코딩을 크게 개선하지만, 영어와 Code 의 token counts 에 약간의 증가를 희생합니다.
호기심을 가진 분들을 위해 Gemma 3 의 기술 보고서입니다. enhancements 를 깊이 있게 탐구하기 위해 참조하세요.
LMSys Elo score 는 인간 선호도에 의해 평가된 head-to-head 경쟁에서 얼마나 잘 수행되는지에 따라 언어 모델을 순위 매기는 숫자입니다. LMSys Chatbot Arena 에서 Gemma 3 27B IT 는 Elo score 1339 를 보고 있으며, 이는 leading closed models 을 포함한 상위 10 개 모델에 속합니다. Elo 는 o1-preview 와 비교 가능하며, 다른 non-thinking open models 보다 높습니다. 이 점수는 Gemma 3 이 텍스트 전용 입력으로 작동할 때 달성되며, 표의 다른 LLM 과 동일합니다.
Gemma 3 은 MMLU-Pro (27B: 67.5), LiveCodeBench (27B: 29.7), Bird-SQL (27B: 54.4) 와 같은 벤치마크를 통해 평가되었으며, 이는 closed Gemini 모델과 비교하여 경쟁력 있는 성능을 보여줍니다. GPQA Diamond (27B: 42.4) 및 MATH (27B: 69.0) 와 같은 테스트는 추론 및 수학 기술을 강조하며, FACTS Grounding (27B: 74.9) 및 MMMU (27B: 64.9) 는 강력한 사실적 정확성과 multimodal 능력을 보여줍니다. 그러나 SimpleQA (27B: 10.0) 에서 기본 사실을 위해 뒤처집니다. Gemini 1.5 모델과 비교했을 때 Gemma 3 은 종종 비슷하며, 때로는 더 좋습니다. 이는 접근 가능하고 고성능 옵션으로서의 가치를 증명합니다.
Gemma 3 는 transformers 에 day zero support 를 제공합니다. 모든 것이 필요한 것은 Gemma 3 의 stable release 에서 transformers 를 설치하는 것입니다.
Gemma 3 와 시작하기 가장 쉬운 방법은 transformers 의 pipeline abstraction 을 사용하는 것입니다.
모델은 bfloat16 data type 을 사용하여 가장 잘 작동합니다. 그 외에는 품질이 저하될 수 있습니다.
import torch
from transformers import pipeline
pipe = pipeline(
...
이미지를 텍스트와 interleave 할 수 있습니다. 이를 위해 원하는 위치에서 입력 텍스트를 잘라내고, 이미지 블록으로 삽입하면 됩니다.
messages = [
{
"role": "system",
...
transformers 인테그레이션에는 두 가지 새로운 모델 클래스가 포함되어 있습니다:
Gemma3ForConditionalGeneration: 4B, 12B, 및 27B vision language 모델을 위해.
Gemma3ForCausalLM: 1B 텍스트 전용 모델과 시각 언어 모델을 언어 모델처럼 로드하기 위해 (vision tower 를 제외).
아래 스니펫에서 우리는 모델에 이미지를 쿼리합니다. Gemma3ForConditionalGeneration
class 는 Vision Language Model (VLM) 버전을 인스턴스화하는 데 사용됩니다. 모델을 사용하려면 AutoProcessor class 와 결합해야 합니다. 추론을 실행하는 것은 messages dictionary 를 생성하고, 채팅 템플릿을 적용한 후 입력을 처리하여 model.generate 를 호출하는 것과 매우 간단합니다.
import torch
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
ckpt = "google/gemma-3-4b-it"
...
LLM-only 모델 추론의 경우, Gemma3ForCausalLM class 를 사용할 수 있습니다. Gemma3ForCausalLM 은 입력 처리를 위해 AutoTokenizer 와 결합해야 합니다. 우리는 채팅 템플릿을 사용하여 입력을 전처리해야 합니다. Gemma 3 는 다음과 같이 매우 짧은 시스템 프롬프트를 사용자의 프롬프트 뒤에 사용합니다.
import torch
from transformers import AutoTokenizer, Gemma3ForCausalLM
ckpt = "google/gemma-3-4b-it"
...
| System Prompt | You are a helpful assistant who is fluent in Shakespeare English |
|---|
| Prompt | Who are you? |
| Generation | Hark, gentle soul! I am but a humble servant, wrought of gears and code, yet striving to mimic the tongue of the Bard himself. They call me a "Large Language Model," a curious name indeed, though I prefer to think of myself as a digital echo of Shakespeare's wit and wisdom. I am here to lend a hand, to spin a tale, or to answer thy queries with a flourish and a phrase fit for the Globe itself. |
Gemma 3 는 기기 사용에 적합한 크기로 출시되었습니다. 이는 신속하게 시작하는 방법입니다.
Gemma 3 는 Apple Silicon 장치 (Mac 및 iPhone) 에서 Vision Language Model 을 실행하기 위한 오픈 소스 라이브러리인 mlx-vlm 의 Day Zero 지원이 포함되어 있습니다.
시작하려면 다음으로 mlx-vlm 을 설치하세요:
pip install git+https://github.com/Blaizzy/mlx-vlm.git
mlx-vlm 이 설치되면 다음과 같이 추론을 시작할 수 있습니다:
python -m mlx_vlm.generate --model mlx-community/gemma-3-4b-it-4bit --max-tokens 100 --temp 0.0 --prompt "What is the code on this vehicle??"
--image https://farm8.staticflickr.com/7212/6896667434_2605d9e181_z.jpg
| Image | |
|---|
| Prompt | What is the code on the vehicle? |
| Generation | Based on the image, the vehicle is a Cessna 172 Skyhawk. The registration code on the tail is D-EOJU. |
Pre-quantized GGUF 파일은 이 컬렉션에서 다운로드할 수 있습니다.
빌드하거나 미리 빌드된 바이너리를 다운로드하기 위한 가이드를 참조하세요: https://github.com/ggml-org/llama.cpp?tab=readme-ov-file#building-the-project
그런 다음 터미널에서 로컬 채팅 서버를 실행할 수 있습니다:
./build/bin/llama-cli -m ./gemma-3-4b-it-Q4_K_M.gguf
다음과 같이 출력됩니다:
> who are you
I'm Gemma, a large language model created by the Gemma team at Google DeepMind. I'm an open-weights model, which means I'm widely available for public use!
gemma-3-27b-it 와 gemma-3-12b-it 는 Inference Catalog 에서 한 번의 클릭으로 배포할 수 있습니다. 컬렉션 구성은 모델 테스트에 적합한 하드웨어, 최적화된 TGI 구성 및 합리적인 기본값을 제공합니다.
GGUF/llama.cpp 변형도 배포할 수 있으며 (예: 위 컬렉션에서 언급된 것들), 엔드포인트 생성 가이드는 여기에 찾을 수 있습니다.
Gemma 를 키우려면 마을이 필요합니다! 우리는 (순서 없이) Raushan, Joao, Lysandre, Kashif, Matthew, Marc, David, Mohit, Yih Dah 에 감사드립니다. 그들은 Transformers 에서 TGI 까지 오픈 소스 스택의 다양한 부분에 Gemma 를 통합하는 데 기여했습니다.
감마 (Gemma) 를 선보이기 위해 멋진 데모를 제작하는 데 도움을 주신 우리 온디바이스 (on-device), gradio 및 홍보 팀 - Chris, Kyle, Pedro, Son, Merve, Aritra, VB, Toshiro 에 감사드립니다.
마지막으로 llama.cpp 와 MLX 포트를 위한 도움을 주준 Georgi, Diego, Prince 님께 큰 감사를 표합니다.