雖然訓(xùn)練大語(yǔ)言模型可能需要數(shù)百萬(wàn)甚至數(shù)十億美元的基礎(chǔ)設(shè)施,但這些勞動(dòng)成果往往比你想象的更容易獲得。許多最新發(fā)布的模型,包括阿里巴巴的Qwen 3和OpenAI的gpt-oss,甚至可以在普通PC硬件上運(yùn)行。
如果你真的想了解大語(yǔ)言模型的工作原理,在本地運(yùn)行一個(gè)模型是必不可少的。它還能讓你無(wú)限制地訪問(wèn)聊天機(jī)器人,無(wú)需為優(yōu)先訪問(wèn)權(quán)付費(fèi),也不會(huì)將數(shù)據(jù)發(fā)送到云端。雖然有更簡(jiǎn)單的工具,但在命令行中使用Llama.cpp能提供最佳性能和最多選項(xiàng),包括將工作負(fù)載分配給CPU或GPU的能力,以及量化(即壓縮)模型以實(shí)現(xiàn)更快輸出的功能。
在底層,許多在PC或Mac上本地運(yùn)行模型的最受歡迎框架,包括Ollama、Jan或LM Studio,實(shí)際上都是基于Llama.cpp開(kāi)源基礎(chǔ)構(gòu)建的包裝器,目標(biāo)是簡(jiǎn)化復(fù)雜性并改善用戶體驗(yàn)。
雖然這些便利功能讓新手運(yùn)行本地模型不那么令人生畏,但在性能和功能方面往往還有不足之處。
截至本文撰寫(xiě)時(shí),Ollama仍不支持Llama.cpp的Vulkan后端,該后端提供更廣泛的兼容性和通常更高的生成性能,特別是對(duì)AMD GPU和APU。雖然LM Studio確實(shí)支持Vulkan,但它缺乏對(duì)英特爾SYCL運(yùn)行時(shí)和GGUF模型創(chuàng)建的支持。
在這個(gè)實(shí)踐指南中,我們將探索Llama.cpp,包括如何構(gòu)建和安裝應(yīng)用程序、在GPU和CPU上部署和服務(wù)大語(yǔ)言模型、生成量化模型、最大化性能以及啟用工具調(diào)用。
**前提條件:**
Llamas.cpp幾乎可以在任何設(shè)備上運(yùn)行,包括樹(shù)莓派。然而,為了獲得最佳體驗(yàn),我們建議使用至少16GB系統(tǒng)內(nèi)存的機(jī)器。
雖然不是必需的,但來(lái)自英特爾、AMD或英偉達(dá)的專(zhuān)用GPU將大大提高性能。如果你確實(shí)有GPU,在開(kāi)始之前需要確保系統(tǒng)上安裝了最新的驅(qū)動(dòng)程序。
對(duì)大多數(shù)用戶來(lái)說(shuō),安裝Llama.cpp就像下載ZIP文件一樣簡(jiǎn)單。
雖然Llama.cpp可能可以從apt、snap或WinGet等包管理器獲得,但它更新非常頻繁,有時(shí)一天多次,所以最好從官方GitHub頁(yè)面獲取最新的預(yù)編譯二進(jìn)制文件。
二進(jìn)制文件可用于macOS、Windows和Ubuntu上基于Arm64和x86-64主機(jī)CPU的各種加速器和框架。
如果你不確定選擇哪個(gè),這里有一個(gè)快速參考表:
英偉達(dá):CUDA
英特爾Arc/Xe:Sycl
AMD:Vulkan或HIP
高通:OpenCL-Adreno
蘋(píng)果M系列:macOS-Arm64
或者,如果你沒(méi)有支持的GPU,請(qǐng)為你的操作系統(tǒng)和處理器架構(gòu)選擇相應(yīng)的"CPU"構(gòu)建版本。請(qǐng)注意,集成GPU在Llama.cpp中表現(xiàn)不穩(wěn)定,由于內(nèi)存帶寬限制,即使能夠工作,性能也可能不如基于CPU的推理。
下載Llama.cpp后,將文件夾解壓到主目錄以便訪問(wèn)。
**部署你的第一個(gè)模型**
與LM Studio或Ollama等其他應(yīng)用不同,Llama.cpp是一個(gè)命令行工具。要訪問(wèn)它,你需要打開(kāi)終端并導(dǎo)航到我們剛下載的文件夾。注意,在Linux上,二進(jìn)制文件位于build/bin目錄下。
我們可以運(yùn)行以下命令在設(shè)備上下載并運(yùn)行Qwen3-8B的4位量化版本:
./llama-CLI -hfr bartowski/Qwen_Qwen3-8B-GGUF:Q4_K_M
一旦模型下載完成,只需幾秒鐘就能啟動(dòng),你將看到一個(gè)基本的命令行聊天界面。
除非你碰巧運(yùn)行M系列芯片,否則Llama.cpp默認(rèn)會(huì)將模型加載到系統(tǒng)內(nèi)存中并在CPU上運(yùn)行。如果你有足夠內(nèi)存的GPU,你可能不想這樣做,因?yàn)镈DR通常比GDDR慢得多。
要使用GPU,我們需要通過(guò)添加-ngl標(biāo)志來(lái)指定要卸載到GPU的層數(shù)。在這種情況下,Qwen3-8B有37層,但如果你不確定,將-ngl設(shè)置為999之類(lèi)的數(shù)字將保證模型完全在GPU上運(yùn)行。
**處理多個(gè)設(shè)備**
Llama.cpp會(huì)嘗試使用所有可用的GPU,如果你同時(shí)擁有獨(dú)立顯卡和集成GPU,這可能會(huì)導(dǎo)致問(wèn)題。我們可以使用--device標(biāo)志指定運(yùn)行Llama.cpp的GPU。
**服務(wù)你的模型**
雖然基于CLI的聊天界面很棒,但它不一定是與Llama.cpp交互的最便捷方式。相反,你可能想將其連接到圖形用戶界面(GUI)。
幸運(yùn)的是,Llama.cpp包含一個(gè)API服務(wù)器,可以連接到任何支持OpenAI兼容端點(diǎn)的應(yīng)用,如Jan或Open WebUI。如果你只想要一個(gè)基本的GUI,不需要做任何特殊操作,只需使用llama-server而不是llama-cli啟動(dòng)模型。
**尋找模型**
Llama.cpp適用于大多數(shù)使用GGUF格式量化的模型。這些模型可以在各種模型庫(kù)中找到,其中Hugging Face是最受歡迎的之一。
如果你在尋找特定模型,值得查看Bartowski、Unsloth和GGML-Org等配置文件,因?yàn)樗麄兺ǔJ亲钕忍峁┬履P虶GUF量化版本的。
**量化你自己的模型**
如果你要找的模型還沒(méi)有GGUF格式版本,你可能可以創(chuàng)建自己的。Llama.cpp提供了將模型轉(zhuǎn)換為GGUF格式然后從16位量化到更低精度的工具。
**從源代碼構(gòu)建**
萬(wàn)一Llama.cpp沒(méi)有為你的硬件或操作系統(tǒng)提供預(yù)編譯二進(jìn)制文件,你需要從源代碼構(gòu)建應(yīng)用程序。
**性能調(diào)優(yōu)**
到目前為止,我們已經(jīng)介紹了如何在Llama.cpp中下載、安裝、運(yùn)行、服務(wù)和量化模型,但我們只是觸及了其功能的表面。
運(yùn)行l(wèi)lama-cli --help,你會(huì)看到真正有多少杠桿可拉和旋鈕可轉(zhuǎn)。讓我們看看一些更有用的標(biāo)志。
**工具調(diào)用**
如果你的工作負(fù)載需要,Llama.cpp還可以從OpenAI兼容的API端點(diǎn)解析工具調(diào)用。如果你想要引入外部功能,如時(shí)鐘、計(jì)算器或檢查Proxmox集群狀態(tài),你需要工具。
對(duì)大多數(shù)流行模型,包括gpt-oss,不需要特殊設(shè)置。只需添加--jinja標(biāo)志即可。
**總結(jié)**
雖然Llama.cpp可能是最全面的模型運(yùn)行器之一,但我們理解對(duì)于初次接觸本地大語(yǔ)言模型的人來(lái)說(shuō)可能相當(dāng)令人生畏。這是我們花了這么長(zhǎng)時(shí)間做這個(gè)應(yīng)用實(shí)踐教程的原因之一,也是為什么我們認(rèn)為像Ollama和LM Studio這樣更簡(jiǎn)單的應(yīng)用仍然有價(jià)值。
Q&A
Q1:Llama.cpp是什么?它與其他大語(yǔ)言模型運(yùn)行工具有什么區(qū)別?
A:Llama.cpp是一個(gè)開(kāi)源的命令行工具,用于在本地運(yùn)行大語(yǔ)言模型。與Ollama、Jan或LM Studio等圖形化工具不同,Llama.cpp提供更高的性能和更多配置選項(xiàng),包括CPU/GPU工作負(fù)載分配、模型量化壓縮等功能。許多流行的本地模型運(yùn)行框架實(shí)際上都是基于Llama.cpp構(gòu)建的包裝器。
Q2:使用Llama.cpp運(yùn)行大語(yǔ)言模型需要什么硬件配置?
A:Llama.cpp幾乎可以在任何設(shè)備上運(yùn)行,包括樹(shù)莓派。但為了獲得最佳體驗(yàn),建議使用至少16GB系統(tǒng)內(nèi)存的機(jī)器。雖然不是必需的,但英特爾、AMD或英偉達(dá)的專(zhuān)用GPU能大大提高性能。集成GPU由于內(nèi)存帶寬限制,性能可能不如CPU推理。
Q3:如何在Llama.cpp中優(yōu)化模型性能?
A:可以通過(guò)多種方式優(yōu)化性能:使用-ngl參數(shù)將模型層卸載到GPU;啟用Flash Attention(-fa)加速處理;調(diào)整上下文窗口大小(-c);設(shè)置并行處理數(shù)量(-np);啟用緩存重用(--cache-reuse);使用投機(jī)解碼技術(shù);以及根據(jù)模型建議調(diào)整溫度、top-p等采樣參數(shù)。
特別聲明:以上內(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.