← Back

Guides

Un guide étape par étape sur la façon de déployer Llama 3.1 8B sur Compute avec Hivenet

Un guide de configuration rapide et pratique pour déployer Llama 3.1 8B sur Hivenet Compute. Que vous ayez besoin d'une inférence performante ou d'une longueur de contexte étendue, ce guide vous explique comment installer les dépendances, servir le modèle et exposer les points de terminaison compatibles avec OpenAI.

🚀 Commencez dès maintenant et exploitez tout le potentiel de Llama 3.1 sur Hivenet Compute !

Exigences

  • 1 ordinateur X-Small exemple avec Ubuntu v24.04 LTS modèle
  • Jeton Hugging Face avec accès à Lama 3.1

Dépendances

Assurez-vous que les dépendances suivantes sont installées :

  • pépin
  • miniconda
  • vllm

Installation de dépendances

Pour éviter la perte des packages installés, toutes les dépendances doivent être installées dans /home/ubuntu/espace de travail annuaire.

Connectez-vous à votre instance Compute

Commencez par établir une connexion SSH avec votre instance Compute :

ssh -i ~/.ssh/id_rsa -o « ProxyCommand=ssh bastion@ssh.hivecompute.ai %h » ubuntu@d348351b-a04c-4b98-9d1a-2e474623395b.ssh.hivecompute.ai

Installer miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O install_miniconda.sh
bash install_miniconda.sh -b -p /home/ubuntu/workspace/opt/conda
export PATH=/home/ubuntu/workspace/opt/conda/bin : $PATH
init conda

Déconnectez puis reconnectez (CTRL+D) pour que les modifications soient prises en compte.

Installer vllm

pip install vllm

Servir Lama 3.1 8B

Les modèles Llama 3.1 ont une longueur de contexte maximale de 128 000 jetons. Sur un RTX 4090 (24 GO DE VRAM):

  • 16 GO est utilisé pour les paramètres du modèle (précision BF16)
  • 8 GO est disponible pour le cache KV
  • Cela permet jusqu'à 59 000 jetons dans la longueur du contexte
  • Pour des durées de contexte plus longues, utilisez Quantification FP8 ou un instance de calcul plus grande

Courir en toute précision (59 000 jetons)

export HF_TOKEN= <YOUR_HUGGING_FACE_TOKEN>nohup vllm serve META-LLAMA/LLAMA-3.1-8B-Instrut --download-dir /home/ubuntu/workspace --gpu-memory-utilization 1 --max-model-len 59000 &

Surveillez les journaux pour confirmer la disponibilité des terminaux :

queue -f nohup.out

Recherchez une sortie similaire à :
INFO 12-06 11:19:23 launcher.py:19] Les itinéraires disponibles sont les suivants :
INFO 12-06 11:19:23 launcher.py:27] Route : /openapi.json, Méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /docs, Méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /docs/oauth2-redirect, méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /redoc, Méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /health, Méthodes : GET
INFO 12-06 11:19:23 launcher.py:27] Route : /tokenize, Méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /detokenize, Méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/models, méthodes : GET
INFO 12-06 11:19:23 launcher.py:27] Route : /version, Méthodes : GET
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/chat/completions, méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/Completions, Méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/embeddings, méthodes : POST
INFO : Processus serveur démarré [93203]
INFO : En attente du démarrage de l'application.
INFO : Le démarrage de l'application est terminé.
INFO : Uvicorn fonctionne sur socket ('0.0.0.0', 8000) (appuyez sur CTRL+C pour quitter)

  1. Testez le modèle localement

curl -X POST "http://localhost:8000/v1/chat/completions" -H « Content-Type : application/json » --data '{"model » : « meta-llama/LLAMA-3.1-8B-Instrut », "messages » : [{"role » : « user », « content » : « qu'est-ce que l'IA ?"}] , « max_tokens » : 50} '

{"id » :"chat-c31b1784c32646d2ba146e72352b6fae », « object » :"chat.completion », « created » :1733491175, « model » :"Meta-Llama/Llama-3.1-8B-Instrut », « choices » : [{"index » :0, « message » : {"role » :"assistant », « content » :"L'intelligence artificielle (IA) fait référence à la simulation de l'intelligence humaine dans des machines programmées pour penser et apprendre comme les humains. Le terme peut également être appliqué à toute machine qui présente des caractéristiques associées à un esprit humain, telles que l'apprentissage et la résolution de problèmes. \n\nAI », « tool_calls » : []}, « logprobs » :null, « finish_reason » :"length », « stop_reason » :null}], « usage » : {"prompt_tokens » :39, « total_tokens » :89, « completion_tokens » :50}, « prompt_logprobs » :null}

Courir avec une précision FP8 (128 000 jetons)

Pour utiliser le longueur de contexte complète de 128 Ko, exécutez :

exporter HF_TOKEN= <YOUR_HUGGING_FACE_TOKEN>
nohup vllm serve META-LLAMA/LLAMA-3.1-8B-Instrut --download-dir /home/ubuntu/workspace --gpu-memory-utilization 1 --max-model-len 128000 --dtype half --quantization fp8 --kv-cache-dache-type fp8 &

Surveillez les journaux et attendez que les points de terminaison openai soient exposés :

queue -f nohup.out
INFO 12-06 11:19:23 launcher.py:19] Les itinéraires disponibles sont les suivants :
INFO 12-06 11:19:23 launcher.py:27] Route : /openapi.json, Méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /docs, Méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /docs/oauth2-redirect, méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /redoc, Méthodes : GET, HEAD
INFO 12-06 11:19:23 launcher.py:27] Route : /health, Méthodes : GET
INFO 12-06 11:19:23 launcher.py:27] Route : /tokenize, Méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /detokenize, Méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/models, méthodes : GET
INFO 12-06 11:19:23 launcher.py:27] Route : /version, Méthodes : GET
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/chat/completions, méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/Completions, Méthodes : POST
INFO 12-06 11:19:23 launcher.py:27] Route : /v1/embeddings, méthodes : POST
INFO : Processus serveur démarré [93203]
INFO : En attente du démarrage de l'application.
INFO : Le démarrage de l'application est terminé.
INFO : Uvicorn fonctionne sur socket ('0.0.0.0', 8000) (appuyez sur CTRL+C pour quitter)

