Google은 2026년 10월 6일 EmbeddingGemma 2를 공개했으며 Apache 2.0 라이선스로 가중치를 내려받을 수 있게 했습니다. 이 모델은 텍스트, 코드, 이미지, 동영상, 오디오를 벡터로 변환해 하나의 768차원 공간에서 비교합니다. 로컬 컬렉션을 가진 개발자에게 실질적인 질문은 어떤 인코더를 불러올지, 쿼리와 파일을 어떻게 표현할지, 그리고 결과가 해당 컬렉션에 유용한지입니다. 이 안내서는 Google이 공개한 지침과 모델 카드를 따르며, BIG CHANGE는 모델을 실행하거나 검색 품질을 측정하지 않았습니다.
큰 변화
- 달라진 점:이전 EmbeddingGemma 모델은 텍스트를 처리했습니다. 버전 2에는 비전 및 오디오 인코더가 추가되어 캡션이나 전사문을 먼저 만들지 않고도 텍스트 쿼리를 지원 미디어와 공통 벡터 공간에서 비교할 수 있습니다. Google은 가중치를 공개했습니다. Android용 ML Kit 서비스는 향후 몇 주 안에 제공될 예정입니다.
- 왜 중요한가:개발자는 로컬 컬렉션에 필요한 인코더를 불러와 지원 파일 형식 전체에 하나의 검색 인덱스를 만들 수 있습니다. Google의 AI Edge Gallery는 SQLite에 저장한 로컬 미디어 벡터를 코사인 유사도로 정렬하는 사례를 보여줍니다. 앱에는 여전히 파일 수집, 벡터 저장, 결과 표시, 오해를 부르는 일치 항목을 확인하는 절차가 필요합니다.
- 살펴볼 점:당장의 판단 기준은 대표 파일이 기기의 메모리 및 지연 시간 예산 안에서 잘 순위화되는지입니다. 이후 Android 서비스가 통합 방식을 바꿀 수 있지만, 발표된 일정이 현재 이용 가능하다는 뜻은 아닙니다.
모델을 불러오기 전에 입력을 선택하세요
개발자 안내서 에는 지원 미디어 전체에 적용되는 Sentence Transformers 6.1.0 이상 버전과 설치 명령이 나와 있습니다:
pip install -U sentence-transformers[image,audio,video] transformers정확한 체크포인트는 google/embeddinggemma-2입니다. Sentence Transformers의 기본 로드는 모든 인코더를 포함합니다. 텍스트와 코드만 있는 컬렉션이라면 로드할 때 비전과 오디오를 제외하라고 안내서는 권합니다:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer(
"google/embeddinggemma-2",
config_kwargs={"vision_config": None, "audio_config": None},
)오디오를 제외하고 비전을 유지하려면 config_kwargs={"audio_config": None}이 필요하고, 비전을 제외하고 오디오를 유지하려면 config_kwargs={"vision_config": None}이 필요합니다. 이 옵션은 불러오는 가중치를 바꾸지만 결과 벡터는 모델의 공통 공간에 남습니다. 따라서 안내서에 따르면 비전이 포함된 설정으로 인코딩한 이미지와 텍스트 전용 쿼리를 비교할 수 있습니다. Google은 이 모델이 소비자 기기에 적합하다고 설명하지만, 공개된 Python 예제는 라이브러리 빠른 시작일 뿐 독자 기기의 메모리나 지연 시간을 보장하는 측정 결과가 아닙니다.
쿼리와 컬렉션 항목은 서로 다른 방식으로 인코딩하세요
텍스트 검색의 경우 모델 카드 는 쿼리와 코퍼스 항목에 별도의 작업 지침을 지정합니다. Sentence Transformers는 prompt_name를 통해 지침을 적용합니다:
query_vector = model.encode("northern lights", prompt_name="SearchQuery")
document_vector = model.encode(
"Charged particles from the sun cause the northern lights.",
prompt_name="Document",
)
score = model.similarity(query_vector, document_vector)문서에 실린 이 코드 조각은 벡터와 유사도 점수를 생성하지만, 우리 환경에서 관찰한 결과는 아닙니다. Document 는 title: none를 삽입합니다. 항목에 실제 제목이 있다면 Google은 이를 title: {title} | text: {content} 형식으로 명시하라고 안내합니다. 코드 검색에는 CodeRetrieval 쿼리 지침과 인덱싱된 코드의 제목 또는 파일 이름을 사용합니다. 분류, 군집화, 문장 유사도에는 각각 대칭형 지침이 있습니다. 모델 카드에 따르면 텍스트 지침을 생략해도 실행은 되지만 정밀도가 낮아집니다.
이전 model 에는 비전이나 오디오 인코더가 없습니다. 이미지를 인코딩하기 전에 같은 체크포인트에서 안내서의 텍스트·비전 설정 을 불러온 뒤 그 모델로 미디어와 쿼리를 처리합니다. 이 순서는 문서를 따른 것이며, 실제로 실행하지는 않았습니다:
media_model = SentenceTransformer(
"google/embeddinggemma-2",
config_kwargs={"audio_config": None},
)
image_vector = media_model.encode({"image": "photo.jpg"})
query_vector = media_model.encode("a photo query", prompt_name="SearchQuery")
score = media_model.similarity(query_vector, image_vector)오디오를 사용하려면 audio_config: None을 제외한 설정으로 다시 로드해 오디오 인코더를 활성화합니다. 기본 전체 로드에는 비전과 오디오가 모두 포함됩니다. Google 안내서는 텍스트 작업 접두어 없이 {"audio": "recording.wav"} 와 같은 딕셔너리를 전달합니다. 텍스트 안에 <|image|>, <|video|> 또는 <|audio|> 표식을 넣고 딕셔너리에 해당 파일을 제공해 텍스트와 미디어를 결합할 수도 있습니다. 이 호출은 결합 입력에 대한 벡터 하나를 만듭니다. 모델 카드는 오디오를 16kHz 모노로 지정하고 동영상은 기본적으로 초당 한 프레임을 샘플링한다고 설명합니다. 이미지, 동영상 프레임, 오디오, 텍스트는 모두 8,192토큰 컨텍스트 예산을 공유하므로 긴 클립이나 혼합 항목은 모든 파일이 들어갈 것이라고 가정하기보다 입력을 계획해야 합니다.
벡터 크기를 정하고 절충점을 확인하세요
기본 출력은 768차원입니다. Google 모델 카드는 벡터를 자르는 방식으로 512, 256, 128차원을 지원합니다. 안내서는 truncate_dim=256 와 normalize_embeddings=True 를 model.encode()에서 사용하는 방법을 설명합니다. 쿼리 벡터와 인덱싱 항목 벡터는 같은 차원이어야 하며, 축소한 벡터는 코사인 비교 전에 정규화해야 합니다. 카드에 따르면 128차원은 256차원보다 멀티모달 품질 손실이 훨씬 크며, 주로 텍스트 작업에 권장됩니다. 이 수치는 Google의 전체 정밀도 벤치마크 결과이지 특정 컬렉션의 재현율 예측이 아닙니다.
수치 정밀도도 설정 선택지입니다. 카드는 지원 하드웨어에서 bfloat16 를, 그 외 환경(대부분의 CPU 포함)에서는 float32 를 사용하라고 합니다. float16 는 NaN을 만들거나 임베딩 품질을 눈에 띄지 않게 떨어뜨릴 수 있다고 경고합니다. 선택적 로드 매개변수의 수치는 모델 구성요소를 설명하며 실제 기기 메모리와 검색 속도는 실행 경로, 정밀도, 인덱스, 입력 크기에 따라 달라집니다.
결과를 사용하기 전에 평가할 항목
프로토타입은 허용된 소규모 샘플을 인덱싱하고 대표 쿼리를 따로 둔 뒤 올바른 항목이 상위에 나타나는지 살펴볼 수 있습니다. 컬렉션에 실제로 있는 경우에만 텍스트 대 텍스트, 텍스트 대 이미지 또는 텍스트 대 오디오 사례를 포함하세요. 같은 쿼리에서 768차원과 256차원을 비교하고 관련 언어와 문서 유형별 실패를 점검하며 대상 기기의 메모리, 인덱싱 시간, 쿼리 지연 시간을 측정합니다. 이는 독자를 위한 평가 단계이며 BIG CHANGE는 수행하지 않았습니다.
모델 카드의 공개 결과 에 따르면 EmbeddingGemma 2는 MTEB code v1에서 78.68점으로 이전 모델의 68.76점보다 높고, multilingual MTEB v2에서는 각각 61.36점과 61.15점입니다. 카드에는 이미지, 동영상, 오디오 결과도 있지만 해당 양식에는 버전 1 비교값이 없습니다. 인용된 모든 벤치마크 결과는 전체 정밀도 체크포인트를 사용했습니다. 이는 Google의 평가 조건을 보여줄 뿐 로컬 아카이브의 정확도를 예측하지 않습니다. 카드에는 언어와 작업에 따라 품질이 달라질 수 있고 검색 앱에는 자체 필터링과 공정성 점검이 필요하다고 명시되어 있습니다.
가중치는 Apache 2.0으로 공개되며 안내서는 Hugging Face 저장소로 연결됩니다. Google 자료는 로컬 실행 경로를 제공하지만 범용 배포 가격은 제시하지 않습니다. 기기 구입, 연산, 저장 공간, 엔지니어링은 앱마다 드는 비용입니다. 독자가 다음으로 결정할 일은 모델이 기기 예산 안에서 대표 파일을 올바르게 순위화하는지 확인하는 것입니다.
출처 및 더 읽을거리
- Google AI Edge 발표, 2026년 10월 6일: 출시 단계, AI Edge Gallery의 로컬 미디어 검색 구현, 발표된 ML Kit 일정. 이 글의 기기 측정치는 Google이 측정한 값입니다.
- EmbeddingGemma 2 개발자 안내서, 2026년 10월 6일: 라이브러리 버전, 로드 옵션, 인코딩 예제, 벡터 자르기 지침.
- EmbeddingGemma 2 모델 카드: 모델 구조, 입력 제한, 작업 프롬프트, 정밀도 경고, 벤치마크 표와 한계. 결과는 Google이 보고했습니다.
- Google 모델 저장소: 지정된 체크포인트와 공개 모델 파일. 저장소가 이용 가능하다고 해서 앱 성능이 검증된 것은 아닙니다.



