先分清是「慢」还是「显存不够」,再按模型规模、精度档位、上下文长度、并发人数逐项排查。每一处都要确认现象、知道能调什么、清楚调了要付出什么代价。
要点速览
- 先分清「慢」和「显存不够」,两者排查方向不同
- 按模型规模、精度档位、上下文长度、并发人数四处逐项查
- 每项调整都有代价:质量、资料长度或同时使用人数
- 同机其他程序占显存,调参前先排除
- 调到质量不能接受时,按场景选现场一体机或机房服务器
本地大模型显存不够或跑得慢,先判断现象属于哪一类。「慢」指能跑但等得久,「显存不够」指加载失败或跑到一半中断。判断清楚之后,按四处逐项排查:模型规模、精度档位、上下文长度、同时使用人数,另外查一下同一台机器上还有哪些程序在占显存。每一处都有可以调的设置,但调整多半要拿回答质量、可处理的资料长度或可同时使用的人数去换。如果调到质量已经不能接受,问题就不在参数上了,要按使用场景重新选硬件和部署位置。
先分清:「慢」和「显存不够」是两类现象
很多人把这两件事混在一起说「卡」,排查方向就会跑偏。可以先按下面的表现归类:
- 生成速度低:回答能出来,但一个字一个字往外蹦,整段输出耗时长。
- 首字等待久:提问后很久没有任何输出,一旦开始输出,速度还算正常。资料贴得越长,这种等待通常越明显。
- 排队:一个人用时正常,几个人同时用就有人一直在等。问题出在同时处理请求的能力上,单个请求本身并不慢。
- 加载失败:模型启动时报显存不足,或者根本加载不起来。
- 中途中断:短问题正常,长对话或长文档跑到一半报错、进程退出。
前三类属于「慢」,后两类属于「显存不够」。还有一种情况要单独留意:显存装不下时,部分推理框架会把一部分计算放到内存和处理器上。程序不报错,但速度明显下降。这时现象看着是慢,根子其实是显存不够。如果你在任务管理器里看到 GPU 占用很高,却拿不准它在忙什么,可以先看任务管理器GPU 100%是什么意思?本地大模型四步判断,把占用的来源理清楚再往下查。
确认现象的方法有两种,下面四处排查都会用到。一是看资源监控,包括显存占用、GPU 利用率,以及内存是否在显存不足时被大量占用。二是做对照:一次只改一个设置,用同一个问题、同一份资料前后各跑一次,记下等待时间和输出是否完整。一次改好几项,就分不清是哪一项起的作用。
第一处:模型规模
怎么确认:先看模型的参数规模,和本机显存放在一起比较。模型刚加载、还没开始对话时,显存就已经占去大半,说明给对话和上下文留的空间很少,后面稍微长一点就容易出问题。也可以换一个同系列、规模小一档的模型,用同样的问题跑一遍。如果加载失败和中途中断都消失了,问题基本就在规模上。
能调什么:换同系列里规模更小的版本;或者按用途分开用,日常问答、格式整理用小模型,需要较强推理的任务再用大模型。
代价:规模小一些,对复杂指令的理解、长链条推理、专业领域表述的准确度一般会下降。换之前,用自己业务里的真实问题做一组对照,判断下降的程度能不能接受。只看通用测评结果不够。
第二处:精度档位
怎么确认:同一个模型通常会提供几种精度档位,档位越低,占的显存越少。先查清当前用的是哪一档。如果用的是较高档位,而显存一直很紧,这里就有调整空间。
能调什么:换成低一档的精度版本。很多本地运行工具可以直接下载不同精度的模型文件,不需要重新部署整套环境。
代价:档位降低,回答质量会有不同程度的损失,在数字、专有名词、代码细节和长推理上更容易看出来。有的场景几乎感觉不到差别,有的场景错误明显增多。建议准备一组固定的测试问题,每降一档就跑一遍,对比结果后再决定停在哪一档。法律、财税这类对措辞准确度要求高的场景,降档要格外谨慎。
第三处:上下文长度
怎么确认:上下文包括你贴进去的资料、之前的对话记录,以及模型已经输出的内容,这些都要占显存。如果短问题一切正常,长文档或多轮对话后出现首字等待变久、中途中断,上下文长度就是首要怀疑对象。可以把同一个问题分别配一份短资料和一份长资料,对比两次的显存曲线和等待时间。
能调什么:
- 调低运行工具里的上下文长度上限。不少工具默认值偏大,会预留很多显存。
- 长文档先分段处理,或者先抽出相关段落再提问,不要整份贴进去。
- 一个话题结束后开新对话,不要在同一个窗口里一直累积历史记录。
代价:上下文变短,一次能处理的资料就变少,跨段落的前后对照、长合同里的条款呼应更容易漏掉。分段处理还会增加人工拼接和核对的工作量。
第四处:同时使用人数
怎么确认:一个人用正常、几个人一起用就排队或报错,问题多半出在并发上。每多一个同时进行的对话,就多一份上下文占用显存。可以记录高峰时段同时在用的人数,把单人和多人两种情况下的显存占用、等待时间各记一次。
能调什么:限制同时处理的请求数,超出的请求排队;把长文档类任务安排到非高峰时段;按部门或用途错开使用时间。
代价:限制并发,就是用等待时间换稳定性,高峰时会有人等得更久。个人电脑原本是给一个人用的,几个人共用时,这一项往往最先撑不住。
别漏了:同机其他程序也在占显存
四处都查过还是紧张,就看看这台机器上还运行着什么。浏览器的硬件加速、视频会议、图形设计软件、游戏,以及另一个没关掉的模型进程,都会占用显存。常见的情况是有人用两个工具各加载了一份模型,自己却没注意到。排查方法很简单:关掉无关程序前后各看一次显存占用,用系统的资源监控确认每个进程各占了多少。这一步不需要改任何模型设置,建议放在调参之前先做。
调到质量不能接受时,按场景换路径
四处都调过,常常会出现这样的局面:模型降了规模,精度降了档,上下文砍短了,并发也限制了,能跑起来,但回答质量或可用程度已经达不到业务要求。这时继续调参数意义不大,该回头看部署方式。不同部署位置的差别,可以参考本地大模型怎么部署?个人电脑、一体机、机房服务器怎么选。按润迅的交付经验,可以这样大致划分:
- 个人或单个部门试用:可以考虑 R30 AI 一体机,放在客户现场使用。数据不出办公环境,也不用占用员工自己的电脑。
- 多人、长期、稳定使用:可以考虑 R500 AI 服务器,放在机房,提供机房级的高性能算力。供电、散热、网络这些条件交给机房环境保障,和个人电脑不是一回事。
两者都运行 XunOS,上面接入的模型和应用可以统一管理。一旦有多个模型、多人调用,另一个问题就会出现:谁在用哪个模型,请求该发到哪台机器,出了问题去哪里查。MaxModel 处理的就是这些事:用一个 Key 统一接入模型,按规则做路由,并留下调用记录,便于事后核对。它和单纯的网关有什么区别,可以看大模型统一管理平台是什么?一个Key、路由、审计三件事分清。润迅的 MaxDeploy 把硬件、XunOS 和 MaxModel 放在一起交付,适合不想自己逐项拼装的团队。
需要说明的是,换硬件不能替代前面的排查。上下文设置不合理、并发没有限制,换到更强的机器上同样可能再出问题。前面的四处排查记录,也正好用来估算新硬件需要多大规格。
行动建议:动手调之前,先确认归属并留记录
调参数、换模型看起来是技术操作,在企业环境里同时也是变更。建议按下面的顺序来:
- 确认归属:这台机器归谁管,上面的模型是谁部署的,还有哪些人在用。不是自己负责的环境,先找负责人确认。
- 确认能不能动:换模型、降精度可能影响别人正在用的流程。尤其是法律、财税等场景,模型只负责资料整理、初步审核和风险标记,判断和确认由专业人员完成。模型变了,复核的人要事先知道。
- 一次改一项,留下记录:写明改了什么、改之前和改之后的表现、谁改的、什么时候改的,出了问题能退回去。
- 到了换路径的时候,带着记录去谈:把四处排查的结果整理好,再评估现场一体机还是机房服务器更合适。两者的分工可以先看AI一体机是什么意思:放现场的整机,和机房AI服务器分工不同,需要按实际场景评估时,可拨打润迅业务热线 400-854-5566 咨询。
常见问题
本地大模型显存不够,先改哪个设置?
先关掉无关程序,看显存是否被其他进程占用。然后按影响从小到大来:先调低上下文长度上限,再考虑降精度档位,最后才是换更小规模的模型。每次只改一项,用同一组问题前后对比。
量化或降精度会让回答变差吗?
一般会有不同程度的损失。在数字、专有名词、代码细节和长推理上更容易出现错误。差别大小取决于具体场景,建议用自己业务里的真实问题做对照测试,再决定用哪一档。
为什么短问题正常,一贴长文档就报错?
贴进去的资料、对话历史和模型输出都占用显存,长文档会让上下文占用明显增加,导致首字等待变长或中途中断。可以调低上下文上限、分段处理资料,或者每个话题开一个新对话。
几个人同时用本地大模型就排队,怎么办?
每个同时进行的对话都要占一份显存。可以限制同时处理的请求数,并错开长文档任务的时间。如果多人长期使用是常态,个人电脑通常撑不住,更适合换成放在机房的服务器,配合统一的模型管理和调用记录。
什么时候该放弃调参数、改换硬件?
如果规模、精度、上下文、并发都调过,能跑起来了,但回答质量或可用程度达不到业务要求,就该考虑换部署方式。个人或单部门试用可选现场一体机,多人长期使用可选机房服务器。