Accéder au contenu principal

Amazon Bedrock : Un guide complet pour créer des applications d'IA

Découvrez comment créer des applications d'IA générative à l'aide d'Amazon Bedrock. Ce tutoriel vous guidera pas à pas à travers ses fonctionnalités, sa configuration et ses techniques d'optimisation.
Actualisé 31 janv. 2025  · 30 min de lecture

L'IA générative est devenue un perturbateur dans tous les secteurs, entraînant des progrès dans le traitement du langage naturel, la vision par ordinateur et bien d'autres domaines. Toutefois, l'exploitation de son potentiel s'est souvent accompagnée de problèmes de coûts, d'infrastructures complexes et de courbes d'apprentissage abruptes. C'est là qu'intervient AWS Bedrock, une solution qui vous aide à débloquer la situation en vous permettant d'utiliser des modèles de base sans avoir à gérer l'infrastructure.

Ce tutoriel a pour but d'être votre guide complet sur Amazon Bedrock, en décrivant ce qu'il est, comment il fonctionne, et comment vous pouvez l'utiliser. À la fin de ce guide, vous disposerez des informations et des compétences nécessaires pour développer vos propres applications d'IA générative - évolutives, flexibles et adaptées à vos objectifs.

Qu'est-ce que Amazon Bedrock ?

Amazon Bedrock est un service AWS géré pour l'accès et la gestion des modèles de fondation (FM), les éléments de base de l'IA générative d'Amazon Web Services (AWS). Bedrock rend les choses si simples que vous n'avez pas besoin de vous préoccuper du provisionnement des GPU, de la configuration des pipelines de modèles, ou de la gestion de toute autre infrastructure.

AWS Bedrock est une passerelle vers l'innovation. Il s'agit d'une plateforme unifiée permettant aux développeurs d'explorer, de tester et de déployer des modèles d'IA de pointe provenant de fournisseurs de premier plan tels qu'Anthropic, Stability AI et Titan d'Amazon.

Imaginez, par exemple, que vous développiez un chatbot pour l'assistance à la clientèle. Avec AWS Bedrock, vous pouvez sélectionner un modèle de langage sophistiqué, l'adapter aux besoins de votre application et l'intégrer dans votre application sans jamais avoir à écrire la configuration du serveur dans le code.

Caractéristiques de AWS Bedrock

Les fonctionnalités d'AWS Bedrock sont conçues pour simplifier et accélérer le passage du concept d'IA à la production. Examinons-les en détail.

Accès à plusieurs modèles de fondation

L'un des avantages les plus significatifs d'AWS Bedrock est la variété des modèles de fondations disponibles. Que vous travailliez sur des applications textuelles, du contenu visuel ou une IA sûre et interprétable, Bedrock vous couvre. Voici quelques-uns des modèles disponibles :

  • Modèles Amazon : Ces modèles propriétaires peuvent être utilisés pour des tâches telles que la création de textes semblables à ceux des humains pour les chatbots ou les applications de création de contenu, la réduction de la longueur des documents à l'essentiel ou l'interprétation du sentiment des commentaires des clients.
  • Modèles anthropiques : Ces modèles se concentrent sur le développement d'une intelligence artificielle de qualité et sûre et conviennent le mieux aux secteurs qui exigent conformité et confiance, tels que la banque ou les soins de santé.
  • Stabilité AI : Les modèles d'IA de stabilité sont bien connus pour leur génération d'images. Ils aident à transformer les idées en visuels pour le marketing, les œuvres d'art ou le développement de produits.

Diagramme d'Amazon Bedrock, connecté à Amazon Models, Anthropic, Stability AI et à d'autres fournisseurs, illustrant son rôle de plaque tournante pour les services d'IA générative.

Vue d'ensemble d'Amazon Bedrock, mettant en évidence son intégration avec les modèles.

Pas de gestion de l'infrastructure

AWS Bedrock fait abstraction de la gestion de l'infrastructure, ce qui signifie :

  • Il n'est pas nécessaire de provisionner des instances de GPU.
  • Vous pouvez vous concentrer purement sur la création d'applications avec une architecture sans serveur.
  • La facilité d'utilisation réduit considérablement les temps d'installation, qui passent souvent de quelques semaines à quelques heures.

Évolutivité et flexibilité

Les applications génératives d'IA ont généralement une demande imprévisible. Un chatbot peut répondre à des centaines d'utilisateurs pendant les heures de pointe et à seulement quelques uns pendant la nuit. Mais AWS Bedrock résout ce problème grâce à son évolutivité intégrée :

  • Mise à l'échelle automatique : Cela signifie que les modèles peuvent s'ajuster automatiquement pour gérer les pics de charge de travail sans que vous ayez à intervenir manuellement.
  • Charges de travail parallèles : Vous pouvez exécuter plusieurs modèles à la fois pour différents cas d'utilisation au sein d'une même application.
  • Disponibilité mondiale : Grâce au réseau mondial d'AWS, vous pouvez déployer vos applications au plus près de vos utilisateurs, en réduisant les temps de latence et en améliorant l'expérience utilisateur.

