구글이 공개한 EmbeddingGemma는 단 308MB로 스마트폰에서도 실행되면서 기존 대형 모델과 비슷한 성능을 내는 혁신적인 AI 모델로, 개발자들이 저비용으로 고품질 AI 기능을 구현할 수 있게 해줍니다.
지금까지 AI 임베딩 모델을 사용하려면 선택의 여지가 많지 않았습니다. OpenAI API처럼 비싼 클라우드 서비스를 쓰거나, 무거운 오픈소스 모델로 서버 비용을 감당해야 했죠.
하지만 구글이 최근 공개한 EmbeddingGemma는 이런 고민을 한 번에 해결해줍니다. 308M 파라미터라는 작은 크기로 스마트폰에서도 돌아가면서, 기존 대형 모델들과 견줄 만한 성능을 보여주거든요.

작지만 강한 성능, 어떻게 가능했을까?
EmbeddingGemma의 핵심은 효율성입니다. 구글이 Gemma 3 아키텍처를 기반으로 임베딩 전용으로 최적화한 결과죠.
주요 특징을 살펴보면:
- 크기: 308M 파라미터로 양자화 시 200MB 미만 RAM 사용
- 성능: MTEB 벤치마크에서 500M 미만 모델 중 1위
- 다국어: 100개 이상 언어 지원
- 유연성: 768차원에서 128차원까지 축소 가능
특히 Matryoshka 학습 기법이 흥미롭습니다. 이 방법으로 768차원 벡터를 512, 256, 128차원으로 잘라내도 성능 손실이 거의 없어요. 필요에 따라 속도와 정확도를 조절할 수 있는 거죠.

바로 써볼 수 있는 실무 활용법
EmbeddingGemma의 가장 큰 장점은 즉시 사용 가능하다는 점입니다. 주요 프레임워크들이 이미 지원하고 있거든요.
Sentence Transformers로 간단하게 시작하기
from sentence_transformers import SentenceTransformer
# 모델 다운로드
model = SentenceTransformer("google/embeddinggemma-300m")
# 검색 쿼리와 문서들
query = "빨간 행성으로 알려진 것은?"
documents = [
"금성은 크기와 거리가 비슷해 지구의 쌍둥이라고 불린다.",
"화성은 붉은 외관으로 인해 빨간 행성이라고 불린다.",
"목성은 태양계에서 가장 큰 행성이다.",
"토성은 고리로 유명하다."
]
# 임베딩 생성
query_embedding = model.encode_query(query)
doc_embeddings = model.encode_document(documents)
# 유사도 계산
similarities = model.similarity(query_embedding, doc_embeddings)
print(similarities) # [0.3011, 0.6359, 0.4930, 0.4889]
이렇게 간단한 코드로 의미적 검색이 가능합니다. 화성 관련 문서가 가장 높은 점수를 받는 걸 볼 수 있죠.
브라우저에서도 실행 가능
더 놀라운 건 웹 브라우저에서도 돌아간다는 점입니다. Transformers.js를 사용하면 서버 없이도 클라이언트에서 임베딩을 생성할 수 있어요.
import { AutoModel, AutoTokenizer } from "@huggingface/transformers";
const model_id = "onnx-community/embeddinggemma-300m-ONNX";
const tokenizer = await AutoTokenizer.from_pretrained(model_id);
const model = await AutoModel.from_pretrained(model_id);
// 텍스트를 임베딩으로 변환
const inputs = await tokenizer(texts, { padding: true });
const { sentence_embedding } = await model(inputs);
실제로 Semantic Galaxy 데모에서 브라우저로 임베딩을 생성하고 시각화하는 걸 체험해볼 수 있습니다.
파인튜닝으로 특화 모델 만들기
EmbeddingGemma는 파인튜닝도 쉽습니다. 의료 분야 데이터로 학습한 사례를 보면 놀라운 결과를 보여줘요.
Hugging Face에서 의료 데이터셋(MIRIAD)으로 파인튜닝한 모델은:
- 기존 범용 모델보다 의료 검색에서 5.22% 성능 향상
- 자신보다 2배 큰 모델들도 능가
from sentence_transformers import SentenceTransformerTrainer
from sentence_transformers.losses import CachedMultipleNegativesRankingLoss
# 파인튜닝 설정
loss = CachedMultipleNegativesRankingLoss(model, mini_batch_size=8)
trainer = SentenceTransformerTrainer(
model=model,
train_dataset=train_dataset,
loss=loss,
args=training_args
)
# 학습 실행
trainer.train()
이렇게 도메인별로 특화된 모델을 만들면 훨씬 정확한 결과를 얻을 수 있습니다.
대규모 서비스에서의 활용
개인 프로젝트를 넘어 실제 서비스에서도 EmbeddingGemma를 활용할 수 있습니다. 구글은 Cloud Dataflow와 연동한 대규모 파이프라인 구축 방법도 공개했어요.

import apache_beam as beam
from apache_beam.ml.transforms.embeddings.huggingface import SentenceTransformerEmbeddings
# 임베딩 변환 정의
embedding_transform = SentenceTransformerEmbeddings(
model_name='google/embeddinggemma-300m',
columns=['text']
)
# 파이프라인 구성
with beam.Pipeline() as pipeline:
_ = (
pipeline
| "데이터 읽기" >> beam.Create(documents)
| "임베딩 생성" >> MLTransform().with_transform(embedding_transform)
| "벡터 DB 저장" >> VectorDatabaseWriteTransform(config)
)
이런 방식으로 수백만 개의 문서를 자동으로 처리하고 벡터 데이터베이스에 저장할 수 있습니다.
언제, 어떻게 사용해야 할까?
EmbeddingGemma를 선택해야 하는 상황들을 정리해보면:
온디바이스용으로 적합한 경우:
- 개인정보 보호가 중요한 앱
- 오프라인에서도 동작해야 하는 서비스
- 서버 비용을 줄이고 싶은 스타트업
- 모바일 RAG 시스템 구축
클라우드용으로는 제한적:
- 초대형 문서 처리가 필요한 경우 → Gemini Embedding API 고려
- 최고 성능이 절대적으로 필요한 경우 → 더 큰 모델 검토
지금 바로 시작하는 방법
EmbeddingGemma를 써보고 싶다면 이런 순서로 접근해보세요:
- 간단한 테스트: Sentence Transformers로 기본 기능 체험
- 프레임워크 선택: 기존 스택에 맞는 도구 선택 (LangChain, LlamaIndex 등)
- 성능 검증: 실제 데이터로 벤치마크 테스트
- 파인튜닝 고려: 도메인 특화가 필요하면 맞춤 학습
- 프로덕션 배포: Dataflow나 다른 스케일링 솔루션 활용
구글의 EmbeddingGemma는 AI 개발의 진입 장벽을 크게 낮췄습니다. 작은 크기와 뛰어난 성능, 그리고 즉시 사용 가능한 생태계까지. 이제 누구나 고품질 임베딩 기능을 자신의 앱에 쉽게 추가할 수 있게 됐어요.
특히 비용과 성능 사이에서 고민했던 개발자들에게는 완벽한 해답이 될 것 같습니다. 온디바이스에서 돌아가는 AI의 시대가 본격적으로 열린 거죠.
참고자료:
- Introducing EmbeddingGemma: The Best-in-Class Open Model for On-Device Embeddings
- Welcome EmbeddingGemma, Google’s new efficient embedding model
- Introducing EmbeddingGemma – Simon Willison
- EmbeddingGemma: The Game-Changing Model Every SEO Professional Needs to Know
- From Fine-Tuning to Production: A Scalable Embedding Pipeline with Dataflow
Comments