把大模型跑在自己电脑上,在 2026 年已经不是发烧友才玩的事了。Ollama 把这件事简化到了"装好、一行命令、开始对话"的程度。这篇是一份完整的上手指南:从为什么要本地跑、Ollama 到底是什么,到安装、运行第一个模型、命令速查、用 Modelfile 定制专属模型、通过 API 接入自己的程序、按硬件选模型、性能调优,一篇讲清。看完你会发现,"本地 AI"已经是个相当成熟、相当好用的选项。
为什么要在本地跑模型
用在线的 ChatGPT、DeepSeek 网页版不香吗?多数时候香。但本地跑有几个无可替代的好处:
- 隐私:数据完全不出本机。处理公司代码、客户资料、敏感文档时,这一条往往是硬需求 —— 你不可能把内部代码贴到一个在线服务里。
- 免费且不限量:没有 token 计费,没有调用次数限制,没有"本月额度用完了"。你想怎么用就怎么用,跑一晚上批处理也不心疼。
- 离线可用:没网也能用。对于在国内、服务器访问不了外网 API 的场景,本地模型有时是唯一选择。
- 可深度集成:它提供本地 HTTP API,你可以把它接进自己的脚本、编辑器插件、自动化流程,做成完全自主可控的 AI 能力。
- 稳定、不受外部影响:不会因为某个在线服务宕机、限流、改政策而中断。
代价是:本地模型的能力上限受你的硬件限制,和最顶级的云端模型还有差距。但对很多日常任务 —— 总结、翻译、写脚本、改文案、问答、代码补全 —— 本地的中等模型已经完全够用了。合理的心态是"分场景":日常、隐私敏感、批量的活交给本地,需要最强推理能力的难题再上云端。
Ollama 到底是什么
Ollama 是一个本地大模型的"运行时 + 包管理器"。你可以把它类比成"大模型界的 Docker":在 Docker 之前,跑一个服务要自己装一堆依赖、配一堆环境;Docker 出现后,docker run 一下就行。Ollama 对大模型做的是同一件事 —— 在它之前,本地跑模型要折腾 Python 环境、CUDA、模型权重格式、量化…… 一堆门槛;有了 Ollama,ollama run 模型名 一行命令,它帮你把下载、量化、加载、显存管理、推理服务全部封装好了。
它支持的模型很全:DeepSeek、Llama、Qwen(通义千问)、Gemma、Mistral、Phi 等几乎所有主流开源模型,而且支持文本模型、代码模型、多模态(能看图)模型。模型托管在 Ollama 的官方仓库里,ollama run 时自动从仓库拉取。
安装
# macOS / Linux:一行装好 curl -fsSL https://ollama.com/install.sh | sh # Windows:到 ollama.com 下载安装包,双击安装 # 装完后 Ollama 作为后台服务运行,默认监听 127.0.0.1:11434
三个平台的安装都很简单。装完之后,Ollama 会作为一个后台服务常驻运行,默认监听 127.0.0.1:11434 这个端口 —— 记住这个地址和端口,后面用 API 调用就是冲着它去的。你可以打开浏览器访问 http://localhost:11434,看到 "Ollama is running" 就说明服务正常。
运行你的第一个模型
不需要"先下载、再运行"两步,ollama run 会自动处理:本地没有就先下载,下完直接进入对话界面。
ollama run deepseek-r1 # 本地没有就自动下载,下完直接进入对话 ollama run qwen2.5 # 换个模型同理 ollama run llama3.2:3b # 冒号后面指定具体参数规模 / 版本(tag) # 进入对话后:输入问题回车;输入 /bye 退出;/? 看更多指令
第一次运行某个模型,会下载它的权重文件 —— 大小从几百 MB 到几十 GB 不等,取决于模型规模,下载需要点耐心;之后再运行就是秒进了。进入对话后,就是命令行版的聊天界面,输入问题回车即可,/bye 退出。
注意模型名后面的 tag(冒号后面的部分,比如 llama3.2:3b):它指定了具体的参数规模或版本。同一个模型往往有多个规模可选(1.5b / 7b / 14b / 32b…),数字越大越聪明、但越吃硬件。不写 tag 时 Ollama 会拉一个默认规模。
常用命令速查
ollama list # 看本地装了哪些模型、各占多大磁盘 ollama pull qwen2.5 # 只下载,不进入对话 ollama rm llama3.2 # 删除一个模型,释放磁盘空间 ollama ps # 看当前正在内存里跑的模型 ollama show deepseek-r1 # 看某个模型的参数量、量化方式、上下文长度等信息 ollama cp deepseek-r1 my-r1 # 复制一个模型(常用于做自定义副本)
这几个命令覆盖了日常管理:看装了什么、下新的、删旧的、看在跑什么、看模型详情。模型文件挺占空间(动辄几个 GB),建议定期 ollama list 看一眼,把用不上的 ollama rm 掉。ollama ps 很实用 —— 它能告诉你哪个模型正占着内存/显存,以及它会在空闲一段时间后被自动卸载(释放资源)。
进阶:用 Modelfile 定制专属模型
Ollama 真正"好玩"的地方,是 Modelfile —— 它让你能基于一个现成模型,定制出一个"自带人设、自带参数"的专属版本。语法很像 Dockerfile:
# Modelfile —— 给模型预设「人设 / 参数」,存成一个叫 Modelfile 的文件: FROM deepseek-r1 # 调参数 PARAMETER temperature 0.3 PARAMETER num_ctx 8192 # 预设系统提示词 SYSTEM """ 你是一个严谨的代码审查助手,只用中文回答,回答要简洁、直接指出问题。 """ # 然后: # ollama create my-reviewer -f Modelfile # ollama run my-reviewer # 你就有了一个「开箱即用、自带人设」的专用模型
通过 Modelfile,你能做几件很实用的事:用 SYSTEM 给模型预设一个固定的系统提示词(比如"你是代码审查助手,只说中文,回答要简洁"),这样以后 ollama run 它就直接是这个人设,不用每次重复交代;用 PARAMETER 调温度(temperature,越低越稳越死板,越高越发散)、调上下文长度(num_ctx)等。把常用的几个"角色"各做成一个自定义模型 —— 代码审查用一个、翻译用一个、写作用一个 —— 用起来非常顺手。这是 Ollama 从"能用"到"好用"的关键一步。
通过 API 接入自己的程序
Ollama 最强的地方是它的本地 HTTP API —— 这意味着你能把本地模型接进任何程序。它提供两套接口。
第一套是它自己的原生接口:
# 原生生成接口
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1",
"prompt": "用一句话解释什么是事件循环",
"stream": false
}'
第二套是兼容 OpenAI 格式的接口,这才是重点:
# OpenAI 兼容接口 —— 路径和 OpenAI 官方完全一样
curl http://localhost:11434/v1/chat/completions
-H "Content-Type: application/json"
-d '{
"model": "deepseek-r1",
"messages": [{"role": "user", "content": "你好"}]
}'
# 意义:任何支持自定义 OpenAI 接口地址的工具,
# 把 base URL 指向 http://localhost:11434/v1 就能换成本地模型,代码一行不改
注意第二个接口的路径是 /v1/chat/completions —— 它和 OpenAI 官方 API 的格式完全一样。这个设计的意义巨大:市面上几乎所有支持"自定义 OpenAI 接口地址"的工具 —— 各种编辑器的 AI 插件、聊天客户端、自动化框架、甚至很多 AI 应用 —— 你只要把它们的 base URL 从 OpenAI 官方地址改成 http://localhost:11434/v1,就能无缝换成本地模型,代码一行不用改。这相当于给所有这些工具,免费、私密地"接上了一个本地大脑"。
选模型:你的硬件能跑多大
模型能不能跑得动、跑得快,主要看显存(有独立显卡的话),没有独显就看内存。一个粗略的参照表:
| 显存 / 内存 | 能舒服跑的模型规模 | 体验 |
|---|---|---|
| 8GB 以下 | 1.5B ~ 3B 的小模型 | 能跑,适合简单总结、翻译、轻量问答 |
| 8GB ~ 16GB | 7B ~ 8B(主流甜点区) | 日常任务流畅,性价比最高,推荐起步区间 |
| 16GB ~ 24GB | 14B 左右 | 明显更聪明,能处理较复杂的任务 |
| 24GB 以上 | 32B 及更大 | 接近"主力可用"的水平 |
建议:大多数人从 7B / 8B 量级起步(DeepSeek、Qwen、Llama 的 7~8B 版本),这是能力和硬件门槛平衡得最好的区间。
关于"量化":为什么模型能塞进你的电脑
你可能会好奇:一个 7B 参数的模型,理论上要十几 GB,怎么 8GB 显存就能跑?答案是量化(quantization)。
简单说:模型的参数原本是用高精度的数字(比如 16 位浮点)存的,量化就是把它们压缩成低精度(比如 4 位整数)来存和算。这能把模型体积和显存占用大幅降低(常见能压到原来的 1/3 到 1/4),代价是轻微的精度损失 —— 但对绝大多数日常任务,这点损失你几乎感觉不到。
Ollama 默认拉取的就是已经量化好的版本(ollama show 能看到具体量化方式,常见的是 Q4 系列)。所以你不用自己折腾量化,开箱就是"已经为你的硬件优化过"的版本。知道这个概念,主要是帮你理解"为什么参数量和实际体积对不上",以及在有些场景下可以手动选更高/更低的量化等级来权衡"质量 vs 资源"。
性能调优:让它跑得更顺
如果觉得跑得慢、卡,可以从这几个方向调:
- 换小一档的模型。最直接有效。如果 14B 卡,就退到 7B —— 体验上的"聪明程度"差一点,但流畅度天差地别。模型大小和硬件不匹配,是"卡"的头号原因。
- 确认用上了 GPU。纯 CPU 推理会慢很多。Ollama 通常会自动检测并使用 GPU,
ollama ps能看到模型是跑在 GPU 还是 CPU 上。如果有显卡却没用上,检查一下显卡驱动。 - 控制上下文长度(
num_ctx)。上下文越长越吃显存。如果你不需要超长上下文,把它调小能省资源、提速度。 - 关掉不用的模型。同时加载多个模型会抢资源。
ollama ps看一眼,不用的让它卸载。
常见问题
模型文件存在哪、怎么换到别的盘?默认在用户目录下。可以通过设置 OLLAMA_MODELS 环境变量,把模型目录改到一个空间更大的盘 —— 模型很占空间,提前规划好存储位置能省不少事。
想让局域网内其他设备也能调用本机的 Ollama?设置环境变量 OLLAMA_HOST=0.0.0.0,让它监听所有网卡而不只是本地。但要注意:这等于把服务暴露到了网络上,只在你信任的局域网里这么做,别暴露到公网。
本地模型和云端模型到底差多少?诚实说:复杂推理、超长上下文、最新知识,云端的顶级模型还是明显更强。但本地模型胜在隐私、免费、可控、稳定。不要用本地模型去和云端旗舰比"谁更聪明",而要看"我这个具体任务,本地的够不够用" —— 很多时候答案是够用。
它能联网搜索吗?模型本身不能 —— 它只有训练时的知识。但你可以自己搭一套"检索 + 模型"的流程(RAG),让它能基于你提供的最新资料回答。Ollama 负责"模型推理"这一环,"喂资料"是你在外面做的事。
占用内存一直降不下来?Ollama 会把刚用过的模型在内存里"保温"一会儿(默认几分钟),方便你下次秒进。过了空闲时间它会自动卸载。如果想立刻释放,可以重启 Ollama 服务,或者用相关命令手动卸载。
Ollama 能跑哪些类型的模型
很多人以为 Ollama 只能跑"聊天模型",其实它支持的模型种类相当全,搞清楚有哪些类型,你才知道它能帮你做多少事。
通用对话模型:这是最常用的一类,DeepSeek、Qwen、Llama、Gemma、Mistral 的各个规模版本都属于这类。它们什么都能聊一点 —— 问答、总结、翻译、改写、简单推理。日常用得最多的就是它。
代码专用模型:有一类模型是专门在代码语料上强化训练的,比如各种 "coder" 版本。它们在补全代码、解释代码、写单元测试、修 bug 这些任务上,往往比同规模的通用模型表现更好。如果你主要用本地模型来辅助写代码,优先挑这类。
多模态模型(能看图):Ollama 也支持一些能"看懂图片"的模型,你可以把一张图连同问题一起发给它,让它描述图片、提取图里的文字、分析截图内容。做"图片转文字""截图问答"这类小工具时很有用。
嵌入模型(embedding):这类模型不"聊天",它的作用是把一段文本转换成一串向量(数字)。它是做"语义搜索""RAG 知识库"的基础组件 —— 你想做一个"能基于自己的文档回答问题"的本地助手,就需要用嵌入模型先把文档向量化。Ollama 也能跑这类模型,通过 /api/embeddings 接口调用。
所以 Ollama 不只是一个"本地聊天工具",它是一个能支撑起完整本地 AI 应用(对话 + 代码 + 视觉 + 检索)的底座。知道了这些类型,你规划自己的本地 AI 方案时,思路会开阔很多。
实战:把 Ollama 接进你的开发流
Ollama 真正发挥价值,是在你把它"接进"日常工具之后。下面是几条最实用的接入路径。
接进编辑器:VS Code、JetBrains 系列、Neovim 都有支持自定义 OpenAI 接口的 AI 插件。把插件的接口地址填成 http://localhost:11434/v1、模型名填成你本地装的模型,你就有了一个完全本地、免费、私密的代码助手 —— 补全、解释、重构都能用,而且公司代码一个字节都不会传出去。这对处理内部项目的人来说,价值极大。
接进命令行脚本:写一个简单的 shell 或 Python 脚本,调用 Ollama 的本地接口,你就能做出各种"AI 小工具"—— 比如一个 commit-msg 脚本,把 git diff 喂给本地模型,让它生成提交信息;一个批量脚本,把一堆文件挨个让模型总结。因为是本地的、免费的,这种"批量、重复"的活用起来完全没负担。
接进自动化流程:任何支持 HTTP 请求的自动化工具(各种 workflow 编排工具),都能把 Ollama 作为一个"AI 节点"接进去。整理数据、分类内容、生成文案 —— 让本地模型在流程里干这些活,不花钱、不限量、不泄密。
搭一个本地知识库(RAG):配合前面说的嵌入模型,你可以把自己的笔记、文档、项目资料向量化存起来,然后让对话模型基于这些资料回答问题。整套东西全在本地跑,等于有了一个"只懂你自己资料、且绝对私密"的助手。
核心思路就一句话:因为 Ollama 提供了标准的本地 API,它能像一块"乐高积木"一样,被嵌进你现有的任何工具链里。不要把它当成一个孤立的聊天框,要把它当成一个"随叫随到、免费、私密的 AI 能力提供方"。
Ollama 和其他本地方案的区别
本地跑大模型,Ollama 不是唯一的选择,了解一下它和其他方案的定位差异,有助于你判断它是不是适合你。
llama.cpp:Ollama 的底层其实就用到了 llama.cpp 这套推理引擎。llama.cpp 更底层、更灵活,但也更需要折腾 —— 要自己处理模型格式、编译、参数。Ollama 相当于在它外面包了一层"傻瓜化"的封装。如果你想要极致的控制和性能调优,可以直接用 llama.cpp;如果你想要"开箱即用",用 Ollama。
LM Studio:它是一个带图形界面的本地模型工具,对完全不想碰命令行的人更友好,点点鼠标就能下载、运行、对话。和 Ollama 的差异主要是"图形界面 vs 命令行 + API"的取向不同。Ollama 因为提供了标准 API,更适合"接进其他程序";LM Studio 更适合"直接当聊天软件用"。其实两者也能配合。
vLLM:这是面向"生产级、高并发服务"的推理框架,主要用在服务器上、要同时服务很多用户的场景。它的性能和吞吐很强,但部署和资源要求也高,不是给个人本地用的。
一句话总结定位:个人本地、想开箱即用又想能接进工具链 —— Ollama 是最均衡的选择;想要极致控制选 llama.cpp,想要纯图形界面选 LM Studio,做生产高并发服务选 vLLM。对这篇文章的大多数读者来说,Ollama 就是那个"最对的"选项。
本地模型的能力边界:别用错地方
最后必须泼一点冷水 —— 不是劝退,而是帮你建立正确预期,避免"用错地方然后觉得本地模型不行"。
别拿本地模型去硬刚最难的推理题。复杂的数学推理、需要多步严密逻辑的难题、超长文档的深度分析 —— 这些是云端旗舰模型的强项,本地的中等规模模型确实会吃力。遇到这类任务,老老实实上云端,别为了"本地"而硬扛。
本地模型的知识有截止时间,而且不会联网。它只知道训练时的东西,问它"最新版本""昨天的新闻"它答不上来,甚至会一本正经地编。需要最新信息时,要么上云端(有的云端模型能联网),要么自己给它喂资料(RAG)。
规模小的模型,"幻觉"会更明显。越小的模型,越容易在它不确定的地方"自信地胡说"。所以用本地小模型时,对它输出的事实性内容(尤其是具体的 API、数字、命令)要多一份警惕,该验证就验证。
但反过来 —— 本地模型真正擅长的那些活,它做得相当好:总结一段文字、翻译、把口语整理成书面语、改写润色、写一个不复杂的脚本、做格式转换、给一批内容打标签分类。这些"量大、重复、不需要顶级推理"的任务,本地模型又快又免费又私密,体验非常好。
所以正确的心态是:把任务分级。日常的、批量的、隐私敏感的,交给本地;真正的硬骨头,留给云端。用对地方,本地模型是个极其趁手的工具;用错地方,你只会失望。
写在最后
Ollama 把"本地跑大模型"的门槛降到了几乎为零。它的价值,不只是"省了 API 钱",更是给了你一个完全自主、私密、不限量的 AI 能力底座 —— 接进编辑器、接进脚本、接进自动化流程,都行。
如果你还没试过,现在花十分钟:装好 Ollama、ollama run 一个 7B 模型、和它聊两句,再用那个 OpenAI 兼容接口,把你常用的某个工具的 base URL 一改 —— 你会立刻体会到,"本地 AI"不是噱头,而是 2026 年一个相当成熟、值得纳入日常工具链的选项。
—— 别看了 · 2026