)
llama.cpp Docker部署一條命令跑通本地推理服務(wù)【免費(fèi)下載鏈接】llama.cppLLM inference in C/C項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ll/llama.cppllama.cpp 是一個(gè)用純 C/C 實(shí)現(xiàn)的本地大模型推理引擎把它的 llama-server 裝進(jìn) Docker 之后你就得到一個(gè)開箱即用的容器化推理服務(wù)模型文件留在宿主機(jī)上掛載進(jìn)容器OpenAI 兼容接口立刻可以調(diào)用宿主機(jī)不用裝任何 Python 環(huán)境。誰(shuí)適合用這套方案想在自己的服務(wù)器或工作站上跑開源模型又不想被編譯依賴弄臟系統(tǒng)環(huán)境給應(yīng)用提供一個(gè)/v1/chat/completions兼容接口且目標(biāo)就是單機(jī)單卡或純 CPU需要可復(fù)制的推理環(huán)境同一份鏡像加同一組參數(shù)換臺(tái)機(jī)器照樣起如果你的目標(biāo)是多機(jī)分布式推理或大規(guī)模自動(dòng)擴(kuò)縮容llama.cpp 并不是合適的選型它的設(shè)計(jì)定位是單機(jī)、單模型、單服務(wù)。 快速上手5 分鐘看到效果最短路徑是用官方 server 鏡像跑 CPU 版容器里只有 llama-server 可執(zhí)行文件模型不拷進(jìn)鏡像而是用卷掛載的方式放進(jìn)去。mkdir -p ~/llama/models # GGUF 模型文件放這里 docker run -d --name llama-server -p 8080:8080 \ -v ~/llama/models:/models \ ghcr.io/ggml-org/llama.cpp:server \ -m /models/model-q4_k_m.gguf \ --host 0.0.0.0 -c 4096這條命令做了四件事把容器 8080 端口映射到宿主機(jī)、掛載模型目錄、加載模型、以 4096 上下文啟動(dòng) HTTP 服務(wù)。啟動(dòng)日志里出現(xiàn)服務(wù)就緒字樣后就可以往下走驗(yàn)證環(huán)節(jié)了。整體流程如下環(huán)境要求與準(zhǔn)備項(xiàng)目建議值說明Docker20.10宿主機(jī)上正常運(yùn)行內(nèi)存8GB 起7B 級(jí) Q4_K_M 模型約占 6GB 內(nèi)存磁盤20GB存 GGUF 文件幾個(gè) G 到幾十個(gè) G 不等NVIDIA 環(huán)境驅(qū)動(dòng) 容器工具包僅 GPU 加速場(chǎng)景需要目錄規(guī)劃記住兩條模型放在便于掛載的目錄如~/llama/models并確認(rèn)容器用戶對(duì)該目錄有讀權(quán)限。模型可以是 GGUF 官方量化產(chǎn)物也可以用 convert_hf_to_gguf.py 從 Hugging Face 權(quán)重自行轉(zhuǎn)換。分場(chǎng)景部署? 純 CPU把快速上手的命令換一行寫全就是 CPU 版完整配置。生成慢的時(shí)候顯式把-t設(shè)成物理核心數(shù)通常比默認(rèn)自動(dòng)探測(cè)更好docker run -d --name llama-cpu -p 8080:8080 -v ~/llama/models:/models ghcr.io/ggml-org/llama.cpp:server -m /models/model-q4_k_m.gguf --host 0.0.0.0 -t 8 GPU 加速NVIDIA先在宿主機(jī)裝好 nvidia-container-toolkit安裝步驟見 NVIDIA 官方文檔再用docker run --rm --gpus all nvidia/cuda nvidia-smi確認(rèn)容器內(nèi)能看到卡。然后換server-cuda鏡像并加上--gpus alldocker run -d --name llama-cuda --gpus all \ -p 8080:8080 -v ~/llama/models:/models \ ghcr.io/ggml-org/llama.cpp:server-cuda \ -m /models/model-q4_k_m.gguf \ --host 0.0.0.0 --n-gpu-layers 99--n-gpu-layers 99的意思是盡量多地把層放到 GPU 上顯存不夠時(shí) llama.cpp 會(huì)自動(dòng)回退到 CPU。AMD 顯卡把鏡像換成-rocm后綴即可Intel 核顯可用-intelSYCL變體完整鏡像清單見 docs/docker.md。 生產(chǎn)環(huán)境docker compose 固定配置要長(zhǎng)期運(yùn)行的服務(wù)建議把參數(shù)鎖進(jìn) compose 文件重啟策略、GPU 資源預(yù)留、健康檢查都寫在文件里。官方鏡像支持用LLAMA_ARG_*環(huán)境變量傳參命令行一個(gè)參數(shù)都不用敲。services: llama-server: image: ghcr.io/ggml-org/llama.cpp:server-cuda restart: unless-stopped ports: [8080:8080] volumes: [./models:/models, ./logs:/app/logs] environment: LLAMA_ARG_MODEL: /models/model-q4_k_m.gguf LLAMA_ARG_HOST: 0.0.0.0 LLAMA_ARG_CTX_SIZE: 8192 deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] healthcheck: test: [CMD, curl, -f, http://localhost:8080/health] interval: 30sdocker compose up -d即可。需要多實(shí)例時(shí)起多個(gè)容器映射不同端口、前面掛一層反向代理就夠了不必額外引入編排層。驗(yàn)證跑通與首次調(diào)用先用一條命令確認(rèn)服務(wù)活著再發(fā)一次真實(shí)生成請(qǐng)求curl -s http://localhost:8080/health # 期望返回 {status:ok} curl -s http://localhost:8080/completion -d {prompt:一句話解釋 Docker,n_predict:40}第二條命令返回帶content字段的 JSON說明 llama.cpp 容器化推理服務(wù)已經(jīng)跑通。另外 llama-server 自帶 Web UI瀏覽器直接打開http://localhost:8080就能試聊適合做冒煙測(cè)試。?? 參數(shù)調(diào)優(yōu)與進(jìn)階推理的核心計(jì)算是大量矩陣乘法量化檔位和 GPU 卸載策略直接決定速度與顯存占用參數(shù)建議值一句話說明--n-gpu-layers99盡量全放 GPU不夠自動(dòng)回退-c上下文4096~8192KV 緩存內(nèi)存隨上下文近似線性增長(zhǎng)-t線程物理核心數(shù)CPU 部署時(shí)顯式指定-b/-ub512批越大提示詞處理越快-fa ononFlash Attention 省顯存量化檔位Q4_K_M精度與體積的平衡點(diǎn)常見問題現(xiàn)象可能原因處理辦法啟動(dòng)提示找不到模型掛載路徑寫錯(cuò)或文件沒就位docker exec -it llama-server ls /models核對(duì)容器內(nèi)看不到 GPU宿主機(jī)未裝容器工具包安裝 nvidia-container-toolkit 后重啟 Docker生成中途 OOM上下文過大或量化檔位偏高調(diào)小-c或換更小的量化版本端口被占用8080 已被其他服務(wù)占用把映射改成8081:8080再啟動(dòng)CPU 上生成慢線程數(shù)不足-t設(shè)為物理核心數(shù)或遷到 GPU 部署收個(gè)尾llama.cpp 的 Docker 部署把模型 推理服務(wù)打包成一份可復(fù)制的鏡像新機(jī)器上一條docker run就能立刻獲得 OpenAI 兼容的推理接口。鏡像與參數(shù)細(xì)節(jié)可查 docs/docker.md服務(wù)端的完整參數(shù)列表和 API 說明在 tools/server/ 目錄里?!久赓M(fèi)下載鏈接】llama.cppLLM inference in C/C項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考