EmbeddingGemma 2 공개: 온디바이스 멀티모달 임베딩 구동 방법
요약
Google이 오픈웨이트 멀티모달 임베딩 모델인 EmbeddingGemma 2를 공개했습니다. 이 모델은 텍스트, 이미지, 비디오 등 다양한 모달리티를 단일 벡터 공간에 매핑하며, 데이터를 외부로 전송하지 않고 디바이스 상에서 검색(On-device)할 수 있게 합니다. 이를 통해 프라이버시 보호와 에지 컴퓨팅 환경에서의 RAG 구현이 용이해집니다.
핵심 포인트
- 디바이스 온보드 멀티모달 임베딩 지원 (프라이버시 강화)
- 텍스트, 이미지, 비디오 등 다양한 모달리티를 단일 벡터 공간에 매핑
- Matryoshka 표현 학습(MRL)으로 차원을 최소 128차원까지 축소 가능
- MediaPipe Tasks나 LiteRT 등을 활용하여 성능 최적화 및 통합 용이
Google이 오픈웨이트(open-weight) 멀티모달 임베딩 모델 EmbeddingGemma 2를 공개했습니다. Google Developers Blog에는 소개 기사와 개발자 가이드 두 편이 올라와 있습니다.
- 최대 740M 파라미터
- 텍스트, 코드, 이미지, 비디오, 음성을 768차원의 공통 벡터 공간에 매핑합니다.
- 데이터를 외부로 전송하지 않고, 디바이스 상에서 검색할 수 있습니다.
- Matryoshka 표현 학습(MRL)을 통해 임베딩을 최소 128차원까지 축소할 수 있습니다.
기존에는 이미지 검색이나 음성 검색을 할 때마다 클라우드의 임베딩 API를 호출하는 구성이 일반적이었습니다. EmbeddingGemma 2를 사용하면, 이를 에지(edge) 측에서 완결시키는 설계가 현실적으로 가능해집니다.
📌 영향을 받는 사람
- 모바일 앱이나 임베디드 기기에서 미디어 검색이나 RAG(Retrieval-Augmented Generation)를 구현하는 사람
- 개인 정보가 포함된 사진, 음성, 비디오를 클라우드로 보내고 싶지 않은 사람
- 벡터 DB의 스토리지 비용을 낮추고 싶은 사람
기존 시스템이 망가지는 변경은 아닙니다.
action_required는 false이며, 새로운 선택지가 추가된 위치에 있습니다.
통합 방법은 목적별로 3가지가 있습니다.
| 항목 | 내용 |
|---|---|
| 모델 | EmbeddingGemma 2 |
| ... |
다양한 모달리티를 하나의 벡터 공간에 배치하기 때문에, '텍스트로 이미지나 비디오, 음성을 검색하는' 같은 크로스모달(cross-modal) 검색을 모델을 전환하지 않고도 구현할 수 있습니다.
| 방법 | 특징 | 적합한 경우 |
|---|---|---|
| MediaPipe Tasks | 크로스 플랫폼으로 쉽게 통합 가능 | 일단 동작시켜보고 싶다, 여러 OS에 대응하고 싶다 |
| LiteRT | CPU, GPU, NPU용으로 세밀하게 성능 최적화 가능 | 레이턴시나 전력 소모를 줄이고 싶다 |
-
사용자가 입력하는 동안 검색(search-as-you-type) 형태의 미디어 검색: 입력에 맞춰 결과를 반환합니다.
-
키프레임을 사용한 비디오 내 장면 검색: 비디오 전체가 아닌 대표 프레임을 임베딩하여 검색합니다.
-
제로샷 의도 라우팅: 학습 없이 입력을 어떤 기능으로 분배할지 판별합니다.
-
sentence-transformers를 사용하면 모달리티별 인코더를 필요한 만큼만 로드할 수 있습니다. - 인코더의 규모는 270M~740M이며, 메모리 사용량을 줄일 수 있습니다.
-
**Matryoshka 표현 학습(MRL)**을 통해 임베딩을 최소 128차원까지 동적으로 축소할 수 있습니다. 검색 성능은 높게 유지하면서 벡터 DB의 스토리지 요구 사항을 크게 줄일 수 있습니다.
💡 Tips
MRL은 '앞에서부터 N 차원만 사용하는' 방식으로 작동하는 기법입니다. 768차원에서 128차원으로 축소하면, 저장 용량은 단순 계산으로 약 1/6이 됩니다. 실제 정확도에 미치는 영향은 자신의 데이터로 평가해야 합니다.
이번 공개는 기존 시스템에 파괴적인 변경은 아닙니다. 하지만 다음과 같은 상황에서는 검토할 가치가 있습니다.
| 이런 사람이 | 고려할 점 |
|---|---|
| 기기 내 사진/비디오를 검색하는 앱을 만들고 있다 | 외부 전송 없이 검색이 가능하여, 프라이버시 측면의 설명이 용이합니다. |
| ... |
권장 조치는 다음과 같습니다.
- 공식 블로그 읽기. 소개 기사와 개발자 가이드 두 편이 있습니다(URL은 본문 끝). -
- 프로토타입 만들기. 빠르게 시도해보고 싶다면 sentence-transformers, 모바일에 탑재할 거라면 MediaPipe Tasks가 진입점이 됩니다. -
- 차원 수와 정확도의 트레이드오프 측정. 768 / 512 / 256 / 128 등 여러 차원에서 자사 데이터의 검색 정확도를 비교합니다. -
- 실제 서비스용으로 최적화하기. 필요하다면 LiteRT를 사용하여 CPU, GPU, NPU별 성능을 끌어올립니다.
⚠️ 주의
원 데이터에는 벤치마크 수치, 지원 언어, 라이선스 상세, 필요한 메모리량 등은 포함되어 있지 않습니다. 채택하기 전에 공식 문서를 확인해 주십시오.
원 데이터에는 코드가 포함되어 있지 않습니다. 아래 내용은 개발자 가이드의 설명(sentence-transformers를 사용한 선택적 로드와 MRL을 통한 차원 축소)을 상상하기 위한 개념적인 스케치입니다. 모델 ID나 인수는 임시이므로, 실제 API는 공식 가이드를 확인해 주십시오.
이미지별/텍스트별로 클라우드 임베딩 API 호출 (개념도)
vec = cloud_embedding_api.embed(image_bytes) # 데이터가 외부로 전송됨
results = vector_db.search(vec, top_k=10) # 고차원 벡터 저장
from sentence_transformers import SentenceTransformer
# ※ 모델 ID와 인수는 가상입니다. 실제 지정은 공식 가이드를 참조하세요.
model = SentenceTransformer(
...
- EmbeddingGemma 2는 텍스트, 코드, 이미지, 비디오, 음성을 768차원의 공통 공간에 임베딩하는 오픈 웨이트 멀티모달 임베딩 모델입니다(최대 740M 파라미터). - 데이터를 외부로 보내지 않고, 온디바이스에서 검색할 수 있습니다. MediaPipe Tasks를 사용하면 간편하며, LiteRT를 사용하면 CPU, GPU, NPU에 맞춰 세밀하게 최적화할 수 있습니다. - 개발자 가이드에서는
sentence-transformers를 이용한 모달리티별 인코더의 선택적 로딩과 MRL을 통한 128차원까지의 차원 축소가 소개되어 있습니다. - 파괴적인 변경은 없으며, 대응이 필수적이지는 않습니다. 단말기 내 미디어 검색이나 프라이버시를 중시하는 RAG(검색 증강 생성)를 구축하고 있다면 시도해 볼 가치가 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기