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 是什么?核心规格Embedding 实际做了什么?主要应用语义搜索RAG分类与聚类相似内容与重复检测代码检索使用 Ollama 运行Python 示例使用 Sentence TransformersTask Prompt 很重要Matryoshka Representation Learning生产环境注意事项注意 2K 上下文限制保持模型、维度和 Prompt 一致统一相似度 Metric对语言和领域进行实际评估Embedding 不是 Reranker本地运行有助于隐私保护一个简单的本地 RAG 架构什么时候适合使用 EmbeddingGemma?总结官方资料

EmbeddingGemma 是什么?

EmbeddingGemma 是 Google DeepMind 推出的轻量级开放文本嵌入模型。它基于 Gemma 3 架构,参数量约为 3.08 亿,因此也经常以 EmbeddingGemma 300M 的名称出现。

与生成文本的聊天模型不同,EmbeddingGemma 会把文本转换成数值向量,用来表示文本的语义。含义相近的文本通常会在向量空间中更接近。

因此,它适合用于 语义搜索、RAG、文本分类、聚类、相似度计算、重复内容检测、推荐和代码检索。

核心规格

项目说明
开发者Google DeepMind
架构基于 Gemma 3
参数量约 308M
输入文本
上下文窗口最多 2K tokens
完整向量维度768
MRL 支持维度512、256、128
语言使用 100+ 种语言训练
本地运行支持

Embedding 实际做了什么?

假设有两句话讨论 AI 如何改善 CRM,还有一句话讨论天气。EmbeddingGemma 会把每句话转换成向量。语义相近的前两句话应该比天气句子更接近。常见的比较方法是 Cosine Similarity。


主要应用

语义搜索

传统搜索依赖关键词,而语义搜索关注“意思”。例如“如何留住不满意的客户”可能检索到一篇关于“降低 Customer Churn”的文章,即使两者没有完全相同的关键词。

RAG

典型流程如下:

  1. 将文档切分成有意义的 Chunk。
  2. 为每个 Chunk 生成 Embedding。
  3. 把向量保存到 Vector Database。
  4. 对用户 Query 生成 Embedding。
  5. 找到最相近的 Chunk。
  6. 把检索到的 Context 交给生成式 LLM。

EmbeddingGemma 本身并不生成最终答案,它的核心职责是找到 相关上下文。

分类与聚类

可以将客服消息分类为销售、技术支持、账单等,也可以对大量文章或 Ticket 进行语义聚类。

相似内容与重复检测

适合查找相似文章、重复问题、相关产品或相似 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 文档指出,合适的标题可能提升文档向量的效果。


Matryoshka Representation Learning

EmbeddingGemma 使用 MRL,因此除了完整的 768 维向量,还可以保留前 512、256 或 128 维。

  • 768:优先质量和信息量
  • 512:质量与存储之间的平衡
  • 256:适合更大的索引
  • 128:存储和检索成本最低,但可能带来更明显的质量下降
Python
1234
import numpy as np

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

截断 MRL 向量后,应当 重新归一化。


生产环境注意事项

注意 2K 上下文限制

不要把非常长的文档作为一个输入直接生成向量。更好的做法是切成语义完整的 Chunk。可以从 300–800 tokens 左右开始测试,但最终参数应根据真实 Retrieval 评估决定。

保持模型、维度和 Prompt 一致

不同模型、不同维度或不同 prompt 策略生成的向量不应随意混在同一个索引中。改变策略后,通常应重新生成向量并执行 Re-index。

统一相似度 Metric

Cosine Similarity 是常见选择。应用代码和 Vector Database 必须在归一化及距离配置上保持一致。

对语言和领域进行实际评估

虽然模型使用 100 多种语言训练,但不同语言和专业领域的效果仍可能不同。最好用真实 Query 与相关文档建立小型 Evaluation Set。

Embedding 不是 Reranker

Embedding 适合快速召回候选结果。如果对精度要求较高,可以再使用 Reranker 对 Top-K 结果重新排序。

本地运行有助于隐私保护

本地生成 Embedding 可以让原始文档保留在自己的基础设施中,而不必发送到第三方 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?

如果你需要本地或离线 Embedding、多语言搜索、RAG、较低的硬件需求,或者更强的数据隐私控制,EmbeddingGemma 是一个值得考虑的选择。

但如果主要目标是 文本生成、聊天或直接推理,仍然需要生成式 LLM。

总结

EmbeddingGemma 将较小的模型规模、100+ 语言支持、2K 上下文、768 维向量和 MRL 结合在一起,非常适合语义搜索与本地 RAG。真实项目中的效果不仅取决于模型本身,还高度依赖 Task Prompt、Chunking、向量维度、Similarity Metric 和 Retrieval Evaluation。

官方资料

  • Google AI for Developers — EmbeddingGemma model overview
  • Google Developers Blog — Introducing EmbeddingGemma
  • Hugging Face — google/embeddinggemma-300m
  • Ollama Library — embeddinggemma
本页目录
EmbeddingGemma 是什么?核心规格Embedding 实际做了什么?主要应用语义搜索RAG分类与聚类相似内容与重复检测代码检索使用 Ollama 运行Python 示例使用 Sentence TransformersTask Prompt 很重要Matryoshka Representation Learning生产环境注意事项注意 2K 上下文限制保持模型、维度和 Prompt 一致统一相似度 Metric对语言和领域进行实际评估Embedding 不是 Reranker本地运行有助于隐私保护一个简单的本地 RAG 架构什么时候适合使用 EmbeddingGemma?总结官方资料

文章信息

发布时间、阅读时长和浏览数据。

发布

2026年10月3日

更新

2026年11月3日

阅读时长

7 分钟阅读

浏览

8

作者

Arian Soleimanzadeh

上一篇

Stable Diffusion 3.5 Medium 与 Large:安装与对比指南

下一篇

Nimble 是什么?Ollama 安装与使用完整指南

Arian Soleimanzadeh

个人作品集,聚焦现代 Web 工程、UI 系统与实用型 AI 产品——干净的代码,清晰的设计。

快速链接

  • 关于
  • 博客
  • 图书馆
  • 联系

联系

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

可联系时间: 工作日

通常回复时间在 24小时内。

订阅通讯

获取文章、项目与新版本发布的更新。

© 2026 ariansoleimanzadeh.dev — 保留所有权利。

LinkedIn