L'IA générative est au milieu d'une période de croissance fulgurante. Des modèles de base de plus en plus performants sont publiés en continu, les grands modèles de langage (LLM) étant l'une des classes de modèles les plus visibles. Les LLM sont des modèles composés de milliards de paramètres formés sur de vastes corpus de texte, jusqu'à des centaines de milliards, voire un billion de jetons. Ces modèles se sont avérés extrêmement efficaces pour un large éventail de tâches textuelles, de la réponse aux questions à l'analyse des sentiments.
La puissance des LLM vient de leur capacité à apprendre et à généraliser à partir de données de formation étendues et diverses. L'entraînement initial de ces modèles est effectué avec une variété d'objectifs, supervisés, non supervisés ou hybrides. La complétion de texte ou l'imputation est l'un des objectifs non supervisés les plus courants : étant donné un morceau de texte, le modèle apprend à prédire avec précision ce qui vient ensuite (par exemple, prédire la phrase suivante). Les modèles peuvent également être formés de manière supervisée à l'aide de données étiquetées pour accomplir un ensemble de tâches (par exemple, cette critique de film est-elle positive, négative ou neutre). Que le modèle soit formé pour la complétion de texte ou pour une autre tâche, ce n'est souvent pas la tâche pour laquelle les clients veulent utiliser le modèle.
Pour améliorer les performances d'un LLM pré-formé sur une tâche spécifique, nous pouvons ajuster le modèle en utilisant des exemples de la tâche cible dans un processus connu sous le nom de mise au point des instructions. Le réglage fin des instructions utilise un ensemble d'exemples étiquetés sous la forme de paires {invite, réponse} pour entraîner davantage le modèle pré-entraîné à prédire de manière adéquate la réponse donnée à l'invite. Ce processus modifie les poids du modèle.
Cet article décrit comment effectuer le réglage fin des instructions d'un LLM, à savoir FLAN T5 XL, à l'aide Démarrage d'Amazon SageMaker. Nous montrons comment accomplir cela en utilisant à la fois l'interface utilisateur Jumpstart et un bloc-notes dans Amazon SageMakerStudio. Vous pouvez trouver le carnet d'accompagnement dans le amazon-sagemaker-exemples Référentiel GitHub.
Vue d'ensemble de la solution
La tâche cible de cet article est de, étant donné un morceau de texte dans l'invite, renvoyer les questions liées au texte mais auxquelles il est impossible de répondre en fonction des informations qu'il contient. Il s'agit d'une tâche utile pour identifier les informations manquantes dans une description ou pour déterminer si une requête nécessite plus d'informations pour y répondre.
Les modèles FLAN T5 sont des instructions affinées sur un large éventail de tâches pour augmenter les performances zéro coup de ces modèles sur de nombreuses tâches courantes[1]. Un réglage fin des instructions supplémentaires pour une tâche client particulière peut encore augmenter la précision de ces modèles, en particulier si la tâche cible n'a pas été utilisée auparavant pour former un modèle FLAN T5, comme c'est le cas pour notre tâche.
Dans notre exemple de tâche, nous souhaitons générer des questions pertinentes mais sans réponse. À cette fin, nous utilisons un sous-ensemble de la version 2 du Stanford Question Answering Dataset (SQuAD2.0)[2] pour affiner le modèle. Cet ensemble de données contient des questions posées par des annotateurs humains sur un ensemble d'articles de Wikipédia. En plus des questions avec réponses, SQuAD2.0 contient environ 50,000 XNUMX questions sans réponse. De telles questions sont plausibles mais ne peuvent pas être directement résolues à partir du contenu des articles. Nous n'utilisons que les questions sans réponse. Nos données sont structurées sous la forme d'un fichier JSON Lines, chaque ligne contenant un contexte et une question.
Pré-requis
Pour commencer, tout ce dont vous avez besoin est un compte AWS dans lequel vous pouvez utiliser Studio. Vous devrez créer un profil utilisateur pour Studio si vous n'en avez pas déjà un.
Ajustez FLAN-T5 avec l'interface utilisateur Jumpstart
Pour affiner le modèle avec l'interface utilisateur Jumpstart, procédez comme suit :
- Sur la console SageMaker, ouvrez Studio.
- Sous Démarrage de SageMaker dans le volet de navigation, choisissez Modèles, cahiers, solutions.
Vous verrez une liste de modèles de base, y compris FLAN T5 XL, qui est marqué comme pouvant être réglé avec précision.
- Selectionnez Voir le modèle.
- Sous La source de données, vous pouvez indiquer le chemin d'accès à vos données d'entraînement. La source des données utilisées dans cet article est fournie par défaut.
- Vous pouvez conserver la valeur par défaut pour la configuration de déploiement (y compris le type d'instance), la sécurité et les hyperparamètres, mais vous devez augmenter le nombre d'époques à au moins trois pour obtenir de bons résultats.
- Selectionnez Train pour former le modèle.
Vous pouvez suivre l'état de la tâche d'entraînement dans l'interface utilisateur.
- Lorsque la formation est terminée (après environ 53 minutes dans notre cas), choisissez Déployer pour déployer le modèle affiné.
Une fois le point de terminaison créé (quelques minutes), vous pouvez ouvrir un bloc-notes et commencer à utiliser votre modèle affiné.
Ajuster FLAN-T5 à l'aide d'un bloc-notes Python
Notre exemple de bloc-notes montre comment utiliser Jumpstart et SageMaker pour affiner et déployer par programmation un modèle FLAN T5 XL. Il peut être exécuté dans Studio ou localement.
Dans cette section, nous parcourons d'abord une configuration générale. Ensuite, vous ajustez le modèle à l'aide des jeux de données SQuADv2. Ensuite, vous déployez la version pré-formée du modèle derrière un point de terminaison SageMaker et faites de même avec le modèle affiné. Enfin, vous pouvez interroger les points de terminaison et comparer la qualité de la sortie du modèle pré-formé et affiné. Vous constaterez que la sortie du modèle affiné est de bien meilleure qualité.
Configurer les prérequis
Commencez par installer et mettre à niveau les packages nécessaires. Redémarrez le noyau après avoir exécuté le code suivant :
Ensuite, obtenez le rôle d'exécution associé à l'instance de notebook actuelle :
Vous pouvez définir un menu déroulant pratique qui répertorie les tailles de modèle disponibles pour un réglage précis :
Jumpstart récupère automatiquement les types d'instances d'entraînement et d'inférence appropriés pour le modèle que vous avez choisi :
Vous êtes maintenant prêt à commencer le réglage fin.
Réentraîner le modèle sur le jeu de données de réglage fin
Une fois votre configuration terminée, procédez comme suit :
Utilisez le code suivant pour récupérer l'URI des artefacts nécessaires :
Les données d'entraînement se trouvent dans un espace public Service de stockage simple Amazon (Amazon S3) seau.
Utilisez le code suivant pour pointer vers l'emplacement des données et configurer l'emplacement de sortie dans un bucket de votre compte :
Les données d'origine ne sont pas dans un format qui correspond à la tâche pour laquelle vous ajustez le modèle, vous pouvez donc les reformater :
Vous pouvez maintenant définir des hyperparamètres pour l'entraînement :
Vous êtes maintenant prêt à lancer la tâche d'entraînement :
En fonction de la taille des données de réglage fin et du modèle choisi, le réglage fin peut prendre jusqu'à quelques heures.
Vous pouvez surveiller les mesures de performance telles que la formation et la perte de validation à l'aide de Amazon Cloud Watch pendant la formation. De manière pratique, vous pouvez également récupérer l'instantané le plus récent des métriques en exécutant le code suivant :
Lorsque la formation est terminée, vous disposez d'un modèle affiné à model_uri
. Utilisons-le !
Vous pouvez créer deux points de terminaison d'inférence : un pour le modèle pré-entraîné d'origine et un pour le modèle affiné. Cela vous permet de comparer la sortie des deux versions du modèle. À l'étape suivante, vous déployez un point de terminaison d'inférence pour le modèle pré-entraîné. Ensuite, vous déployez un point de terminaison pour votre modèle affiné.
Déployer le modèle pré-entraîné
Commençons par déployer le modèle pré-entraîné et récupérons l'URI de l'image Docker d'inférence. Il s'agit de l'image de base du conteneur Hugging Face. Utilisez le code suivant :
Vous pouvez maintenant créer le point de terminaison et déployer le modèle pré-entraîné. Notez que vous devez transmettre la classe Predictor lors du déploiement du modèle via la classe Model pour pouvoir exécuter l'inférence via l'API SageMaker. Voir le code suivant :
La création du point de terminaison et le déploiement du modèle peuvent prendre quelques minutes, puis votre point de terminaison est prêt à recevoir des appels d'inférence.
Déployer le modèle affiné
Déployons le modèle affiné sur son propre point de terminaison. Le processus est presque identique à celui que nous avons utilisé précédemment pour le modèle pré-entraîné. La seule différence est que nous utilisons le nom de modèle et l'URI affinés :
Lorsque ce processus est terminé, les modèles pré-formés et affinés sont déployés derrière leurs propres terminaux. Comparons leurs sorties.
Générer une sortie et comparer les résultats
Définissez des fonctions utilitaires pour interroger le point de terminaison et analyser la réponse :
Dans l'extrait de code suivant, nous définissons l'invite et les données de test. Le décrit notre tâche cible, qui consiste à générer des questions liées au texte fourni mais auxquelles il est impossible de répondre en fonction de celui-ci.
Les données de test se composent de trois paragraphes différents, l'un sur la ville australienne d'Adélaïde du les deux premiers paragraphes de la page Wikipédia, une concernant Boutique de blocs élastiques Amazon (Amazon EBS) de la Documentation AmazonEBSet l'un des Amazon comprendre du Documentation d'Amazon Comprehend. Nous nous attendons à ce que le modèle identifie les questions liées à ces paragraphes, mais il est impossible de répondre avec les informations qui y sont fournies.
Vous pouvez maintenant tester les points de terminaison à l'aide des exemples d'articles
Données de test : Adélaïde
Nous utilisons le contexte suivant :
La réponse du modèle pré-entraîné est la suivante :
Les réponses du modèle affiné sont les suivantes :
Données de test : Amazon EBS
Nous utilisons le contexte suivant :
Les réponses du modèle pré-entraîné sont les suivantes :
Les réponses du modèle affiné sont les suivantes :
Données de test : Amazon Comprehend
Nous utilisons le contexte suivant :
Les réponses du modèle pré-entraîné sont les suivantes :
Les réponses du modèle affiné sont les suivantes :
La différence de qualité de sortie entre le modèle pré-entraîné et le modèle affiné est flagrante. Les questions fournies par le modèle affiné touchent à un plus large éventail de sujets. Ce sont systématiquement des questions significatives, ce qui n'est pas toujours le cas pour le modèle pré-entraîné, comme l'illustre l'exemple d'Amazon EBS.
Bien que cela ne constitue pas une évaluation formelle et systématique, il est clair que le processus d'ajustement a amélioré la qualité des réponses du modèle sur cette tâche.
Nettoyer
Enfin, n'oubliez pas de nettoyer et de supprimer les points de terminaison :
Conclusion
Dans cet article, nous avons montré comment utiliser le réglage fin des instructions avec les modèles FLAN T5 à l'aide de l'interface utilisateur Jumpstart ou d'un notebook Jupyter exécuté dans Studio. Nous avons fourni du code expliquant comment recycler le modèle à l'aide de données pour la tâche cible et déployer le modèle affiné derrière un point de terminaison. La tâche cible de cet article était d'identifier les questions liées à un morceau de texte fourni dans l'entrée, mais auxquelles il est impossible de répondre sur la base des informations fournies dans ce texte. Nous avons démontré qu'un modèle affiné pour cette tâche spécifique donne de meilleurs résultats qu'un modèle pré-entraîné.
Maintenant que vous savez comment affiner un modèle avec Jumpstart, vous pouvez créer des modèles puissants personnalisés pour votre application. Rassemblez des données pour votre cas d'utilisation, téléchargez-les sur Amazon S3 et utilisez l'interface utilisateur de Studio ou le bloc-notes pour régler un modèle FLAN T5 !
Bibliographie
[1] Chung, Hyung Won, et al. "Mise à l'échelle des modèles de langage optimisés pour l'instruction." prétirage arXiv arXiv:2210.11416 (2022).
[2] Rajpurkar, Pranav, Robin Jia et Percy Liang. "Savoir ce que vous ne savez pas : questions sans réponse pour SQuAD." Actes de la 56e réunion annuelle de l'Association for Computational Linguistics (Volume 2 : Documents courts). 2018.
À propos des auteurs
Laurent Callot est un scientifique appliqué principal et directeur chez AWS AI Labs qui a travaillé sur une variété de problèmes d'apprentissage automatique, des modèles fondamentaux et de l'IA générative à la prévision, la détection d'anomalies, la causalité et les opérations d'IA.
Andreï Kan est un scientifique appliqué senior chez AWS AI Labs avec des intérêts et une expérience dans différents domaines de l'apprentissage automatique. Il s'agit notamment de la recherche sur les modèles de base, ainsi que des applications ML pour les graphiques et les séries chronologiques.
Dr Ashish Khetan est un scientifique appliqué senior avec les algorithmes intégrés d'Amazon SageMaker et aide à développer des algorithmes d'apprentissage automatique. Il a obtenu son doctorat à l'Université de l'Illinois Urbana Champaign. Il est un chercheur actif en apprentissage automatique et en inférence statistique et a publié de nombreux articles dans les conférences NeurIPS, ICML, ICLR, JMLR, ACL et EMNLP.
Baris Kurt est scientifique appliquée chez AWS AI Labs. Il s'intéresse à la détection d'anomalies dans les séries chronologiques et aux modèles de fondation. Il aime développer des systèmes ML conviviaux.
Jonas Kübler est scientifique appliquée chez AWS AI Labs. Il travaille sur des modèles de base dans le but de faciliter des applications spécifiques à des cas d'utilisation.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoAiStream. Intelligence des données Web3. Connaissance Amplifiée. Accéder ici.
- Frapper l'avenir avec Adryenn Ashley. Accéder ici.
- Achetez et vendez des actions de sociétés PRE-IPO avec PREIPO®. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/instruction-fine-tuning-for-flan-t5-xl-with-amazon-sagemaker-jumpstart/
- :possède
- :est
- :ne pas
- $UP
- 000
- 1
- 10
- 100
- 11
- 12
- 13
- 17
- 1M
- 20
- 2018
- 2022
- 22
- 40
- 50
- 60
- 7
- 8
- 80
- 9
- a
- Capable
- A Propos
- Accepter
- accès
- accessible
- accomplir
- Compte
- précision
- avec précision
- infection
- ajout
- Supplémentaire
- adéquatement
- Après
- AI
- AL
- algorithmes
- Tous
- permet
- déjà
- aussi
- toujours
- Amazon
- Amazon comprendre
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Amazon Web Services
- an
- selon une analyse de l’Université de Princeton
- il analyse
- ainsi que
- annuel
- Détection d'une anomalie
- réponses
- tous
- api
- Apis
- Application
- applications
- appliqué
- approprié
- SONT
- Réservé
- argument
- article
- sur notre blog
- AS
- associé
- Association
- At
- Australie
- Australien
- automatiquement
- disponibles
- AWS
- base
- basé
- BE
- Plage
- Faisceau
- derrière
- va
- ci-dessous
- Améliorée
- jusqu'à XNUMX fois
- milliards
- Block
- corps
- goupille
- tous les deux
- intégré
- mais
- by
- appelé
- Appels
- CAN
- ne peut pas
- capacités
- capable
- Compétences
- capital
- maisons
- centre
- Change
- le choix
- Selectionnez
- choisir
- choisi
- Ville
- classe
- les classes
- classification
- clair
- client
- Côte
- code
- vient
- Commun
- comparer
- complet
- achèvement
- composé
- comprendre
- conférences
- configuration
- Console
- constituer
- Contenant
- contient
- contenu
- contexte
- continu
- continuellement
- Pratique
- correspond
- pourriez
- Couples
- engendrent
- créée
- La création
- création
- Courant
- Customiser
- des clients
- Clients
- sont adaptées
- données
- bases de données
- ensembles de données
- Réglage par défaut
- démontrer
- démontré
- Selon
- déployer
- déployé
- déployer
- déploiement
- la description
- Détection
- Déterminer
- développer
- développement
- développe
- dispositif
- Compatibles
- différence
- différent
- directement
- Commande
- plusieurs
- do
- Docker
- document
- INSTITUTIONNELS
- Ne fait pas
- dominant
- Ne pas
- motivation
- pendant
- dynamiquement
- E & T
- chacun
- Plus tôt
- Est
- Efficace
- non plus
- éléments
- d'autre
- fin
- Endpoint
- Tout
- entités
- entité
- époque
- époques
- notamment
- évaluation
- Pourtant, la
- examiner
- exemple
- exemples
- exécuter
- exécution
- attendre
- d'experience
- expliquant
- exposé
- S'étend
- extension
- les
- extrait
- extrêmement
- Visage
- faciliter
- loin
- Mode
- Fonctionnalité
- Fonctionnalités:
- few
- Des champs
- Déposez votre dernière attestation
- Fichiers
- finalement
- Trouvez
- fin
- Prénom
- Abonnement
- suit
- Pour
- formulaire
- formel
- le format
- trouvé
- Fondation
- Quatrièmement
- Framework
- fréquemment
- friendly
- De
- fonctions
- plus
- recueillir
- Général
- générer
- généré
- générateur
- génération
- génératif
- IA générative
- obtenez
- GitHub
- donné
- objectif
- Bien
- graphiques
- l'
- plus grand
- Croissance
- Dur
- disque dur
- Vous avez
- he
- aide
- augmentation
- Hills
- sa
- HEURES
- Comment
- How To
- HTML
- http
- HTTPS
- Étreindre
- humain
- Des centaines
- Hybride
- i
- ID
- identique
- identifier
- ids
- if
- Illinois
- image
- importer
- améliorer
- amélioré
- in
- comprendre
- Y compris
- Améliore
- de plus en plus
- indépendamment
- info
- d'information
- informatif
- initiale
- contribution
- entrées
- idées.
- installer
- installer
- instance
- intéressé
- intérêts
- Introduction
- IT
- SES
- Emploi
- Emplois
- jpg
- json
- XNUMX éléments à
- ACTIVITES
- Savoir
- connu
- Labs
- langue
- Langues
- gros
- le plus grand
- lancer
- APPRENTISSAGE
- apprentissage
- au
- Longueur
- Niveau
- VIE
- comme
- Gamme
- lignes
- Liste
- LLM
- localement
- situé
- emplacement
- élevé
- Location
- long-term
- perte
- aime
- click
- machine learning
- manager
- de nombreuses
- marqué
- max
- Mai..
- significative
- réunion
- mentions
- Menu
- Métrique
- Minutes
- manquant
- ML
- modèle
- numériques jumeaux (digital twin models)
- Surveiller
- PLUS
- (en fait, presque toutes)
- MONTER
- film
- beaucoup
- must
- prénom
- à savoir
- Nature
- Traitement du langage naturel
- Navigation
- nécessaire
- Besoin
- nécessaire
- Besoins
- négatif
- de mise en réseau
- Neutri
- Nouveauté
- produits nouveaux
- next
- nlp
- Nord
- cahier
- maintenant
- nombre
- objectifs
- obtenir
- of
- on
- ONE
- uniquement
- ouvert
- or
- original
- Autre
- nos
- sortie
- plus de
- Commande
- propre
- propriétaires
- Forfaits
- paires
- pain
- papiers
- paramètres
- partie
- particulier
- particulièrement
- pass
- chemin
- Personnes
- Effectuer
- performant
- période
- persistance
- les expressions clés
- Platon
- Intelligence des données Platon
- PlatonDonnées
- plausible
- Point
- population
- positif
- Post
- power
- solide
- prévoir
- prévoir
- Predictor
- précédemment
- primaire
- Directeur
- impression
- d'ouvrabilité
- processus
- traitement
- Produits
- Profil
- Progrès
- proven
- fournir
- à condition de
- fournit
- public
- publié
- Python
- qualité
- requêtes
- question
- fréquemment posées
- vite.
- aléatoire
- gamme
- raw
- solutions
- en temps réel
- recevoir
- récent
- reconnaissance
- reconnaître
- reconnaissant
- recommander
- recommandé
- en ce qui concerne
- regex
- région
- en relation
- libéré
- pertinent
- compter
- rappeler
- dépôt
- exigent
- conditions
- a besoin
- un article
- chercheur
- résidents
- Resources
- réponse
- réponses
- restreindre
- Résultats
- retourner
- Retours
- Avis
- rouge-gorge
- Rôle
- Courir
- pour le running
- s
- sagemaker
- même
- balayage
- Scientifique
- Rechercher
- Deuxièmement
- Section
- sécurité
- sur le lien
- sélection
- supérieur
- phrase
- sentiment
- Série
- service
- Services
- Session
- set
- Sets
- installation
- plusieurs
- Shorts
- devrait
- montré
- Spectacles
- étapes
- Taille
- tailles
- petit
- Instantané
- So
- Réseaux sociaux
- Le réseautage social
- quelques
- Identifier
- Région Sud
- groupe de neurones
- scission
- Stanford
- rigide
- Commencer
- j'ai commencé
- Région
- statistique
- Statut
- étapes
- Étapes
- Encore
- storage
- Boutique
- structure
- structuré
- studio
- Étourdissant
- tel
- Support
- Appareils
- Alentours
- combustion propre
- Système
- Prenez
- Target
- Tâche
- tâches
- modèle
- tester
- que
- qui
- La
- La Région
- Le Capital
- les informations
- La Source
- L'État
- L'Occident
- le monde
- leur
- Les
- puis
- la bride
- Ces
- l'ont
- this
- ceux
- trois
- Avec
- fiable
- Des séries chronologiques
- à
- Tokens
- top
- Les sujets
- -nous
- suivre
- traditionnel
- Train
- qualifié
- Formation
- Billion
- oui
- deux
- type
- types
- ui
- compréhension
- université
- Actualités
- téléchargé
- utilisé
- cas d'utilisation
- d'utiliser
- Utilisateur
- en utilisant
- utilitaire
- validation
- Plus-value
- Valeurs
- variété
- version
- vincent
- visible
- le volume
- volumes
- W
- souhaitez
- était
- Façon..
- we
- web
- services Web
- WELL
- Ouest
- Quoi
- Qu’est ce qu'
- quand
- que
- qui
- tout en
- WHO
- large
- Large gamme
- plus large
- largeur
- Wikipédia
- sera
- comprenant
- dans les
- A gagné
- Word
- travaillé
- de travail
- world
- pourra
- Vous n'avez
- Votre
- zéphyrnet