
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 !
Assurez-vous que les dépendances suivantes sont installées :
Pour éviter la perte des packages installés, toutes les dépendances doivent être installées dans /home/ubuntu/espace de travail annuaire.
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
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.
pip install vllm
Les modèles Llama 3.1 ont une longueur de contexte maximale de 128 000 jetons. Sur un RTX 4090 (24 GO DE VRAM):
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)
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}
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)
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}
Pour autoriser l'accès externe, deux options s'offrent à vous :
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>
<YOUR_NGROK_STATIC_DOMAIN>nohup ngrok http --url= 8000 &
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 !