Arian Soleimanzadeh
  • 홈
  • 블로그
  • 팟캐스트
  • 비디오
  • 라이브러리
  • 문의
العربيةArabic
DeutschGerman
EnglishEnglish
فارسیPersian
한국어Korean
中文Chinese
패널•빠른 문의

Languages

Choose your interface locale

ar

العربية

Arabic

de

Deutsch

German

en

English

English

fa

فارسی

Persian

ko

한국어

Korean

zh

中文

Chinese

상담 예약

짧은 메시지를 남겨주세요 — 가능한 한 빠르게 답변드리겠습니다.

LinkedIn빠른 응답
홈/아티클/EmbeddingGemma란? RAG, Ollama, 임베딩 실전 가이드
인공지능머신러닝RAG아티클

EmbeddingGemma란? RAG, Ollama, 임베딩 실전 가이드

Google의 경량 다국어 EmbeddingGemma를 Ollama와 Sentence Transformers로 실행하고 RAG, MRL, 시맨틱 검색에 활용하는 방법을 정리합니다.

2026년 10월 3일7 분 읽기8 조회수
#EmbeddingGemma#Gemma#Embedding#Ollama#RAG#시맨틱 검색#Vector Database

Arian Soleimanzadeh

Software Engineer & Researcher

텍스트를 의미 벡터로 변환하는 EmbeddingGemma 개념 이미지

Arian Soleimanzadeh

AI · 코드 · 제품

연구 + 엔지니어링
이 페이지에서
EmbeddingGemma란?주요 사양임베딩은 무엇을 하는가?주요 활용 사례시맨틱 검색RAG분류와 클러스터링유사도 및 중복 탐지코드 검색Ollama로 실행하기PythonSentence Transformers 사용Task Prompt가 중요한 이유MRL과 임베딩 차원운영 환경에서의 팁2K 컨텍스트 제한을 고려하세요모델, 차원, Prompt를 일관되게 유지하세요유사도 Metric을 통일하세요언어별 성능을 직접 평가하세요Embedding과 Reranker는 다릅니다로컬 실행과 개인정보 보호간단한 로컬 RAG 구조언제 EmbeddingGemma를 선택하면 좋은가?정리공식 참고 자료

EmbeddingGemma란?

EmbeddingGemma는 Google DeepMind가 공개한 경량 텍스트 임베딩 모델입니다. Gemma 3 아키텍처를 기반으로 하며 약 3억 800만 개의 파라미터를 사용합니다. 그래서 EmbeddingGemma 300M이라는 이름으로도 자주 표시됩니다.

일반적인 생성형 LLM은 텍스트를 생성하지만, 임베딩 모델은 텍스트를 의미를 표현하는 숫자 벡터로 변환합니다. 의미가 비슷한 문장은 벡터 공간에서도 서로 가까운 위치에 놓이도록 학습됩니다.

이 특성 때문에 시맨틱 검색, RAG, 분류, 클러스터링, 중복 탐지, 추천, 코드 검색에 사용할 수 있습니다.

주요 사양

항목내용
개발사Google DeepMind
아키텍처Gemma 3 기반
크기약 308M 파라미터
입력텍스트
컨텍스트최대 2K 토큰
기본 임베딩 차원768
MRL 차원512, 256, 128
언어100개 이상의 언어로 학습
로컬 실행가능

임베딩은 무엇을 하는가?

CRM에서 AI 활용을 설명하는 두 문장과 날씨에 대한 한 문장이 있다고 가정해 봅시다. EmbeddingGemma는 각 문장을 벡터로 변환합니다. 의미가 비슷한 CRM 관련 두 벡터는 날씨 문장의 벡터보다 더 가까워야 합니다. 이런 거리는 Cosine Similarity 같은 방법으로 계산할 수 있습니다.


주요 활용 사례

시맨틱 검색

키워드가 정확히 일치하지 않아도 의미가 비슷한 문서를 찾을 수 있습니다. 예를 들어 “불만 고객을 어떻게 유지할까?”라는 검색이 “Customer Churn 감소” 문서를 찾아낼 수 있습니다.

RAG