Intégration à l'écosystème AWS

AWS Bedrock ne se contente pas de fournir des modèles puissants : il s'intègre à d'autres services AWS pour prendre en charge les flux de travail d'IA de bout en bout. Parmi les intégrations, citons

  • Amazon SageMaker: Permet d'affiner les modèles de fondation pour répondre à des besoins spécifiques.
  • AWS Lambda: Facilite les applications d'IA pilotées par les événements, telles que le déclenchement d'un modèle pour affiner de nouvelles données ou examiner les résultats de l'inférence.
  • Amazon CloudWatch: Fournit des capacités de surveillance et de journalisation pour analyser les performances du modèle et recueillir les commentaires des utilisateurs.
  • Amazon S3: Sert de solution de stockage pour les ensembles de données, permettant le suivi des performances et l'analyse des coûts.

Configuration de AWS Bedrock

Cette section vous guidera dans la mise en place des autorisations nécessaires, la création d'un compte AWS et le démarrage d'AWS Bedrock.

Étape 1 : Création d'un compte AWS (si ce n'est pas déjà fait)

Si vous n'en avez pas encore, rendez-vous sur la page d'inscription d'AWS et créez un compte. Pour les utilisateurs existants, assurez-vous que votre utilisateur IAM dispose de privilèges d'administrateur.

Page d'inscription à AWS avec un formulaire permettant de saisir l'adresse électronique de l'utilisateur racine et le nom du compte AWS.

La page d'inscription à AWS, qui présente l'exploration du produit Free Tier pour les nouveaux comptes.

Si vous souhaitez connaître les étapes détaillées, consultez le guide officiel d'AWS.

Étape 2 : Naviguer vers AWS Bedrock

Amazon Bedrock est accessible via la console de gestion AWS. Suivez les étapes suivantes pour le localiser et commencer à l'utiliser :

  • Connectez-vous à la console de gestion AWS: Accédez à la console AWS et saisissez vos identifiants de connexion.
  • Recherche de Bedrock: Utilisez la barre de recherche en haut de la console. Tapez "Bedrock" et sélectionnez-le dans la liste déroulante.

Capture d'écran des résultats de recherche de la console de gestion AWS pour "Bedrock", affichant Amazon Bedrock en tant que service pour la création d'applications d'IA générative, Amazon SageMaker pour l'analyse des données et de l'IA, et une introduction mise en évidence à la recherche de ressources avec des capacités interrégionales.

Résultats de la recherche de Bedrock dans la console de gestion AWS.

  • Explorez le tableau de bord Bedrock: Une fois sur le tableau de bord Bedrock, vous verrez des options pour choisir les fournisseurs de modèles et les modèles de fondation.

Capture d'écran de la page Amazon Bedrock Providers présentant trois fournisseurs de modèles sans serveur : Amazon, Anthropic et Meta

La page Amazon Bedrock Providers présente les options de modèles sans serveur d'Amazon.

  • Sélectionnez un fournisseur de modèle et un modèle de fondation:
    • Choisissez un fournisseur en fonction de votre cas d'utilisation (par exemple, Amazon Titan pour la génération de texte, Stability AI pour les images, etc.)
    • Explorez les options spécifiques au modèle, telles que les types d'entrée, les fonctionnalités prises en charge et les paramètres de sortie.
  • Exécutez un test d'inférence: AWS Bedrock vous permet d'exécuter des inférences d'échantillons directement à partir de la console. C'est un excellent moyen de se faire une idée du fonctionnement de chaque modèle avant de l'intégrer dans votre application.

Capture d'écran de l'Amazon Bedrock Chat/Text Playground, avec le modèle Claude 3 Opus. L'interface comprend des options permettant de saisir une invite, d'exécuter des réponses et de comparer différents modèles. Le panneau de gauche présente des options telles que "Getting started", "Foundation models", "Playgrounds", "Builder tools" et "Safeguards".

Interface Amazon Bedrock Chat/Text Playground.

Étape 3 : Mise en place des autorisations IAM

La gestion de l'identité et de l'accès à AWS (IAM) est essentielle pour accéder en toute sécurité à AWS Bedrock. Procédez comme suit pour configurer les autorisations :

  • Dans la console de gestion AWS, accédez à l'onglet IAM .
  • Cliquez Rôles dans la barre latérale et sélectionnez Créer une politique.
  • En Spécifiez les autorisations, choisissez "JSON".

Capture d'écran de l'éditeur de politiques AWS IAM en mode JSON, montrant une politique partiellement configurée avec une liste vide d'"actions" et de "ressources". La barre latérale de gauche indique un processus en deux étapes : "Spécifier les autorisations" et "Réviser et créer" Le panneau de droite offre des options pour ajouter des actions, filtrer des services et supprimer des déclarations.

