Ollama 本地大模型部署指南:从安装到 API 调用实战
发布时间:2026/10/20 15:41:37 锦皓数字建站

最近一直在折腾本地跑大模型前后试过不少工具最后留在身边的还是 Ollama。它的定位非常纯粹把开源大模型装到自己的电脑上用命令行就能完成下载、启动、调用不用折腾显卡驱动之外的一大堆配置。哪怕你完全没接触过大模型部署只要会开终端、会敲几条命令就能在本地把模型跑起来。这篇文章不讲虚的直接把 Ollama 的安装、配置、使用和排障从头捋一遍以 Windows、macOS、Linux 三套环境为例附带我在实际使用中踩过的一些坑。适合完全没装过的新手也适合已经装上但经常被模型下载、内存占用、API 调用等问题困扰的人。看完之后你能自己装一套环境知道怎么看模型是否正常运行也能用 Python 或 HTTP 请求调用本地模型。1. Ollama 是什么为什么我推荐它1.1 它解决的核心问题这两年开源模型的迭代速度很快很多模型权重已经开放下载。但直接使用这些模型有一个门槛推理框架配置繁琐依赖多还要关注 Python 版本、CUDA 版本、显存占用。如果你只是想试试某个模型的效果花在环境搭建上的时间比真正跑模型的时间还长这就很劝退。Ollama 要解决的问题正是这个。它把模型下载、格式转换、推理服务、命令行交互和 API 暴露打包成了一个相对完整的工具。你只需要执行一条命令比如ollama run llama3它就会自动把模型拉到本地然后进入一个可以对话的交互界面。这个过程不需要你手动处理模型文件格式不需要你写调用代码也不需要你操心推理框架怎么配置。从使用体验上来说它像一个“模型管家”。你把模型名字和版本告诉它它负责下载、存放、加载和释放资源。你还可以通过本地 REST API 以标准 JSON 格式请求模型这样就能把本地模型集成到自己的脚本或应用里而不必依赖云厂商。1.2 适合哪些人使用我实际使用下来觉得这几类人最合适想快速体验开源模型效果的人。不用理解复杂的显存和量化概念先跑起来再说。做本地知识库、文档问答、离线工具的人。Ollama 的 API 非常简单适合被外部程序调用。做应用开发但不想把数据传到外部服务的人。模型完全跑在本机数据不出设备隐私上更可控。刚入门大模型想搞懂模型下载、加载、对话这些基本流程的同学。当然它也不是万能的。如果你要做深度微调、自定义采样器、精细控制每一层网络结构那 Ollama 就不合适。它做的是“开箱即用”的标准化体验牺牲了部分灵活性换来了极大便利。1.3 它和常见推理框架的差别你可能听说过一些 Python 生态里的推理方案比如用 transformers 加载模型、用 vLLM 做高并发服务。这些方案性能和可控性很好但配置成本高尤其对新手不友好。对比下来OpenAI SDK 风格接口Ollama 提供了兼容 OpenAI 格式的 API/v1/chat/completions这样你以前给 ChatGPT 写的一些请求逻辑只需要改一下 base_url 就能切换到本地模型。模型文件管理Ollama 使用统一的模型仓库和标签机制比如llama3:latest、qwen2.5:7b升级、回滚、复制模型都很直观。跨平台支持Windows、macOS、Linux 都有对应安装包不像某些框架需要在 Linux 里折腾半天编译。我的建议是如果你想快速把本地大模型跑起来并集成到工具里Ollama 是第一选择如果你对性能压榨和分布式推理有明确需求可以再考虑更底层的方案。两者并不冲突后者门槛高但上限也高。2. 安装前的准备环境评估与硬件建议2.1 操作系统支持情况Ollama 官方支持 macOS、Windows 和 Linux。Windows 上是以桌面应用的方式提供安装包装好后会在后台跑一个服务进程你可以在终端里继续使用ollama命令。macOS 同样提供安装包Intel 芯片和 Apple 芯片都可以用但性能表现有差异。Linux 上用脚本安装最方便官方给了一条 shell 命令本质上是下载二进制文件并配置 systemd 服务。我的建议是优先选择主流平台。如果你在服务器上部署Linux 是最省心的如果你日常用 Windows就用官方安装包不用额外折腾 WSL。不过要注意一点Windows 版 Ollama 在低配置机器上的资源占用比 Linux 略高这是操作系统本身的内存管理和图形界面导致的不是模型变慢了。2.2 硬件指标怎么看本地跑大模型最吃配置的就是显存和内存。模型加载进显存之后才有较快的推理速度如果显存不够Ollama 会把一部分层放到内存里计算速度会显著下降。你可以先看模型的参数量然后对照自己的硬件7B 级别模型量化后大约需要 4GB 到 6GB 显存。如果你的显卡是 8GB 显存基本能流畅跑。13B 级别模型量化后需要 8GB 到 10GB 显存。16GB 显存的显卡比较稳。70B 级别模型量化后可能需要 40GB 以上显存。普通消费级显卡很难本地跑这个级别更多是混用内存测试。内存方面系统内存至少要 16GB32GB 会更从容。因为 Ollama 会把模型文件做内存映射内存不够时很容易触发交换导致系统整体卡顿。提示如果你只有 CPU 没有独立显卡也不是完全不能跑。小尺寸量化模型如 3B、1.5B在 CPU 上仍然可用只是速度慢一些。推理时多开几个线程能稍微缓解。2.3 硬盘空间预留模型文件通常很大。一个 7B 模型量化后大约是 4GB 左右但这是“最小可用”版本。如果你拉取多个模型硬盘占用会迅速上升。我建议安装前至少预留 20GB 空闲空间如果你经常试模型100GB 也不夸张。模型文件默认存放在WindowsC:\Users\你的用户名\.ollama\modelsmacOS~/.ollama/modelsLinux/usr/share/ollama/.ollama/models或~/.ollama/models如果系统盘空间紧张可以通过设置环境变量OLLAMA_MODELS把模型目录改到其他磁盘。这个操作很简单但很多人不知道。2.4 网络环境说明下载模型需要访问外部资源模型文件大小动辄几个 GB网络稳定性很重要。如果你下载中断Ollama 支持断点续传但我不建议在弱网环境下反复拉大模型。可以先用小模型比如 3B 级别确认流程没问题再换大模型。3. 安装实操三个平台的完整步骤3.1 Windows 安装流程Windows 最直接的方式是去官网下载安装包双击运行一路默认安装即可。装完之后打开一个新的终端窗口别用旧窗口环境变量不会自动刷新执行ollama -v如果能看到版本号说明安装成功。这会安装一个桌面应用但实际交互还是靠命令行。任务栏右下角能看到 Ollama 的图标它代表后台服务已经运行。如果你把这个进程退出命令行里的ollama run会尝试重新拉起服务所以一般不用手动管理。注意Windows 上的模型默认下载到 C 盘。如果 C 盘空间不足建议在安装完成后、拉取模型之前设置OLLAMA_MODELS环境变量把它指向 D 盘的某个目录。设置环境变量的方式在系统设置里搜索“环境变量”新建一个用户变量变量名OLLAMA_MODELS变量值填你要存放模型的目标路径。设置完成后需要重开终端才生效。3.2 macOS 安装流程macOS 同样有安装包下载后把应用拖进“应用程序”目录即可。首次打开可能会被 Gatekeeper 拦截右键点图标选择“打开”就能跳过验证。终端里执行ollama -v如果你的 Mac 用的是 Apple 芯片模型运行效率会高一些因为可以直接利用统一内存架构。我不建议通过 Homebrew 之外的方式手动装除非你需要指定特定版本。官方脚本在 macOS 上表现也很稳定和安装包效果一致。3.3 Linux 安装流程Linux 安装最简单的方式是使用官方脚本curl -fsSL https://ollama.com/install.sh | sh这条命令会下载二进制、安装到/usr/local/bin并注册 systemd 服务。装完执行ollama -v如果输出版本信息说明安装成功。在 Linux 上你需要注意服务状态Ollama 安装在 systemd 下默认监听127.0.0.1:11434。你可以用sudo systemctl status ollama查看服务是否正常。如果服务没起来直接执行ollama run也能启动但进程会挂在当前终端上不如 systemd 管理省心。提示Linux 下如果通过 SSH 远程使用可以设置OLLAMA_HOST环境变量让服务监听局域网 IP但要注意访问控制别暴露到公网。3.4 安装后的验证安装完不要急着拉大模型。先执行ollama list看当前有没有模型正常情况是空列表。然后执行一个最经典的验证操作ollama run llama3.2第一次运行会自动下载模型下载完成后进入交互模式。输入“你好”或者“Hello”如果模型有回应说明整套环境已经通了。这里有一个关键细节Ollama 模型名称后面的标签tag可以指定版本比如llama3.2:1b是小尺寸版本llama3.2:3b是相对大一点的版本。显存紧张就先选小版本下载快验证速度也快。4. 使用说明模型管理、对话与参数控制4.1 模型列表查看与管理ollama list可以查看本机已经下载了哪些模型。它的输出不会显示文件路径而是显示模型名、标签、大小和修改时间。比如ollama list如果想要删除一个模型释放空间ollama rm llama3.2删除前建议先看这个模型是不是还在被其他应用占用否则会提示文件被占用无法删除。4.2 拉取模型先了解名字语法Ollama 模型库中的模型名通常遵循“名称:标签”的格式比如qwen2.5:7b、llama3.2:1b。名称代表模型家族标签代表版本或规格。你可以在模型库页面看到不同的标签常见的有latest最近更新的版本可能不太稳定。7b、13b、70b参数规模。q4_K_M量化格式q4 指 4-bit 量化K_M 是某种混合策略。拉取命令ollama pull qwen2.5:7b执行后可以看到下载进度。如果下载速度很慢可能和网络环境有关这时可以尝试设置代理这里不涉及违规话题只谈如果下载失败可以重试或者换时段。Ollama 本身没有断点续传的配置文件但下载中断后重试通常能继续。4.3 运行模型交互式对话模式ollama run 模型名会进入交互式终端类似一个聊天窗口。你可以持续输入多轮对话模型会记住上下文。比如ollama run qwen2.5:7b 你好输入问题时前面会出现提示符。退出交互模式用/bye而不是 CtrlC。在交互模式里还可以使用/开头的命令/set设置会话参数。/save保存当前会话为自定义模型。/load加载某个模型。/info查看模型信息。我最常用的是/set里面的temperature参数。想要更有创造力的回答就把 temperature 调高比如1.0想要稳定严谨的输出就调低比如0.3。默认值一般是 0.8具体取决于模型配置。4.4 一次运行一条指令除了交互式对话Ollama 也支持直接给一条 prompt 并退出ollama run qwen2.5:7b 用一句话解释什么是数据库这种用法适合脚本调用。它不会进入交互模式而是把模型的输出打印到标准输出。如果 prompt 里包含中文建议用双引号括起来避免 shell 解析问题。4.5 模型参数与环境变量设置环境变量是控制 Ollama 运行时行为的重要方式。常用环境变量包括OLLAMA_MODELS模型存放目录。OLLAMA_HOST服务监听地址默认是127.0.0.1:11434改成0.0.0.0:11434可以让局域网内其他设备访问。OLLAMA_KEEP_ALIVE模型在内存中的保留时间默认 5 分钟。如果你高频调用模型可以把这个值调大避免每次重新加载。OLLAMA_NUM_PARALLEL并行处理请求的数量默认 1如果显存充裕可以调大。这些变量在不同系统的设置方式不一样。Windows 在系统环境变量里设置Linux 可以在 systemd 服务文件里加 Environment 行或临时在终端用export OLLAMA_HOST0.0.0.0:11434。5. 常见问题与排查技巧实录5.1 模型下载中断或一直卡住如果你执行ollama run后发现模型一直停在下载状态先别急着反复重启。Ollama 下载时会把临时文件存在模型目录下如果你重复执行拉取它会重新检测已有分片。排查步骤查看当前网络能否正常访问外部资源直接下载其他文件试试。执行ollama pull 模型名重新触发下载看是否有进度变化。查看磁盘空间模型下载需要临时空间空间不足会导致失败。如果还是不行换一个小尺寸模型验证流程比如llama3.2:1b小模型下载快能快速确认是网络问题还是平台问题。5.2 显存不够导致推理极慢这是最常见的问题。模型加载时 Ollama 会优先使用显存显存不足时会将部分层放入内存。你可以观察任务管理器或系统监控工具如果推理时内存占用很高、显卡利用率很低说明发生了层卸载。处理方法换更小的量化模型比如 4-bit 模型。降低上下文长度num_ctx默认通常是 4096调小到 2048 能明显降低显存占用。关闭后台占用显存的其他程序。在交互模式里可以用/set parameter num_ctx 2048调整上下文长度。如果你是通过 API 调用可以在请求参数中覆盖options。5.3 API 调用报错连接失败默认 API 端口是11434。如果你用 Python 或 curl 调用本地 API 却连接失败常见的坑有服务没有启动。端口被防火墙拦截。你设置了OLLAMA_HOST但没重启服务。测试端口是否正常的命令curl http://localhost:11434如果返回Ollama is running服务正常。如果连接不上检查服务进程。另外从其他机器访问时需要让OLLAMA_HOST监听内网地址并且确保防火墙放行。5.4 模型加载内存不足有些模型在下载时看起来很合适但运行时需要的内存比文件大小多很多。因为模型推理需要额外的 KV cache这个缓存大小和上下文长度成正比。如果你总是遇到内存不足先检查系统内存是否被其他应用占用再考虑调小num_ctx或换更小模型。5.5 如何定位 Ollama 进程与日志Windows 在任务管理器找ollama进程。Linux 用journalctl -u ollama -f看日志。日志里会显示模型加载时间、请求数量、错误堆栈。遇到问题先看日志往往能直接定位。注意不要在生产环境把模型目录放在系统盘和用户目录之外的特殊分区Ollama 依赖文件锁和内存映射某些网络盘不支持这些特性会报诡异错误。6. 进阶玩法API 调用与外部工具集成6.1 使用原生 APIOllama 启动后默认监听11434端口。最常用的 API 是POST /api/generate和POST /api/chat。/api/generate适合单次生成请求格式curl http://localhost:11434/api/generate -d { model: qwen2.5:7b, prompt: 写一段关于本地生活的短文, stream: false }/api/chat适合多轮对话请求格式{ model: qwen2.5:7b, messages: [ {role: user, content: 你好} ], stream: false }如果你把stream设为true返回结果会变成流式每行一个 JSON 对象。这种方式适合需要打字机效果的聊天应用。6.2 兼容 OpenAI 风格的接口Ollama 从某个版本开始提供 OpenAI 兼容接口路径是http://localhost:11434/v1/chat/completions。这意味着你写好的 OpenAI SDK 代码只需要把 base_url 改成这个地址就能直接切换成本地模型。以 Python 为例from openai import OpenAI client OpenAI( base_urlhttp://localhost:11434/v1, api_keyollama ) response client.chat.completions.create( modelqwen2.5:7b, messages[ {role: user, content: 介绍一下苏州这座城市} ] ) print(response.choices[0].message.content)这里api_key随便填本地服务并不校验。这种兼容性对迁移已有应用非常友好。6.3 使用 Python 原生请求如果你没有安装 openai 库直接用内置请求库也可以import requests import json url http://localhost:11434/api/chat payload { model: qwen2.5:7b, messages: [ {role: user, content: 写一个 Python 快速排序} ], stream: False } res requests.post(url, jsonpayload) data res.json() print(data[message][content])这种方式依赖少适合快速验证。6.4 结合网页端 UI命令行交互虽然直接但很多人还是喜欢网页聊天界面。社区常见的方案是接入某些开源 Web UI 项目只需要在容器里把 backend 指向http://localhost:11434就能在浏览器里和模型对话还能管理多模型、切换参数。我自己用过的大概思路是用 Docker 起一个前端服务配置里填 Ollama 的地址和默认模型。前端服务一般不存储模型只是调用 Ollama 的 API所以 Ollama 服务必须保持运行。如果你机器配置一般建议前端服务和模型服务分开跑避免界面卡顿影响推理。6.5 多模型切换与自定义模型Ollama 支持通过 Modelfile 自定义模型。你可以基于现有模型调整系统提示词、温度参数甚至模板然后保存成一个新模型。比如创建一个文件MyModel.modelfileFROM qwen2.5:7b SYSTEM 你是某个财务助手回答要简洁、专业所有金额必须使用人民币符号。 PARAMETER temperature 0.3然后在同目录执行ollama create mymodel -f MyModel.modelfile之后你就可以直接用mymodel这个名字运行。这样既保留了基础模型能力又针对特定场景做了约束不需要你在每次请求时重复传入 system prompt。7. 性能调优与资源控制心得7.1 推理速度优化如果你发现模型的响应速度不满意优先检查这几项模型尺寸是否超过显卡显存。是否有多余进程占用显存。是否开了过大的上下文窗口。Ollama 的OLLAMA_NUM_PARALLEL是否设置过高导致显存被多个并发请求占满。实测下来在显存足够的显卡上7B 模型推理速度可以达到每秒几十个 token作为对话工具完全够用。但如果混用内存速度可能下降到每秒几个 token体验差距很大。7.2 内存占用优化Ollama 会在模型被使用后保持加载一段时间默认是 5 分钟。如果你想立即释放内存可以执行ollama stop 模型名如果整个服务都不用了可以直接退出 Ollama 进程。在 Windows 上关闭托盘图标在 Linux 上停止 systemd 服务。如果你想省内存可以把OLLAMA_KEEP_ALIVE调成较小的值比如1m1分钟甚至0但这会导致每次请求都要重新加载模型反而更慢。需要找到平衡点高频率使用就长驻低频使用就短驻。7.3 显存不足时的量化方案选择模型库运行时是支持量化版本的。如果你显卡只有 6GB 显存就不要买 7B 的完整精度版本应该选择 q4 量化。同为 7B 模型q4 量化后文件更小推理速度更快占用显存更少只是输出质量略有下降。如何知道当前模型是哪个量化版本看标签名。比如名字里带q4就是 4-bit 量化带q8就是 8-bit。如果你拿不准优先选q4_K_M它在质量和占用之间平衡较好。7.4 多开与并发Ollama 默认单请求处理。如果你有一个应用需要同时处理多个用户的请求可以通过OLLAMA_NUM_PARALLEL调整并行数。并行数提高会增加显存占用因为每个并行的请求都会维护独立的上下文缓存。如果你没有独立显卡或显存特别小建议保持默认不要盲目调高并行数。串行处理的体验可能只是慢并行处理则可能直接导致显存溢出崩溃。7.5 如何测试模型响应速度你可以用/api/generate接口设置stream:false然后用计时工具看从发送请求到收到全部响应的时间。但总时间受生成长度影响很大更好的指标是首 token 延迟和每秒 token 数。开启stream:true后可以统计第一批 token 到达的时间来判断模型加载状态。我自己的测试习惯是先用小模型跑通流程再切到目标模型跑长文本任务用脚本统计耗时和显存峰值。这样能快速判断当前配置是否合理。8. 安全与隐私注意事项8.1 服务端口的暴露风险Ollama 默认只监听本机地址这是安全设计。如果你为了局域网访问而把监听地址改为0.0.0.0那么同一网络内的其他设备都能调用你的模型资源。这本来的问题不大但如果你处于公共 Wi-Fi 环境风险就上来了。不要把服务随便暴露到公网。一旦暴露别人不仅能使用你的模型还可能通过某些功能消耗你的硬件资源。更好的方式是用内网穿透或反代加认证层但这是一套复杂方案取决于你对安全性的需求。8.2 模型数据隐私模型在本地运行时对话数据不会上传到外部服务器这是本地部署的核心优势。但有些日志记录、模型文件下载过程仍然可能产生缓存。如果你处理的是敏感信息注意定期清理模型的历史会话记录或者避免开启自动保存。Ollama 本身没有网页端历史记录交互模式的对话默认不落盘到显眼位置。但通过 API 接入的第三方应用是否保存日志取决于该应用自身的实现这一点需要你自己评估。8.3 多用户隔离如果你在一个多人开发的机器上跑 Ollama建议为每个使用场景单独创建自定义模型。不同用户通过 API 调用时在 prompt 中带入不同的 system 指令来控制行为不要直接共享同一个模型实例。这样既能防止上下文互相污染也方便排查问题。9. 扩展思路Ollama 在真实场景里的用法9.1 离线环境下的本地模型在很多内网环境或离线环境中外部的模型 API 是访问不到的。你可以提前在有网络的机器上下载好模型再拷贝到目标机器上。Ollama 的模型文件是独立的目录结构你可以把.ollama/models整个目录拷贝到另一台相同操作系统版本的机器上然后执行ollama list检查。如果模型文件目录结构一致基本可以直接识别不需要重新下载。这个操作比重新拉取大模型高效得多。9.2 结合知识库做文档问答很多人想用 Ollama 做本地文档问答比如给一个 PDF 或一堆文本文件让模型根据内容回答。Ollama 本身不做文档切分和向量检索但它提供了良好的生成能力。你需要做的是用其他工具把文档切分成小块。对每一块做向量化存入本地向量数据库。用户提问时先检索相关片段再把片段拼进 prompt交给 Ollama 生成答案。这套流程里 Ollama 只负责最后一步的文本生成。它能不能做好这一步取决于模型的指令理解能力和你是不是把上下文完整传给了模型。经验是把检索到的片段按相关性排序并在 prompt 中明确告诉模型“以下内容来自参考资料请基于这些内容回答”能明显减少幻觉。9.3 批处理文本任务用脚本调用 Ollama 批量处理文本比如摘要、标题生成、翻译。直接用一个 for 循环调用 API 即可但要注意控制并发防止模型内存占用过高。我会建议把批量任务拆分成小批次每批处理完歇几秒。如果中途失败记录失败项不要全部重跑。整体速度虽然不算快但胜在稳定、离线。9.4 Ollama 与 DockerOllama 官方也提供了容器镜像你可以把 Ollama 跑在容器里。这种方式对于服务器部署特别方便只是需要额外注意 NVIDIA Container Toolkit 的配置否则容器内可能访问不到显卡。如果你计划长期使用 GPU 推理我更推荐直接在宿主机装 Ollama这样调试简单日志也更直观。容器方式适合标准化交付环境但对普通用户来说有点过度设计。10. 从一个项目视角看 Ollama 的部署流程我最近帮某团队做一个内部演示系统需求很简单在内网服务器上部署一个本地问答模型供多人同时访问。整体流程是这样的。10.1 确认硬件环境那台服务器有 64GB 内存、一块 24GB 显存的显卡。我们选择了一个 13B 参数规模的量化模型大约占用 10GB GPU 显存留出部分显存给上下文缓存。系统内存预留 16GB 以上因为还要跑其他中间服务。10.2 安装与配置在宿主机上用 Linux 脚本安装 Ollama然后把OLLAMA_MODELS指向一个大容量磁盘避免把所有模型塞在系统盘。接着把OLLAMA_HOST设置为内网地址让局域网内其他电脑可以直连。为了安全我们在前端加了一层访问口令后端服务保持内网。这样模型本身没有被暴露到外网同时局域网用户可以方便使用。10.3 接入前端问答界面前端是一个简单的网页调用/api/chat接口。用户输入问题后端把问题和固定的系统提示词一起发给 Ollama。响应采用流式输出用户在网页上能看到逐字生成的效果。10.4 效果与问题跑了一段时间后我们发现一个问题当多个用户同时提问时显存占用上升明显个别请求延迟偏高。后来我们把并行数调成 1用任务队列排队处理体验反而更稳定。虽然极端情况下的并发能力下降了但每个请求都能获得完整的显存资源整体成功率更高。有一次模型突然失去响应查看日志发现是磁盘空间不足临时文件无法写入。清理旧模型后恢复正常。从那以后我习惯每周看一次磁盘和显存使用情况。最后分享几条实用建议如果让我给刚上手的人留几句话我会说先用小模型跑通流程再逐步加大模型规模。配置环境时优先确认三件事——显存够不够、硬盘够不够、系统是不是 64 位。用 Ollama 跑模型不是目的把模型用在自己的应用里才是价值所在。我踩过的坑里印象最深的一次是贪心拉了一个大模型结果发现磁盘剩余空间不足下载过程反复失败。后来我每次都会先执行df -h或检查磁盘剩余空间再决定模型大小。另一个坑是调整了OLLAMA_HOST之后忘了重启服务结果从其他电脑访问时一直失败排查了半天才反应过来。Ollama 还在快速迭代社区也有不少配套工具。你在网上搜索某个模型时如果发现别人用的版本和你不对应很可能是模型库更新了。遇到未知版本号就直接去模型库页面确认别在论坛里猜。先安装、再拉一个小模型、跑通一次对话这套流程走完你已经比很多人走得远了。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。