Créez une interface utilisateur Web pour interagir avec les LLM à l'aide d'Amazon SageMaker JumpStart | Services Web Amazon

Créez une interface utilisateur Web pour interagir avec les LLM à l'aide d'Amazon SageMaker JumpStart | Services Web Amazon

Le lancement de ChatGPT et la popularité croissante de l'IA générative ont captivé l'imagination des clients curieux de savoir comment utiliser cette technologie pour créer de nouveaux produits et services sur AWS, tels que les chatbots d'entreprise, qui sont davantage conversationnels. Cet article vous montre comment créer une interface utilisateur Web, que nous appelons Chat Studio, pour démarrer une conversation et interagir avec les modèles de base disponibles dans Amazon SageMaker JumpStart tels que Llama 2, Stable Diffusion et d'autres modèles disponibles sur Amazon Sage Maker. Après avoir déployé cette solution, les utilisateurs peuvent démarrer rapidement et découvrir les capacités de plusieurs modèles de base en IA conversationnelle via une interface Web.

Chat Studio peut également éventuellement appeler le point de terminaison du modèle Stable Diffusion pour renvoyer un collage d'images et de vidéos pertinentes si l'utilisateur demande que les médias soient affichés. Cette fonctionnalité peut contribuer à améliorer l’expérience utilisateur grâce à l’utilisation des médias comme ressources d’accompagnement de la réponse. Ceci n'est qu'un exemple de la façon dont vous pouvez enrichir Chat Studio avec des intégrations supplémentaires pour atteindre vos objectifs.

Les captures d'écran suivantes montrent des exemples de ce à quoi ressemblent une requête et une réponse utilisateur.

Interface de requête Chat Studio

Interface de réponse de Chat Studio

Grands modèles de langage

Les chatbots d'IA générative tels que ChatGPT sont alimentés par de grands modèles de langage (LLM), basés sur un réseau neuronal d'apprentissage en profondeur qui peut être formé sur de grandes quantités de texte non étiqueté. L'utilisation des LLM permet une meilleure expérience conversationnelle qui ressemble étroitement aux interactions avec de vrais humains, favorisant un sentiment de connexion et une meilleure satisfaction des utilisateurs.

Modèles de base SageMaker

En 2021, l'Institut de Stanford pour l'intelligence artificielle centrée sur l'humain a qualifié certains LLM de modèles de fondation. Les modèles de base sont pré-entraînés sur un ensemble vaste et large de données générales et sont destinés à servir de base à d'autres optimisations dans un large éventail de cas d'utilisation, de la génération d'art numérique à la classification de textes multilingues. Ces modèles de base sont populaires auprès des clients car la formation d’un nouveau modèle à partir de zéro prend du temps et peut s’avérer coûteuse. SageMaker JumpStart donne accès à des centaines de modèles de base gérés par des fournisseurs tiers open source et propriétaires.

Vue d'ensemble de la solution

Cet article présente un flux de travail low-code pour déployer des LLM pré-entraînés et personnalisés via SageMaker et créer une interface utilisateur Web pour s'interfacer avec les modèles déployés. Nous couvrons les étapes suivantes :

  1. Déployez les modèles de base SageMaker.
  2. Déployer AWS Lambda ainsi que Gestion des identités et des accès AWS (IAM) à l'aide de AWS CloudFormation.
  3. Configurez et exécutez l’interface utilisateur.
  4. Ajoutez éventuellement d'autres modèles de fondation SageMaker. Cette étape étend la capacité de Chat Studio à interagir avec des modèles de base supplémentaires.
  5. Vous pouvez éventuellement déployer l'application à l'aide de AWS Amplifier. Cette étape déploie Chat Studio sur le Web.

Reportez-vous au diagramme suivant pour un aperçu de l’architecture de la solution.

Architecture de la solution Chat Studio

Pré-requis

