Chat & Génération#

Apprenez à discuter avec un LLM dans Xinference.

Introduction#

Les modèles capables de chat ou de generate sont souvent appelés grands modèles de langage (LLM) ou modèles de génération de texte. Ces modèles sont conçus pour répondre sous forme de texte en fonction des entrées reçues, généralement appelées « prompts ». En général, il est possible de guider ces modèles pour accomplir des tâches en leur fournissant des instructions spécifiques ou des exemples concrets.

Les modèles capables de la fonction generate sont généralement de grands modèles de langage pré-entraînés. En revanche, les modèles dotés de la fonction chat sont des LLM (Language Model) affinés et alignés, optimisés pour les scénarios de dialogue. Dans la plupart des cas, les modèles se terminant par « chat » (par exemple llama-2-chat, qwen-chat, etc.) possèdent la fonction chat.

L’API Chat et l’API Generate offrent deux méthodes différentes d’interaction avec les LLMs :

Capacité du modèle

Endpoint API

Point de terminaison compatible OpenAI

chat

Chat API

/v1/chat/completions

generate

Generate API

/v1/completions

Liste des modèles pris en charge#

Vous pouvez consulter toutes les capacités des modèles LLM intégrés dans Xinference.

Modèle de chat#

Chat API#

Essayez d’utiliser cURL, OpenAI Client ou le client Python de Xinference pour tester l’API Chat :

curl -X 'POST' \
  'http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "<MODEL_UID>",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "What is the largest animal?"
        }
    ],
    "max_tokens": 512,
    "temperature": 0.7
  }'

Vous pouvez trouver plus d’exemples de l’API Chat dans le carnet de tutoriel.

Gradio Chat

Exemple d’apprentissage de l’utilisation de l’API Chat de Xinference et du client Python.

https://github.com/xorbitsai/inference/blob/main/examples/gradio_chatinterface.py

Modèle de réflexion hybride#

Certains grands modèles de langage sont étiquetés comme hybrides, avec la possibilité de choisir d’activer ou non le mode réflexion.

Ajouté dans la version v1.17.0: Le commutateur enable_thinking au niveau de la requête est pris en charge dans la v1.17.0.

Xinference fournit un interrupteur enable_thinking au niveau de la requête, qui s’applique à différents modèles de templates (par exemple, Qwen utilise enable_thinking, tandis que certains templates DeepSeek utilisent thinking).

Exemple d’utilisation :

curl -X 'POST' \
  'http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "<MODEL_UID>",
    "messages": [
        {"role": "user", "content": "What is the largest animal?"}
    ],
    "enable_thinking": false
  }'

Modèle génératif#

Generate API#

Generate API reproduit l”API Completions d’OpenAI.

La principale différence entre l’API Generate et l’API Chat réside dans le format d’entrée. L’API Chat accepte une liste de messages en entrée, tandis que l’API Generate accepte une chaîne de texte libre appelée prompt en entrée.

curl -X 'POST' \
  'http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "<MODEL_UID>",
    "prompt": "What is the largest animal?",
    "max_tokens": 512,
    "temperature": 0.7
  }'

FAQ#

Xinference fournit-il des méthodes d’intégration avec LangChain ou LlamaIndex pour son LLM ?#

Oui, vous pouvez vous référer aux sections correspondantes de la documentation officielle Xinference pour chacun d’eux. Voici les liens :