Gemma 소개
Google DeepMind가 2024년 출시한 Gemma는 Gemini 모델 연구에서 파생된 경량 오픈 모델입니다. 같은 크기 대비 최고 수준의 성능을 제공하며, Google의 TPU/GPU 인프라에 최적화되어 있습니다. Gemma 2(2024.06)는 아키텍처 개선으로 이전 세대 대비 크게 향상된 성능을 보입니다.
주요 특징
- 경량 & 고성능 — 9B 모델이 Llama 3.1 70B와 경쟁하는 효율성
- 다양한 프레임워크 — PyTorch, JAX, Keras 모두 지원
- 안전성 강조 — RLHF, Constitutional AI 적용으로 안전한 출력
- 온디바이스 지원 — 2B 모델은 Android/iOS 배포 가능
모델 라인업
| 모델 | 파라미터 | VRAM | 특징 |
|---|---|---|---|
| Gemma 3 1B | 1B | 2GB | 모바일·엣지용 초경량 |
| Gemma 2 2B / Gemma 3 4B | 2~4B | 3~5GB | 온디바이스 적합 |
| Gemma 2 9B / Gemma 3 12B | 9~12B | 8~12GB | 성능/효율 균형 최적 |
| Gemma 2 27B / Gemma 3 27B | 27B | 24~32GB | 최고 성능, GPT-3.5+ 수준 |
라이선스 주의사항
Gemma 전용 라이선스: Google의 Gemma Terms of Use를 따릅니다. 상업적 사용은 가능하지만 Hugging Face에서 동의 후 다운로드해야 합니다.
Ollama로 실행
# Gemma 2 2B
ollama run gemma2:2b
# Gemma 2 9B
ollama run gemma2
# Gemma 2 27B
ollama run gemma2:27bbash
Hugging Face 활용
pip install transformers torch accelerate
huggingface-cli login
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "google/gemma-2-9b-it"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)python
Keras / KerasNLP로 활용
pip install keras-nlp keras
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras_nlp
# 모델 로드
gemma_lm = keras_nlp.models.GemmaCausalLM.from_preset("gemma2_instruct_2b_en")
# 텍스트 생성
output = gemma_lm.generate(
"user\nPython 제너레이터란 무엇인가요?\nmodel\n",
max_length=512,
) python
Python 파이프라인
from transformers import pipeline
import torch
pipe = pipeline(
"text-generation",
model="google/gemma-2-2b-it",
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [{"role": "user", "content": "REST API와 GraphQL의 차이점은?"}]
result = pipe(messages, max_new_tokens=512)python
Vertex AI 배포
from google.cloud import aiplatform
from vertexai.preview.generative_models import GenerativeModel
aiplatform.init(project="your-project-id", location="us-central1")
model = GenerativeModel("gemma-2-9b-it")
response = model.generate_content("마이크로서비스 아키텍처의 핵심 원칙을 설명해주세요.")python
파인튜닝 (LoRA)
from peft import LoraConfig, get_peft_model
from trl import SFTTrainer
lora_config = LoraConfig(
r=16, lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
task_type="CAUSAL_LM",
)
trainer = SFTTrainer(
model=model,
args=TrainingArguments(output_dir="./gemma-lora", bf16=True),
peft_config=lora_config,
train_dataset=dataset,
)python