OpenClaw使用llama.cpp本地大模型部署完整教程

2026-06-20阅读 0热度 0
ai

前言

本教程基于实际操作整理,适用于 Windows WSL2 环境

全程使用 openclaw 帮我搭建大模型

把大模型跑在本地,听着就挺酷的,但实操起来总有很多坑要踩。好在 llama.cpp 这套工具已经把门槛降得很低了,配合 WSL2 环境,只要跟着步骤来,基本不会出岔子。下面就从零开始,把整个过程梳理一遍。

一、环境准备

1. 硬件要求

显卡推荐模型显存占用
GTX 1050 Ti (4GB)Qwen2.5-3B Q4~2.5GB
RTX 4060 (8GB)Qwen2.5-7B Q4~5GB
RTX 4090 (24GB)Qwen2.5-32B Q4~20GB

显存是硬门槛。4GB 的 1050 Ti 跑 3B 模型刚好,8GB 的 4060 可以上 7B,如果是 4090 那就基本没什么束缚了。选模型前先看一眼自己显卡的显存。

2. 安装编译工具(WSL Ubuntu)

sudo apt update
sudo apt install -y cmake build-essential

WSL 里默认不带这些编译工具,第一步就是补上它们。很简单,两条命令搞定。

二、下载和编译 llama.cpp

1. 克隆源码

mkdir -p ~/llama.cpp
cd ~/llama.cpp
git clone --depth 1 https://github.com/ggerganov/llama.cpp.git src

--depth 1 只拉最新版本,省时间也省空间。

2. 编译

cd ~/llama.cpp/src
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc) llama-cli llama-server

编译只针对 llama-clillama-server 两个目标,其他不相关的一律跳过。完成后可执行文件在 ~/llama.cpp/src/build/bin/ 下。

三、下载模型

1. 创建模型目录

mkdir -p ~/llama.cpp/models

2. 下载 GGUF 模型(使用国内镜像加速)

Qwen2.5-3B(适合 4GB 显存):

curl -L -o ~/llama.cpp/models/qwen2.5-3b-instruct-q4_k_m.gguf 
  "https://hf-mirror.com/Qwen/Qwen2.5-3B-Instruct-GGUF/resolve/main/qwen2.5-3b-instruct-q4_k_m.gguf"

Qwen2.5-7B(适合 8GB 显存):

curl -L -o ~/llama.cpp/models/qwen2.5-7b-instruct-q4_k_m.gguf 
  "https://hf-mirror.com/Qwen/Qwen2.5-7B-Instruct-GGUF/resolve/main/qwen2.5-7b-instruct-q4_k_m.gguf"

用国内的 hf-mirror 镜像,下载速度会快很多,不用科学上网。

四、运行模型

方式一:命令行交互模式

cd ~/llama.cpp/src/build/bin
./llama-cli -m ~/llama.cpp/models/qwen2.5-3b-instruct-q4_k_m.gguf 
  -c 4096 
  --no-display-prompt

参数说明:

  • -m 模型路径
  • -c 上下文长度(默认 512,建议 4096)
  • -ngl GPU 层数(纯 CPU 可不加)

直接用命令行就能跟模型对话,适合快速测试。

方式二:启动 API 服务

cd ~/llama.cpp/src/build/bin
./llama-server 
  -m ~/llama.cpp/models/qwen2.5-3b-instruct-q4_k_m.gguf 
  --host 0.0.0.0 
  --port 8080 
  -c 4096

服务启动后访问:http://localhost:8080

这个方式更适合集成到自己的应用里,后面会详细介绍 API 怎么调。

五、API 调用方法

API 信息

项目
地址http://localhost:8080
API Key不需要(或随意填写)
兼容格式OpenAI API

端点列表

端点说明
POST /v1/chat/completions聊天补全
POST /v1/completions文本补全
GET /health健康检查
GET /Web 聊天界面

好消息是它兼容 OpenAI 的 API 格式,所以客户端代码改个 base_url 就能直接用。

调用示例

curl

