Cet article a été réalisé en partenariat avec Vultr. Merci de soutenir les partenaires qui rendent SitePoint possible.
Gradio est une bibliothèque Python qui simplifie le processus de déploiement et de partage de modèles d’apprentissage automatique en fournissant une interface conviviale nécessitant un minimum de code. Vous pouvez l’utiliser pour créer des interfaces personnalisables et les partager facilement en utilisant un lien public pour d’autres utilisateurs.
Dans ce guide, vous allez créer une interface Web où vous pourrez interagir avec le grand modèle de langage Mistral 7B via le champ de saisie et voir les sorties du modèle affichées en temps réel sur l’interface.
Sur l’instance déployée, vous devez installer certains packages pour créer une application Gradio. Cependant, vous n’avez pas besoin d’installer des packages tels que NVIDIA CUDA Toolkit, cuDNN et PyTorch, car ils sont préinstallés sur le serveur. Pile GPU Vultr instances.
Mettez à niveau le package Jinja :$ pip install --upgrade jinja2
Installez les dépendances requises :$ pip install transformers gradio
Créez un nouveau fichier nommé chatbot.py
en utilisant nano
:$ sudo nano chatbot.py
Suivez les étapes suivantes pour remplir ce fichier.
Importez les modules requis :import gradio as gr
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, StoppingCriteria, StoppingCriteriaList, TextIteratorStreamer
from threading import Thread
L’extrait de code ci-dessus importe tous les modules requis dans l’espace de noms pour déduire le grand modèle de langage Mistral 7B et lancer une interface de discussion Gradio.
Initialisez le modèle et le tokenizer :
model_repo = "mistralai/Mistral-7B-v0.1"
model = AutoModelForCausalLM.from_pretrained(model_repo, torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained(model_repo)
model = model.to('cuda:0')
L’extrait de code ci-dessus initialise le modèle, le tokenizer et active le traitement CUDA.
Définir les critères d’arrêt :class StopOnTokens(StoppingCriteria):
def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
stop_ids = [29, 0]
for stop_id in stop_ids:
if input_ids[0][-1] == stop_id:
return True
return False
Les extraits de code ci-dessus héritent d’une nouvelle classe nommée StopOnTokens
du StoppingCriteria
classe.
Définir la predict()
fonction:def predict(message, history):
stop = StopOnTokens()
history_transformer_format = history + [[message, ""]]
messages = "".join(["".join(["\n<human>:" + item[0], "\n<bot>:" + item[1]]) for item in history_transformer_format])
L’extrait de code ci-dessus définit les variables pour StopOnToken()
objet et stocker l’historique des conversations. Il formate l’historique en associant chaque message à sa réponse et en fournissant des balises pour déterminer s’il provient d’un humain ou d’un robot.
L’extrait de code de l’étape suivante doit être collé à l’intérieur du predict()
fonctionner également.
Initialisez un streamer d’interateur de texte :model_inputs = tokenizer([messages], return_tensors="pt").to("cuda")
streamer = TextIteratorStreamer(tokenizer, timeout=10., skip_prompt=True, skip_special_tokens=True)
generate_kwargs = dict(
model_inputs,
streamer=streamer,
max_new_tokens=200,
do_sample=True,
top_p=0.95,
top_k=1000,
temperature=0.4,
num_beams=1,
stopping_criteria=StoppingCriteriaList([stop])
)
t = Thread(target=model.generate, kwargs=generate_kwargs)
t.start()
partial_message = ""
for new_token in streamer:
if new_token != '<':
partial_message += new_token
yield partial_message
Le streamer
demande de nouveaux jetons au modèle et les reçoit un par un, assurant un flux continu de sortie de texte.
Vous pouvez ajuster les paramètres du modèle tels que max_new_tokens
, top_p
, top_k
et temperature
pour manipuler la réponse du modèle. Pour en savoir plus sur ces paramètres vous pouvez vous référer à Comment utiliser le grand modèle de langage TII Falcon sur le GPU Vultr Cloud.
Lancez l’interface de chat Gradio à la fin du fichier :gr.ChatInterface(predict).launch(server_name='0.0.0.0')
Quittez l’éditeur de texte en utilisant CTRL + X pour enregistrer le fichier et appuyez sur Ouikbd> pour autoriser l’écrasement des fichiers.Autoriser les connexions entrantes sur le port 7860
:$ sudo ufw allow 7860
Gradio utilise le port 7860
par défaut.
Rechargez le pare-feu :$ sudo ufw reload
Exécutez l’application :$ python3 chatbot.py
La première exécution de l’application peut prendre un temps supplémentaire pour télécharger les points de contrôle du grand modèle de langage Mistral 7B et le charger sur le GPU. Cette procédure peut prendre entre 5 et 10 minutes en fonction de votre matériel, de votre connectivité Internet, etc.
Une fois exécuté, vous pouvez accéder à l’interface de chat Gradio via votre navigateur Web en accédant à :
http://SERVER_IP_ADRESS:7860/
Le résultat attendu est indiqué ci-dessous.

Dans ce guide, vous avez utilisé Gradio pour créer une interface de discussion et déduire le modèle Mistral 7B par Mistral AI en utilisant Pile GPU Vultr.
Il s’agit d’un article sponsorisé par Vultr. Vultr est la plus grande plateforme de cloud computing privée au monde. Un favori des développeurs, Vultr a servi plus de 1,5 million de clients dans 185 pays avec des solutions mondiales flexibles et évolutives de Cloud Compute, Cloud GPU, Bare Metal et Cloud Storage. En savoir plus sur Vultr.
Source link Articles similaires
février 23, 2024
Comment créer une interface de discussion à l’aide du GPU Gradio et Vultr Cloud —
Cet article a été réalisé en partenariat avec Vultr. Merci de soutenir les partenaires qui rendent SitePoint possible.
Gradio est une bibliothèque Python qui simplifie le processus de déploiement et de partage de modèles d’apprentissage automatique en fournissant une interface conviviale nécessitant un minimum de code. Vous pouvez l’utiliser pour créer des interfaces personnalisables et les partager facilement en utilisant un lien public pour d’autres utilisateurs.
Dans ce guide, vous allez créer une interface Web où vous pourrez interagir avec le grand modèle de langage Mistral 7B via le champ de saisie et voir les sorties du modèle affichées en temps réel sur l’interface.
Sur l’instance déployée, vous devez installer certains packages pour créer une application Gradio. Cependant, vous n’avez pas besoin d’installer des packages tels que NVIDIA CUDA Toolkit, cuDNN et PyTorch, car ils sont préinstallés sur le serveur. Pile GPU Vultr instances.
chatbot.py
en utilisantnano
:Suivez les étapes suivantes pour remplir ce fichier.
L’extrait de code ci-dessus importe tous les modules requis dans l’espace de noms pour déduire le grand modèle de langage Mistral 7B et lancer une interface de discussion Gradio.
L’extrait de code ci-dessus initialise le modèle, le tokenizer et active le traitement CUDA.
Les extraits de code ci-dessus héritent d’une nouvelle classe nommée
StopOnTokens
duStoppingCriteria
classe.predict()
fonction:L’extrait de code ci-dessus définit les variables pour
StopOnToken()
objet et stocker l’historique des conversations. Il formate l’historique en associant chaque message à sa réponse et en fournissant des balises pour déterminer s’il provient d’un humain ou d’un robot.L’extrait de code de l’étape suivante doit être collé à l’intérieur du
predict()
fonctionner également.Le
streamer
demande de nouveaux jetons au modèle et les reçoit un par un, assurant un flux continu de sortie de texte.Vous pouvez ajuster les paramètres du modèle tels que
max_new_tokens
,top_p
,top_k
ettemperature
pour manipuler la réponse du modèle. Pour en savoir plus sur ces paramètres vous pouvez vous référer à Comment utiliser le grand modèle de langage TII Falcon sur le GPU Vultr Cloud.7860
:Gradio utilise le port
7860
par défaut.La première exécution de l’application peut prendre un temps supplémentaire pour télécharger les points de contrôle du grand modèle de langage Mistral 7B et le charger sur le GPU. Cette procédure peut prendre entre 5 et 10 minutes en fonction de votre matériel, de votre connectivité Internet, etc.
Une fois exécuté, vous pouvez accéder à l’interface de chat Gradio via votre navigateur Web en accédant à :
Le résultat attendu est indiqué ci-dessous.
Dans ce guide, vous avez utilisé Gradio pour créer une interface de discussion et déduire le modèle Mistral 7B par Mistral AI en utilisant Pile GPU Vultr.
Il s’agit d’un article sponsorisé par Vultr. Vultr est la plus grande plateforme de cloud computing privée au monde. Un favori des développeurs, Vultr a servi plus de 1,5 million de clients dans 185 pays avec des solutions mondiales flexibles et évolutives de Cloud Compute, Cloud GPU, Bare Metal et Cloud Storage. En savoir plus sur Vultr.
Source link
Partager :
Articles similaires