Pour parcourir la solution, vous devez avoir les prérequis suivants :

  • An Compte AWS avec des privilèges utilisateur IAM suffisants.
  • npm installé dans votre environnement local. Pour obtenir des instructions sur la façon d'installer npm, faire référence à Téléchargement et installation de Node.js et npm.
  • Un quota de service de 1 pour les points de terminaison SageMaker correspondants. Pour Llama 2 13b Chat, nous utilisons une instance ml.g5.48xlarge et pour Stable Diffusion 2.1, nous utilisons une instance ml.p3.2xlarge.

Pour demander une augmentation de quota de service, sur le Console des quotas de service AWS, aller vers Services AWS, SageMaker, et demandez une augmentation du quota de service à une valeur de 1 pour ml.g5.48xlarge pour l'utilisation du point de terminaison et ml.p3.2xlarge pour l'utilisation du point de terminaison.

L'approbation de la demande de quota de service peut prendre quelques heures, en fonction de la disponibilité du type d'instance.

Déployer les modèles de base SageMaker

SageMaker est un service d'apprentissage automatique (ML) entièrement géré permettant aux développeurs de créer et de former rapidement et facilement des modèles ML. Effectuez les étapes suivantes pour déployer les modèles de base Llama 2 13b Chat et Stable Diffusion 2.1 à l'aide de Amazon SageMakerStudio:

  1. Créez un domaine SageMaker. Pour obtenir des instructions, reportez-vous à Intégration au domaine Amazon SageMaker à l'aide de la configuration rapide.

Un domaine configure tout le stockage et vous permet d'ajouter des utilisateurs pour accéder à SageMaker.

  1. Sur la console SageMaker, choisissez Studio dans le volet de navigation, puis choisissez Open Studio.
  2. Au lancement de Studio, sous SageMaker JumpStart dans le volet de navigation, choisissez Modèles, cahiers, solutions.
    Console SageMaker JumpStart
  3. Dans la barre de recherche, recherchez Llama 2 13b Chat.
  4. Sous Configuration du déploiement, Pour Instance d'hébergement SageMaker, choisissez ml.g5.48xlarge et pour Nom du noeud final, Entrer meta-textgeneration-llama-2-13b-f.
  5. Selectionnez Déployer.

Configuration du déploiement de SageMaker JumpStart

Une fois le déploiement réussi, vous devriez pouvoir voir le In Service état.

Statut du modèle de lama

  1. Sur le Modèles, cahiers, solutions page, recherchez Stable Diffusion 2.1.
  2. Sous Configuration du déploiement, Pour Instance d'hébergement SageMaker, choisissez ml.p3.2xlarge et pour Nom du noeud final, Entrer jumpstart-dft-stable-diffusion-v2-1-base.
  3. Selectionnez Déployer.

Configuration du déploiement de SageMaker JumpStart

Une fois le déploiement réussi, vous devriez pouvoir voir le In Service état.

Statut du modèle de diffusion stable

Déployer les autorisations Lambda et IAM à l'aide d'AWS CloudFormation

Cette section décrit comment lancer une pile CloudFormation qui déploie une fonction Lambda qui traite votre demande utilisateur, appelle le point de terminaison SageMaker que vous avez déployé et déploie toutes les autorisations IAM nécessaires. Effectuez les étapes suivantes :

  1. Accédez à la GitHub référentiel et téléchargez le modèle CloudFormation (lambda.cfn.yaml) sur votre ordinateur local.
  2. Sur la console CloudFormation, choisissez le Créer une pile menu déroulant et choisissez Avec de nouvelles ressources (standard).
  3. Sur le Spécifiez le modèle page, sélectionnez Télécharger un fichier modèle ainsi que Choisir le fichier.
  4. Choisissez le lambda.cfn.yaml fichier que vous avez téléchargé, puis choisissez Suivant.
  5. Sur le Spécifiez les détails de la pile , saisissez un nom de pile et la clé API que vous avez obtenue dans les prérequis, puis choisissez Suivant.
  6. Sur le Configurer les options de pile page, choisissez Suivant.
  7. Examinez et reconnaissez les modifications et choisissez Envoyer.

