Gemma
Google의 오픈 소스 경량 언어 모델
Google의 오픈 소스 경량 언어 모델
Gemma는 Google DeepMind가 공개한 오픈소스 경량 언어 모델 제품군입니다. Gemini를 만든 동일한 연구 기술로 제작되었지만, 누구나 무료로 다운로드하여 로컬 환경에서 실행하고 상업적으로 활용할 수 있습니다.
2024년 2월 첫 출시 이후, 2025년에 Gemma 3가 발표되며 오픈소스 LLM 생태계를 뒤흔들었습니다. Gemma 3 27B 모델은 단일 GPU에서 실행 가능하면서도 Llama 3 405B, DeepSeek-V3 등 훨씬 큰 모델들을 LMArena 벤치마크에서 능가하는 성능을 보여줍니다.
모델 라인업은 270M, 1B, 4B, 12B, 27B 5가지 크기로 제공됩니다. 128K 토큰 컨텍스트 윈도우, 35개 이상 언어 지원, 텍스트+이미지 멀티모달, Function Calling까지 지원합니다. 특히 Gemma 3n은 모바일 최적화 버전으로 스마트폰에서 실시간 AI를 구현할 수 있습니다.
실무에서 Gemma는 API 비용 없이 자체 서버에서 LLM을 운영하고 싶을 때 최선의 선택입니다. 2025년 8월 기준 2억 회 이상 다운로드되었으며, Hugging Face에서 가장 인기 있는 오픈소스 LLM 중 하나입니다. 민감한 데이터를 다루는 금융/의료 분야에서 특히 선호됩니다.
# Gemma 3 로컬 실행 예제 (Hugging Face Transformers)
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# 1. 모델 로드 (4B 모델 - 8GB VRAM이면 충분)
model_id = "google/gemma-3-4b-it" # instruction-tuned 버전
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16, # 메모리 절약
device_map="auto" # GPU 자동 할당
)
# 2. 텍스트 생성
prompt = """user
한국어로 간단한 FastAPI 서버 코드를 작성해줘.
헬스체크 엔드포인트 포함해서.
model
"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=500,
temperature=0.7,
do_sample=True
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# 3. vLLM으로 고성능 서빙 (프로덕션용)
# pip install vllm
from vllm import LLM, SamplingParams
llm = LLM(model="google/gemma-3-12b-it", tensor_parallel_size=1)
sampling_params = SamplingParams(temperature=0.7, max_tokens=512)
prompts = [
"Python에서 비동기 처리의 장단점을 설명해줘",
"React와 Vue의 주요 차이점은?"
]
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
print(f"Prompt: {output.prompt[:50]}...")
print(f"Response: {output.outputs[0].text}\n")
# 4. Ollama로 간편 실행 (로컬 개발용)
# 터미널: ollama run gemma3:27b
import requests
response = requests.post("http://localhost:11434/api/generate", json={
"model": "gemma3:12b",
"prompt": "Kubernetes와 Docker의 관계를 설명해줘",
"stream": False
})
print(response.json()["response"])
"고객 데이터가 외부로 나가면 안 되는 상황이니까, Gemma 3 12B를 자체 서버에 올려서 쓰겠습니다. RTX 4090 한 장이면 충분하고, API 비용도 제로입니다."
"Gemma는 Gemini와 동일한 아키텍처 기반이지만 오픈소스로 공개된 경량 버전입니다. 27B 모델이 Llama 405B보다 높은 벤치마크 점수를 기록하는 건 Google의 학습 데이터 품질과 효율적인 아키텍처 덕분입니다."
"QAT(Quantization-Aware Training) 버전 써보세요. 4bit 양자화해도 성능 손실이 거의 없어서, 8GB VRAM 노트북에서도 12B 모델 돌릴 수 있어요."
Gemma base 모델은 채팅용이 아닙니다. 반드시 "-it" (instruction-tuned) 버전을 사용하세요. 예: gemma-3-4b-it
Gemma 3는 특정 턴 포맷을 사용합니다. <start_of_turn>user/model 태그 없이 입력하면 품질이 급격히 떨어집니다.
Transformers로 직접 로드하면 느립니다. 프로덕션에서는 vLLM(고성능), 개발 테스트는 Ollama(간편함)를 권장합니다. 토큰/초가 5배 이상 차이납니다.