本文是一篇写给新手的上手教程。不需要你买云服务器不需要懂复杂的推理框架只要有一台普通电脑跟着步骤一步步做就能在本地把开源大模型跑起来并用它写代码、问答、搭知识库。一、Ollama 是什么为什么要在本地跑大模型1.1 Ollama 是什么Ollama 是一个开源的本地大模型运行框架它的目标很简单让你像安装一个普通软件一样在本地电脑上跑起各种开源大模型。它背后做的事情其实不少把模型权重以 GGUF 格式管理、处理量化让模型体积变小、能塞进消费级显卡、封装好推理引擎默认用 llama.cpp、再给你一套简单的命令行和 API。但你作为使用者几乎不用关心这些底层细节——一个ollama run llama3命令就能把模型下载下来并进入对话。可以把它理解为「大模型界的 Docker」ollama pull类似docker pull拉取模型ollama run类似docker run启动并交互Modelfile类似Dockerfile定义自定义模型ollama list类似docker images查看本地模型1.2 为什么本地跑大模型有意义很多人第一反应是现在有那么多在线大模型GPT、文心、通义为什么还要自己折腾本地部署理由主要有三点1隐私与数据安全把公司合同、医疗记录、个人笔记丢给云端 API本质上是把数据交给了第三方。即便厂商承诺不训练你的数据数据也至少要在传输和存储环节离开你的控制范围。本地跑模型数据完全不出本机——这一点对金融、医疗、法务等敏感行业尤其重要。2成本可控云端 API 按 token 计费用量一大就是真金白银。本地部署是一次性硬件投入甚至不需要 GPU纯 CPU 也能跑小模型之后随便问、反复问、批处理跑数据边际成本接近于零。对个人开发者、学生、做原型验证的团队来说这笔账很划算。3离线可用飞机上、没有网络的工厂车间、内网隔离环境云端模型统统用不了。本地模型只要装好了断网照样能跑。它也不受厂商服务波动、政策变动、接口升级的影响。当然本地跑也有代价你需要自己承担算力尤其是大模型对显存/内存要求高模型能力通常弱于最强的闭源模型。所以合理的姿势是混合使用——敏感/高频/离线场景用本地复杂难题用云端。二、安装 OllamaWindows / Mac / LinuxOllama 目前官方支持 macOS、Windows 和 Linux。下面分别说明。2.1 Windows打开官网 https://ollama.com点击 Download选择 Windows 版本要求 Windows 10 及以上建议 22H2。下载得到OllamaSetup.exe双击运行一路「下一步」即可。安装完成后默认会自动启动 Ollama 服务任务栏出现羊驼图标。打开 PowerShell 或 CMD输入ollama--version如果能看到版本号例如ollama version is 0.3.x说明安装成功。小提示Windows 版 Ollama 默认会把模型下载到C:\Users\你的用户名\.ollama\models。如果 C 盘空间紧张可以通过设置环境变量OLLAMA_MODELS指向其他盘符路径。2.2 macOS同样在官网下载 macOS 版本Apple Silicon 和 Intel 都支持M 系列芯片体验更好。下载得到.dmg文件拖拽到「应用程序」文件夹。打开启动台点击 Ollama 启动首次会提示安装命令行工具按提示输入密码授权即可。打开「终端」验证ollama--version2.3 Linux官方推荐用一键脚本安装curl-fsSLhttps://ollama.com/install.sh|sh脚本会自动判断发行版并安装好服务且默认把 Ollama 注册为 systemd 后台服务开机自启。安装完后可以通过以下命令确认服务状态systemctl status ollama如果你的 Linux 没有 systemd比如某些 WSL 环境或容器也可以直接下载二进制文件手动运行curl-Lhttps://ollama.com/download/ollama-linux-amd64.tgz-oollama-linux-amd64.tgzsudotar-C/usr-xzfollama-linux-amd64.tgz ollama serve# 前台启动服务注意在 WSL2 里跑 Ollama 是可以的但它无法直接调用 Windows 的 GPU除非配置 CUDA 穿透。纯 CPU 模式能跑小模型但速度偏慢建议搭配参数较小的模型使用。三、快速上手跑起你的第一个模型安装好之后最激动人心的一步来了——真正把模型跑起来对话。3.1 一行命令跑模型在终端输入ollama run llama3第一次运行会先下载模型Llama3 约 4.7GB需要一点时间视网速而定。下载完成后终端会变成一个对话界面提示符变成。直接输入问题回车即可 用一句话解释什么是量子纠缠模型会逐字输出回答。想退出对话输入/bye回车。3.2 常用交互命令在ollama run的交互界面里有几个以/开头的指令很实用/help查看帮助/list列出本地已安装模型/bye退出对话/clear清空当前对话上下文/show info查看当前模型的元信息3.3 跑一个更小的模型试试如果你的电脑配置一般比如只有集显、内存 8GB 左右Llama3 可能跑得吃力。可以先试一个轻量模型ollama run qwen2:0.5bqwen2:0.5b只有约 0.5B 参数几百 MB 大小普通笔记本 CPU 也能流畅跑非常适合先体验流程。四、Ollama 支持的模型清单Ollama 内置了一个模型库覆盖主流开源模型。你不需要自己去下载权重再转换直接ollama run 模型名就行。常用模型如下模型说明典型用途llama3/llama3.1Meta 出品综合能力强默认 8B通用对话、写作、编程qwen2/qwen2.5阿里通义千问中文友好中文场景、代码、数学deepseek/deepseek-coder深度求索推理与代码强代码生成、逻辑推理phi3微软小模型3.8B 但能力强轻量部署、端侧mistral/mixtral欧洲团队质量高通用任务gemma2Google 出品通用任务llama2上一代稳定成熟老项目兼容nomic-embed-text嵌入模型不是对话模型RAG 知识库向量化带标签的写法可以控制大小例如ollama run qwen2.5:7b# 指定 7B 版本ollama run llama3.1:70b# 大模型需要大显存ollama run phi3:mini# 最小版本经验模型参数量越大能力通常越强但显存/内存占用也线性增长。8B 模型量化后约 4~5GB14B 约 8~9GB70B 需要 40GB 以上显存或大量内存 慢速 CPU。新手建议从 7B/8B 起步。查看全部官方模型库可以访问 https://ollama.com/library。五、用 API 调用本地模型除了命令行对话Ollama 默认在本地启动了一个 REST API 服务地址http://localhost:11434你可以把它接入自己的程序。5.1 直接看服务在不在curlhttp://localhost:11434/api/tags返回一段 JSON 列表说明 API 正常。5.2 REST API 发请求最基础的生成接口curlhttp://localhost:11434/api/generate-d{ model: llama3, prompt: 用一句话介绍 Ollama, stream: false }stream: false表示等模型完整生成后再一次性返回设为true默认则是流式逐字返回前端体验更好。对话接口带多轮上下文curlhttp://localhost:11434/api/chat-d{ model: qwen2.5:7b, messages: [ {role: user, content: 我叫小明记住了} ], stream: false }5.3 Python SDK 调用Ollama 官方提供了 Python 库ollama安装后用起来非常直观pipinstallollama单次生成importollama responseollama.generate(modelllama3,prompt帮我写一段 Python 快速排序代码)print(response[response])多轮对话fromollamaimportchat messages[{role:user,content:什么是 RAG},]respchat(modelqwen2.5:7b,messagesmessages)print(resp[message][content])# 把模型回复加回上下文继续问messages.append(resp[message])messages.append({role:user,content:它和微调有什么区别})resp2chat(modelqwen2.5:7b,messagesmessages)print(resp2[message][content])流式输出适合做打字机效果streamollama.generate(modelllama3,prompt讲个关于程序员的冷笑话,streamTrue)forchunkinstream:print(chunk[response],end,flushTrue)注意Python 库默认连接localhost:11434。如果你把 Ollama 装在另一台机器上可以设置环境变量OLLAMA_HOST或用ollama.Client(hosthttp://ip:11434)指定。六、自定义模型用 Modelfile 定制有时候你想让模型「变成某个角色」或者调整 temperature、系统提示词、上下文窗口等参数。Ollama 用Modelfile来定义这些——和 Dockerfile 思路一致。6.1 最简单改系统提示词新建一个文件ModelfileFROM llama3 SYSTEM 你是一个严谨的中文技术助教回答要简洁多用代码示例。 构建并运行ollama create my-teacher-fModelfile ollama run my-teacher之后你就有了一个专属的「技术助教」模型。6.2 调整参数FROM qwen2.5:7b PARAMETER temperature 0.7 PARAMETER num_ctx 4096 SYSTEM 你是一个资深后端工程师偏好 Go 语言。 常用PARAMETERtemperature采样温度越高越发散0~1top_p核采样概率num_ctx上下文窗口长度token 数num_gpu指定用几层放到 GPU显存不够时调小6.3 导入自己的 GGUF 模型如果你想跑网上下载的第三方 GGUF 模型比如从 HuggingFace 拉的量化模型可以这样FROM ./models/your-model.Q4_K_M.gguf SYSTEM 你是一个本地助手或者直接用命令从 HuggingFace 拉取再创建ollama create mymodel-fModelfile提示GGUF 是 llama.cpp 的模型格式几乎所有消费级本地推理都基于它。量化Q4、Q5 等能在几乎不损失效果的前提下把模型压小是本地部署的关键技术。七、Ollama RAG 实战搭一个本地知识库问答RAG检索增强生成的意思是先根据用户问题从你的私有文档里检索出相关内容再把内容连同问题一起喂给大模型让它基于「你给的资料」回答而不是凭空编。这样既能用上大模型的语言能力又能保证答案来自你的真实文档避免幻觉。下面用纯本地方案搭一个最小可用版本。7.1 准备工具我们会用到Ollama 提供对话模型如qwen2.5:7b和嵌入模型nomic-embed-textchromadb做本地向量库无需联网、无需账号langchain可选简化流程先拉取模型ollama pull nomic-embed-text ollama pull qwen2.5:7b安装 Python 依赖pipinstallchromadb langchain langchain-ollama7.2 把文档切分并向量化fromlangchain_community.document_loadersimportTextLoaderfromlangchain_text_splittersimportRecursiveCharacterTextSplitterfromlangchain_ollamaimportOllamaEmbeddingsfromlangchain_ollamaimportChatOllamafromlangchain_chromaimportChroma# 1. 加载你的文档这里用 txt 举例pdf/docx 有对应 loaderloaderTextLoader(公司手册.txt,encodingutf-8)docsloader.load()# 2. 切分成小块中文建议 300~500 字一块splitterRecursiveCharacterTextSplitter(chunk_size400,chunk_overlap50)chunkssplitter.split_documents(docs)# 3. 用本地嵌入模型转成向量存入 ChromaembeddingsOllamaEmbeddings(modelnomic-embed-text)vectorstoreChroma.from_documents(chunks,embeddings,persist_directory./kb_db)print(知识库构建完成共,len(chunks),个片段)7.3 检索 问答# 用户提问question年假怎么申请# 1. 先检索最相关的 3 个片段relatedvectorstore.similarity_search(question,k3)context\n\n.join([d.page_contentfordinrelated])# 2. 组装提示词发给本地模型promptf请根据下面的资料回答问题资料里没有就说不知道。 资料{context}问题{question}llmChatOllama(modelqwen2.5:7b,temperature0)answerllm.invoke(prompt)print(answer.content)运行后模型会只基于你提供的《公司手册》内容来回答「年假怎么申请」而不是瞎编。这就是一个最小可用的本地知识库问答系统。进阶真实项目里你可以加重排序rerank、混合检索关键词向量、把 chunk 大小调到和模型上下文匹配、或对答案做引用标注。但核心逻辑就是上面这几步。八、常见踩坑点与解决办法本地部署多多少少会踩坑下面是我和身边朋友最常遇到的几个以及对应解法。8.1 显存不足CUDA out of memory / 卡死现象一跑大模型就报错或者系统直接卡死、内存被吃光。原因模型权重 推理中间结果需要占用显存GPU或内存CPU。8B 量化模型约需 4~6GB14B 约 8~10GB。解法换更小的模型比如qwen2.5:3b、phi3:mini、qwen2:0.5b。在 Modelfile 里减少num_gpu让一部分层跑在 CPU慢但能跑。设置环境变量限制并发OLLAMA_NUM_PARALLEL1OLLAMA_MAX_LOADED_MODELS1避免多个模型同时占显存。用更低量化版本如 Q4_K_M 而非 Q8。实在不行纯 CPU 模式跑小模型速度慢但稳定。8.2 模型拉取失败 / 下载中断现象ollama pull卡在某个百分比不动或提示网络错误。解法检查网络Ollama 模型托管在境外服务器国内直连可能不稳可换网络环境或错峰下载。重试即可Ollama 支持断点续传不会从头再来。如果反复失败可以去 HuggingFace 手动下载对应 GGUF 文件再用FROM ./xxx.gguf的 Modelfile 本地导入。设置代理export HTTPS_PROXYhttp://127.0.0.1:7890Linux/Mac后再 pull。8.3 API 超时 / 响应慢现象调用api/generate很久没返回前端超时。解法大模型首 token 延迟和生成速度本来就慢前端不要把超时设成 5 秒建议 60 秒以上并用流式stream: true改善体验。确认是不是同时加载了多个大模型关掉其他模型释放资源。如果你的机器是纯 CPU生成速度可能只有几 token/秒属于正常可以考虑升级硬件或换小模型。检查num_ctx是否过大上下文越长每次推理越慢按需调小。8.4 其他小坑WSL 下连不上 API确认 Olllama 服务确实在跑WSL 里访问宿主机服务用localhost一般没问题跨系统访问要注意防火墙。中文乱码Windows 终端默认编码问题建议在 PowerShell 里先$OutputEncoding [console]::OutputEncoding [System.Text.UTF8Encoding]::new()。改了 Modelfile 不生效记得重新ollama create构建run 的是构建后的名字不是源文件。九、作者的经验总结折腾本地大模型快两年从最早用一堆脚本手动转模型到现在ollama run一行搞定最大的感受是本地部署的门槛已经低到普通开发者也能玩了。给新手几条真心建议别一上来就追大模型。70B、32B 听着厉害但普通人电脑根本带不动。7B/8B 量化版才是甜点区日常问答、写代码、搭知识库完全够用。等你有显卡了再玩大的。本地模型 云端模型组合用。把本地模型当成「永远在线、不要钱、不泄密」的助手处理敏感数据和简单任务复杂推理再丢给云端大模型。两者不冲突。RAG 比微调更适合个人。普通人没有算力去做全参数微调但用 Ollama 向量库搭个本地知识库一两个下午就能跑通立竿见影。显存/内存是第一约束。买电脑或配机器时能上大内存就上大内存32GB 起步体验会好很多模型量化是救命稻草别抗拒 Q4/Q5。保持好奇心多试模型。Qwen 中文强、DeepSeek 推理和代码好、Phi3 小巧、Llama3 均衡——不同模型脾气不一样多换着用你会有自己的「模型直觉」。Ollama 让「我的数据我做主」这件事真正平民化了。希望这篇指南能帮你少走弯路早日把第一个模型跑起来。祝玩得开心。