Configurer l'interface utilisateur Web

Cette section décrit les étapes pour exécuter l'interface utilisateur Web (créée à l'aide de Système de conception Cloudscape) sur votre ordinateur local :

  1. Sur la console IAM, accédez à l'utilisateur functionUrl.
  2. Sur le Identifiants de sécurité onglet, choisissez Créer une clé d'accès.
  3. Sur le Accédez aux meilleures pratiques et alternatives clés page, sélectionnez Interface de ligne de commande (CLI) et choisissez Suivant.
  4. Sur le Définir la balise de description page, choisissez Créer une clé d'accès.
  5. Copiez la clé d'accès et la clé d'accès secrète.
  6. Selectionnez OK.
  7. Accédez à la GitHub référentiel et télécharger le react-llm-chat-studio code.
  8. Lancez le dossier dans votre IDE préféré et ouvrez un terminal.
  9. Accédez à src/configs/aws.json et saisissez la clé d'accès et la clé d'accès secrète que vous avez obtenues.
  10. Entrez les commandes suivantes dans le terminal :
    npm install npm start

  11. Ouvert http://localhost:3000 dans votre navigateur et commencez à interagir avec vos modèles !

Pour utiliser Chat Studio, choisissez un modèle fondamental dans le menu déroulant et saisissez votre requête dans la zone de texte. Pour obtenir des images générées par l'IA avec la réponse, ajoutez l'expression « avec images » à la fin de votre requête.

Ajouter d'autres modèles de fondation SageMaker

Vous pouvez étendre davantage les capacités de cette solution pour inclure des modèles de base SageMaker supplémentaires. Étant donné que chaque modèle attend des formats d'entrée et de sortie différents lors de l'appel de son point de terminaison SageMaker, vous devrez écrire du code de transformation dans la fonction Lambda callSageMakerEndpoints pour assurer l'interface avec le modèle.

Cette section décrit les étapes générales et les modifications de code requises pour implémenter un modèle supplémentaire de votre choix. Notez qu'une connaissance de base du langage Python est requise pour les étapes 6 à 8.

  1. Dans SageMaker Studio, déployez le modèle de fondation SageMaker de votre choix.
  2. Selectionnez SageMaker JumpStart ainsi que Lancer les ressources JumpStart.
  3. Choisissez votre point de terminaison de modèle nouvellement déployé et choisissez Cahier ouvert.
  4. Sur la console du notebook, recherchez les paramètres de charge utile.

Ce sont les champs attendus par le nouveau modèle lors de l’appel de son point de terminaison SageMaker. La capture d'écran suivante montre un exemple.

Configuration du point de terminaison SageMaker

  1. Sur la console Lambda, accédez à callSageMakerEndpoints.
  2. Ajoutez un gestionnaire d'entrée personnalisé pour votre nouveau modèle.

Dans la capture d'écran suivante, nous avons transformé l'entrée pour Falcon 40B Instruct BF16 et GPT NeoXT Chat Base 20B FP16. Vous pouvez insérer votre logique de paramètre personnalisé comme indiqué pour ajouter la logique de transformation d'entrée en référence aux paramètres de charge utile que vous avez copiés.

Extrait de code Lambda

  1. Revenez à la console du portable et localisez query_endpoint.

Cette fonction vous donne une idée sur la façon de transformer la sortie des modèles pour extraire la réponse textuelle finale.

Configuration du point de terminaison SageMaker

  1. En référence au code dans query_endpoint, ajoutez un gestionnaire de sortie personnalisé pour votre nouveau modèle.
    Code Lambda
  2. Selectionnez Déployer.
  3. Ouvrez votre IDE, lancez le react-llm-chat-studio code et accédez à src/configs/models.json.
  4. Ajoutez le nom de votre modèle et le point de terminaison du modèle, puis entrez les paramètres de charge utile de l'étape 4 sous payload en utilisant le format suivant:
    "add_model_name": { "endpoint_name": "add_model_enpoint", "payload": { "add_payload_paramters_here"
    }
    },

  5. Actualisez votre navigateur pour commencer à interagir avec votre nouveau modèle !