Éditeur de politiques AWS IAM en mode JSON

  • Collez la politique ci-dessous dans la zone de texte :
{
    "Version": "2012-10-17",
    "Statement": [        {
            "Sid": "BedrockFullAccess",
            "Effect": "Allow",
            "Action": ["bedrock:*"],
            "Resource": "*"
        }
    ]
}

Note : La politique ci-dessus peut être attachée à n'importe quel rôle qui doit accéder au service Amazon Bedrock. Il peut s'agir de SageMaker ou d'un utilisateur. Lorsque vous utilisez Amazon SageMaker, le rôle d'exécution de votre bloc-notes est généralement un utilisateur ou un rôle différent de celui que vous utilisez pour vous connecter à la console de gestion AWS. Pour savoir comment explorer le service Amazon Bedrock à l'aide de la console AWS, assurez-vous d'autoriser votre utilisateur ou votre rôle dans la console. Vous pouvez exécuter les carnets à partir de n'importe quel environnement ayant accès au service AWS Bedrock et disposant d'informations d'identification valides.

Utiliser Amazon Bedrock pour des applications d'IA générative

Les applications d'IA générative reposent sur des modèles de base qui sont affinés pour une tâche particulière, comme la génération de texte, la création d'images ou la transformation de données. Vous trouverez ci-dessous un guide étape par étape sur le choix d'un modèle de base, l'utilisation des travaux d'inférence de base et la modification des réponses du modèle en fonction de vos besoins.

Choisir un modèle de fondation

Le choix du bon modèle de fondation est important car il dépend des besoins de votre projet. Voici comment faire une sélection :

1. Identifiez votre cas d'utilisation :

  • Génération de texte : Pour des tâches telles que le résumé, la création de contenu ou le développement de chatbot, envisagez des modèles tels que :
    • Amazon Titan Text G1 : Ce modèle génère un texte de haute qualité avec une bonne compréhension du contexte.
    • Claude Anthropique 3 : Ce modèle est très efficace pour produire des textes cohérents et adaptés au contexte, et convient donc aux applications d'IA conversationnelle.
  • Génération d'images : Si votre projet concerne la création d'images ou de toute autre forme de contenu visuel, les modèles Stability AI sont la solution idéale :
    • Stable Diffusion 3.5 Large : Ce modèle est très performant pour générer des images à partir de descriptions textuelles, qu'elles soient photoréalistes ou artistiques.
  • Tâches multimodales : Pour les applications nécessitant à la fois un traitement de texte et d'image, les modèles Amazon Nova sont recommandés :
    • Nova Lite : Un modèle multimodal sensible aux coûts qui peut prendre du texte, des images et des vidéos en entrée et produire du texte en sortie.
    • Nova Pro : Un modèle multimodal compétent pour des tâches plus complexes.

2. Évaluer les capacités du modèle :

  • Examinez les points forts de chaque modèle pour vous assurer qu'ils correspondent aux besoins de votre projet. Des informations détaillées sur les modèles de fondation pris en charge, y compris leurs capacités et les régions prises en charge, sont disponibles dans la documentation AWS.

Permettre l'accès au modèle

Avant d'utiliser ces modèles, vous devez activer l'accès aux modèles dans votre compte AWS. Voici les étapes à suivre pour le mettre en place :

  • Dans la console Bedrock, naviguez vers Accès aux modèles.
  • Dans la console, cliquez sur Modifier l'accès au modèle.
  • Parcourez les modèles disponibles auprès des fournisseurs et sélectionnez celui qui vous convient. Dans ce cas, j'ai choisi Titan Text G1-Express.

Capture d'écran de la page "Modifier l'accès au modèle" d'Amazon Bedrock, montrant une liste de modèles Amazon Titan avec leurs statuts d'accès. L'interface comprend des options permettant de filtrer les modèles, de développer ou de réduire les sections et de regrouper les modèles par fournisseur. Le panneau de gauche présente une procédure en deux étapes : "Modifier l'accès au modèle" et "Réviser et soumettre".

Page de gestion de l'accès au modèle Amazon Bedrock.

  • Cliquez sur Suivantpuis cliquez sur Réviser et soumettre.

Exécution d'une inférence de base

Pour effectuer une inférence à l'aide d'un modèle de fondation sélectionné dans AWS Bedrock, procédez comme suit :

  • Configurez le SDK AWS pour Python (boto3) :
pip install boto3
  • Initialiser le client Bedrock : Créez un client d'exécution Bedrock dans la région AWS de votre choix :
import boto3
import json
from botocore.exceptions import ClientError

# Set the AWS Region
region = "us-east-1"

# Initialize the Bedrock Runtime client
client = boto3.client("bedrock-runtime", region_name=region)
  • Invoquez le modèle : Définissez l'ID du modèle et l'invite de saisie :
