본문 바로가기
원문
Google Developers Blog·· 17일 전주요 뉴스AI 점수62

Google, Gemma 4 기반 임베딩 모델 EmbeddingGemma 2 공개… 5종 데이터를 통합 공간에

EmbeddingGemma 2: The Developer Guide

AI 요약

Google은 Gemma 4를 기반으로 한 Apache 2.0 라이선스 오픈 모델 EmbeddingGemma 2를 공개했다. 텍스트, 코드, 이미지, 동영상, 오디오를 768차원 공통 벡터 공간으로 변환하며, 270M부터 740M 파라미터까지 필요한 인코더만 불러올 수 있다. MTEB (Code)에서는 EmbeddingGemma 1보다 14% 높은 점수를 기록했다.

자세히

EmbeddingGemma 2는 1B 미만 모델로, 텍스트, 코드, 이미지, 동영상, 오디오를 768차원 공통 공간에 임베딩한다. 구성은 모듈식이다. 텍스트와 코드용 270M을 기본으로, 비주얼 인코더(+170M)를 더하면 440M, 오디오 인코더(+300M)를 더하면 570M, 모두 탑재하면 740M이 된다. 모든 모달리티는 8,192토큰 컨텍스트 윈도우를 공유하며, Gemma 4와 결합한 온디바이스 RAG에서는 토크나이저와 오디오 인코더 아키텍처를 공유해 메모리 사용량을 줄일 수 있다.

벡터 저장량은 Matryoshka Representation Learning(MRL)을 통해 768차원에서 512, 256, 128차원으로 잘라낼 수 있다. 256차원에서는 텍스트와 코드의 품질 대부분, 이미지·동영상·오디오의 약 95%를 유지하면서 저장량은 3분의 1이 된다. 128차원은 텍스트와 코드에서 약 90%를 유지하지만 이미지·동영상·오디오에서는 약 75%로 떨어지므로, 멀티모달 용도에서는 사전 검증이 권장된다. bfloat16 기준 768차원 벡터 100만 개는 약 1.5GB, 128차원이면 250MB로 6배 줄어든다.

사용법은 sentence-transformers v6.1.0 이상에서 `SentenceTransformer("google/embeddinggemma-2")`로 모델을 불러오는 방식이다. `config_kwargs`에서 `vision_config`나 `audio_config`를 None으로 설정하면 필요 없는 인코더는 메모리에 올라가지 않는다. 검색에서는 `prompt_name`으로 `SearchQuery`와 `Document`를 구분해 사용하며, 이미지·동영상·오디오는 딕셔너리 형식으로 전달한다. 텍스트와 미디어가 섞인 입력에는 `<|image|>` 등의 마커를 사용한다. 4가지 구성은 같은 체크포인트에서 로드되고 동일한 벡터 공간을 공유하므로, 나중에 인코더를 추가해도 이미 계산된 임베딩을 다시 계산할 필요가 없다.

데모에서는 270M 텍스트 전용 구성으로 Hugging Face transformers 코드베이스를 임베딩했고, Gemma 4 26B A4B와 Pi agent harness의 에이전트가 유사도로 검색했다. 가중치는 Hugging Face에서 받을 수 있으며, vLLM, Transformers, SGLang, MLX, Ollama, LMStudio, LiteRT 등에서 실행할 수 있다. Unsloth를 이용한 파인튜닝과 Google AI Edge Gallery의 온디바이스 데모인 Instant Media Search 및 Video Moments Finder도 소개되어 있다.

선정 이유

모듈식 인코더와 차원 축소 선택 방법이 수치와 함께 정리되어 있어, 자체 검색 기반의 구성을 검토할 때 비교 자료로 활용할 수 있다.

출처: Google Developers Blog · developers.googleblog.com