Guide de déploiement llama-server & endpoint compatible OpenAI

Déploiement via llama-server avec un endpoint compatible OpenAI

Nous sommes en train de déployer Devstral-2 - voir Devstral 2 pour plus de détails sur le modèle.

Obtenez le dernier llama.cpp sur GitHub iciarrow-up-right. Vous pouvez suivre les instructions de compilation ci-dessous également. Changez -DGGML_CUDA=ON en -DGGML_CUDA=OFF si vous n'avez pas de GPU ou si vous voulez simplement une inférence CPU.

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

Lors de l'utilisation de --jinja llama-server ajoute le message système suivant si les outils sont pris en charge : Répondez au format JSON, soit avec tool_call (une demande d'appel d'outils), soit avec response en réponse à la demande de l'utilisateur . Cela cause parfois des problèmes avec les fine-tunes ! Voir le dépôt llama.cpparrow-up-right pour plus de détails.

Téléchargez d'abord 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*"],
)

Pour déployer Devstral 2 en production, nous utilisons llama-server Dans un nouveau terminal, par exemple via tmux, déployez le modèle via :

Lorsque vous exécutez ce qui précède, vous obtiendrez :

Puis, dans un nouveau terminal, après avoir fait pip install openai, faites :

Ce qui affichera simplement 4. Vous pouvez revenir à l'écran de llama-server et vous pourriez voir quelques statistiques qui peuvent être intéressantes :

Pour des arguments comme l'utilisation du décodage spéculatif, voir https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.mdarrow-up-right

Particularités de llama-server

  • Lors de l'utilisation de --jinja llama-server ajoute le message système suivant si les outils sont pris en charge : Répondez au format JSON, soit avec tool_call (une demande d'appel d'outils), soit avec response en réponse à la demande de l'utilisateur . Cela cause parfois des problèmes avec les fine-tunes ! Voir le dépôt llama.cpparrow-up-right pour plus de détails. Vous pouvez arrêter cela en utilisant --no-jinja mais alors les outils ne seront plus pris en charge. Par exemple, FunctionGemma utilise par défaut :

    Mais à cause de l'ajout d'un message supplémentaire par llama-server, nous obtenons :

    Nous avons signalé le problème à https://github.com/ggml-org/llama.cpp/issues/18323arrow-up-right et les développeurs de llama.cpp travaillent sur un correctif ! En attendant, pour tous les fine-tunes, veuillez ajouter l'invite spécifiquement pour l'appel d'outils !

🧰Appel d'outils avec llama-server

Voir Tool Calling Guide sur la façon de faire des appels d'outils !

Mis à jour

Ce contenu vous a-t-il été utile ?