# Define the model ID for Amazon Titan Express v1
model_id = "amazon.titan-text-express-v1"

# Define the input prompt
prompt = """
Command: Compose an email from Tom, Customer Service Manager, to the customer "Nancy" 
who provided negative feedback on the service provided by our customer support 
Engineer"""
  • Formatez les données utiles de la demande :
# Configure inference parameters
inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 512,  # Limit the response length
       "temperature": 0.5,    # Control the randomness of the output
   },
}

# Convert the request payload to JSON
request_payload = json.dumps(inference_parameters)
  • Traitez la réponse :
try:
   # Invoke the model
   response = client.invoke_model(
       modelId=model_id,
       body=request_payload,
       contentType="application/json",
       accept="application/json"
   )

   # Decode the response body
   response_body = json.loads(response["body"].read())

   # Extract and print the generated text
   generated_text = response_body["results"][0]["outputText"]
   print("Generated Text:\n", generated_text)

except ClientError as e:
   print(f"ClientError: {e.response['Error']['Message']}")
except Exception as e:
   print(f"An error occurred: {e}")

Note : Vous pouvez accéder et copier le code complet directement depuis la GitHub Gist.

Vous pouvez vous attendre au résultat suivant :

% python3 main.py

Generated Text:
 
Tom:
Nancy,

I am writing to express my sincere apologies for the negative experience you had with our customer support engineer. It is unacceptable that we did not meet your expectations, and I want to assure you that we are taking steps to prevent this from happening in the future.

Sincerely,
Tom
Customer Service Manager

Personnalisation des résultats du modèle

Pour affiner le comportement de la sortie du modèle, vous pouvez ajuster des paramètres tels que temperature et maxTokenCount:

  • temperature: Ce paramètre contrôle le caractère aléatoire de la sortie. Les valeurs inférieures augmentent la détermination de la sortie, et les valeurs supérieures augmentent la variabilité.
  • MaxTokenCount: Définit la longueur maximale de la sortie générée.

Par exemple :

inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 256,  # Limit the response length
       "temperature": 0.7,    # Control the randomness of the output
   },
}

En ajustant ces paramètres, vous pouvez mieux adapter la créativité et la longueur du contenu généré aux besoins de votre application.

Caractéristiques avancées de l'Amazon Bedrock

Passons à la vitesse supérieure et concentrons-nous sur deux approches avancées : l'amélioration de l'IA à l'aide de la génération améliorée par récupération (RAG) et la gestion et le déploiement de modèles à grande échelle.

Personnalisation des résultats de l'IA avec la génération augmentée par récupération (RAG)

Les RAG exigent que nous disposions d'une base de connaissances. Avant de configurer la base de connaissances dans Amazon Bedrock, vous devez créer un seau S3 et télécharger les fichiers nécessaires. Procédez comme suit :

Étape 1 : Créez un seau S3

  • Connectez-vous à la console de gestion AWS:
    • Accédez au Service S3 dans la console de gestion AWS.
  • Créer un nouveau seau:
    • Cliquez sur Créer un seau.
    • Saisissez un nom unique pour le seau.
    • Laissez les paramètres par défaut, sauf si vous avez des exigences spécifiques en matière de sécurité ou de cryptage.
  • Configurez les paramètres du seau:
    • Veillez à ce que le blocage de l'accès public soit activé, sauf si vous en avez besoin.
    • (Facultatif) Activez la gestion des versions si vous souhaitez conserver des versions de vos fichiers.
  • Créez le seau:
    • Cliquez sur Créer un seau pour finaliser la configuration.

Étape 2 : Télécharger des fichiers vers le panier S3

  • Téléchargez le fichier:
    • Le lien GitHub fournit un exemple de fichier PDF avec des données fictives : octank_financial_10K.pdf. Vous pouvez utiliser un autre fichier si vous le souhaitez.
    • Enregistrez-le localement sur votre ordinateur.
  • Téléchargez le fichier sur S3:
    • Ouvrez le seau S3 nouvellement créé dans la console AWS.
    • Cliquez sur Télécharger et sélectionnez le fichier octank_financial_10K.pdf.
    • Examinez et définissez les autorisations (par défaut : privé).
    • Cliquez sur Télécharger pour ajouter le fichier à la corbeille.

Capture d'écran d'un panier Amazon S3 nommé "amazon-bedrock-099", affichant l'onglet "Objets" avec un seul fichier PDF nommé "octank_financial_10K.pdf".

Vue du panier Amazon S3 pour "amazon-bedrock-099".

Amazon Bedrock vous permet de créer une base de connaissances alimentée par des bases de données vectorielles. Les étapes suivantes vous guideront dans la création d'une base de connaissances, la configuration d'une source de données et la sélection d'embeddings et de magasins de vecteurs.

