news 2026/10/4 5:44:39

本地部署大模型实战:Ollama、llama.cpp、vLLM 怎么选(附完整命令)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
本地部署大模型实战:Ollama、llama.cpp、vLLM 怎么选(附完整命令)

本地部署大模型实战:Ollama、llama.cpp、vLLM 怎么选(附完整命令)

LLM 系列又一篇。之前讲过模型科普(开源阵营能自己部署)和 Jev(闭源托管 API)——这篇补上另一半:怎么把开源模型跑在自己机器上。最近阅读榜上「本地推理」「AI Agent 托管家里电脑」这类主题一直在涨,这篇把完整路线走一遍。

一、什么时候本地部署

先说本地部署不是免费的:你的显存就是你的模型上限。它换来的三样东西是 API 给不了的:

  1. 数据不出门:私有文档、客户数据、内部代码,不经过任何第三方
  2. 离线可用:断网也能跑,边缘设备和内网环境的唯一选项
  3. 边际成本为零:跑多少次都不按 token 计费(成本篇的账,本地版直接归零)

判断口诀:数据敏感或高频调用,本地;要最强效果,API。两者可以混着来——成本篇讲的分级路由,本地小模型正好当那个「便宜的分诊层」。

二、三条路线怎么选

工具定位适合
Ollama一行命令跑模型大多数人的默认选择,最省心
llama.cpp纯 C++ 推理,资源占用最小低配机器、CPU 推理、端侧设备
vLLM生产级推理服务,高吞吐并发场景、服务器部署、团队共享

一句话:个人玩选 Ollama,旧电脑选 llama.cpp,真要服务多人选 vLLM。本文用 Ollama 走全流程,另外两个思路完全一样(拉模型 → 起服务 → 调 API)。

三、先看硬件:显存决定你能跑多大

选模型前先看显存,粗略对照(量化后):

模型规模Q4 量化显存体验
7B~5GB轻量任务:分类、摘要、简单代码
14B~9GB日常够用:写作、中等代码
32B~20GB接近小旗舰
70B~45GB需要多卡或高端卡

经验法则:显存比模型参数量的量化文件大 1~2GB(留给上下文)。显卡不够怎么办:上更狠的量化(Q3/Q2,质量有损)、或直接用小一档的模型——跑得动的 14B 好过硬撑的 70B。

量化(GGUF 格式的 Q4/Q8)一句话理解:把权重的精度压低(16 位浮点压到 4 位整数),文件小 4 倍、速度快 2~3 倍,质量掉一点点——本地部署 90% 的场景 Q4 就够。

四、Ollama 全流程

1. 安装

# Windows / macOS:官网下载安装包 # Linux:一行命令 curl -fsSL https://ollama.com/install.sh | sh # 验证 ollama --version

2. 拉模型、跑起来

# 拉一个 14B 的开源模型(自动选 Q4 量化) ollama pull qwen3:14b # 直接聊天 ollama run qwen3:14b "用一句话解释 KV Cache" # 看本地已有哪些模型 ollama list

3. OpenAI 兼容 API:现有代码零改动

Ollama 起着的时候自带OpenAI 兼容端点(http://localhost:11434/v1)——系列前面所有代码换个 base_url 就能用:

from openai import OpenAI client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama") # key 随便填 resp = client.chat.completions.create( model="qwen3:14b", messages=[{"role": "user", "content": "用一句话解释 RAG"}], ) print(resp.choices[0].message.content)

这一步的意义比看起来大:成本篇的分级路由、评测篇的 runner、第一篇的 60 行 Agent——全部原样指到本地模型上,零改动。

4. 验证闭环

装完先验证再继续(老规矩):

# API 层验证:curl 打一发,看返回结构 curl -s http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"qwen3:14b","messages":[{"role":"user","content":"说 OK"}]}' # 质量层验证:问一个你领域内的具体问题,人肉判断它行不行

页面能打开、curl 有返回、回答像人话,三关都过才算部署完成——只验证第一关不算。

五、远程访问:分清链路,加好授权

本地跑通后想在外面用(手机、公司电脑连家里的机器),链路是两层,别混为一谈:

外部设备 → 内网穿透隧道 → 家里机器的 11434 端口 → Ollama
  1. 先本地后远程:本地 curl 验证通了再配隧道,出问题才能分清是服务还是网络
  2. 内网穿透:frp / cpolar 这类工具把 11434 映射出去,公网地址约 24 小时变一次,长期用要预留固定域名
  3. 必须加授权:Ollama 的 API没有登录机制,裸露到公网等于把算力白送——隧道层开 basic auth(用户名密码),或者只绑固定 IP 白名单

这一步的提醒和参考原文里声音克隆那篇一致:服务背后的算力和数据都是你的,公网入口不设防就是裸奔。

六、踩坑提醒

  1. 模型文件别放含中文/空格的路径:启动报错先查路径,Ollama 默认目录无所谓,手动指定模型路径时尤其注意
  2. 首次拉模型要等:几 GB 的文件,网络慢就先拉小模型(7B)跑通全流程再换大的
  3. 上下文长度吃显存:模型能跑 ≠ 长上下文能跑,32k 上下文的显存开销比 4k 大得多——按实际需要设num_ctx
  4. 别拿本地模型直接上生产:先过一遍评测篇的评测集,本地部署的模型也是要评测的,跑得动和答得好是两回事

总结

步骤一句话
选型个人 Ollama,低配 llama.cpp,并发 vLLM
显存7B 约 5GB、14B 约 9GB,跑得动的 14B 优于硬撑的 70B
量化Q4 是默认答案:文件小 4 倍,质量掉一点
APIOllama 自带 OpenAI 兼容端点,系列代码零改动接上
远程先本地后隧道,公网入口必加授权

到这里模型这条线闭环了:怎么来的(模型科普)→ 怎么调(微调篇)→ 怎么选(Jev 篇的闭源 vs 开源)→ 怎么自己跑(本篇)。数据敏感的场景,从此不再依赖任何第三方 API。觉得有用点个关注。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 5:42:25

GitLab + Drone CI 持续集成实践:从Web项目到自动化部署

做DevOps这些年,我越来越认同一句话:持续集成不是炫技,是给团队省心。以前我待过的团队,发布一个Web项目靠的是“人肉部署”:本地build一下,scp到服务器,再手动reload,运气好一次成功…

作者头像 李华
网站建设 2026/10/4 5:41:03

动态张量计算:用字节码虚拟机与实时编译打破静态图困局

过去半年我一直在折腾一个听起来有点偏门的方向:给动态张量计算做一个带字节码虚拟机的运行时,再在这个虚拟机之上叠加实时编译能力。起因非常朴素——业务里一堆长尾模型输入形状跨度极大,从几十个token到上千个token都有,用PyTo…

作者头像 李华
网站建设 2026/10/4 5:40:59

Roo Code本地模型性能优化指南:从硬件到配置全解析

1. 卡顿从哪来:先搞清楚 Roo Code 与本地模型之间的性能链路很多朋友第一次在 Roo Code 里接上本地模型,第一反应都是“这玩意儿也太慢了”,甚至怀疑是不是自己把配置搞错了。其实 Roo Code 本身不慢,本地模型推理也不算离谱&…

作者头像 李华
网站建设 2026/10/4 5:40:32

Codex CLI实战:从代码补全到软件工程智能体接入DeepSeek

我最早接触Codex是在2021年,那时候它还是个藏在论文和API里的代码模型,最出圈的成绩是在HumanEval上刷出了高分,不少开发者拿它当“自动补全加强版”用。这几年再看,大家讨论的Codex已经完全是另一个物种了——它叫Codex CLI&…

作者头像 李华
网站建设 2026/10/4 5:39:06

AI编程工具技能碎片化解法:Skills Manager跨平台桌面中枢实战复盘

过去大半年,我把大量时间花在给 AI 编程工具调教 Agent 行为上。数了数身边同事和团队实际在用的工具,Cursor、Trae、Windsurf、Copilot、Codex、Continue 这些主流 AI 编程工具,再加上各种插件和 CLI 的配置入口,一共牵扯到 54 个…

作者头像 李华
网站建设 2026/10/4 5:37:25

MRAM+AVR工业存储系统:零延迟非易失写入实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华