google-developers

Gemini Embedding 2로 빌드하기: 에이전틱 멀티모달 검색 증강 생성(RAG)과 그 너머

요약

Gemini Embedding 2가 정식 출시되었어요! 텍스트, 이미지, 비디오 등 다양한 형태의 데이터를 하나의 임베딩 공간으로 통합해 에이전틱 멀티모달 RAG, 시각 검색 등 훨씬 강력한 AI 애플리케이션을 만들 수 있게 됐어요.

인사이트

  • Gemini Embedding 2는 텍스트, 이미지, 비디오, 오디오, PDF 등 100개 이상의 언어로 된 다양한 모달리티 데이터를 하나의 임베딩 공간에 매핑하는 강력한 멀티모달 임베딩 모델이에요.
  • 이 모델은 에이전틱 멀티모달 검색 증강 생성(RAG) 및 시각 검색과 같은 복합적인 AI 애플리케이션을 가능하게 하며, '태스크 접두어'를 사용해 임베딩 정확도를 높일 수 있어요.
  • Matryoshka Representation Learning(MRL)을 통해 임베딩 차원을 줄여 효율적인 저장과 비용 절감을 할 수 있고, 배치 API를 사용하면 처리량과 비용 효율성을 더 높일 수 있어요.

왜 중요한가

이 모델은 텍스트, 이미지, 비디오 등 복잡하고 다양한 형태의 데이터를 하나의 의미 공간으로 통합해 AI가 현실 세계를 더욱 정확하게 이해하도록 돕는 중요한 진전이에요. 개발자들이 더 쉽고 효율적으로 강력한 멀티모달 AI 애플리케이션을 구축할 수 있는 기반을 제공한다는 점에서 큰 의미가 있어요.

2026년 4월 30일

패트릭 뢰버, 제미나이 API 기술 스태프

지난주, 제미나이 API제미나이 엔터프라이즈 에이전트 플랫폼을 통해 Gemini Embedding 2의 정식 출시(GA)를 발표했어요. 이 모델은 텍스트, 이미지, 비디오, 오디오, 문서 등 100개 이상의 언어를 지원하는 데이터를 하나의 임베딩 공간에 매핑하는 제미나이 API의 첫 번째 임베딩 모델이에요.

이번 글에서는 이 통합 모델이 열어줄 다양한 활용 사례들을 살펴볼 거예요. 에이전틱 멀티모달 검색 증강 생성(RAG)부터 시각 검색까지, 어떻게 시작할 수 있는지 정확히 보여드릴게요.

Gemini Embedding 2 소개

이 모델은 한 번의 호출로 정말 다양한 종류의 입력을 처리할 수 있어요. 텍스트 토큰은 최대 8,192개, 이미지는 6개, 비디오는 120초, 오디오는 180초, PDF는 6페이지까지 가능해요. 이렇게 다른 모달리티들을 동일한 의미 공간에 매핑함으로써, 개발자들은 자체 데이터를 "보고" "들을" 수 있는 다양한 경험을 구축할 수 있게 돼요.

Gemini Embedding 2의 진짜 강력한 점은 바로 교차된 입력, 예를 들어 텍스트와 이미지를 한 번의 요청으로 함께 처리할 수 있다는 거예요.

from google import genai
from google.genai import types

client = genai.Client()

with open('dog.png', 'rb') as f:
    image_bytes = f.read()

result = client.models.embed_content(
    model='gemini-embedding-2',
    contents=[
        "An image of a dog",
        types.Part.from_bytes(
            data=image_bytes,
            mime_type='image/png',
        ),
    ]
)

print(result.embeddings)

Python Copied

이 덕분에 복잡한 실제 데이터를 더 정확하고 총체적으로 이해할 수 있어요. 만약 단일 통합 벡터 대신 개별 입력에 대한 별도의 임베딩이 필요하다면, 배치 API를 사용해 보세요. (에이전트 플랫폼 지원도 곧 예정되어 있어요.)

에이전틱 검색 증강 생성 (RAG)

멀티모달 임베딩 덕분에 AI 에이전트는 수백 개의 파일을 스캔해서 코드베이스를 고치거나, 서로 다른 PDF 문서를 상호 참조하는 등 여러 단계를 거치는 추론 작업을 더 정확하게, 더 잘 이해하면서 수행할 수 있게 돼요.

제미나이 API로 이런 파이프라인을 구축하려면, 에이전트의 목표에 따라 태스크 접두어를 사용할 수 있어요. 이 접두어들은 특정 작업에 맞춰 결과 임베딩을 최적화해서, 짧은 쿼리와 긴 문서 사이의 간극을 모델이 더 잘 메울 수 있도록 돕는 역할을 해요.

# Generate embedding for your task's query:
def prepare_query(query):
    return f"task: question answering | query: {content}"
    # return f"task: fact checking | query: {content}"
    # return f"task: code retrieval | query: {content}"
    # return f"task: search result | query: {content}"

# Generate embedding for document of an asymmetric retrieval task:
def prepare_document(content, title=None):
    if title is None:
        title = "none"
    return f"title: {title} | text: {content}"

Python Copied

이런 접두어들을 인덱싱할 때와 쿼리할 때 모두 적용하면 검색 정확도를 훨씬 높일 수 있어요.