Étape 1 : Fournir les détails de la base de connaissances

  • Naviguez vers la console Amazon Bedrock et sélectionnez Bases de connaissances dans la sectionOutils de construction.
  • Cliquez sur Créer une base de connaissances et remplissez les champs suivants :
    • Nom de la base de connaissances: Saisissez un nom unique (par exemple, knowledge-base-quick-start).
    • Description de la base de connaissances: (Facultatif) Décrivez brièvement la base de connaissances.
  • Dans le champ Autorisations IAM section :
    • Choisissez "Créer et utiliser un nouveau rôle de service" ou "Utiliser un rôle de service existant".
    • Assurez-vous que le rôle de service dispose des autorisations nécessaires pour l'accès à Bedrock.
    • Exemple de rôle de service : AmazonBedrockExecutionRoleForKnowledgeBase.
  • Cliquez sur Cliquez sur Suivant pour procéder à la configuration de la source de données.

Capture d'écran de l'interface de création de la base de connaissances Amazon Bedrock, montrant les étapes de configuration d'une base de connaissances.

Assistant de création de la base de connaissances Amazon Bedrock.

Étape 2 : Configurer la source de données

  • Dans la section Détails de la source de données, choisissez votre source de données :
    • Amazon S3: Sélectionnez cette option si vos données sont stockées dans S3.
  • Précisez les éléments suivants :
    • Emplacement de la source de données: Choisissez entre "Ce compte AWS" et "Autre compte AWS".
    • S3 URI: Fournissez l'URI du seau S3 contenant les données. Choisissez le S3 que vous avez créé à l'étape précédente et le fichier.
    • Clé de chiffrement: (Facultatif) Ajoutez une clé KMS gérée par le client si vos données sont cryptées.
  • Configurez la stratégie d'analyse :
    • Analyseur par défaut: Traite les données en texte clair. Vous pouvez le laisser tel quel.
    • Modèles de fondation en tant qu'analyseur: Traite des documents ou des images complexes. Vous pouvez le laisser tel quel.
  • Stratégie de regroupement :
    • Le paramètre par défaut divise le texte en morceaux d'environ 300 tokens pour l'intégration. Vous pouvez le laisser tel quel.
  • (Facultatif) Ajoutez des fonctions de transformation ou des paramètres avancés pour prétraiter vos données. Vous pouvez le laisser tel quel.
  • Cliquez sur Suivant pour continuer.

Capture d'écran de l'interface de configuration de la source de données Amazon Bedrock, montrant les paramètres de connexion d'une source de données Amazon S3.

Page de configuration de la source de données Amazon Bedrock pour l'intégration d'une base de connaissances basée sur S3.

Étape 3 : Sélectionnez le modèle d'encastrement et configurez le magasin de vecteurs.

  • Choisissez un modèle Embeddings pour convertir vos données en représentations vectorielles :
    • Titan Embeddings G1 - Texte v1.2 (Vous pouvez choisir cette version pour ce tutoriel).
    • Intégrer l'anglais v3
    • Embed Multilingual v3
  • Sous la Base de données vectorielles section :
    • Choisissez "Créer rapidement un nouveau magasin vectoriel" (recommandé) ou sélectionnez un magasin existant.
    • Les options comprennent
      • Amazon OpenSearch Serverless: C'est l'idéal pour des réponses adaptées au contexte. Vous pouvez le choisir pour les besoins de ce tutoriel.
      • Amazon Aurora PostgreSQL Serverless: Optimisé pour des recherches rapides de similarités.
      • Amazon Neptune Analytics: Convient aux analyses basées sur les graphes et à la génération assistée par récupération (RAG).
  • Cliquez sur Suivant pour revoir et finaliser votre configuration.

Capture d'écran de l'interface Amazon Bedrock pour la sélection d'un modèle d'intégration et la configuration d'une base de données vectorielle.

Page de configuration d'Amazon Bedrock pour la sélection d'un modèle d'intégration et d'un magasin de vecteurs.

Étape 4 : Examiner et créer

  • Passez en revue toutes vos configurations.
  • Confirmez et cliquez sur Créer pour finaliser la base de connaissances.
  • Une fois créée, votre base de connaissances apparaîtra sous la rubrique Bases de connaissances dans la console.

Étape 5 : Tester la base de connaissances

  • Accédez à l'aperçu de la base de connaissances :
    • Accédez à la Bases de connaissances dans la console Amazon Bedrock.
    • Sélectionnez la base de connaissances que vous avez créée (par exemple, knowledge-base-quick-start).
    • Examinez les détails de la vue d'ensemble :
      • Nom et identifiant de la base de connaissances
      • Assurez-vous qu'il est réglé sur "Disponible".
      • Vérifiez que le rôle de service utilisé est correct.
  • Synchronisez et ajoutez des sources de données :
    • Si la source de données n'a pas été synchronisée, cliquez sur Synchroniser pour lancer le processus.
    • Vous pouvez également ajouter d'autres documents ou sources de données via Ajouter des documents à partir de S3.

