llama-server 与 OpenAI 端点部署指南

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

我们将部署 Devstral-2 - 请参见 Devstral 2 以获取有关该模型的更多详情。

获取最新的 llama.cpp 默认开启 GitHub 仓库。你也可以按照下面的构建说明进行。将 -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

在使用 --jinja llama-server 时,如果支持工具,它会附加以下系统消息: 请以 JSON 格式回复,使用 tool_call(调用工具的请求)或 response 来回复用户的请求 。这有时会导致微调出现问题!请参见 llama.cpp 仓库 了解更多细节。

首先下载 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 界面,你可能会看到一些统计信息,可能会很有意思:

关于使用 speculative decoding 等参数,请参见 https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md

Llama-server 的怪癖

  • 在使用 --jinja llama-server 时,如果支持工具,它会附加以下系统消息: 请以 JSON 格式回复,使用 tool_call(调用工具的请求)或 response 来回复用户的请求 。这有时会导致微调出现问题!请参见 llama.cpp 仓库 以了解更多详情。 你可以通过使用以下方式停止它 --no-jinja 但这样 工具 就不再受支持。 例如,FunctionGemma 默认使用:

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

    我们已将该问题报告给 https://github.com/ggml-org/llama.cpp/issues/18323 而且 llama.cpp 开发者正在着手修复! 与此同时,对于所有微调,请务必专门添加用于工具调用的提示词!

🧰使用 llama-server 进行工具调用

查看 Tool Calling Guide 关于如何进行工具调用!

最后更新于

这有帮助吗?