Embeddings 与 RAG 预告
Embedding(嵌入) 把文本变成固定长度的浮点向量,用来做语义检索、聚类和 RAG。向量维度由模型决定(常见约 384–1024)。官方说明:/api/embed 返回的是 L2 归一化(单位长度) 向量,相似度用 余弦 即可。
聊天模型不要拿来当 embed:既慢,空间也不为检索训练。请在 ollama.com/library 选 embedding 类模型,再 ollama pull。
拉一个当前可用的嵌入模型
官方能力页当前推荐示例包括 embeddinggemma、qwen3-embedding、all-minilm。社区里仍常见:
名字和标签会变。 到 Library 确认后执行,例如:
CLI 也可直接出向量(输出为 JSON 数组):
索引和查询必须用同一个嵌入模型,否则向量不在同一空间。
REST:/api/embed
批量:
可选字段:truncate(超长是否截断)、dimensions(若模型支持降维)、keep_alive。
Windows PowerShell:
OpenAI 兼容:POST http://localhost:11434/v1/embeddings,字段为 model + input。
官方库
最小「检索」直觉
- 把文档切成块(按标题或约 300–800 token)。
- 对每块
embed,连同原文存进向量库(Chroma、FAISS、pgvector…)。 - 对用户问题用同一模型 embed。
- 取余弦相似度最高的 k 块,拼进提示词,再
chat/generate。
伪代码:
单位向量时余弦与点积等价。这只是教学;生产要用真正的 ANN 索引和元数据过滤。
接到 LangChain RAG
完整流水线(Loader → Splitter → VectorStore → Retriever → Agent)在本站 LangChain 教程:
那里可以用 OpenAI 嵌入,也可以换成 Ollama 嵌入 + ChatOllama / OpenAI 兼容的本地聊天模型,数据仍留在本机。Dify 知识库若选择 Ollama 嵌入,同样遵守「同一模型编解码」规则,见 应用集成 与 Dify 教程。
注意
- 换嵌入模型 = 整库重嵌。
- 中文效果以你的语料评测为准,不要只看英文榜单。
- 嵌入模型也占显存;检索服务和 30B 聊天模型同卡时,注意
ollama ps。