Capture d'écran de la page d'aperçu de la base de connaissances Amazon Bedrock, affichant des détails clés tels que le nom de la base de connaissances, l'ID, le rôle du service, l'état et le type de génération augmentée par récupération (RAG).

L'aperçu de la base de connaissances Amazon Bedrock montre les détails de la configuration et l'état de la source de données.

Étape 6 : Sélectionnez un modèle à tester

  • Choisissez un modèle de fondation :
    • Cliquez sur Sélectionnez le modèle dans la Tester la base de connaissances dans le panneau Test de la base de connaissances.
    • Parcourez les modèles disponibles auprès de fournisseurs tels qu'Amazon, Anthropic et Cohere.
    • Exemple : Sélectionnez Claude Instant (v1.2) pour les requêtes textuelles.
  • Type d'inférence :
    • Choisissez à la demande si vous n'avez pas mis en place de débit provisionné.
  • Appliquez le modèle :
    • Cliquez Appliquer pour finaliser votre sélection de modèle.

Capture d'écran de l'interface "Select model" d'Amazon Bedrock, affichant les fournisseurs de modèles, notamment Amazon, Anthropic, Cohere, Meta et Mistral AI.

L'interface de sélection du modèle Amazon Bedrock propose différents modèles Claude d'Anthropic.

Étape 7 : Exécuter des requêtes et générer des réponses

  • Générer une réponse :
    • Saisissez votre requête dans le champ de saisie (par exemple, "Aidez-moi avec les tableaux des états financiers").
    • Cliquez sur Exécuter pour tester la base de connaissances.
  • Voir les détails de la source :
    • La réponse comprendra des éléments d'information en rapport avec votre demande.
    • Élargir Détails de la source pour afficher les métadonnées et la source de l'information recherchée.
  • Examinez les résultats :
    • Validez la réponse pour vous assurer qu'elle correspond au contenu de la base de connaissances.
    • Ajustez les configurations d'extraction si nécessaire.

Capture d'écran de la page de test de la base de connaissances Amazon Bedrock. Le modèle sélectionné est "Claude Instant v1.2" réglé sur l'inférence à la demande.

Interface de test de la base de connaissances Amazon Bedrock affichant une réponse à une requête.

Exemple de résultat de requête :

  • Interrogez: "Aidez-moi avec les annexes des états financiers".
  • Réponse: La base de connaissances récupérera des données détaillant des postes spécifiques dans les états financiers, tels que les tableaux des actifs et des passifs, et les métadonnées correspondantes.

Gérer et déployer des modèles d'IA à grande échelle

En utilisant des services AWS comme Lambda, Amazon Bedrock peut gérer et déployer des modèles d'IA à l'échelle. Cette approche rentable garantit une haute disponibilité et s'adapte automatiquement aux applications alimentées par l'IA. 

Dans cette section, nous utiliserons AWS Lambda pour invoquer un modèle Bedrock de manière dynamique afin que vous puissiez traiter les invites à la demande.

Étape 1 : Créez une fonction AWS Lambda

  • Connectez-vous à la console de gestion AWS.
  • Naviguez jusqu'à la page Lambda et cliquez sur Créer une fonction.
  • Choisissez la configuration de la fonction :
    • Sélectionnez "Auteur à partir de zéro".
    • Nom de la fonction : bedrock.
    • Durée d'exécution : Python 3.x.
    • Permissions : Sélectionnez un rôle IAM qui a été créé dans la section initiale de ce tutoriel.
  • Cliquez sur Créer une fonction pour initialiser la configuration.

Capture d'écran de l'interface de création d'une fonction AWS Lambda. L'option sélectionnée est "Author from scratch" et le nom de la fonction est "bedrock".

Page de création d'une fonction AWS Lambda.

Étape 2 : Ajoutez le code de la fonction Lambda

  • Ouvrez l'éditeur de fonction dans la section Code de la console Lambda.
  • Remplacez le code par défaut par le code fourni dansle Github Gist.
  • Cliquez sur Déployer pour enregistrer les modifications.

Étape 3 : Testez la fonction Lambda

  • Allez dans l' onglet Test de la console Lambda et créez un événement de test avec le JSON suivant :
{
    "prompt": "Write a formal apology letter for a late delivery."
}
  • Sauvegardez l'événement test.
  • Cliquez Test pour invoquer la fonction Lambda.
  • Vérifiez les résultats dans la sectionRésultats de l'exécution. Le texte généré devrait ressembler à ceci :

Capture d'écran des résultats d'exécution d'AWS Lambda indiquant une exécution réussie de la fonction.

Résultat de l'exécution d'AWS Lambda montrant une exécution réussie de la fonction.

Meilleures pratiques pour le déploiement de modèles d'IA

Optimisez les coûts:

  • Utilisez l'inférence à la demande pour des cas d'utilisation occasionnels.
  • Envisagez un débit provisionné si vous vous attendez à des demandes très fréquentes.