벌써 많은 사용자들이 Gemini Embedding 2를 도입해서 긍정적인 효과를 보고 있어요. 법률 사무소와 기업을 위한 법률 연구 플랫폼인 하비(Harvey)는 이전 임베딩과 비교했을 때 법률 관련 벤치마크에서 Recall@20 정확도가 3% 증가하는 것을 경험했어요. 덕분에 법률 사무소와 기업에 더 정확한 인용과 답변을 제공할 수 있게 되었죠.

슈퍼메모리(Supermemory)는 분리된 메모들 사이에서 개념적 검색을 가능하게 하는 “기억을 위한 벡터 DB”를 구축하고 있어요. 이 모델을 통합한 후, 검색 Recall@1 정확도가 40%나 향상되었고, 이 임베딩들을 활용해 인덱싱, 검색, Q&A 등 핵심 검색 파이프라인 전반의 성능을 크게 끌어올렸어요.

멀티모달 검색

Gemini Embedding 2를 사용해서 멀티모달 입력 기반으로 데이터를 검색하는 도구를 만들 수도 있어요. 이 작업을 수행하려면 "task: search result | query: {content}"라는 접두어를 사용하면 돼요.

URBN의 의류 렌탈 회사인 눌리(Nuuly)는 Gemini Embedding 2를 자체 시각 검색 도구에 사용하고 있어요. 이 도구는 창고에서 찍은 사진을 카탈로그와 비교해서 태그 없는 의류를 식별하는 데 쓰이죠. 이 구현 덕분에 Match@20 정확도가 60%에서 거의 87%로 껑충 뛰었고요, 전체 제품 식별 성공률도 74%에서 90% 이상으로 올라갔어요.

영상 3 사용자가 태그 없는 의류 사진을 찍고, 사진과 브랜드 이름을 기반으로 일치하는 제품을 찾아요.

검색 결과 재순위 지정

검색 파이프라인에서는 임베딩을 사용해서 초기 결과를 재순위 지정(rerank)해 가장 좋은 답변을 얻을 수 있어요. 이 작업을 하려면 임베딩된 검색 결과와 사용자 쿼리 사이의 거리 측정값(코사인 유사도나 내적 점수 등)을 계산하면 돼요.

# 1. Define a function to calculate the dot product (cosine similarity)
def dot_product(a: np.ndarray, b: np.ndarray):
  return (np.array(a) @ np.array(b).T)

# 2. Retrieve your embeddings
# (Assuming 'summaries' is your list of search results)
search_res = get_embeddings(summaries) 
embedded_query = get_embeddings([query])

# 3. Calculate similarity scores
sim_value = dot_product(search_res, embedded_query)

# 4. Select the most relevant result
best_match_index = np.argmax(sim_value)

Python Copied

모델에게 내부 지식을 활용해 쿼리에 대한 가상의 기준 답변을 생성하도록 프롬프트를 주면, 그 템플릿을 임베딩하고 검색된 데이터와 유사도 점수를 비교해서 가장 정확하고 맥락이 풍부한 일치 항목을 순위 매길 수 있어요.

자세한 방법은 검색 결과 재순위 지정 노트북에서 확인할 수 있어요.

클러스터링, 분류, 이상 감지

임베딩은 유사성을 기반으로 클러스터를 생성해서 데이터 간의 관계를 파악하는 데 유용해요. 숨겨진 트렌드나 이상치를 빠르게 식별할 수도 있어서, 이 동일한 기술이 감성 분석이나 이상 감지의 완벽한 기반이 되죠.

위에 설명한 비대칭 검색 작업과 달리, 이 작업들은 쿼리와 문서 모두에 동일한 태스크 접두어를 사용하는 대칭적 활용 사례예요.

# Generate embedding for query & document of your task.
def prepare_query_and_document(content):
    # return f'task: clustering | query: {content}'
    # return f'task: sentence similarity | query: {content}'
    # return f'task: classification | query: {content}'

Python Copied

이런 작업들은 클러스터링, 텍스트 분류, 이상 감지 노트북에서 직접 시도해볼 수 있어요.

임베딩 효율적으로 저장하고 사용하기

임베딩은 에이전트 플랫폼 벡터 검색, 파인콘(Pinecone), 위비아트(Weaviate), 크런치(Qdrant), 또는 크로마DB(ChromaDB)와 같은 벡터 DB에 저장할 수 있어요.

Gemini Embedding 2는 Matryoshka Representation Learning(MRL)을 사용해서 학습되었어요. 그래서 output_dimensionality 파라미터를 사용하면 기본 3072차원 벡터를 더 작은 차원으로 잘라내서 더 효율적으로 저장할 수 있어요. (최고 효율을 위해서는 1536 또는 768 차원을 권장해요.)

result = client.models.embed_content(
    model="gemini-embedding-2",
    contents="What is the meaning of life?",
    config={"output_dimensionality": 768}
)

Python Copied

이 덕분에 기본적으로 높은 정확도를 유지하면서도 비용을 절감할 수 있어요. 추가적인 비용 효율성을 위해서는 배치 API를 사용해 보세요. 기본 임베딩 가격의 50%로 훨씬 더 높은 처리량을 달성할 수 있어요.

Gemini Embedding 2 시작하기

이렇게 내장형 멀티모달 임베딩이 다양한 산업과 활용 사례에서 복잡한 데이터 이해도를 어떻게 향상시킬지 정말 기대돼요.

이제 시작할 준비 되셨나요? 제미나이 API 또는 에이전트 플랫폼에서 모델을 살펴보세요.

이전

다음

google-developers · 원문 보기 · 2026-04-30

이 글은 원문을 한국어로 번역한 것입니다. 저작권은 원 저작자에게 있습니다.