Déployer l'application à l'aide d'Amplify

Amplify est une solution complète qui vous permet de déployer rapidement et efficacement votre application. Cette section décrit les étapes de déploiement de Chat Studio sur un Amazon CloudFront distribution en utilisant Amplify si vous souhaitez partager votre application avec d’autres utilisateurs.

  1. Accédez à la react-llm-chat-studio dossier de code que vous avez créé précédemment.
  2. Entrez les commandes suivantes dans le terminal et suivez les instructions de configuration :
    npm install -g @aws-amplify/cli amplify configure

  3. Initialisez un nouveau projet Amplify à l'aide de la commande suivante. Fournissez un nom de projet, acceptez les configurations par défaut et choisissez Clés d'accès AWS lorsque vous êtes invité à sélectionner la méthode d'authentification.
    amplify init

  4. Hébergez le projet Amplify à l’aide de la commande suivante. Choisir Amazon CloudFront et S3 lorsque vous êtes invité à sélectionner le mode plugin.
    amplify hosting add

  5. Enfin, créez et déployez le projet avec la commande suivante :
    amplify publish

  6. Une fois le déploiement réussi, ouvrez l'URL fournie dans votre navigateur et commencez à interagir avec vos modèles !

Nettoyer

Pour éviter d'encourir des frais futurs, procédez comme suit :

  1. Supprimez la pile CloudFormation. Pour obtenir des instructions, reportez-vous à Suppression d'une pile sur la console AWS CloudFormation.
  2. Supprimez le point de terminaison SageMaker JumpStart. Pour obtenir des instructions, reportez-vous à Supprimer des terminaux et des ressources.
  3. Supprimez le domaine SageMaker. Pour obtenir des instructions, reportez-vous à Supprimer un domaine Amazon SageMaker.

Conclusion

Dans cet article, nous avons expliqué comment créer une interface utilisateur Web pour s'interfacer avec les LLM déployés sur AWS.

Avec cette solution, vous pouvez interagir avec votre LLM et tenir une conversation de manière conviviale pour tester ou poser des questions LLM, et obtenir un collage d'images et de vidéos si nécessaire.

Vous pouvez étendre cette solution de différentes manières, par exemple en intégrant des modèles de fondations supplémentaires, intégrer avec Amazon Kendra pour permettre une recherche intelligente basée sur le ML pour comprendre le contenu de l'entreprise, et bien plus encore !

Nous vous invitons à expérimenter différents LLM pré-formés disponibles sur AWS, ou construisez sur ou même créez vos propres LLM dans SageMaker. Faites-nous part de vos questions et découvertes dans les commentaires, et amusez-vous !


À propos des auteurs

Créez une interface utilisateur Web pour interagir avec les LLM à l'aide d'Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Jarrett Yeo Shan Wei est architecte cloud associé au sein des services professionnels AWS couvrant le secteur public de l'ASEAN et défend l'aide aux clients pour leur modernisation et leur migration vers le cloud. Il a obtenu cinq certifications AWS et a également publié un document de recherche sur les ensembles de machines d'amplification de gradient lors de la 8e Conférence internationale sur l'IA. Pendant son temps libre, Jarrett se concentre et contribue à la scène de l'IA générative chez AWS.

Créez une interface utilisateur Web pour interagir avec les LLM à l'aide d'Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Tammy Lim Lee Xin est architecte cloud associé chez AWS. Elle utilise la technologie pour aider les clients à obtenir les résultats souhaités dans leur parcours d'adoption du cloud et est passionnée par l'IA/ML. En dehors du travail, elle aime voyager, faire de la randonnée et passer du temps avec sa famille et ses amis.

Horodatage:

Plus de Apprentissage automatique AWS