llama-server & OpenAI-kompatible Endpoint Deployment-Anleitung

Bereitstellung via llama-server mit einem OpenAI-kompatiblen Endpoint

Wir werden Devstral-2 bereitstellen - siehe Devstral 2 für weitere Details zum Modell.

Holen Sie sich die neueste llama.cpp auf GitHub hierarrow-up-right. Sie können auch den unten stehenden Build-Anweisungen folgen. Ändern Sie -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn Sie keine GPU haben oder nur CPU-Inferenz wünschen.

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

Bei Verwendung von --jinja fügt llama-server die folgende Systemnachricht hinzu, wenn Werkzeuge unterstützt werden: Antworten Sie im JSON-Format, entweder mit tool_call (eine Anforderung zum Aufrufen von Werkzeugen) oder mit response als Antwort auf die Anfrage des Benutzers . Dies verursacht manchmal Probleme bei Fine-Tunes! Siehe das llama.cpp-Repoarrow-up-right für weitere Details.

Laden Sie zuerst Devstral 2 herunter:

# !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*"],
)

Um Devstral 2 in Produktion bereitzustellen, verwenden wir llama-server In einem neuen Terminal, z. B. via tmux, deployen Sie das Modell über:

Wenn Sie das Obige ausführen, erhalten Sie:

Dann in einem neuen Terminal, nachdem Sie pip install openai, tun Sie:

Was einfach 4 ausgibt. Sie können zum llama-server-Bildschirm zurückkehren und dort einige Statistiken sehen, die interessant sein könnten:

Für Argumente wie die Verwendung von spekulativem Decoding siehe https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.mdarrow-up-right

Eigenheiten von llama-server

  • Bei Verwendung von --jinja fügt llama-server die folgende Systemnachricht hinzu, wenn Werkzeuge unterstützt werden: Antworten Sie im JSON-Format, entweder mit tool_call (eine Anforderung zum Aufrufen von Werkzeugen) oder mit response als Antwort auf die Anfrage des Benutzers . Dies verursacht manchmal Probleme bei Fine-Tunes! Siehe das llama.cpp-Repoarrow-up-right für weitere Details. Sie können dies stoppen, indem Sie --no-jinja verwenden, werden dann nicht mehr unterstützt. Zum Beispiel verwendet FunctionGemma standardmäßig: Aber wegen der zusätzlichen Nachricht, die llama-server anhängt, erhalten wir:

    Sie sind ein Modell, das Funktionsaufrufe mit den folgenden Funktionen ausführen kann\n\nAntworten Sie im JSON-Format, entweder mit `tool_call` (eine Aufforderung, Werkzeuge aufzurufen) oder mit `response` als Antwort auf die Anfrage des Benutzers

    https://github.com/ggml-org/llama.cpp/issues/18323 und die Entwickler von llama.cpp arbeiten an einer Lösung! In der Zwischenzeit fügen Sie bitte für alle Fine-Tunes die Aufforderung speziell für Tool-Aufrufe hinzu!arrow-up-right Tool-Aufrufe mit llama-server

🧰wie man Tool-Aufrufe durchführt!

Siehe Tool Calling Guide auf, wie man Tool-Aufrufe durchführt!

Zuletzt aktualisiert

War das hilfreich?