从零开始用 Ollama 本地跑大模型、Embedding 与 Rerank
从零开始用 Ollama 本地跑大模型、Embedding 与 Rerank

在做大模型应用,尤其是企业知识库、内部问答、代码库检索、客服助手这类 RAG 项目时,很多团队都会优先考虑一个现实问题:数据能不能不出内网。
如果你把所有内容都发到云端模型,再让云端返回答案,开发速度当然快,但也意味着你要面对数据合规、隐私、安全审计、专线网络、成本波动等一系列问题。也正因为这样,“本地运行模型”在很多项目里并不是可选项,而是前提。
这时候,Ollama 往往是一个非常适合入门的选择。它把“下载模型、在本机运行模型、通过命令行或 API 调用模型”这几件事做得足够简单。对小白来说,你不需要先把 vLLM、llama.cpp、Transformers、CUDA 参数全部研究一遍,先把模型跑起来,再理解整个 RAG 流程,会轻松很多。
这篇文章就从初学者视角出发,系统讲清楚下面几件事:
Ollama是什么,为什么很多本地 AI 项目会先选它。- 如何安装并运行
Ollama。 - 什么是
LLM、Embedding、Rerank,它们分别在 RAG 里干什么。 - 如何下载
qwen3、qwen3-embedding、nomic-embed-text、dengcao/Qwen3-Reranker-0.6B:Q8_0这些模型。 - 它们分别该在什么时候用。
- 新手最容易踩的坑有哪些。
如果你之前只知道“RAG 就是把文档喂给模型”,那这篇文章就是为你写的。
一、先别急着下载模型,先把三个角色分清楚
很多新手一上来会把所有模型都统称为“大模型”,但在真正的 RAG 项目里,至少有三类模型经常同时出现,而且它们干的不是一回事。
| 类型 | 负责什么 | 输入输出 | 在 RAG 里的位置 | 典型模型 |
|---|---|---|---|---|
LLM |
阅读上下文、生成答案、总结、改写 | 输入文本,输出自然语言 | 最后负责“回答” | qwen3 |
Embedding |
把文本转成向量,便于相似度检索 | 输入文本,输出向量数组 | 检索阶段 | qwen3-embedding、nomic-embed-text |
Rerank |
对召回结果重新排序,挑出更相关的内容 | 输入“问题 + 候选文档”,输出相关性分数 | 检索后的精排阶段 | dengcao/Qwen3-Reranker-0.6B:Q8_0 |
你可以把它们理解成三个岗位:
LLM是写答案的人。Embedding是图书馆检索员,负责先把可能相关的资料找出来。Rerank是复核员,负责把“看起来都差不多相关”的结果重新排个序,把最可能有用的文档放前面。
如果你做的是最简单的本地聊天助手,只需要 LLM。
如果你做的是文档问答、知识库搜索、代码检索,通常至少需要 LLM + Embedding。
如果你发现“已经检索到了,但最相关的那几条经常排不在前面”,这时候再考虑加 Rerank。
二、为什么做本地 AI 项目时,很多人会先选 Ollama
Ollama 的核心价值,不是它让模型变强了,而是它把本地模型运行这件事做得足够顺手。
对初学者来说,它有几个非常现实的优点:
- 安装简单,Windows、macOS、Linux 都支持。
- 下载模型直接一条命令,
ollama pull 模型名就可以。 - 第一次运行模型时会自动下载,不需要自己找权重文件、配参数、写启动脚本。
- 默认就提供本地 API,地址通常是
http://localhost:11434。 - 对接应用方便,CLI、HTTP API、Python、JavaScript 都能接。
如果你只是想先把本地大模型和 RAG 流程跑通,Ollama 的学习曲线通常要比很多底层推理框架更平缓。
当然,它也不是万能的。本文后面会专门讲到,Rerank 这一块,当前在 Ollama 生态里还存在支持边界,你不能想当然地把“模型能下载”理解成“功能已经能完整投入生产”。
三、先装好 Ollama
1. Windows 安装方式
如果你是 Windows 用户,最简单的方式就是去官方页面下载 OllamaSetup.exe 安装包。根据官方文档,Windows 版本安装后会在后台运行,且 ollama 命令可以直接在 cmd、PowerShell 等终端里使用;本地 API 默认暴露在 http://localhost:11434。
官方还说明了几个非常实用的细节:
- Windows 10
22H2或更新版本可用。 - 安装程序默认装在当前用户目录下,不要求管理员权限。
- 如果模型不想放在系统盘,可以设置用户环境变量
OLLAMA_MODELS修改模型存储目录。
如果你的 C 盘比较小,这一步建议尽早做,不然后面下载几个模型,很容易把系统盘塞满。
2. Linux 安装方式
Linux 下官方安装命令如下:
curl -fsSL https://ollama.com/install.sh | sh
手动启动服务:
ollama serve
如果你希望开机自动启动,官方文档也给出了 systemd 配置方式。
3. 安装后先做两个最基本的确认
确认 ollama 命令是否可用:
ollama -v
如果你在 Windows 上已经正常安装,通常不需要再手工执行 ollama serve,因为它会在后台运行。Linux 手工安装场景下,则更常见需要自己启动服务。
四、一定要先学会的 6 条基础命令
开始下载模型之前,先记住这几条命令:
ollama pull qwen3
ollama run qwen3
ollama ls
ollama ps
ollama stop qwen3
ollama rm qwen3
它们分别表示:
ollama pull:下载模型到本地。ollama run:运行模型;如果本地没有,会先下载。ollama ls:查看本地已下载模型。ollama ps:查看当前正在内存中运行的模型。ollama stop:停止正在运行的模型。ollama rm:删除本地模型。
如果你是新手,我建议把“下载”和“运行”这两个动作分开,先 pull,再 run。这样你更容易知道自己现在到底卡在“下载阶段”还是“推理阶段”。
五、第一步:先把 LLM 跑起来,推荐从 qwen3 开始
在 Ollama 官方模型库里,qwen3 是一个很适合本地部署的中文/多语言大模型系列。官方库页面显示,qwen3 覆盖了 0.6b、1.7b、4b、8b、14b、32b、30b、235b 等不同体量。
对小白来说,选择思路可以先这么理解:
- 机器资源一般,只想先体验完整流程:先试
qwen3:0.6b-fp16或更小标签。 - 想要中文问答效果更稳一些:优先从
qwen3:4b开始。 - 机器配置较强,希望生成质量更好:可以试
qwen3:8b或更高。
最基础的下载方式:
ollama pull qwen3:4b
运行方式:
ollama run qwen3:4b
进入交互界面后,你可以直接问:
请用通俗的话解释一下什么是 RAG。
如果模型能正常回复,说明你的本地大语言模型已经跑起来了。
用 API 调一次,感受一下它其实就是本地服务
Windows 下用 PowerShell:
$body = @{
model = "qwen3:4b"
messages = @(
@{
role = "user"
content = "请用三句话解释 Embedding 模型是干什么的"
}
)
stream = $false
} | ConvertTo-Json -Depth 6
Invoke-RestMethod `
-Uri "http://localhost:11434/api/chat" `
-Method Post `
-ContentType "application/json" `
-Body $body
看到返回 JSON,就说明 Ollama 不只是一个聊天终端,本质上还是一个本地模型服务。
这对后续做 RAG 非常关键,因为你真正的业务程序,通常不是人工敲命令,而是通过本地 API 去调模型。
六、Embedding 模型是什么,为什么 RAG 基本离不开它
如果说 LLM 负责“回答”,那 Embedding 负责“找资料”。
在 RAG 里,常见流程大概是这样:
- 先把知识库文档切分成很多小段。
- 用
Embedding模型把每段文本变成向量。 - 把这些向量存进向量数据库。
- 用户提问时,再把问题也转成向量。
- 用相似度搜索找出最相关的若干段文本。
- 再把这些文本连同问题一起交给
LLM生成答案。
也就是说,Embedding 模型不是用来聊天的,它的职责是把“文本相似度”这件事变成可计算的数字空间问题。
一个非常重要的误区
很多新手第一次看到 Embedding 模型,也会想用 ollama run 模型名 来问问题。这个方向就错了。
Embedding 模型的结果不是自然语言答案,而是向量。你真正关心的是:
- 两段文字是不是语义接近。
- 一个问题和哪些知识片段最相似。
- 哪段代码、哪篇文档、哪个 FAQ 最可能匹配当前查询。
七、如何下载 Embedding 模型
1. 下载 qwen3-embedding
Ollama 官方模型库中,qwen3-embedding 是官方推荐的嵌入模型之一。根据官方库页面和 Qwen 官方博客,这个系列覆盖 0.6B、4B、8B 三个尺寸,支持 100+ 语言,并面向文本检索、代码检索、分类、聚类、双语挖掘等任务。
以 0.6B 为例,当前常见标签可以直接使用:
ollama pull qwen3-embedding:0.6b-q8_0
ollama pull qwen3-embedding:0.6b-fp16
如果你在网上看到有人写 qwen3-embedding:0.6b,要注意一个细节:具体可用的 tag 以你下载当天的模型库页面为准,不同量化版本通常会体现在标签后缀里,比如 q8_0 或 fp16。
2. 下载 nomic-embed-text
如果你想先上手一个体积更小、更“开箱即用”的嵌入模型,nomic-embed-text 也是很常见的入门选择。
下载命令:
ollama pull nomic-embed-text
官方模型页明确说明,它是一个“只能用于生成 embedding”的模型,不能拿来正常聊天。
八、Embedding 什么时候用 qwen3-embedding,什么时候用 nomic-embed-text
这是很多初学者最关心的问题之一。
更适合优先试 qwen3-embedding 的场景
- 你的知识库以中文为主,或者中英混合比较多。
- 你需要多语言检索。
- 你需要代码检索、技术文档检索。
- 你希望后续和
Qwen3系列形成更统一的技术栈。
更适合先试 nomic-embed-text 的场景
- 你只是想快速把向量检索流程跑通。
- 你的机器资源比较一般,想先用更轻量的模型验证方案。
- 你更在意“先能用起来”,而不是一开始就追求最强中文检索效果。
如果你是第一次做本地 RAG,我建议你用下面这套组合先上手:
- 生成模型:
qwen3:4b - 嵌入模型:
qwen3-embedding:0.6b-q8_0
这套组合的思路很简单:回答和检索都走 Qwen3 系列,认知成本更低,中文场景通常也更顺手。
九、如何真正调用 Embedding 模型
根据 Ollama 当前官方文档,推荐的接口是:
POST /api/embed
最简单的调用示例:
curl http://localhost:11434/api/embed -d '{
"model": "qwen3-embedding:0.6b-q8_0",
"input": "RAG 的核心是检索增强生成。"
}'
如果是 Windows PowerShell:
$body = @{
model = "qwen3-embedding:0.6b-q8_0"
input = "RAG 的核心是先检索,再生成。"
} | ConvertTo-Json
Invoke-RestMethod `
-Uri "http://localhost:11434/api/embed" `
-Method Post `
-ContentType "application/json" `
-Body $body
返回内容里最关键的是 embeddings 字段,它会是一个数字数组,也就是向量。
再提醒一次:新旧接口不要混淆
你在一些旧教程或部分模型页里,可能还会看到:
/api/embeddingsprompt
而当前官方文档主推的是:
/api/embedinput
如果你照着老教程写,结果接口报错,不一定是模型有问题,很可能只是你用了旧写法。
十、Rerank 模型又是什么,为什么很多 RAG 系统会在后面再加一层
当你已经有了 Embedding 检索,为什么还需要 Rerank?
因为“粗召回”不等于“最终顺序最优”。
举个最常见的例子:
- 你先用向量检索从知识库里找出
Top 20个可能相关的片段。 - 这
20个片段里,很多都“有点像”,但真正最相关的也许只排在第7或第9。
这时候,Rerank 模型就派上用场了。它会把“用户问题 + 候选文档片段”当成成对输入,然后对每一对打相关性分数,再重新排序。
所以,Embedding 更像“先撒网捞一批”,Rerank 更像“再做一次精排”。
Qwen 官方博客对这件事解释得很清楚:Embedding 模型处理的是单段文本语义表示,而 Reranking 模型处理的是“文本对”,输出的是相关性分数。
十一、如何下载 Rerank 模型
以你提到的模型为例:
ollama pull dengcao/Qwen3-Reranker-0.6B:Q8_0
也可以直接运行:
ollama run dengcao/Qwen3-Reranker-0.6B:Q8_0
但这里有一个必须写清楚的现实问题。
十二、很关键的一点:Rerank 目前在 Ollama 里有“能下载”不等于“能完整用”的边界
这部分非常重要,很多文章都会略过去,但如果不讲清楚,新手最容易在这里浪费时间。
截至本文写作时间,Ollama 官方公开文档重点覆盖的是聊天、生成、embedding 等能力,我没有看到官方公开的专门 rerank API 文档。而你提到的 dengcao/Qwen3-Reranker-0.6B:Q8_0 模型页里,维护者也明确写到:
- 截止
2025-06-11,Ollama暂不支持重排模型。 Ragflow 0.19、Dify等在接入Ollama重排模型时会报错或无效。- 如果需要真正使用重排模型,更现实的方式是走 API,或者本地用
vLLM等方式部署。
这意味着什么?
意味着你今天完全可以把这个模型“下载到本地”,但不要立刻得出“那我就能像 embedding 一样直接接一个官方 rerank 接口”的结论。
更直白地说:
下载成功不代表Ollama 已经提供成熟的 rerank 调用方式。模型页能看到 run/chat 示例不代表这就是标准的“重排接口”。框架里能填模型名也不代表它一定真的能完成精排。
新手应该怎么理解这件事
如果你现在的目标是“先把本地 RAG 跑起来”,建议这样分阶段:
- 先用
LLM + Embedding跑通完整问答流程。 - 观察检索效果是否真的不够好。
- 如果确实需要
Rerank,再评估单独部署重排服务,比如vLLM、Transformers推理服务,或者框架原生支持的 reranker 方案。
这比一开始就把所有能力都压到 Ollama 身上,更稳,也更符合工程实际。
十三、那到底什么时候才需要 Rerank
不是所有项目都需要 Rerank。
以下情况,通常说明你可以认真考虑加重排层:
- 知识库规模变大后,向量检索召回结果“差不多都相关”,但前几名不够准。
- 用户问题比较短、比较模糊,单靠向量相似度不稳定。
- 你需要更高质量的
Top 3或Top 5文档,而不是只要“大概找到了”。 - 你做的是合同检索、制度检索、代码库检索、FAQ 精准匹配这类对排序质量敏感的任务。
以下情况,可以先不加:
- 只是做演示版或 PoC。
- 知识库很小。
- 目前连 chunk 切分、embedding、召回条数这些基础问题都还没调顺。
- 你的瓶颈其实在
LLM总结能力,而不是召回排序。
一句话总结:Rerank 是提升上限的,不是所有项目一开始就必须有的。
十四、小白最推荐的三套起步组合
方案一:先把流程跑通
LLM:qwen3:0.6b-fp16或更小可用标签Embedding:nomic-embed-textRerank:先不加
适合人群:
- 第一次接触本地大模型
- 机器资源有限
- 先验证从“导入文档”到“本地问答”整个链路
方案二:中文 RAG 更平衡的组合
LLM:qwen3:4bEmbedding:qwen3-embedding:0.6b-q8_0Rerank:先预留,必要时再独立部署
适合人群:
- 主要做中文知识库问答
- 想兼顾效果与门槛
- 需要代码文档、内部文档、FAQ 检索
方案三:效果优先
LLM:qwen3:8b或更高Embedding:qwen3-embedding:4bRerank:独立部署Qwen3-Reranker或其他成熟 reranker
适合人群:
- 已经进入正式项目阶段
- 对检索排序质量要求更高
- 愿意接受更复杂的部署和资源消耗
十五、一个最容易理解的本地 RAG 流程图
你可以把整个流程理解为下面这条链路:
文档导入
-> 文本切块
-> Embedding 模型转向量
-> 向量库存储
-> 用户提问
-> 问题转向量
-> 检索出 TopK 文档
-> (可选)Rerank 重新排序
-> 把最相关文档 + 用户问题交给 LLM
-> 生成最终答案
在这条链路里:
Embedding决定“找得准不准”。Rerank决定“排得准不准”。LLM决定“说得好不好”。
只盯着 LLM,通常做不好 RAG;只会下载聊天模型,也不等于你真的搭好了知识库问答系统。
十六、几个特别常见的坑
1. 以为 Embedding 模型可以直接聊天
不可以。它输出的是向量,不是答案。
2. 以为 run 和 pull 完全一样
run 第一次确实也会下载,但排错时更推荐先 pull 再 run。
3. 以为下载了 Rerank 模型,就一定能直接接入所有框架
不一定。当前这正是最容易踩坑的地方。
4. 以为本地运行就一定不吃资源
本地部署只是把成本从“云 API 调用费”变成了“本地算力、显存、磁盘、运维复杂度”。
5. 只关注模型,不关注数据切块
RAG 质量差,很多时候不是模型不够强,而是 chunk 切分过粗、过细、重叠不合理,或者脏数据太多。
6. 忽略模型存储路径
如果你在 Windows 上不提前规划 OLLAMA_MODELS,很可能几次下载之后系统盘就开始报警。
十七、写给小白的落地建议
如果你现在准备开始做一个本地知识库项目,不要上来就追求“最强模型组合”。更实际的做法是:
- 先装好
Ollama。 - 先跑通一个聊天模型,比如
qwen3:4b。 - 再拉一个 embedding 模型,比如
qwen3-embedding:0.6b-q8_0或nomic-embed-text。 - 先把“文档入库 -> 检索 -> 回答”打通。
- 只有当你发现召回顺序明显影响效果时,再评估
Rerank。
这是最省时间、也最符合工程逻辑的路线。
十八、结语
对很多需要数据安全、内网部署、离线运行、控制成本的项目来说,Ollama 确实是本地大模型实践里一个非常合适的起点。
你可以把它理解成一扇门:
- 门的第一层,是本地运行
LLM。 - 门的第二层,是理解
Embedding,把聊天升级成真正的 RAG。 - 门的第三层,是在效果不够时,再引入
Rerank做精排。
而真正的关键,不是你能不能一口气下载很多模型,而是你是否知道每种模型为什么存在、该在什么时候用、它在整个链路里扮演什么角色。
如果只记住一句话,我希望你记住这句:
LLM 负责回答,Embedding 负责找,Rerank 负责排。
把这三个角色分清楚,你对本地 RAG 的理解就已经超过很多“只会下载模型”的入门阶段了。
参考资料
- Ollama Windows 文档:https://docs.ollama.com/windows
- Ollama Linux 文档:https://docs.ollama.com/linux
- Ollama CLI 文档:https://docs.ollama.com/cli
- Ollama Embeddings 能力文档:https://docs.ollama.com/capabilities/embeddings
- Ollama Embedding API 文档:https://docs.ollama.com/api/embed
- Ollama
qwen3模型页:https://ollama.com/library/qwen3 - Ollama
qwen3-embedding模型页:https://ollama.com/library/qwen3-embedding - Ollama
qwen3-embedding:0.6b-q8_0模型页:https://ollama.com/library/qwen3-embedding:0.6b-q8_0 - Ollama
qwen3-embedding:0.6b-fp16模型页:https://ollama.com/library/qwen3-embedding:0.6b-fp16 - Ollama
nomic-embed-text模型页:https://ollama.com/library/nomic-embed-text - Ollama
dengcao/Qwen3-Reranker-0.6B:Q8_0模型页:https://ollama.com/dengcao/Qwen3-Reranker-0.6B:Q8_0 - Qwen3 官方博客:https://qwenlm.github.io/blog/qwen3/
- Qwen3 Embedding 官方博客:https://qwenlm.github.io/blog/qwen3-embedding/
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)