Sécuriser la fonction Lambda:

  • Limitez le rôle IAM aux seules autorisations requises.
  • Utilisez des variables d'environnement pour éviter d'exposer des données sensibles dans le code.

Moniteur et journal:

  • Utilisez les journaux CloudWatch pour suivre les métriques d'invocation et déboguer les problèmes.
  • Définissez des alarmes en cas d'erreurs ou de latence élevée.

Meilleures pratiques pour l'utilisation d'AWS Bedrock

Dans cette section, je partage quelques bonnes pratiques pour travailler avec Amazon Bedrock, de l'optimisation des coûts au maintien de la sécurité et de la précision. 

Optimisation des coûts

La gestion des coûts dans AWS Bedrock peut impliquer l'utilisation d'Amazon SageMaker pour déployer des modèles et utiliser des instances Spot pour économiser jusqu'à 90 % des dépenses. Voici quelques-unes de mes meilleures pratiques :

  • Choisissez le bon modèle de fondation : Sélectionnez les modèles qui correspondent à vos besoins. Choisissez des modèles plus petits et moins gourmands en ressources afin de réduire les coûts de calcul pour les tâches moins complexes. Par exemple, Amazon Titan Models peut être utilisé pour des tâches textuelles telles que le résumé ou Stability AI pour la génération d'images simples.
  • Inférence par lots : Au lieu de traiter les demandes individuellement, regroupez les demandes d'inférence multiples en lots. Cela réduit la fréquence des invocations du modèle, ce qui permet de réduire les coûts.
  • Exploitez les politiques de cycle de vie du S3 : Stockez uniquement les données dont vous avez besoin pour l'inférence ou la mise au point dans Amazon S3. Utilisez des stratégies de cycle de vie pour déplacer automatiquement les données vers des niveaux de stockage moins coûteux (par exemple, S3 Glacier) ou pour supprimer les données inutilisées après une période déterminée.
  • Contrôler et maîtriser les dépenses : Utilisez AWS Cost Explorer pour analyser vos schémas de dépenses et identifier les domaines à optimiser. Configurez les budgets AWS pour recevoir des alertes lorsque vous approchez des seuils de coûts prédéfinis.

Graphique décrivant le coût et l'utilisation des services Amazon Bedrock

Graphique des coûts et de l'utilisation des services Amazon Bedrock.

  • Utilisez Bedrock avec SageMaker pour une meilleure rentabilité : Utilisez les modèles de base Bedrock dans SageMaker pour tirer parti des instances Spot gérées pour les tâches d'inférence et de formation.
  • Utilisez les instances Spot dans SageMaker : Les instances Spot peuvent réduire les coûts de jusqu'à 90 % par rapport aux instances On-Demand. SageMaker gère les interruptions de Spot en votre nom, en relançant automatiquement les travaux de formation si la capacité de Spot devient indisponible. Exemple :
from sagemaker.mxnet import MXNet

# Use spot instances for cost efficiency
use_spot_instances = True

# Maximum runtime for the training job (in seconds)
max_run = 600

# Maximum wait time for Spot instance availability (in seconds); set only if using Spot instances
max_wait = 1200 if use_spot_instances else None

# Define the MXNet estimator for the training job
mnist_estimator = MXNet(
    entry_point='source_dir/mnist.py',  # Path to the script that contains the model training code
    role=role,  # IAM role used for accessing AWS resources (e.g., S3, SageMaker)
    output_path=model_artifacts_location,  # S3 location to save the trained model artifacts
    code_location=custom_code_upload_location,  # S3 location to upload the training script
    instance_count=1,  # Number of instances to use for training
    instance_type='ml.m4.xlarge',  # Instance type for the training job
    framework_version='1.6.0',  # Version of the MXNet framework to use
    py_version='py3',  # Python version for the environment
    distribution={'parameter_server': {'enabled': True}},  # Enable distributed training with a parameter server
    hyperparameters={  # Training hyperparameters
        'learning-rate': 0.1,  # Learning rate for the training job
        'epochs': 5  # Number of training epochs
    },
    use_spot_instances=use_spot_instances,  # Enable Spot instances for cost savings
    max_run=max_run,  # Maximum runtime for the training job
    max_wait=max_wait,  # Maximum wait time for Spot instance availability
    checkpoint_s3_uri=checkpoint_s3_uri  # S3 URI for saving intermediate checkpoints
)

# Start the training job and specify the locations of training and testing datasets
mnist_estimator.fit({
    'train': train_data_location,  # S3 location of the training dataset
    'test': test_data_location  # S3 location of the testing/validation dataset
})
  • Utilisez les mesures et les journaux de CloudWatch : Les mesures et les journaux de formation sont disponibles sur dans Amazon CloudWatch, ce qui permet d'obtenir des informationssur les performances et l'utilisation des ressources.