Tester le modèle localement

Envoyez une demande de test :

curl -X POST "http://localhost:8000/v1/chat/completions" -H « Content-Type : application/json » --data '{"model » : « meta-llama/LLAMA-3.1-8B-Instrut », "messages » : [{"role » : « user », « content » : « qu'est-ce que l'IA ?"}] , « max_tokens » : 50} '

Réponse attendue :

{"id » :"chat-67dfc8a8c6904642a27fe8c889a6455d », « object » :"chat.completion », « created » :1733491601, « model » :"Meta-Llama/Llama-3.1-8B-Instrut », « choices » : [{"index » :0, « message » : {"role » :"assistant », « content » :"L'intelligence artificielle (IA) est un vaste domaine de l'informatique qui se concentre sur la création de machines intelligentes capables d'effectuer des tâches nécessitant généralement l'intelligence humaine. L'IA implique le développement d'algorithmes, de modèles statistiques et de techniques d'apprentissage automatique pour permettre aux ordinateurs de « penser, apprendre », "tool_calls » : []}, "logprobs » :null, "finish_reason » :"length », « stop_reason » :null}], "usage » : {"prompt_tokens » :39, "total_tokens » :89, "completion_tokens » :50}, "prompt_logprobs » :null}

Exposer les terminaux compatibles avec OpenAI

Pour autoriser l'accès externe, deux options s'offrent à vous :

  1. FRP (si vous disposez d'un serveur/machine virtuelle accessible au public)
  2. Ngrok (si vous n'avez pas d'instance publique)

Utiliser Ngrok pour l'accès externe

  • Créez un compte à ngrok
  • Connectez-vous et obtenez votre jeton d'authentification
  • Téléchargez et installez Ngrok

wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
sudo tar -xvzf ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin

  • Ajoutez votre jeton


ngrok config add-authtoken <YOUR_NGROCK_TOKEN>

  • Réclamez un domaine statique depuis votre compte ngrok
  • Démarrez Ngrok

<YOUR_NGROK_STATIC_DOMAIN>nohup ngrok http --url= 8000 &

Tester l'accès externe

curl https ://<YOUR_NGROK_STATIC_DOMAIN>/v1/models
{"object » :"list », « data » : [{"id » :"Meta-LLAMA/LLAMA-3.1-8B-Instrut », « object » :"model », « created » :1733495850, « owned_by » :"vllm », « root » :"Meta-Llama/LLAMA-3.1-8B-Instrut », « parent » :null, « max_model_len » :128000, « permission » : [{"id » :"modelperm-ecfa0d0e5dd04d4c973e9fc134d00d98", « object » :"model_permission », « created » :1733495850, « allow_create_engine » :false, « allow_sampling » :true, « allow_logprobs » :false true, « allow_search_indices » :false, « allow_view » :true, « allow_fine_tuning » :false, « organization » :"* », « group » :null, « is_blocking » :false}]}]}

curl -X POST « https ://<YOUR_NGROK_STATIC_DOMAIN>/v1/chat/completions" -H « Content-Type : application/json » --data '{"model » : « meta-llama/LLAMA-3.1-8B-Instrut », "messages » : [{"role » : « user », « content » : « qu'est-ce que l'IA ?"}] , « max_tokens » : 50} '
{"id » :"chat-8f35de4b78ca4710b7d6badd26fc6439", « object » :"chat.completion », « created » :1733495952, « model » :"meta-llama/Llama-3.1-8b-Instrut », « choices » : [{"index » :0, « message » : {"role » :"assistant », « content » :"L'IA, ou intelligence artificielle, fait référence à la simulation de l'intelligence humaine dans des machines programmées pour penser et apprendre comme les humains. Le terme peut désigner toute machine présentant des caractéristiques associées à l'esprit humain, telles que l'apprentissage, la résolution de problèmes, la prise de décisions, », "tool_calls » : []}, "logprobs » :null, "finish_reason » :"length », "stop_reason » :null}], "usage » : {"prompt_tokens » :39, "total_tokens » :89, "completion_tokens » :89, "completion_tokens » :39, "completion_tokens » :89, "completion_tokens » :50}, « prompt_logprobs » :null}

C'est ça ! Vous avez maintenant Llama 3.1 8B en cours d'exécution sur Compute avec des points de terminaison compatibles OpenAI. Si vous avez besoin de plus de longueur de contexte, modifiez les paramètres de précision ou mettez à niveau votre instance.

🚀 Vous avez besoin d'aide ou souhaitez en savoir plus ? Démarrez une instance dès aujourd'hui et faites passer votre déploiement d'IA au niveau supérieur !

← Back