curl http://localhost:8080/v1/chat/completions 
  -H "Content-Type: application/json" 
  -d '{
    "model": "qwen2.5-3b",
    "messages": [
      {"role": "system", "content": "你是一个有帮助的助手。"},
      {"role": "user", "content": "你好,介绍一下你自己"}
    ],
    "temperature": 0.7,
    "max_tokens": 512
  }'

Python(OpenAI SDK)

from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="not-needed"
)
response = client.chat.completions.create(
    model="qwen2.5-3b",
    messages=[
        {"role": "system", "content": "你是一个有帮助的助手。"},
        {"role": "user", "content": "你好"}
    ],
    temperature=0.7,
    max_tokens=512
)
print(response.choices[0].message.content)

Node.js

const response = await fetch('http://localhost:8080/v1/chat/completions', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    model: 'qwen2.5-3b',
    messages: [{ role: 'user', content: '你好' }]
  })
});
const data = await response.json();
console.log(data.choices[0].message.content);

三种写法任你挑,Python 最简单,Node.js 原生 fetch 也很轻量。

六、常用参数说明

服务端参数(llama-server)

参数说明示例
-m模型路径-m model.gguf
--host监听地址--host 0.0.0.0
--port端口--port 8080
-c上下文长度-c 4096
-nglGPU 层数-ngl 99(全部放 GPU)
-np并行请求数-np 4
--api-key设置 API Key--api-key your-key

API 请求参数

参数说明默认值
temperature随机性(0-2)0.7
max_tokens最大生成长度模型上限
top_p核采样1.0
stream流式输出false
stop停止词[]

参数这块记几个常用的就行:-ngl 控制 GPU 负载,-np 用来提高并发能力,temperaturemax_tokens 基本每次都要调。

七、常见问题

Q1: 报错 "CUDA out of memory"

减少 -ngl 数值,让部分层用 CPU 计算:

./llama-server -m model.gguf -ngl 20  # 只放 20 层到 GPU

Q2: 中文乱码

PowerShell 执行:

chcp 65001

Q3: 如何后台运行服务?

nohup ./llama-server -m model.gguf --host 0.0.0.0 --port 8080 > server.log 2>&1 &

Q4: 如何设置 API Key 认证?

./llama-server -m model.gguf --api-key "your-secret-key"

调用时需要带上:

curl -H "Authorization: Bearer your-secret-key" ...

Q5: 从其他设备访问

  1. 查看 WSL IP:hostname -I
  2. 使用该 IP 访问,如 http://172.x.x.x:8080

这几条都是日常翻车的高频场景,提前记一下能省不少排查时间。

八、推荐模型

模型大小适合场景
Qwen2.5-3B-Instruct Q4~2GB轻量对话、低配设备
Qwen2.5-7B-Instruct Q4~4.5GB通用对话、代码
Qwen2.5-14B-Instruct Q4~9GB复杂推理
DeepSeek-R1-Distill-Qwen-7B Q4~4.5GB数学、逻辑推理
Mistral-7B-v0.3 Q5~5GB英文、代码

下载地址: https://hf-mirror.com(国内镜像)

如果只是为了跑通流程,从 3B 起步够了。想做正经项目,7B 是性价比之选。

九、文件结构

~/llama.cpp/
├── src/                    # llama.cpp 源码
│   └── build/
│       └── bin/
│           ├── llama-cli       # 命令行工具
│           └── llama-server    # API 服务
└── models/                 # 模型存放目录
    └── qwen2.5-3b-instruct-q4_k_m.gguf

记住这个结构,后面找文件就心里有数了。

十、快速启动脚本

创建 start-server.sh

#!/bin/bash
cd ~/llama.cpp/src/build/bin
./llama-server 
  -m ~/llama.cpp/models/qwen2.5-3b-instruct-q4_k_m.gguf 
  --host 0.0.0.0 
  --port 8080 
  -c 4096 
  -np 4

赋予执行权限:

chmod +x start-server.sh
./start-server.sh

基于 llama.cpp b7917 + Qwen2.5-3B-Instruct

总结

以上就是用 llama.cpp 在 WSL2 上部署本地大模型的完整流程,从环境准备到 API 调用,每一步都给出了可以直接执行的命令。只要按顺序来,基本不会遇到意外。如果想尝试其他模型,只需要替换下载链接和启动参数里的文件路径即可。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策