Capture d'écran des événements du journal AWS CloudWatch, affichant des entrées pour un modèle d'apprentissage automatique sous le chemin /opt/ml/model. Chaque journal comprend un horodatage, une adresse IP source et une requête HTTP GET vers /ping avec un code d'état 200.

Journaux AWS CloudWatch

Sécurité

Pour garantir la sécurité, la conformité et la performance d'Amazon Bedrock, il est important de suivre les meilleures pratiques. Voici mes recommandations :

  • Appliquer l'accès au moindre privilège: Limitez les autorisations IAM et les rôles de service aux seules ressources nécessaires afin d'empêcher tout accès non autorisé.
  • Validez les rôles de service et les groupes de sécurité: Assurez-vous que les agents Bedrock et les tâches de personnalisation de modèle sont correctement configurés avec des rôles de service et des paramètres de sécurité actifs.
  • Exécutez des charges de travail dans un VPC: Augmentez la sécurité en exécutant les tâches de personnalisation et le traitement des données within un nuage privé virtuel (VPC).
  • Cryptage des données critiques: Utilisez les clés gérées par les clients (CMK) d'Amazon KMS pour crypter les sessions des agents, les espaces de travail de Bedrock Studio, les modèles personnalisés et les données transitoires de la base de connaissances.
  • Mettez en œuvre des politiques de suppression des données: Ne conservez les données vectorielles que lorsque les sources de connaissance sont actives ; configurez la suppression automatique des données lorsqu'elles ne sont plus nécessaires.
  • Renforcer les garde-corps du socle rocheux: Définissez la force d'attaque de l'invite sur HAUT et activez les filtres d'informations sensibles pour vous protéger contre les attaques adverses et les fuites de données.
  • Sessions sécurisées de l'agent: Utilisez des garde-fous pour empêcher les accès non autorisés et protéger les interactions sensibles.
  • Activer la journalisation pour la visibilité: Activez la journalisation des invocations de modèles au niveau du compte pour suivre l'activité et détecter les anomalies.
  • Se défendre contre les attaques interservices: Utilisez des stratégies de rôle de service pour empêcher les attaques de type "Cross-Service Confused Deputy Attacks" (attaques par adjoint confus).

Suivi et évaluation du modèle

Le contrôle et l'évaluation des modèles permettent de s'assurer qu'ils sont précis, fiables et conformes aux objectifs de l'entreprise. Voici quelques bonnes pratiques :

  • Cursus des mesures de performance: Utilisez CloudWatch pour surveiller la latence, les erreurs et les tendances d'invocation.
  • Enregistrez les entrées et les sorties: Activez la journalisation détaillée pour le débogage et l'analyse des tendances.
  • Incorporer des boucles de rétroaction: Utilisez des outils tels qu'Amazon A2I pour inclure des évaluations humaines pour les produits critiques.
  • Évaluer régulièrement les résultats: Comparez les résultats avec les ensembles de données de validation ou la vérité de terrain.
  • Améliorer continuellement les modèles: Affinez les modèles avec des ensembles de données mis à jour ou des données spécifiques au domaine, si nécessaire.

Tableau de bord avec quatre graphiques de suivi des métriques pour les modèles Amazon Bedrock.

Le tableau de bord des métriques affiche le nombre d'invocations, la latence et le nombre de jetons pour différents modèles dans Amazon Bedrock.

Conclusion

AWS Bedrock change la donne dans la manière dont les applications d'IA générative sont développées et constitue une plateforme centralisée permettant d'utiliser des modèles de base sans se soucier de l'infrastructure. 

À partir de là, ce tutoriel étape par étape devrait vous aider à identifier les bons modèles, à créer des flux de travail sécurisés et évolutifs, et à intégrer des fonctionnalités telles que la génération augmentée par récupération (RAG) pour une plus grande personnalisation. Une fois les meilleures pratiques en matière de coûts, de sécurité et de surveillance mises en place, vous êtes prêt à développer et à gérer vos solutions d'IA pour atteindre vos objectifs.

Pour approfondir votre expertise AWS, découvrez ces cours :

Développer des applications d'IA

Apprenez à créer des applications d'IA à l'aide de l'API OpenAI.
Commencez à Upskiller gratuitement

Rahul Sharma's photo
Author
Rahul Sharma
LinkedIn
Twitter

Rahul Sharma est ambassadeur AWS, architecte DevOps et blogueur technique spécialisé dans le cloud computing, les pratiques DevOps et les technologies open-source. Avec une expertise dans AWS, Kubernetes et Terraform, il simplifie les concepts complexes pour les apprenants et les professionnels à travers des articles et des tutoriels engageants. Rahul est passionné par la résolution des défis DevOps et par le partage des connaissances afin d'aider la communauté technologique.

Sujets

Apprenez-en plus sur AWS grâce à ces cours !

cours

AWS Cloud Technology and Services Concepts

3 hr
7.4K
Master AWS cloud technology with hands-on learning and practical applications in the AWS ecosystem.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus