很多人卡在同一类地方:模型下下来了却跑不动、显存报错不知道怎么降、Codex 接本地模型改了配置还是不通、不确定该本地跑还是直接调接口。这篇不堆概念,按「先判断要不要本地、再验环境、再接工具、最后定长期方案」的顺序,把每一步的判断标准和常见报错应对讲清楚,照着走能自己定位问题。
不少人第一次碰本地部署大模型,卡的地方其实都差不多:模型文件下下来了却跑不动,显存一报错就不知道怎么降,Codex 这类编程代理明明改了配置还是连不上本地服务,折腾一晚上也说不清到底是哪一层出了问题。更常见的是另一种情况——根本还没想清楚该不该本地跑,就先开始找卡、找教程了。
这篇按「先判断要不要本地、再验环境和显存、接着选运行方式、然后接 Codex 这类工具、最后算账和定长期方案」的顺序走一遍。每一步都给出判断标准和排查顺序,遇到报错能自己定位到是哪一层,而不是靠反复重装碰运气。数字类的信息本文一律不写死,该看数字的地方会告诉你到站内哪个页面核对当时的口径。
先判断:哪些活该本地跑,哪些不该
本地部署最大的误区是先买硬件后想用途。正确的顺序是先把你要跑的任务列成清单,再拿三个维度去筛:数据能不能出内网、调用频次和并发有多高、任务对模型能力的要求有多强。这三项里只要有一项指向「高频高强度」,单机基本撑不住,后面省下的排查时间比省下的钱更值。
| 判断维度 | 倾向本地 | 倾向直接调接口 |
|---|---|---|
| 数据能否出内网 | 数据敏感、不允许外传 | 数据本身不敏感 |
| 频次与并发 | 低频、单人、固定小任务 | 多人同时用、调用密集 |
| 能力要求 | 任务简单、答案容错高 | 需要前沿模型能力或长上下文 |
| 运维意愿 | 有人愿意长期维护 | 只想拿来就用、不想管服务 |
需要前沿模型能力、需要长上下文、多人同时使用的场景,老老实实去调接口更省事,按量口径到 /official-api 或 /ai-nav/category/ai-api 比对当时的数字就行。真正适合本地的,是固定小任务、离线环境、数据敏感且量不大这几类。判断不适用的情况也说清楚:如果你既要追新模型能力又想压成本,本地路线大概率是双输。
环境与显存:本地部署第一个卡点是显存不是算力
很多人一上来就盯着显卡算力,其实第一个卡点几乎都是显存。自查顺序固定成四步:模型参数量、量化档位、显存占用、有没有余量留给上下文和并发。任何一步没对齐,结果都是 OOM,而且报错位置还不一样。
- 先定模型和量化档位按任务能力要求选一个够用的模型,再定量化档位。代码类任务对精度敏感,量化掉太多会明显影响输出质量,取舍标准到 /ai-dict/category/tech 对照,别只图显存好看。
- 估算显存占用用 /models/deploy 按模型和量化档位估算显存,再把上下文长度和并发数算进去,留出余量。估出来贴着上限的,实际跑起来基本都会炸。
- 反推硬件配置拿估算结果到 /compute/sizing 反推需要的卡数和单卡显存,确认现有机器够不够,不够时先想清楚是降档位还是加硬件。
- 跑一次最小加载用最短上下文、单并发先加载一次,确认 GPU 真被调用。跑通再加并发和上下文,一次只改一个变量。
显存报错大致分三类,处理方式完全不同:加载即 OOM,通常是模型加量化档位本身就超了,得降档或换小模型;跑到一半 OOM,多半是上下文或并发把余量吃掉了,先降这两个;GPU 没被调用、实际在 CPU 上跑,表现是极慢但不报错,这类要去查驱动、框架和设备指定参数,别误以为是模型不行。
跑起来用什么:推理端和运行端别混为一谈
选工具前先分清两层:一层是模型怎么被加载执行,也就是推理框架;另一层是模型怎么被调用,也就是对外提供的服务和接口。这两层选错都会出问题,而且症状很像——都是「跑不起来」或「连不上」,所以排查时一定要分开看。
- 单机个人用:重点是加载快、配置简单,别一上来就上服务化方案,多出来的组件只会增加排查面。
- 多人共用或要给工具调用:必须有稳定的服务端点和并发能力,这时候推理框架和服务层要分开选。
- 先跑通最小可用模型,再换大模型;顺序反了会把环境问题和模型问题搅在一起,越查越乱。
- 工具之间的差异到 /ai-nav/category/ai-coding 和 /tools 对照,别只看别人推荐,推荐往往对应的是别人的硬件和任务。
Codex 接本地模型:配置常见不通的四个原因
Codex 这类编程代理本身不负责推理,它只是把请求发出去。接本地模型不通,绝大多数不是模型的问题,而是接口层没对齐。按下面四个原因逐个排,比反复改配置有效得多。
| 现象 | 最可能原因 | 怎么验证 |
|---|---|---|
| 直接报连接失败 | 地址或端口写错,回环与局域网混用 | 用测速页确认端点是否活着 |
| 返回鉴权错误 | 鉴权头或密钥没按服务端要求传 | 用最简请求带上鉴权头试一次 |
| 提示找不到模型 | 配置里的模型名和服务端加载的不一致 | 核对服务端实际加载的名称,逐字符对 |
| 请求格式报错 | 接口协议或路径不兼容 | 确认服务端提供的是标准兼容端点 |
- 先确认端点活着用 /tools/speed-test 对本地服务发一次请求,能通再动 Codex 配置。端点不通的时候改工具配置纯属浪费时间。
- 打通一条最简请求用最短的请求体、带上鉴权头,直接请求一次。返回正常说明服务和协议都没问题,问题就在 Codex 那侧的配置。
- 再改 Codex 配置把地址、端口、模型名、鉴权方式四项逐一对照服务端实际值填写,模型名差一个字符就会报找不到模型。
- 最后回归测试让 Codex 跑一次最简单的任务,成功后再加复杂指令。一次只改一个变量,出问题才知道是哪一步引入的。
跑起来慢和跑不稳:按顺序排查而非乱调参
服务和工具都通了,接下来最常见的抱怨是慢和不稳。这两件事要分开查,而且必须先量基线:用 /tools/speed-test 测一次响应延迟,后面所有调整都跟这个数比,否则你根本不知道调参有没有用。
- 慢的第一嫌疑是跑在 CPU 上,先确认 GPU 真的在用,这一步排查最快、收益最大。
- 第二嫌疑是上下文开太大,长上下文会显著拖慢响应,先降上下文再谈换硬件。
- 第三嫌疑才是模型档位超出硬件能力,最后再考虑换模型或加卡。
- 不稳的第一嫌疑是显存贴着上限,留不出余量,稍微多几个并发就崩。
- 第二嫌疑是并发数超过单机能力,第三是服务进程被系统回收,后者要去查日志而不是调模型参数。
调整顺序固定成:先降上下文和并发,再看显存余量,最后才考虑换模型或加卡。多数人以为的「卡不够」,其实是上下文和并发配置没调好。真到了要加卡的地步,再去 /compute/sizing 重新算一遍配置,别凭感觉加。
算账:本地的隐性成本和 Codex 这类订阅的差别
本地部署的账不能只算硬件。硬件的钱是一次性的,但电费是长期的,维护要占人力,模型迭代还会带来重装和重新调参的成本。按三年口径把这几笔一起算,到 /compute/tco 填一遍,得到的数往往比直觉高不少。
Codex 这类编程代理的订阅,看的是额度口径和超额规则,不是月费数字本身。档位和额度范围到 /coding-plans 对照当时的说明,重点看超出额度后怎么算、哪些能力受限制。判断分界其实很简单:日均请求少、能力要求高,订阅或按量更省;请求稳定、数据敏感、且有人愿意维护,本地才划算。
落地清单:从试用走向长期运行要补什么
试用跑通和长期稳定运行是两回事。从「能跑」走到「能放心用」,至少补四样东西,缺一样出问题时都会手忙脚乱。
- 模型版本记录:记清当前加载的是哪个模型、哪个量化档位,换之前能对照。
- 启动脚本与开机自启:别每次重启机器都靠手动敲命令,脚本里把设备参数固定住。
- 日志与错误可查:服务日志要留得住,慢和不稳的时候第一手线索都在日志里。
- 备用通道:本地服务挂掉时能临时切回线上接口,别让整个工作流停摆。
团队共用还要提前定规则:谁有权改配置、谁能重启服务、显存被占满时按什么顺序处理。这些不写下来,出问题时一定是互相等。另外把模型真假与输出质量纳入日常抽查,用 /tools/quality-monitor 定期测,换模型前后各测一次,避免换完才发现质量掉了。
长期方案要定期复核。硬件会老化,需求会变,模型能力也在往前走,半年前划算的本地方案现在未必还划算。建议每半年拿同样的判断维度重走一遍本文第一节,该切回接口就切回,不丢人。
下一步先把你的任务清单按第一节的三个维度过一遍,再拿估算结果去核对硬件口径;具体数字和档位都到站内页面看当时的说明,别照抄别人的配置。→常见问题
本地部署和 Codex 部署是一回事吗?
不是。本地部署指模型跑在你自己的机器上,考的是显存、量化和推理服务;Codex 部署指把这类编程工具配好、接到某个模型端点上,考的是接口兼容和配置对不对。两者会重叠——Codex 也可以指到本地模型,但排查时要把「模型服务本身通不通」和「工具配置对不对」分两步查,一起改会越改越乱。
显存不够是不是只能加卡?
多数情况不用。先按顺序试:降量化档位、缩短上下文、减少并发、把部分层卸载到内存。这四步能解决大部分个人场景的不够用。真正该加卡的信号是:已经压到最低量化、上下文也降了,仍然频繁 OOM 或者速度不可接受。先用 /models/deploy 估一遍再决定,别凭感觉买卡。
Codex 配置完还是连不上本地服务,从哪查?
按这个顺序:第一步用最简请求直接打本地端点,确认服务活着;第二步确认地址和端口是工具能访问到的那个(不是只在你自己终端里能通的);第三步核对模型名与服务端加载的是否完全一致;第四步看鉴权头或 key 是否被要求。四步里前两步能排除八成问题。测延迟可以用 /tools/speed-test 建立基线。
本地跑起来很慢,是不是硬件太差?
先别下这个结论。最常见的原因是模型根本没跑在 GPU 上,表现就是慢得离谱;其次是上下文开得太大,或者加载了超出硬件的档位。先确认 GPU 真的被调用,再降上下文测一次。如果确认在 GPU 上、上下文也降了还是慢,才轮到换硬件或换更小模型。这个排查顺序能省下很多冤枉钱。
本地部署长期看真的省钱吗?
看使用形态。请求量小、要求模型能力强,本地的硬件和维护成本摊下来通常比按量或订阅贵;请求稳定、数据不能出内网,本地才有明显优势。算的时候别只算硬件,把电费、维护人力和模型换代重装的成本都算进去。可以去 /compute/tco 按三年口径估一遍,再和 /coding-plans 的档位额度对照。