乐于分享
好东西不私藏

【垃圾佬狂喜】“丐版”AI服务器诞生记-软件篇

【垃圾佬狂喜】“丐版”AI服务器诞生记-软件篇

    硬件拼凑完毕,接下来就是给这堆“电子垃圾”注入灵魂的时候了。如果你以为插上电就能跑,那图样图森破了。软件调优,才是区分“新手”和“垃圾佬”的分水岭。

一、操作系统与驱动:打地基,不能歪

  我的主角是两张RTX 2080 Ti22G。虽然它们身经百战,但毕竟年纪大了,对最新的CUDA 13 支持得有点“力不从心”。而现在的llama.cpp更新速度快得像换女朋友,通常只支持 CUDA 12.4 或 13.3所以,安装包含CUDA 12.4NVidia 551.23版本驱动。这是目前的“黄金搭档”,稳如老狗。

  如何确认NVLink 真的在工作?很多兄弟买了桥接器,插上了,以为就可以了。错!

    1. 图形化检查:打开NVIDIA 控制面板,如果能看到“配置SurroundSLIPhysX”菜单,且里面显示SLI,恭喜你成功了一半没生效就手工改为“最大化3D性能”。

    2.  命令行硬核检查:

   打开CMD PowerShell输入:nvidia-smi nvlink --status(也可以简写为 -s)

  如果输出了GPU 连接状态和带宽信息(如下图),那就说明NVLink已启用。这时候,你可以放肆地笑了

注意:nvidia-smi.exe的路径可能会藏得比较深,我是先找到这个路径:

C:\Windows\System32\DriverStore\FileRepository

然后搜索nvidia-smi.exe找到的。

二、运行器与模型:选谁当大脑?

  市面上主流的运行器有三个“门派”:

    Ollama:简单粗暴,开箱即用,但有点“吃资源”,像个憨厚的大力士。

    vLLM:高并发王者,适合搞服务,但对于我们这种单机玩票的,配置稍显复杂。

    llama.cpp:垃圾佬首选!命令行模式,能极限压榨每一滴性能。虽然并发差点意思,但胜在灵活、轻量、可控。

    重要提示:一定要下载llama.cpp对应CUDA版本的编译包!没有CUDA加速,大模型跑起来就像“大木莫刑土”一样慢,你怀疑人生。

模型选择:

    经过反复横跳,我锁定了Qwen3.6-27B作为主模型至于量化为什么选Q5Q5Q6之间纠结了三天三夜,最后感觉Q5速度快那一丢丢,而智商损失几乎感觉不到。对于2080Ti来说,速度就是正义

    至于备选模型我毫不犹豫地选择了Qwen3.6-35B-A3B-Q4_K_M用来应付那些速度比质量重要,需要“超常发挥”的时刻比如……恩恩你懂的

    我在hf-mirror.com国内用户值得拥有找了支持MTPabliterated大模型文件DDDD18.5G,加上KV Cacheq5起步,最好q8,实际吃显存约34G在双2080Ti上跑起来,So Easy

三、参数详解:调参如炼丹

    直接给出我的启动脚本,每一个参数都是血泪教训换来的。你可以直接复制,但建议读懂它,因为这才是垃圾佬的乐趣。

llama-server.exe ^

-m "C:\Models\Qwen2.5-32B-Q5_K_M.gguf" ^##模型路径,指向你的.gguf文件

--main-gpu 0 ^##指定主显卡为 号卡。虽然双卡互联,但得有个老大

--ngl 99 ^##把模型层加载到GPU的层数。99Magic Number,表示尽可能多

--tensor-split 0.5,0.5 ^##张量分配规则,这里平分就好了

--parallel 1 ^##并发数1。垃圾佬服务器,一次只聊一个人,保证质量

--flash-attn on ^##开启 Flash Attention,提速神器,必开!

--n-cpu-moe 0 ^ ##将多少专家加载到CPU和内存。对27B这种稠密型大模型无效,对35B这种稀疏型必须。反正也不报错,放上省事。

--jinja ^##使用 Jinja 模板,让模型更懂你的 Prompt 格式

-c 262144 ^##上下文长度 256K

-t 12 ^##CPU线程数 12E5 2673v3 1224线程,一般设为12

--cache-type-k q8_0 --cache-type-v q8_0 ^## KV CacheQ8量化,保证精度

--spec-type draft-mtp ^##等灯等灯,重点来了!开启MTP投机解码。如果不支持MTP的大模型,一般可以选ngram-mod

--spec-draft-n-max 3 ^##猜测深度 3。一般设 就够,太高容易猜错反而拖慢

-b 512 -ub 256 ^##批处理数量

--temp 0.7 ^##温度系数。0.7 适合创作,0.3 适合写代码。按需调整。

--mlock --no-mmap ^##锁定内存,禁止交换。防止把数据换到硬盘,会卡成 PPT

--host 127.0.0.1 --port 4321 --timeout 300##常规Web设置

其他优化策略:

    TurboQuant:试过,但在 2080Ti上提速不明显,编译还麻烦。暂时弃用,等以后升级 3090 再说。

    ThinkingCap:说实话本地部署不缺Token,用来省显存的话现在显存没那么紧张,所以吸引力不大能提升生成速度吗?大佬们如果有什么建议,欢迎评论区明示

四、最终效果:真香现场

    经过一番折腾,最终生成速度35-40 Tokens/S,长对话输出非常稳定,没有出现掉帧或卡顿中间甚至速度有提升。说明显卡负载并未跑满,还有优化空间或者是我模型选小了,格局不够大?

    虽然比不上4090 的飞起,但对于一个“丐版”服务器来说,这性价比已算不错

    下一步优化计划:尝试本地编译,打造专属的llama.cpp,当然那是N久以后、垃圾佬结丹飞升后的事了!现在当然是开VSCode让它干活!诸位大能,下期再见!