Explorer des grands modèles de langage avec Azure Databricks
Les grands modèles de langage (LLMs) peuvent être un atout puissant pour les tâches de traitement du langage naturel (NLP) lorsqu’elles sont intégrées à Azure Databricks et aux transformateurs Hugging Face. Azure Databricks fournit une plateforme transparente pour accéder, ajuster et déployer des LLM, y compris des modèles préentraînés issus de la bibliothèque complète de Hugging Face. Pour l’inférence de modèle, la classe de pipelines de Hugging Face simplifie l’utilisation de modèles préentraînés en prenant en charge un large éventail de tâches NLP directement dans l’environnement Databricks.
Ce labo prend environ 30 minutes.
Avant de commencer
Vous avez besoin d’un abonnement Azure dans lequel vous avez un accès administratif.
Provisionner un espace de travail Azure Databricks
Conseil : Si vous disposez déjà d’un espace de travail Azure Databricks, vous pouvez ignorer cette procédure et utiliser votre espace de travail existant.
Cet exercice inclut un script permettant d’approvisionner un nouvel espace de travail Azure Databricks. Le script tente de créer une ressource d’espace de travail Azure Databricks de niveau Premium dans une région dans laquelle votre abonnement Azure dispose d’un quota suffisant pour les cœurs de calcul requis dans cet exercice ; et suppose que votre compte d’utilisateur dispose des autorisations suffisantes dans l’abonnement pour créer une ressource d’espace de travail Azure Databricks. Si le script échoue en raison d’un quota insuffisant ou d’autorisations insuffisantes, vous pouvez essayer de créer un espace de travail Azure Databricks de manière interactive dans le portail Azure.
-
Dans un navigateur web, connectez-vous au portail Azure à l’adresse
https://portal.azure.com
. -
Utilisez le bouton [>_] à droite de la barre de recherche, en haut de la page, pour créer un environnement Cloud Shell dans le portail Azure, en sélectionnant un environnement PowerShell et en créant le stockage si vous y êtes invité. Cloud Shell fournit une interface de ligne de commande dans un volet situé en bas du portail Azure, comme illustré ici :
Remarque : si vous avez créé un shell cloud qui utilise un environnement Bash, utilisez le menu déroulant en haut à gauche du volet Cloud Shell pour le remplacer par PowerShell.
-
Notez que vous pouvez redimensionner le volet Cloud Shell en faisant glisser la barre de séparation en haut du volet. Vous pouvez aussi utiliser les icônes — , ◻ et X situées en haut à droite du volet pour réduire, agrandir et fermer le volet. Pour plus d’informations sur l’utilisation d’Azure Cloud Shell, consultez la documentation Azure Cloud Shell.
-
Dans le volet PowerShell, entrez les commandes suivantes pour cloner ce référentiel :
rm -r mslearn-databricks -f git clone https://github.com/MicrosoftLearning/mslearn-databricks
-
Une fois le référentiel cloné, entrez la commande suivante pour exécuter le script setup.ps1, qui approvisionne un espace de travail Azure Databricks dans une région disponible :
./mslearn-databricks/setup.ps1
-
Si vous y êtes invité, choisissez l’abonnement à utiliser (uniquement si vous avez accès à plusieurs abonnements Azure).
-
Attendez que le script se termine. Cela prend généralement environ 5 minutes, mais dans certains cas, cela peut prendre plus de temps. Pendant que vous attendez, consultez l’article Présentation de Delta Lake dans la documentation Azure Databricks.
Créer un cluster
Azure Databricks est une plateforme de traitement distribuée qui utilise des clusters Apache Spark pour traiter des données en parallèle sur plusieurs nœuds. Chaque cluster se compose d’un nœud de pilote pour coordonner le travail et les nœuds Worker pour effectuer des tâches de traitement. Dans cet exercice, vous allez créer un cluster à nœud unique pour réduire les ressources de calcul utilisées dans l’environnement du labo (dans lequel les ressources peuvent être limitées). Dans un environnement de production, vous créez généralement un cluster avec plusieurs nœuds Worker.
Conseil : Si vous disposez déjà d’un cluster avec une version 13.3 LTS ML ou ultérieure du runtime dans votre espace de travail Azure Databricks, vous pouvez l’utiliser pour effectuer cet exercice et ignorer cette procédure.
- Dans le portail Microsoft Azure, accédez au groupe de ressources msl-xxxxxxx créé par le script (ou le groupe de ressources contenant votre espace de travail Azure Databricks existant)
- Sélectionnez votre ressource de service Azure Databricks (nommée databricks-xxxxxxx si vous avez utilisé le script d’installation pour la créer).
-
Dans la page Vue d’ensemble de votre espace de travail, utilisez le bouton Lancer l’espace de travail pour ouvrir votre espace de travail Azure Databricks dans un nouvel onglet de navigateur et connectez-vous si vous y êtes invité.
Conseil : lorsque vous utilisez le portail de l’espace de travail Databricks, plusieurs conseils et notifications peuvent s’afficher. Ignorez-les et suivez les instructions fournies pour effectuer les tâches de cet exercice.
- Dans la barre latérale située à gauche, sélectionnez la tâche (+) Nouveau, puis sélectionnez Cluster.
- Dans la page Nouveau cluster, créez un cluster avec les paramètres suivants :
- Nom du cluster : cluster de nom d’utilisateur (nom de cluster par défaut)
- Stratégie : Non restreint
- Mode cluster : nœud unique
- Mode d’accès : un seul utilisateur (avec votre compte d’utilisateur sélectionné)
- Version du runtime Databricks : Sélectionnez l’édition ML de la dernière version non bêta du runtime (Not version du runtime standard) qui :
- N’utilise pas de GPU
- Inclut Scala > 2.11
- Inclut Spark > 3.4
- Utiliser l’accélération photon : Non sélectionné
- Type de nœud : Standard_D4ds_v5
- Arrêter après 20 minutes d’inactivité
- Attendez que le cluster soit créé. Cette opération peut prendre une à deux minutes.
Remarque : si votre cluster ne démarre pas, le quota de votre abonnement est peut-être insuffisant dans la région où votre espace de travail Azure Databricks est approvisionné. Pour plus d’informations, consultez l’article La limite de cœurs du processeur empêche la création du cluster. Si cela se produit, vous pouvez essayer de supprimer votre espace de travail et d’en créer un dans une autre région. Vous pouvez spécifier une région comme paramètre pour le script d’installation comme suit :
./mslearn-databricks/setup.ps1 eastus
Installer les bibliothèques nécessaires
-
Sur la page de votre cluster, sélectionnez l’onglet Bibliothèques.
-
Sélectionnez Installer.
-
Sélectionnez PyPI comme bibliothèque source et saisissez
transformers==4.44.0
dans le champ Package. -
Sélectionnez Installer.
Charger des modèles préentraînés
-
Dans l’espace de travail Databricks, accédez à la section Espace de travail.
-
Sélectionnez Créer, puis Notebook.
-
Donnez un nom à votre notebook et sélectionnez le langage
Python
. -
Saisissez le code suivant dans la première cellule de code et exécutez-le :
from transformers import pipeline # Load the summarization model summarizer = pipeline("summarization") # Load the sentiment analysis model sentiment_analyzer = pipeline("sentiment-analysis") # Load the translation model translator = pipeline("translation_en_to_fr") # Load a general purpose model for zero-shot classification and few-shot learning classifier = pipeline("zero-shot-classification")
Ce code charge tous les modèles nécessaires pour les tâches NLP présentées dans cet exercice.
Résumer le texte
Un pipeline de résumé génère des résumés concis à partir de longs textes. Il est possible de déterminer le niveau de précision ou de créativité du résumé généré en spécifiant une plage de longueur (min_length
, max_length
) et si celui-ci utilise l’échantillonnage ou non (do_sample
).
-
Dans une nouvelle cellule de code, saisissez le code suivant :
text = "Large language models (LLMs) are advanced AI systems capable of understanding and generating human-like text by learning from vast datasets. These models, which include OpenAI's GPT series and Google's BERT, have transformed the field of natural language processing (NLP). They are designed to perform a wide range of tasks, from translation and summarization to question-answering and creative writing. The development of LLMs has been a significant milestone in AI, enabling machines to handle complex language tasks with increasing sophistication. As they evolve, LLMs continue to push the boundaries of what's possible in machine learning and artificial intelligence, offering exciting prospects for the future of technology." summary = summarizer(text, max_length=75, min_length=25, do_sample=False) print(summary)
-
Exécutez la cellule pour afficher le texte résumé.
Analyser des sentiments
Le pipeline d’analyse des sentiments détermine le sentiment d’un texte donné. Il classe le texte en catégories telles que positif, négatif ou neutre.
-
Dans une nouvelle cellule de code, saisissez le code suivant :
text = "I love using Azure Databricks for NLP tasks!" sentiment = sentiment_analyzer(text) print(sentiment)
-
Exécutez la cellule pour afficher le résultat de l’analyse des sentiments.
Traduire du texte
Le pipeline de traduction convertit le texte d’une langue à une autre. Dans cet exercice, la tâche utilisée était translation_en_to_fr
, ce qui signifie qu’elle traduit tout texte de l’anglais au français.
-
Dans une nouvelle cellule de code, saisissez le code suivant :
text = "Hello, how are you?" translation = translator(text) print(translation)
-
Exécutez la cellule pour afficher le texte traduit en français.
Classifier le texte
Le pipeline de classification « zero shot » permet à un modèle de classer du texte dans des catégories qu’il n’a pas rencontrées au cours de son entraînement. Par conséquent, elle nécessite des libellés prédéfinis en tant que paramètre candidate_labels
.
-
Dans une nouvelle cellule de code, saisissez le code suivant :
text = "Azure Databricks is a powerful platform for big data analytics." labels = ["technology", "health", "finance"] classification = classifier(text, candidate_labels=labels) print(classification)
-
Exécutez la cellule pour afficher les résultats de la classification « zero shot ».
Nettoyage
Dans le portail Azure Databricks, sur la page Calcul, sélectionnez votre cluster et sélectionnez ■ Arrêter pour l’arrêter.
Si vous avez terminé d’explorer Azure Databricks, vous pouvez supprimer les ressources que vous avez créées pour éviter les coûts Azure inutiles et libérer de la capacité dans votre abonnement.