일반적인 RAG 흐름은 다음과 같습니다.

  1. 문서를 의미 있는 Chunk로 나눕니다.
  2. 각 Chunk의 임베딩을 생성합니다.
  3. 벡터를 Vector Database에 저장합니다.
  4. 사용자의 Query도 임베딩합니다.
  5. 가장 가까운 Chunk를 검색합니다.
  6. 검색된 Context를 생성형 LLM에 전달합니다.

EmbeddingGemma 자체는 최종 답변을 생성하지 않습니다. 핵심 역할은 관련 Context 검색입니다.

분류와 클러스터링

지원 문의를 영업, 기술지원, 결제 등의 카테고리로 분류하거나, 많은 문서를 의미에 따라 그룹화할 수 있습니다.

유사도 및 중복 탐지

비슷한 문서, 중복 질문, 관련 상품이나 Ticket을 찾는 데 사용할 수 있습니다.

코드 검색

자연어 설명으로 관련 코드 블록을 찾기 위한 Code Retrieval용 prompt도 제공합니다.


Ollama로 실행하기

Shell
1
ollama pull embeddinggemma

로컬 API 호출:

Shell
12345
curl http://localhost:11434/api/embed \
  -d '{
    "model": "embeddinggemma",
    "input": "Semantic search is useful for RAG systems."
  }'

Python

Python
123456789
import ollama

response = ollama.embed(
    model="embeddinggemma",
    input="Embedding models convert text into numerical vectors."
)

vector = response["embeddings"][0]
print(len(vector))

전체 임베딩은 768차원입니다.

Ollama 공식 모델 페이지는 EmbeddingGemma에 Ollama 0.11.10 이상이 필요하다고 안내합니다.


Sentence Transformers 사용

Shell
1
pip install -U sentence-transformers
Python
123456789101112131415
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-300m")

query = model.encode(
    "What is semantic search?",
    prompt_name="Retrieval-query"
)

document = model.encode(
    "Semantic search retrieves information based on meaning.",
    prompt_name="Retrieval-document"
)

print(model.similarity(query, document))

Hugging Face에서 모델 파일을 받으려면 Gemma 사용 조건에 동의해야 합니다.


Task Prompt가 중요한 이유

EmbeddingGemma는 작업에 따라 다른 prompt를 권장합니다.

작업권장 Prompt
Retrieval Querytask: search result | query: ...
Retrieval Documenttitle: none | text: ...
Question Answeringtask: question answering | query: ...
Fact Checkingtask: fact checking | query: ...
Classificationtask: classification | query: ...
Clusteringtask: clustering | query: ...
Sentence Similaritytask: sentence similarity | query: ...
Code Retrievaltask: code retrieval | query: ...

RAG에서는 Query에 Retrieval-query, 문서에 Retrieval-document를 사용하는 것이 좋습니다. 문서 제목이 있다면 prompt에 포함할 수 있으며 Google 문서에서는 유효한 제목이 문서 임베딩 성능에 도움이 될 수 있다고 설명합니다.


MRL과 임베딩 차원

EmbeddingGemma는 **Matryoshka Representation Learning (MRL)**을 사용합니다. 기본 768차원 벡터에서 앞부분만 사용해 512, 256, 128차원으로 줄일 수 있습니다.

  • 768: 정보량과 품질 우선
  • 512: 품질과 비용의 균형
  • 256: 큰 인덱스에 실용적
  • 128: 저장 공간과 검색 속도 우선
Python
1234
import numpy as np

small = vector[:256]
small = small / np.linalg.norm(small)

차원을 자른 뒤에는 다시 정규화해야 합니다.


운영 환경에서의 팁

2K 컨텍스트 제한을 고려하세요

매우 긴 문서를 한 번에 임베딩하지 말고 의미 있는 Chunk로 나누는 것이 좋습니다. 300–800 토큰 정도를 시작점으로 시험할 수 있지만, 실제 데이터로 Retrieval 평가를 수행해야 합니다.

모델, 차원, Prompt를 일관되게 유지하세요

서로 다른 모델이나 차원, prompt 전략으로 만든 벡터를 같은 인덱스에 무작정 섞지 마세요. 전략을 바꾸면 Re-index가 필요할 수 있습니다.

