Mise à jour du 10 octobre 2023 — Amazon Bedrock est désormais disponible dans 3 régions du monde : USA Est (Virginie du Nord), USA Ouest (Oregon) et Asie-Pacifique (Tokyo).
En avril dernier, nous avons annoncé Socle amazonien dans le cadre d’un ensemble de nouveaux outils pour construire avec IA générative sur AWS. Amazon Bedrock est un service entièrement géré qui offre un choix de modèles de base (FM) hautes performances provenant de grandes sociétés d’IA, notamment Laboratoires AI21, Anthropique, Adhérer, IA de stabilitéet Amazoneainsi qu’un large éventail de fonctionnalités pour créer des applications d’IA génératives, simplifiant le développement tout en préservant la confidentialité et la sécurité.
Aujourd’hui, je suis heureux d’annoncer que Amazon Bedrock est désormais disponible pour tous ! Je suis également ravi de partager cela Le lama de Meta 2 Les modèles de paramètres 13B et 70B seront bientôt disponibles sur Amazon Bedrock.
Les fonctionnalités complètes d’Amazon Bedrock vous aident à expérimenter une variété de FM de premier plan, à les personnaliser en privé avec vos données à l’aide de techniques telles que le réglage fin et la génération augmentée par récupération (RAG), et à créer des agents gérés qui effectuent des tâches commerciales complexes, le tout sans écrire quoi que ce soit. code. Consultez mes articles précédents pour en savoir plus agents pour Amazon Bedrock et comment connectez les FM aux sources de données de votre entreprise.
Notez que certaines fonctionnalités, telles que les agents pour Amazon Bedrock, y compris les bases de connaissances, restent disponibles en version préliminaire. Je partagerai plus de détails sur les fonctionnalités qui continuent d’être disponibles en avant-première vers la fin de cet article de blog.
Étant donné qu’Amazon Bedrock est sans serveur, vous n’avez à gérer aucune infrastructure et vous pouvez intégrer et déployer en toute sécurité des fonctionnalités d’IA générative dans vos applications à l’aide des services AWS que vous connaissez déjà.
Amazon Bedrock est intégré à Amazon CloudWatch et AWS CloudTrail pour répondre à vos besoins en matière de surveillance et de gouvernance. Vous pouvez utiliser CloudWatch pour suivre les métriques d’utilisation et créer des tableaux de bord personnalisés à des fins d’audit. Avec CloudTrail, vous pouvez surveiller l’activité des API et résoudre les problèmes lorsque vous intégrez d’autres systèmes dans vos applications d’IA générative. Amazon Bedrock vous permet également de créer des applications conformes aux RGPD et vous pouvez utiliser Amazon Bedrock pour exécuter des charges de travail sensibles réglementées par la Health Insurance Portability and Accountability Act des États-Unis (HIPAA).
Commencez avec Amazon Bedrock
Vous pouvez accéder aux FM disponibles dans Amazon Bedrock via le Console de gestion AWS, Kits SDK AWSet des frameworks open source tels que LangChaîne.
Dans le Console Amazon Bedrock, vous pouvez parcourir les FM et explorer et charger des exemples de cas d’utilisation et des invites pour chaque modèle. Tout d’abord, vous devez activer l’accès aux modèles. Dans la console, sélectionnez Accès au modèle dans le volet de navigation de gauche et activez les modèles auxquels vous souhaitez accéder. Une fois l’accès au modèle activé, vous pouvez essayer différents modèles et paramètres de configuration d’inférence pour trouver un modèle qui correspond à votre cas d’utilisation.
Par exemple, voici un exemple de cas d’utilisation d’extraction d’entité contractuelle utilisant Cohére Modèle de commande :
L’exemple montre une invite avec un exemple de réponse, les paramètres de configuration d’inférence pour l’exemple et la requête API qui exécute l’exemple. Si vous sélectionnez Ouvrir dans l’aire de jeuxvous pouvez explorer davantage le modèle et le cas d’utilisation dans une expérience de console interactive.
Amazon Bedrock propose des terrains de jeux de chat, de texte et de modèles d’images. Dans le terrain de jeu du chat, vous pouvez expérimenter différents FM à l’aide d’une interface de chat conversationnel. L’exemple suivant utilise Anthropique Modèle Claude :
Lorsque vous évaluez différents modèles, vous devez essayer diverses techniques d’ingénierie rapides et paramètres de configuration d’inférence. L’ingénierie rapide est une compétence nouvelle et passionnante axée sur la façon de mieux comprendre et appliquer les FM à vos tâches et cas d’utilisation. Une ingénierie rapide efficace consiste à élaborer la requête parfaite pour tirer le meilleur parti des FM et obtenir des réponses appropriées et précises. En général, les invites doivent être simples, directes et éviter toute ambiguïté. Vous pouvez également fournir des exemples dans l’invite ou encourager le modèle à raisonner sur des tâches plus complexes.
Les paramètres de configuration d’inférence influencent la réponse générée par le modèle. Des paramètres tels que Temperature
, Top P
et Top K
vous donner le contrôle sur le caractère aléatoire et la diversité, et Maximum Length
ou Max Tokens
contrôler la longueur des réponses du modèle. Notez que chaque modèle expose un ensemble de paramètres d’inférence différent mais qui se chevauchent souvent. Ces paramètres sont soit nommés de la même manière entre les modèles, soit suffisamment similaires pour être raisonnés lorsque vous essayez différents modèles.
Nous discutons plus en détail des techniques d’ingénierie rapides efficaces et des paramètres de configuration d’inférence au cours de la première semaine du cours. IA générative avec de grands modèles de langage cours à la demande, développé par AWS en collaboration avec DeepLearning.AI. Vous pouvez également vérifier le Documentation sur le substrat rocheux d’Amazon et la documentation respective du fournisseur de modèles pour des conseils supplémentaires.
Voyons ensuite comment vous pouvez interagir avec Amazon Bedrock via des API.
Utilisation de l’API Amazon Bedrock
Travailler avec Amazon Bedrock est aussi simple que de sélectionner un FM pour votre cas d’utilisation, puis d’effectuer quelques appels d’API. Dans les exemples de code suivants, j’utiliserai le Kit SDK AWS pour Python (Boto3) pour interagir avec Amazon Bedrock.
Liste des modèles de fondation disponibles
Tout d’abord, configurons le boto3
client, puis utilisez list_foundation_models()
pour voir la liste la plus à jour des FM disponibles :
import boto3
import json
bedrock = boto3.client(
service_name="bedrock",
region_name="us-east-1"
)
bedrock.list_foundation_models()
Exécuter l’inférence à l’aide d’Amazon Bedrock InvokeModel
API
Ensuite, effectuons une demande d’inférence à l’aide de Amazon Bedrock InvokeModel
API et boto3
client d’exécution. Le client d’exécution gère les API du plan de données, y compris InvokeModel
API.
Le InvokeModel
L’API attend les paramètres suivants :
Le modelId
Le paramètre identifie le FM que vous souhaitez utiliser. La demande body
est une chaîne JSON contenant l’invite de votre tâche, ainsi que tous les paramètres de configuration d’inférence. Notez que le format de l’invite varie en fonction du fournisseur de modèles sélectionné et de FM. Le contentType
et accept
les paramètres définissent le type MIME des données dans le corps de la requête et la réponse et sont par défaut application/json
. Pour plus d’informations sur les derniers modèles, InvokeModel
Paramètres de l’API et formats d’invite, voir le Documentation sur le substrat rocheux d’Amazon.
Exemple : génération de texte à l’aide du modèle Jurassic-2 d’AI21 Lab
Voici un exemple de génération de texte utilisant Laboratoire AI21 Modèle Jurassic-2 Ultra. Je demanderai au modèle de me raconter une blague, ma version d’un Hello World.
bedrock_runtime = boto3.client(
service_name="bedrock-runtime",
region_name="us-east-1"
)
modelId = 'ai21.j2-ultra-v1'
accept="application/json"
contentType="application/json"
body = json.dumps(
{"prompt": "Knock, knock!",
"maxTokens": 200,
"temperature": 0.7,
"topP": 1,
}
)
response = bedrock_runtime.invoke_model(
body=body,
modelId=modelId,
accept=accept,
contentType=contentType
)
response_body = json.loads(response.get('body').read())
Voici la réponse :
Vous pouvez également utiliser le InvokeModel
API pour interagir avec les modèles d’intégration.
Exemple : créer des intégrations de texte à l’aide du modèle d’intégration Titan d’Amazon
Les modèles d’intégration de texte traduisent les entrées de texte, telles que des mots, des phrases ou éventuellement de grandes unités de texte, en représentations numériques, appelées vecteurs d’intégration. Les vecteurs d’intégration capturent la signification sémantique du texte dans un espace vectoriel de grande dimension et sont utiles pour des applications telles que la personnalisation ou la recherche. Dans l’exemple suivant, j’utilise le Intégrations Amazon Titan modèle pour créer un vecteur d’intégration.
prompt = "Knock-knock jokes are hilarious."
body = json.dumps({
"inputText": prompt,
})
model_id = 'amazon.titan-embed-text-v1'
accept="application/json"
content_type="application/json"
response = bedrock_runtime.invoke_model(
body=body,
modelId=model_id,
accept=accept,
contentType=content_type
)
response_body = json.loads(response['body'].read())
embedding = response_body.get('embedding')
Le vecteur d’intégration (raccourci) ressemblera à ceci :
[0.82421875, -0.6953125, -0.115722656, 0.87890625, 0.05883789, -0.020385742, 0.32421875, -0.00078201294, -0.40234375, 0.44140625, ...]
Notez qu’Amazon Titan Embeddings est disponible aujourd’hui. La famille de modèles Amazon Titan Text pour la génération de texte continue d’être disponible en aperçu limité.
Exécuter l’inférence à l’aide d’Amazon Bedrock InvokeModelWithResponseStream
API
Le InvokeModel
La requête API est synchrone et attend que la totalité de la sortie soit générée par le modèle. Pour les modèles prenant en charge les réponses en continu, Bedrock propose également un InvokeModelWithResponseStream
API qui vous permet d’appeler le modèle spécifié pour exécuter une inférence à l’aide de l’entrée fournie, mais qui diffuse la réponse à mesure que le modèle génère la sortie.
Les réponses en streaming sont particulièrement utiles pour les interfaces de chat réactives afin de maintenir l’utilisateur engagé dans une application interactive. Voici un exemple de code Python utilisant Amazon Bedrock InvokeModelWithResponseStream
API :
response = bedrock_runtime.invoke_model_with_response_stream(
modelId=modelId,
body=body)
stream = response.get('body')
if stream:
for event in stream:
chunk=event.get('chunk')
if chunk:
print(json.loads(chunk.get('bytes').decode))
Confidentialité des données et sécurité du réseau
Avec Amazon Bedrock, vous contrôlez vos données et toutes vos entrées et personnalisations restent privées sur votre compte AWS. Vos données, telles que les invites, les complétions et les modèles affinés, ne sont pas utilisées pour l’amélioration du service. De plus, les données ne sont jamais partagées avec des fournisseurs de modèles tiers.
Vos données restent dans la région où l’appel API est traité. Toutes les données sont cryptées en transit avec un minimum de cryptage TLS 1.2. Les données au repos sont chiffrées avec AES-256 à l’aide AWSKMS clés de chiffrement de données gérées. Vous pouvez également utiliser vos propres clés (clés gérées par le client) pour chiffrer les données.
Vous pouvez configurer votre compte AWS et votre cloud privé virtuel (VPC) pour utiliser Points de terminaison Amazon VPC (construit sur AWS PrivateLink) pour vous connecter en toute sécurité à Amazon Bedrock via le réseau AWS. Cela permet une connectivité sécurisée et privée entre vos applications exécutées dans un VPC et Amazon Bedrock.
Gouvernance et surveillance
Amazon Bedrock s’intègre à IAM pour vous aider à gérer les autorisations pour Amazon Bedrock. Ces autorisations incluent l’accès à des modèles, des terrains de jeux ou des fonctionnalités spécifiques au sein d’Amazon Bedrock. Toutes les activités de l’API des services gérés par AWS, y compris l’activité Amazon Bedrock, sont enregistrées dans CloudTrail au sein de votre compte.
Amazon Bedrock émet des points de données vers CloudWatch à l’aide de l’espace de noms AWS/Bedrock pour suivre les métriques courantes telles que InputTokenCount
, OutputTokenCount
, InvocationLatency
et (nombre de) Invocations
. Vous pouvez filtrer les résultats et obtenir des statistiques pour un modèle spécifique en spécifiant la dimension de l’ID du modèle lorsque vous recherchez des métriques. Ces informations en temps quasi réel vous aident à suivre l’utilisation et les coûts (nombre de jetons d’entrée et de sortie) et à résoudre les problèmes de performances (latence d’appel et nombre d’appels) lorsque vous commencez à créer des applications d’IA génératives avec Amazon Bedrock.
Modèles de facturation et de tarification
Voici quelques points à garder à l’esprit concernant les modèles de facturation et de tarification lors de l’utilisation d’Amazon Bedrock :
Facturation – Les modèles de génération de texte sont facturés par jetons d’entrée traités et par jetons de sortie générés. Les modèles d’intégration de texte sont facturés par jetons d’entrée traités. Les modèles de génération d’images sont facturés par image générée.
Modèles de tarification – Amazon Bedrock propose deux modèles de tarification : à la demande et à débit provisionné. La tarification à la demande vous permet d’utiliser les FM sur une base de paiement à l’utilisation sans avoir à prendre d’engagements de durée basés sur le temps. Le débit provisionné est principalement conçu pour les charges de travail d’inférence volumineuses et cohérentes qui nécessitent un débit garanti en échange d’un engagement à terme. Ici, vous spécifiez le nombre d’unités de modèle d’un FM particulier pour répondre aux exigences de performances de votre application telles que définies par le nombre maximum de jetons d’entrée et de sortie traités par minute. Pour des informations détaillées sur les prix, voir Tarification du substrat rocheux d’Amazon.
Maintenant disponible
Amazon Bedrock est disponible aujourd’hui dans les régions AWS USA Est (Virginie du Nord) et USA Ouest (Oregon). Pour en savoir plus, visitez Socle amazonienvérifier la Documentation sur le substrat rocheux d’Amazonexplore le espace d’IA générative sur community.aws, et mettez la main à la pâte avec Atelier sur le substrat rocheux amazonien. Vous pouvez envoyer des commentaires à AWS re:Post pour Amazon Bedrock ou via vos contacts AWS habituels.
(Disponible en aperçu) La famille de modèles de génération de texte Amazon Titan Text, le modèle de génération d’images Stable Diffusion XL de Stability AI et les agents pour Amazon Bedrock, y compris les bases de connaissances, continuent d’être disponibles en version préliminaire. Contactez vos contacts AWS habituels si vous souhaitez y accéder.
(À venir) Le Lama 2 Modèles de paramètres 13B et 70B par Méta sera bientôt disponible via l’API entièrement gérée d’Amazon Bedrock pour l’inférence et le réglage fin.
Commencez dès aujourd’hui à créer des applications d’IA générative avec Amazon Bedrock !
— Antje