LLaMA.cpp
LLaMA.cpp 是一个开源的 LLaMA 模型推理引擎,支持在各种硬件上高效运行大型语言模型。
支持的模型
LLaMA 系列
- LLaMA 2 (7B, 13B, 70B)
- LLaMA 3 (8B, 70B)
其他模型
- Mistral (7B, Mixtral 8x7B)
- Qwen (7B, 14B, 72B)
- Code Llama
- 其他 GGUF 格式模型
配置
基础配置
在 config.yaml 或 ~/.bytebuddy/config.yaml 中配置:
yaml
models:
- name: "llamacpp-local"
provider: "llamacpp"
model: "llama-2-7b-chat"
apiBase: "http://localhost:8080"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 2048高性能配置
yaml
models:
- name: "llamacpp-performance"
provider: "llamacpp"
model: "mixtral-8x7b-instruct"
apiBase: "http://localhost:8080"
roles: ["chat", "edit"]
defaultCompletionOptions:
temperature: 0.5
maxTokens: 4096
topP: 0.9多模型配置
yaml
models:
- name: "llamacpp-chat"
provider: "llamacpp"
model: "llama-2-7b-chat"
apiBase: "http://localhost:8080"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 2048
- name: "llamacpp-code"
provider: "llamacpp"
model: "codellama-7b-instruct"
apiBase: "http://localhost:8080"
roles: ["edit", "apply"]
defaultCompletionOptions:
temperature: 0.2
maxTokens: 1024配置字段
必需字段
- name: 模型配置的唯一标识符
- provider: 设置为
"llamacpp" - apiBase: LLaMA.cpp 服务器地址
可选字段
- model: 模型名称
- roles: 模型角色 [
chat,edit,apply,autocomplete] - defaultCompletionOptions:
temperature: 控制随机性 (0-2)maxTokens: 最大令牌数topP: 核采样参数topK: 采样候选数量repeatPenalty: 重复惩罚 (1.0-2.0)seed: 随机种子
安装和设置
1. 下载和编译
bash
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make2. 下载模型
从 HuggingFace 下载 GGUF 格式的模型:
bash
# 示例:下载 Llama 2 7B Chat
wget https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q4_K_M.gguf3. 启动服务器
bash
./server -m llama-2-7b-chat.Q4_K_M.gguf --host 0.0.0.0 --port 8080 -c 20484. 验证连接
bash
curl http://localhost:8080/health使用场景配置
本地开发
yaml
models:
- name: "local-dev"
provider: "llamacpp"
model: "llama-2-7b-chat"
apiBase: "http://localhost:8080"
roles: ["chat", "edit"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 2048代码生成
yaml
models:
- name: "code-gen"
provider: "llamacpp"
model: "codellama-7b-instruct"
apiBase: "http://localhost:8080"
roles: ["edit", "apply"]
defaultCompletionOptions:
temperature: 0.2
maxTokens: 1024
topK: 40远程服务器
yaml
models:
- name: "remote-server"
provider: "llamacpp"
model: "mixtral-8x7b-instruct"
apiBase: "http://192.168.1.100:8080"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 4096服务器参数
常用启动参数
bash
./server \
-m model.gguf \ # 模型文件
--host 0.0.0.0 \ # 监听地址
--port 8080 \ # 监听端口
-c 2048 \ # 上下文大小
--n-gpu-layers 99 \ # GPU 层数(GPU 加速)
--batch-size 512 \ # 批处理大小
--ctx-size 2048 # 上下文窗口大小性能优化参数
bash
./server \
-m model.gguf \
--host 0.0.0.0 \
--port 8080 \
-c 4096 \
--n-gpu-layers 99 \
--threads 8 \ # CPU 线程数
--batch-size 1024 \
--temperature 0.7 \
--repeat-penalty 1.1硬件要求
最低要求
- RAM: 8GB
- 存储: 10GB
- CPU: 4 核心
推荐配置
- RAM: 16GB+
- GPU: VRAM 8GB+(用于 GPU 加速)
- CPU: 8+ 核心
- 存储: SSD
高性能配置
- RAM: 32GB+
- GPU: VRAM 16GB+
- CPU: 16+ 核心
- 高速 SSD
模型量化
GGUF 格式提供多种量化级别:
- Q2_K: 最小文件,质量较低
- Q4_K_M: 推荐的平衡选择
- Q5_K_M: 更好质量,文件稍大
- Q8_0: 最佳质量,文件最大
故障排除
常见问题
连接被拒绝
- 确保服务器正在运行
- 检查端口和地址
- 验证防火墙设置
内存不足
- 使用较小的模型
- 启用 GPU 加速
- 增加虚拟内存
响应缓慢
- 启用 GPU 层
- 增加线程数
- 优化批处理大小
调试步骤
- 检查服务器日志
- 监控系统资源
- 测试不同模型
- 调整服务器参数
最佳实践
1. 模型选择
- 根据硬件选择合适大小
- 使用合适的量化级别
- 考虑用途选择模型类型
2. 性能优化
- 启用 GPU 加速
- 调整批处理大小
- 优化线程设置
3. 资源管理
- 监控内存使用
- 定期清理缓存
- 合理设置上下文大小
4. 安全性
- 本地部署确保数据隐私
- 限制网络访问(仅 localhost)
- 定期更新 LLaMA.cpp