유사도 Metric을 통일하세요

Cosine Similarity가 흔한 선택입니다. Vector Database와 애플리케이션의 정규화 및 거리 설정이 일치해야 합니다.

언어별 성능을 직접 평가하세요

100개 이상의 언어로 학습되었지만 언어와 도메인에 따라 성능 차이가 있을 수 있습니다. 실제 Query와 정답 문서로 작은 Evaluation Set을 만들어 테스트하는 것이 좋습니다.

Embedding과 Reranker는 다릅니다

Embedding은 빠른 Candidate Retrieval에 적합합니다. 정확도가 중요하다면 상위 결과에 Reranker를 추가할 수 있습니다.

로컬 실행과 개인정보 보호

로컬에서 임베딩을 생성하면 원문 데이터를 외부 API로 보내지 않고 내부 인프라에 유지할 수 있습니다.


간단한 로컬 RAG 구조

Code
123
Documents → Chunking → EmbeddingGemma → Vector DB
User Query → EmbeddingGemma → Similarity Search
Top-K Chunks → LLM → Final Answer

Vector Database로 PostgreSQL + pgvector, Qdrant, Milvus, Weaviate 등을 사용할 수 있습니다.

언제 EmbeddingGemma를 선택하면 좋은가?

로컬 또는 Offline Embedding, 다국어 검색, RAG, 제한된 하드웨어, 데이터 프라이버시가 중요한 프로젝트에 적합합니다.

반대로 텍스트 생성, 채팅, 직접적인 추론이 목적이라면 생성형 LLM이 별도로 필요합니다.

정리

EmbeddingGemma는 작은 크기, 100개 이상의 언어 지원, 2K 컨텍스트, 768차원 임베딩과 MRL을 결합한 실용적인 임베딩 모델입니다. 실제 품질은 모델 선택뿐 아니라 Task Prompt, Chunking, 차원, Similarity Metric, Retrieval 평가에 크게 좌우됩니다.

공식 참고 자료

  • Google AI for Developers — EmbeddingGemma model overview
  • Google Developers Blog — Introducing EmbeddingGemma
  • Hugging Face — google/embeddinggemma-300m
  • Ollama Library — embeddinggemma
이 페이지에서
EmbeddingGemma란?주요 사양임베딩은 무엇을 하는가?주요 활용 사례시맨틱 검색RAG분류와 클러스터링유사도 및 중복 탐지코드 검색Ollama로 실행하기PythonSentence Transformers 사용Task Prompt가 중요한 이유MRL과 임베딩 차원운영 환경에서의 팁2K 컨텍스트 제한을 고려하세요모델, 차원, Prompt를 일관되게 유지하세요유사도 Metric을 통일하세요언어별 성능을 직접 평가하세요Embedding과 Reranker는 다릅니다로컬 실행과 개인정보 보호간단한 로컬 RAG 구조언제 EmbeddingGemma를 선택하면 좋은가?정리공식 참고 자료

아티클 정보

게시 정보, 읽기 시간 및 조회 데이터입니다.

게시일

2026년 10월 3일

업데이트

2026년 11월 3일

읽기 시간

7 분 읽기

조회수

8

작성자

Arian Soleimanzadeh

이전 아티클

Stable Diffusion 3.5 Medium vs Large: 설치와 비교

다음 아티클

Nimble이란? Ollama 설치와 사용 완전 가이드

Arian Soleimanzadeh

현대적인 웹 엔지니어링, UI 시스템, 실용적인 AI 제품에 집중한 개인 포트폴리오 — 깨끗한 코드, 명확한 디자인.

빠른 링크

  • 소개
  • 블로그
  • 라이브러리
  • 문의

문의

  • soleimanzadeh.a.work@gmail.com
  • soleimanzadeh.uni@gmail.com

가능 시간: 평일

보통 다음 시간 내에 답변합니다 24시간.

뉴스레터

글, 프로젝트, 새 릴리스에 대한 업데이트를 받아보세요.

© 2026 ariansoleimanzadeh.dev — 모든 권리 보유.

LinkedIn