llama-server 与 OpenAI 端点部署指南

通过 llama-server 部署并提供与 OpenAI 兼容的端点

我们正在部署 Devstral-2 —— 参见 Devstral 2 以获取有关该模型的更多详细信息。

获取最新的 llama.cpp此处的 GitHubarrow-up-right。您也可以按照下面的构建说明进行。若 -DGGML_CUDA=ON 更改为 -DGGML_CUDA=OFF 如果您没有 GPU 或仅想要在 CPU 上进行推理。 对于 Apple Mac / Metal 设备,设置 -DGGML_CUDA=OFF 然后照常继续 - Metal 支持默认启用。

apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
circle-info

在使用 --jinja 时,llama-server 会追加以下系统消息(如果支持工具): 以 JSON 格式响应,要么使用 tool_call(请求调用工具),要么使用 response 回应用户的请求 。这有时会对微调造成问题!请参见 llama.cpp 仓库arrow-up-right 以获取更多详细信息。

首先下载 Devstral 2:

# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Devstral-2-123B-Instruct-2512-GGUF",
    local_dir = "Devstral-2-123B-Instruct-2512-GGUF",
    allow_patterns = ["*UD-Q2_K_XL*", "*mmproj-F16*"],
)

要将 Devstral 2 部署到生产环境,我们使用 llama-server 在新终端(例如通过 tmux)中,通过以下命令部署模型:

运行上述命令后,您将获得:

然后在新终端中,执行 pip install openai,然后执行:

这将仅打印 4。 你可以返回到 llama-server 屏幕,可能会看到一些有趣的统计信息:

关于诸如使用推测解码等参数,请参见 https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.mdarrow-up-right

Llama-server 的怪异行为

  • 在使用 --jinja 时,llama-server 会追加以下系统消息(如果支持工具): 以 JSON 格式响应,要么使用 tool_call(请求调用工具),要么使用 response 回应用户的请求 。这有时会对微调造成问题!请参见 llama.cpp 仓库arrow-up-right 以获取更多详情。 你可以通过使用来停止此行为 --no-jinja 但这样一来, 工具 将不再受支持。 例如 FunctionGemma 默认使用:

    但由于 llama-server 追加了一条额外消息,我们得到:

    我们已将该问题报告给 https://github.com/ggml-org/llama.cpp/issues/18323arrow-up-right llama.cpp 的开发者正在努力修复此问题! 在此期间,对于所有微调,请特别添加用于工具调用的提示词!

🧰使用 llama-server 的工具调用

GLM 4.7 的工具调用 Tool Calling Guide 有关如何进行工具调用的说明!

最后更新于

这有帮助吗?