Загружаем каталог…
Загружаем каталог…
기존 멀티모달 검색 파이프라인은 음성 인식이나 이미지 캡셔닝 모델을 거쳐 텍스트로 바꾼 뒤 임베딩하는 우회로를 택해 왔습니다. 구글이 공개한 오픈 가중치 모델 EmbeddingGemma 2 는 텍스트, 코드, 이미지, 비디오, 오디오를 변환기 없이 단일 768차원 벡터 공간에 매핑해 이 문제를 정면으로 해결합니다. 1B 이하의 파라미터 크기로 온디바이스 및 모바일 환경에서도 효율적으로 동작하는 멀티모달 임베딩 아키텍처와 실제 구현 및 벤치마크 결과를 정리합니다. Embedding Gemma 2: On-Device Multimodal RAG Made Easy 멀티모달 RAG의 문제점과 단일 백본 모델의 등장 기존 검색 증강 생성( RAG ) 파이프라인은 대부분 텍스트 기반 검색에 의존합니다. 스마트폰에 저장된 사진, 화면 녹화본, 음성 메모, 프레젠테이션 슬라이드 같은 비정형 데이터는 내부에 텍스트가 명시적으로 없으면 텍스트 전용 시스템으로 찾아낼 수 없습니다. 이를 우회하기 위해 이미지에는 캡셔닝 모델을 붙이고 오디오에는 음성 인식( STT ) 모델을 연결한 뒤 텍스트 임베더로 넘기는 3단계 파이프라인 방식이 흔히 사용되었습니다. 그러나 이 방식은 캡셔닝 모델이나 STT 모델이 누락한 세부 정보가 검색 단계에서 영원히 소실된다는 구조적 한계가 있습니다. 예를 들어 강아지가 프리스비를 잡는 동영상에서 캡셔닝 모델이 단순히 '공원에 있는 개'로 요약해 버리면, 사용자가 '프리스비'라는 쿼리를 입력했을 때 해당 영상을 검색할 수 없습니다. 구글의 Gemini Embedding 2 논문에 따르면, 음성을 STT로 변환하여 임베딩했을 때의 검색 벤치마크 점수는 70.40이었으나, 오디오를 네이티브로 직접 임베딩했을 때는 73.99로 3.6점가량 더 높은 성능을 기록했습니다. 과거 OpenAI의 CLIP (2021)은 텍스트와 이미지 인코더 타워를 따로 두어 단일 모달리티 쌍만 처리했고, Meta의 ImageBind (2023)는 6개 모달리티를 이미지 중심으로 결합했으나 파이프라인이 복잡했습니다. ColPali (2024)는 페이지 스크린샷을 직접 벡터화해 OCR을 건너뛰었지만 페이지당 수많은 벡터를 생성하여 인덱스 크기가 급격히 커지는 문제가 있었습니다. 구글이 공개한 EmbeddingGemma 2 는 740M 크기의 단일 백본을 통해 텍스트, 코드, 이미지, 비디오, 오디오를 동일한 768차원 벡터 공간에 매핑합니다. 접근 방식 파이프라인 구성 한계점 기존 방식 (변환 후 검색) Captioner / STT $\rightarrow$ Text Embedder 변환 단계에서 세부 정보 누락 발생, 지연 시간 증가 CLIP / ImageBind 텍스트 타워 + 이미지 타워 (모달리티별 분리) 짧은 캡션 위주 학습, 단일 모달리티 쌍 중심 제약 ColPali VLM 기반 멀티 벡터 인덱싱 페이지당 과도한 벡터 수로 인해 인덱스 크기 급증 EmbeddingGemma 2 모듈형 인코더 $\rightarrow$ Gemma 4 백본 (단일 공간) 단일 768차원 출력, 온디바이스 동작 가능 (<1B) EmbeddingGemma 2 아키텍처와 경량화 배포 기법 EmbeddingGemma 2는 270M 파라미터 크기의 Gemma 4 기반 텍스트 모델을 공통 백본으로 사용합니다. 비텍스트 입력 처리를 위해 백본 전면에 170M 파라미터의 비전 인코더와 300M 파라미터의 오디오 인코더를 모듈식으로 배치했습니다. 비전 인코더는 이미지나 비디오 프레임을 토큰으로 변환하고, 오디오 인코더는 음향 신호를 토큰으로 변환한 뒤 텍스트 토큰과 동일한 단일 시퀀스로 백본에 주입합니다. 전체 모델의 컨텍스트 윈도우는 8,192 토큰이며, mean pooling 을 거쳐 최종 768차원 임베딩 벡터로 투영됩니다. 입력 데이터별 토큰 소비량은 고정되어 있습니다. 단일 이미지는 기본 280 토큰, 비디오 프레임은 140 토큰, 오디오는 1초당 약 25 토큰을 차지합니다. 따라서 8,192 토큰 컨텍스트 내에는 약 29장의 이미지, 58개의 비디오 프레임, 혹은 약 5.5분 분량의 오디오를 단일 입력으로 담을 수 있습니다. 상품 설명 텍스트, 제품 사진, 시연 비디오가 섞인 복합 멀티모달 입력도 하나의 벡터로 한 번에 임베딩할 수 있습니다. [텍스트 / 코드] ───────────────┐ [이미지 / 비디오] ──> Vision (170M) ┼──> Gemma 4 백본 (270M) ──> Mean Pooling ──> 768차원 벡터 [오디오 신호] ──> Audio (300M) ┘ 실제 프로덕션 배포를 위해 두 가지 최적화 기능이 포함되어 있습니다. 마트료시카 표현 학습(Matryoshka Representation Learning) : 768차원 벡터를 512, 256, 128차원으로 잘라내도 독립적인 임베딩으로 작동하도록 학습되었습니다. 128차원으로 축소 시 인덱스 용량은 6배(100만 벡터 기준 약 1.5GB에서 250MB) 줄어듭니다. 다만 텍스트 MTEB 점수는 61.36에서 57.89로 소폭 하락하는 반면 멀티모달 점수(MMEB)는 59.01에서 45.65로 크게 떨어지는 트레이드오프가 있습니다. 모듈식 로딩(Modular Loading) : 텍스트와 코드만 처리할 때는 270M 가중치만 불러오고, 비전 추가 시 440M, 오디오 추가 시 570M, 전체 로드 시 740M으로 선택적 로딩이 가능합니다. 양자화 적용 시 텍스트 전용 버전은 픽셀 11 프로 기준 약 191MB의 RAM만 사용합니다. Colab 핸즈온 검증: 이미지, 비디오, 오디오 검색 성능 분석 무료 Colab T4 GPU 환경에서 Flickr 이미지 1,000장, ESC-50 환경음 50개, 오픈 무비 'Big Buck Bunny' 비디오 5분 클립, 'Attention Is All You Need' PDF 논문을 사용해 모델 동작을 직접 검증할 수 있습니다. 구현 시 가장 주의해야 할 점은 데이터 타입입니다. T4 환경에서 float16 을 사용하면 내부 활성화 오버플로우가 발생해 에러 없이 NaN 값이나 잘못된 임베딩이 조용히 출력됩니다. 구형 GPU에서는 float32 를, Ampere 이상 GPU에서는 bfloat16 을 명시적으로 사용해야 합니다. # T4 GPU 환경에서의 올바른 로드 예시 (float16 금지) import torch from sentence_transformers import SentenceTransformer dtype = torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float32 model = SentenceTransformer( "google/embeddinggemma-2", model_kwargs={"torch_dtype": dtype} ) 이 모델의 실제 모달리티별 검색 특성은 다음과 같습니다. 텍스트 기반 사진 검색 : 1,000장 대상 검색에서 Top-1 정답 반환 확률은 86%, Top-5 기준으로는 97%의 정확도를 기록했습니다. 백본이 100개 이상의 언어를 지원하므로 독일어("Ein Hund, der im Schnee rennt")나 스페인어("una mujer tocando la guitarra") 쿼리로도 정확한 사진을 반환합니다. 이미지 및 음성 쿼리 : 텍스트 없이 서퍼 사진을 쿼리로 입력했을 때 단순한 파란색 배경 매칭에 그치지 않고 수상 레저(서핑, 웨이크보드) 액션을 이해하여 유사 사진을 찾아냈습니다. gTTS 로 생성한 음성 쿼리를 텍스트 변환 없이 모델에 직접 넣었을 때도 텍스트 쿼리와 완전히 동일한 상위 4개 사진을 검색했습니다. 환경음 검색의 한계 : ESC-50 데이터셋 환경음 검색에서는 Top-1 정확도가 24%에 불과했습니다. '웃음소리', '변기 물 내리는 소리'는 정답 클립을 찾았으나 '개 짖는 소리'는 까마귀 소리로, '빗소리'는 바람 소리로 오매핑되었습니다. 오디오 인코더가 사람의 음성(Speech) 위주로 강하게 정렬되어 있어 일반 환경 효과음 분별력은 떨어집니다. 비디오 및 문서 검색 : 비디오를 5초 단위(1 fps, 프레임당 140토큰, torchcodec 디코딩 활용)로 인덱싱했을 때 자막 없이도 "a purple butterfly", "a dark hole in the ground" 등의 쿼리로 정확한 타임스탬프를 찾아냈습니다. PyMuPDF(fitz) 로 렌더링한 PDF 논문 스캔본 역시 텍스트 추출 없이 "diagram of the transformer architecture" 쿼리로 아키텍처 다이어그램이 포함된 3페이지를 정확히 인덱싱했습니다. 정리 EmbeddingGemma 2는 STT와 캡셔닝으로 이어지던 복잡하고 정보 손실이 잦았던 기존 멀티모달 검색 파이프라인을 740M 단일 백본 모델로 단순화했습니다. 텍스트, 이미지, 비디오, 음성을 768차원 단일 벡터 공간으로 직접 매핑하면서도 마트료시카 표현 학습과 모듈식 로딩을 통해 온디바이스 환경에 맞는 경량성을 확보했습니다. 환경음 인식에는 한계가 있지만, 음성 검색, 비디오 타임스탬프 탐색, 도표 중심의 문서 인덱싱을 단일 오픈 가중치 모델로 구현할 수 있는 실용적인 표준을 제시합니다. 다룬 영상 Embedding Gemma 2: On-Device Multimodal RAG Made Easy — Prompt Engineering · 19분
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
단일 벡터 공간으로 통합하는 온디바이스 멀티모달 RAG. 기존 멀티모달 검색 파이프라인은 음성 인식이나 이미지 캡셔닝 모델을 거쳐 텍스트로 바꾼 뒤 임베딩하는 우회로를 택해 왔습니다. 구글이 공개한 오픈 가중치 모델 EmbeddingGemma 2 는 텍스트, 코드, 이미지, 비디오, 오디오를 변환기 없이 단일 768차원 벡터 공간에 매핑해 이 문제를 정면으로 해결합니다. 1B 이하의 파라미터 크기로 온디바이스 및 모바일 환경에서도 효율적으로 동작하는 멀티모달 임베딩 아키텍처와 실제 구현 및 벤치마크 결과를 정리합니다. Embedding Gemma 2: On-Device Multimodal RAG Made Easy 멀티모달 RAG의 문제점과 단일 백본 모델의 등장 기존 검색 증강 생성( RAG )…
Открыть источник