> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer un endpoint serverless

Ce guide prend le déploiement d’un **modèle Llama 3.1 8B** comme exemple pour expliquer comment créer un endpoint serverless à partir de zéro.

## Étape 1 : Préparer l’image de conteneur

Vous devez au préalable empaqueter l’environnement d’exécution dans une image Docker et la téléverser vers un registre d’images. Actuellement, <a href="https://novita.ai">Novita AI</a> prend en charge la spécification d’un **« registre d’images public »** et d’un **« registre d’images privé »** (y compris les identifiants d’accès au registre d’images).

Nous utilisons le registre d’images officiel vLLM pour servir le modèle Llama 3.1 8B : `vllm/vllm-openai:latest`. Vous pouvez utiliser directement cette adresse d’image.

## Étape 2 : Accéder à la console

Accédez à la <a href="https://novita.ai/gpu-instance/console/serverless">console Serverless</a>, sélectionnez la spécification d’instance de conteneur GPU appropriée, puis cliquez sur **« Créer un endpoint »**.

<Tip>
  Actuellement, seules les spécifications d’instance **RTX 4090 24GB** sont prises en charge. D’autres options seront progressivement disponibles ; restez attentif aux annonces officielles.
</Tip>

## Étape 3 : Configurer l’endpoint serverless

Ici, nous utilisons l’image publique `vllm/vllm-openai:latest` comme exemple de configuration :

* **Nom de l’endpoint** : Utilisé pour identifier votre endpoint de manière unique. Le système générera un nom par défaut, mais vous pouvez également en spécifier un vous-même.
* **Nom de l’application** : Le nom de l’application fait partie de l’URL de l’endpoint. Il est facultatif et personnalisable ; **seules les lettres minuscules, les chiffres et les traits d’union sont autorisés**. S’il n’est pas spécifié, le système en générera un automatiquement.
* **Configuration des Workers**
  * **Workers Min** : Le nombre minimal de Workers à conserver. Il peut être défini sur 0, de sorte qu’aucun Worker ne sera conservé lorsque votre service ne reçoit aucune requête. Notez qu’un réglage à 0 peut empêcher de répondre rapidement aux requêtes ultérieures. Soyez prudent si votre scénario exige un temps de réponse rapide.
  * **Workers Max** : Le nombre maximal de Workers à conserver. Lorsque le volume de requêtes de votre service augmente et déclenche le mécanisme d’auto-scaling, le nombre de Workers augmente. Cette configuration limite le nombre maximal de Workers afin d’aider à contrôler les coûts.
  * **Délai d’inactivité (secondes)** : Lorsque le mécanisme d’auto-scaling déclenche la mise hors ligne d’un Worker, la plateforme conserve ce Worker pendant la durée spécifiée afin de traiter rapidement d’éventuelles augmentations de requêtes ultérieures. Notez que la plateforme vous facturera cette durée.
  * **Concurrence maximale** : Le nombre maximal de requêtes concurrentes que chaque Worker peut traiter. Lorsque la concurrence dépasse la valeur maximale, les requêtes sont réparties vers d’autres Workers. Si tous les Workers sont entièrement occupés, les requêtes sont mises en file d’attente pour exécution.
  * **GPU/Worker** : Le nombre de GPU occupés par chaque Worker.
  * **Version CUDA** : Prend en charge la spécification de la version CUDA.
* **Politique de mise à l’échelle** :
  * **Délai de file d’attente** : Ajuste le nombre de Workers en fonction du temps d’attente des requêtes dans la file d’attente. Vous devez configurer le « Délai de file d’attente (secondes) ». Lorsque le temps d’attente des requêtes dans la file d’attente dépasse cette valeur, l’auto-scaling est déclenché. Lorsqu’il est inférieur à cette valeur, l’auto-scaling déclenche une réduction de capacité (combinée avec le « Délai d’inactivité (secondes) » défini précédemment pour déterminer le moment exact où le Worker sera mis hors ligne).
  * **Nombre de requêtes** : Ajuste le nombre de Workers en fonction du nombre de requêtes dans la file d’attente. Vous devez configurer le « Nombre maximal de requêtes dans la file d’attente ». Lorsque le nombre de requêtes dans la file d’attente dépasse cette valeur, l’auto-scaling est déclenché. Lorsqu’il est inférieur à cette valeur, l’auto-scaling déclenche une réduction de capacité (combinée avec le « Délai d’inactivité (secondes) » défini précédemment pour déterminer le moment exact où le Worker sera mis hors ligne).
* **Configuration de l’image** :
  * **Image de conteneur** : L’adresse du registre d’images, par exemple `vllm/vllm-openai:latest`.
  * **Identifiants du registre de conteneurs** : Lorsque vous spécifiez un registre d’images privé, vous devez définir les identifiants d’accès. Veuillez les configurer via <a href="https://novita.ai/gpu-instance/console/settings" target="_blank">Settings - Container Registry Auth</a>.
  * **Port HTTP** : Le port HTTP exposé par les Workers. Le load balancer transmettra les requêtes vers ce port des Workers, par exemple `8080` dans ce cas.
  * **Commande de démarrage du conteneur** : La commande exécutée au démarrage du conteneur. Par exemple : `--model meta-llama/Llama-3.1-8B-Instruct --max-model-len 4096`.
* **Configuration du stockage** : Vous pouvez configurer ici le disque du conteneur, le disque de volume et le volume réseau. Actuellement, les tailles du disque du conteneur et du disque de volume sont fixes. D’autres options seront progressivement disponibles ; restez attentif aux annonces officielles.
* **Autres** :
  * **Chemin de health check** : Le **load balancer** intégré effectuera des health checks via ce chemin. Il déterminera s’il faut transmettre les requêtes au Worker selon que le code de statut renvoyé est `200`, par exemple `/health`.
  * **Variables d’environnement** : Vous pouvez configurer ici les variables d’environnement dont dépend le service. Par exemple : `HUGGING_FACE_HUB_TOKEN={Your Hugging Face Access Token (with read permission)}`.

Après avoir confirmé que la configuration est correcte, cliquez sur **« Déployer »** pour terminer le processus de création.

## Étape 4 : Accéder au service de modèle Llama 3 8B déployé

Vous pouvez trouver l’endpoint serverless que vous venez de créer dans la <a href="https://novita.ai/gpu-instance/console/serverless">console Serverless</a>. Lorsque le statut de l’endpoint passe à **« Serving »** et qu’au moins un Worker est à l’état **« Running »**, cliquez sur le bouton **« Copier »** pour copier l’URL permettant d’accéder au service de modèle.

Vous pouvez également utiliser la commande `curl` pour accéder au service comme ci-dessous :

```bash theme={"system"}
curl "{URL you just copied}/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Llama-3.1-8B-Instruct",
    "messages": [
        {
            "role": "system",
            "content": "Act like you are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Hi there!"
        }
    ],
    "max_tokens": 512
}'
```

## Étape suivante

Ensuite, veuillez consulter le document [Gérer un endpoint serverless](/docs/fr/guides/serverless-gpus-quickstart-manage-endpoint) pour apprendre à vérifier et modifier l’endpoint serverless que vous venez de créer.
