![]()
作者 |路飛
來(lái)源 | 至頂AI實(shí)驗(yàn)室
最近追開(kāi)源模型,我養(yǎng)成了一個(gè)習(xí)慣:新模型發(fā)布當(dāng)天先不急著下載,先去看看 llama.cpp 有沒(méi)有跟上。參數(shù)量決定模型有多大,推理引擎決定它能不能在手邊這臺(tái)電腦上正常工作。
7 月 13 日凌晨,llama.cpp 的發(fā)布頁(yè)排到了 b9982。往前翻到 b9973,10 次更新擠在不到 12 個(gè)小時(shí)里。先說(shuō)明這組數(shù)字的性質(zhì):llama.cpp 不發(fā)版本號(hào),每合并一個(gè)提交就自動(dòng)打包一次,構(gòu)建號(hào)加一。也就是說(shuō),這 10 次更新不是一次沖刺,而是這個(gè)項(xiàng)目每一天的常規(guī)節(jié)奏。這 12 個(gè)小時(shí)里,并沒(méi)有任何新模型發(fā)布。
一天 10 次更新,忙的是三件事
第一件是追模型。DeepSeek V4 用了新的壓縮注意力結(jié)構(gòu),思路是先由一個(gè)輕量索引器挑出值得關(guān)注的重點(diǎn) token,再在壓縮過(guò)的 token 序列上做注意力。模型結(jié)構(gòu)里出現(xiàn)新算法,舊引擎不認(rèn)識(shí),權(quán)重下載到本地也無(wú)法按原設(shè)計(jì)執(zhí)行。V4 發(fā)布后,社區(qū)先在好幾個(gè) fork 里各自搶跑移植,上游支持隨后合入;這輪更新里的 b9973 又調(diào)整了它的緩存管理——清理時(shí)只清指定序列,不再整個(gè)清空。支持一個(gè)新架構(gòu)從來(lái)不是合入那一下的事,之后還要接著磨。Qwen 那邊同樣如此:Qwen3.6-27B 發(fā)布后 24 小時(shí)內(nèi),社區(qū)就放出了能把權(quán)重體積再砍一半的新量化版本。
第二件是磨硬件。b9974 處理了一個(gè)多卡用戶會(huì)撞上的崩潰:某張 CUDA 卡的顯存已經(jīng)被其他程序占滿時(shí),啟動(dòng)階段查詢顯存這個(gè)動(dòng)作本身就會(huì)觸發(fā)顯存不足,程序直接退出。修復(fù)后,這張卡會(huì)被記為零可用內(nèi)存,裝載算法自動(dòng)跳過(guò)它,程序照常啟動(dòng)。b9976 修正了多卡張量切分方式不受支持時(shí)的提示信息。這類改動(dòng)不會(huì)出現(xiàn)在任何跑分里,卻決定一臺(tái)配置不那么標(biāo)準(zhǔn)的電腦能不能把模型跑起來(lái)。
第三件是補(bǔ) Agent 接口。b9977 修復(fù)了一個(gè)多模態(tài)漏洞:工具返回截圖時(shí),圖片會(huì)在 Anthropic 和 OpenAI 兩種消息格式的轉(zhuǎn)換中被靜默丟棄,模型后面的判斷就缺了依據(jù)。b9979 解決了消息里混入空字符、提示詞被悄悄截?cái)嗟膯?wèn)題。b9982 讓推理預(yù)算——即限制模型在正式回答前最多“思考”多少 token 的設(shè)置——真正按每次請(qǐng)求生效,此前服務(wù)端會(huì)忽略請(qǐng)求里帶的值,只認(rèn)服務(wù)器默認(rèn)值。聊天場(chǎng)景里這些都是小事;代碼助手和 Agent 連續(xù)調(diào)用模型幾十次,每個(gè)小問(wèn)題都會(huì)一路傳導(dǎo)到后續(xù)步驟。
這三件事,對(duì)應(yīng)普通用戶的三堵墻:裝不上、跑不快、接不穩(wěn)。
一個(gè) GGUF 文件背后,還有三筆內(nèi)存賬
游戲里的掃描器,變成 AI 攝像頭
很多人是在模型站下載 GGUF,再用 LM Studio 打開(kāi);用 Ollama 拉取模型的人,長(zhǎng)期以來(lái)跑的也是 llama.cpp 一系的引擎。LM Studio 官方文檔寫(xiě)明,它加載 GGUF 時(shí)使用基于 llama.cpp 的引擎。界面里的一次點(diǎn)擊,背后是量化格式解析、內(nèi)存分配和 CPU、GPU 調(diào)度。
GGUF 把模型參數(shù)、分詞器和運(yùn)行信息放在同一套文件格式里。量化再把參數(shù)從較高精度壓到 8-bit、6-bit、5-bit、4-bit,甚至更低。位數(shù)降低后,文件和內(nèi)存占用通常縮小,模型質(zhì)量也可能跟著下降;同一種量化放到不同硬件上,速度差異還會(huì)很大。
算配置時(shí)至少要留出三塊空間:
![]()
權(quán)重這筆賬可以粗算:參數(shù)量乘以位寬再除以八。30B 模型用 4-bit 量化,權(quán)重就在 15GB 上下;社區(qū)實(shí)測(cè)里,27B 級(jí)模型的 Q4_K_M 文件約 17GB。KV Cache 是彈性的一筆,聊天記錄和文檔越長(zhǎng),占用越高。所以 15GB 的模型文件,并不等于 16GB 顯卡一定裝得下。
顯存不夠,llama.cpp 可以把部分模型層放在系統(tǒng)內(nèi)存,由 CPU 和 GPU 分擔(dān)。模型有機(jī)會(huì)跑起來(lái),速度取決于內(nèi)存帶寬、顯卡帶寬和兩邊的數(shù)據(jù)傳輸。容量解決的是能不能裝下,帶寬決定等待多久。
12GB 的 4070,從 30B 跑到 35B
這三筆賬落到真機(jī)上是什么樣?今年年初,量化作者 steampunque 在 llama.cpp 官方討論區(qū)分享過(guò)一套很具體的配置:RTX 4070 12GB,加一顆 i9-9900K,運(yùn)行 Qwen3-VL-30B-A3B-Instruct 的混合精度 GGUF。上下文開(kāi)到 32K,KV Cache 使用 Q8_0,生成速度約 27 tokens/s。
30B 模型塞不進(jìn) 12GB 顯存。他把一部分 MoE 專家層交給 CPU,另一部分留在 GPU;自制的混合量化又把權(quán)重占用壓到大約只有 Q8_0 的一半。A3B 里的“3B”也很重要:模型總參數(shù)是 30B,每次生成只激活約 3B,CPU 分擔(dān)專家層才不至于慢到不能用。
這條思路沒(méi)有停在年初。3 月底的另一條討論里,有人用同一檔的 4070 12GB 跑起了更新的 Qwen3.6-35B-A3B:動(dòng)態(tài) 4-bit 量化,34 層專家放在 CPU,KV 同樣用 Q8_0,上下文撐到 23 萬(wàn) token 以上時(shí),生成速度仍有每秒 35 到 40 個(gè) token。硬件沒(méi)換,模型換了一代,切分方式跟著引擎參數(shù)一起調(diào),原本裝不下的模型就一直有運(yùn)行空間。
同一個(gè)模型,為什么有人跑得快,有人跑得慢
不過(guò),這兩組數(shù)字來(lái)自兩臺(tái)機(jī)器、兩套參數(shù),直接橫向比較沒(méi)有意義。看懂本地模型的速度,先要把它拆成兩段。它先把問(wèn)題、文檔和歷史對(duì)話讀進(jìn)去,這叫 prompt processing;讀完以后,答案才開(kāi)始一個(gè) token 一個(gè) token 地生成。前一段影響首字等待時(shí)間,后一段影響回答出現(xiàn)得快不快。
前面兩條 4070 案例報(bào)的主要是生成速度,3 月那條只順帶提了一句讀入速度比較穩(wěn)定,沒(méi)有給長(zhǎng)文檔的具體成績(jī)。以后再看到“每秒多少 token”,至少要先問(wèn)一句:說(shuō)的是讀入,還是生成?
量化版本、上下文長(zhǎng)度、裝進(jìn) GPU 的層數(shù)、Flash Attention、KV Cache 放在顯卡還是內(nèi)存,都會(huì)改掉最后的速度。4K 上下文和 64K 上下文的負(fù)擔(dān)不在一個(gè)量級(jí),CUDA 和純 CPU 也不是一種跑法。
硬件再往下分,還有后端的差別:NVIDIA 走 CUDA,蘋(píng)果用 Metal,AMD、Intel 和高通各有各的接口。后端沒(méi)有跟上,輕則跑得慢,重則模型根本起不來(lái)。
聊天能用,只是最低門(mén)檻
llama.cpp 自帶 llama-server,能把電腦里的模型開(kāi)放成 OpenAI 兼容接口。原來(lái)調(diào)用云端模型的軟件,換成本地地址就能繼續(xù)工作。
它支持同時(shí)處理多個(gè)請(qǐng)求,能運(yùn)行向量模型和重排模型,可以限制模型按 JSON 格式輸出,也支持推測(cè)解碼。做本地文檔問(wèn)答時(shí),可以先用向量模型從資料庫(kù)里找內(nèi)容,再用重排模型挑出最相關(guān)的幾段,最后交給大模型寫(xiě)答案。整個(gè)過(guò)程不用把文件發(fā)到云端。
代碼助手和 Agent 對(duì)接口要挑剔得多。它們不只要文字,還會(huì)把網(wǎng)頁(yè)截圖、圖表和工具結(jié)果塞回模型,并要求推理預(yù)算、輸出格式按每次請(qǐng)求精確執(zhí)行。這輪 10 次更新里,服務(wù)端和接口相關(guān)的改動(dòng)占了 6 條,壓力來(lái)自哪里,一目了然。
llama.cpp 也不是每臺(tái)機(jī)器的唯一答案
llama.cpp 的長(zhǎng)處是覆蓋面廣:從純 CPU 到各家 GPU 后端都有現(xiàn)成的構(gòu)建,前面那套 CPU、GPU 混合分擔(dān)的打法也是它的招牌。對(duì) GGUF、本地單機(jī)和消費(fèi)級(jí)硬件來(lái)說(shuō),它通常是最容易遇到的一條路線。
蘋(píng)果芯片用戶還會(huì)遇到 MLX-LM。它由 Apple 的 MLX 生態(tài)提供,專門(mén)用于 Apple silicon 上的大模型生成和微調(diào),也支持量化。手里是 Mac,模型已經(jīng)有成熟的 MLX 版本,沒(méi)必要只盯著 GGUF。
如果目標(biāo)是讓很多人同時(shí)調(diào)用一臺(tái) GPU 服務(wù)器,vLLM 更偏向高吞吐推理和在線服務(wù)。今年 4 月有團(tuán)隊(duì)在兩張 16GB 消費(fèi)卡上,用同一個(gè) 27B 模型對(duì)跑過(guò)這兩個(gè)引擎:高并發(fā)下 vLLM 的吞吐量高出三到四倍;換成 4 萬(wàn)多 token 的長(zhǎng)文檔,llama.cpp 能完整服務(wù),vLLM 在同樣硬件上的上下文上限則停在 16K。全部使用 NVIDIA GPU、要把單一硬件榨到極限,還有 TensorRT-LLM。它們解決的任務(wù)不同,不能只用單人聊天時(shí)每秒多少 token 排高低。
“卷”在哪里:都想擠進(jìn)這份構(gòu)建列表
回頭看 llama.cpp 每次發(fā)布附帶的下載列表,能讀出另一層信息:macOS、iOS、Windows、Ubuntu、Android 之外,同一份代碼還同時(shí)打包出 CUDA 12 和 13、Vulkan、ROCm、OpenVINO、SYCL、HIP 的版本,甚至有面向高通 Adreno 的 OpenCL 版本和 IBM 大型機(jī)的 s390x 版本。Intel、AMD、高通的名字,都以后端的形式出現(xiàn)在這份官方列表里。
原因不復(fù)雜。這個(gè)由 Georgi Gerganov 發(fā)起、如今由 ggml-org 社區(qū)維護(hù)的項(xiàng)目,在 GitHub 上積累了約 12 萬(wàn) star,是 GGUF 格式事實(shí)上的標(biāo)準(zhǔn)運(yùn)行時(shí)。模型這頭,DeepSeek V4 那樣的移植接力隔三差五就來(lái)一輪;硬件這頭,芯片廠商把自家后端的適配和優(yōu)化提交進(jìn)來(lái);應(yīng)用這頭,LM Studio、Ollama 們?cè)谒蠣?zhēng)奪用戶入口。三方都在往同一個(gè)項(xiàng)目里使勁,因?yàn)椴辉谶@份構(gòu)建列表里,就不在本地 AI 的牌桌上。標(biāo)題里那個(gè)“卷”字,卷的是這個(gè)位置。
裝新模型前,我會(huì)按這個(gè)順序看
先在 llama.cpp 的發(fā)布記錄和 issue 里搜模型名,確認(rèn)架構(gòu)、特殊算子和聊天模板是否已經(jīng)適配。能下載權(quán)重,不代表當(dāng)前引擎已經(jīng)完整支持。
再選量化文件。4-bit 常被用作容量和質(zhì)量之間的起點(diǎn);2-bit 更省空間,質(zhì)量損失和硬件支持要單獨(dú)確認(rèn)。隨后把模型權(quán)重、KV Cache 和緩沖區(qū)一起算進(jìn)內(nèi)存,長(zhǎng)文檔場(chǎng)景還要額外留余量。
最后看用途。只在 LM Studio 里聊天,文字生成穩(wěn)定就夠了;做本地資料庫(kù),要繼續(xù)檢查向量模型和重排模型;接入 Agent,還要看多模態(tài)、工具調(diào)用、結(jié)構(gòu)化輸出和接口兼容。
llama.cpp 的更新記錄里很少有醒目的大功能,卻能看到本地 AI 每天卡在哪里,也能看到有多少人在乎這件事。新模型發(fā)布只是起點(diǎn),是這些日復(fù)一日的小修小補(bǔ),把模型站里的一個(gè)文件磨成一套能長(zhǎng)期使用的工具。本地 AI 真正的競(jìng)爭(zhēng),就發(fā)生在這個(gè)過(guò)程里。
END本文來(lái)自至頂AI實(shí)驗(yàn)室,一個(gè)專注于對(duì)AI計(jì)算機(jī)、工作站及各類AI相關(guān)硬件設(shè)備,開(kāi)展基于真實(shí)使用場(chǎng)景評(píng)測(cè)的研究機(jī)構(gòu)。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.