AI21 Labs
Amazon
Anthropique
Cohere
Luma AI
Meta Llama
Mistral AI
Stabilité AI
Importation de modèles personnalisés
Pourquoi changer ?
Intégration avec l'écosystème AWS
Une des raisons pour lesquelles vous devriez passer d'OpenAI à Bedrock est que vous utilisez déjà l'écosystème AWS pour stocker les données d'entrée et de sortie de votre modèle actuel. Cela permet d'améliorer les performances en minimisant la latence, car les services fonctionneront sur la même infrastructure réseau.
En outre, l'intégration au sein d'un écosystème unique vous permet de centraliser plusieurs aspects d'un environnement cloud autrement disparate. Par exemple, en transférant tout vers AWS, vous bénéficiez d'un contrôle d'accès unifié grâce à la gestion des identités et des accès (IAM) d'AWS. En outre, l'écosystème permet une mise à l'échelle automatique de toutes les ressources de calcul et de stockage, ainsi qu'une source unique de vérité pour les mesures relatives à ces ressources. Enfin, AWS contient divers autres services, tels que SageMaker, qui peuvent s'intégrer de manière transparente à votre système actuel.
Variété de modèles
Une autre raison de faire le changement est que Bedrock prend en charge plusieurs modèles, donnant aux utilisateurs la possibilité de choisir celui qui répond le mieux à leurs besoins. Si vous n'êtes pas sûr du modèle qui convient le mieux à votre cas d'utilisation, vous pouvez facilement expérimenter différents modèles en utilisant la fonctionnalité des terrains de jeu d'Amazon Bedrock. Bedrock's Playgrounds est une interface conviviale pour tester différents paramètres d'inférence, d'invites, et d'invites système pour voir la sortie du modèle. Grâce à la diversité des modèles proposés, Bedrock réduit le risque d'enfermement dans un fournisseur lorsqu'il s'agit de choisir un fournisseur d'IA.
Coûts réduits
Le tableau ci-dessous illustre la tarification des modèles OpenAI sur la base du coût par million de jetons. Chaque jeton représente environ 0,75 mot en anglais ou environ 4 caractères.
Le prix de Bedrock dépend du modèle que vous choisissez. Comme il existe de nombreux modèles, les coûts varient en fonction des capacités du modèle. Pour illustrer mon propos, j'ai listé ci-dessous les coûts des modèles Nova d'Amazon :
En comparant la Nova Pro d'Amazon au modèle gpt-4o d'OpenAI (une comparaison d'égal à égal), la Nova Pro est 68% moins chère que gpt-4o. Il s'agit d'une réduction significative des coûts, ce qui fait de la Nova Pro une option intéressante pour les utilisateurs qui souhaitent privilégier les économies sans compromettre les performances. Voici un article pour une analyse plus approfondie du Nova Pro d'Amazon par rapport aux modèles gpt-4o d'OpenAI : https://dev.to/makawtharani/amazon-nova-pro-v10-vs-openai-gpt-4o-a-cost-comparison-through-an-example-1hbo.
Comment passer d'OpenAI à Bedrock
Pour garder ce guide concis, je vais sauter des étapes, telles que la création d'un compte AWS et l'octroi de permissions.
Demander l'accès à un modèle de fondation Amazon Bedrock
Ouvrez la console Amazon Bedrock à l'adresse https://console.aws.amazon.com/bedrock/.
Sélectionnez Accès au modèle en bas du volet de navigation gauche.
Pour demander l'accès à tous les modèles, choisissez Activer tous les modèles. Pour demander l'accès à des modèles spécifiques, sélectionnez Activer des modèles spécifiques.
L'accès peut prendre plusieurs minutes. Lorsque l'accès est accordé à un modèle, le statut d'accès pour ce modèle devient Accès accordé.
Migrer de OpenAI ChatCompletion vers Boto3 Bedrock Runtime
C'est sans doute la partie la plus complexe de la migration, car elle nécessite un mappage un-à-un des interfaces Bedrock et OpenAI, ainsi que les réponses JSON renvoyées par les API.
Un exemple de requête pour créer un nouveau chat dans OpenAI est montré ci-dessous :
response = await openai.ChatCompletion.acreate(
model=MODEL,
messages= messages = [
{"role": "system", "content": system_instruction},
{"role": "user", "content": user_prompt} ]
temperature=TEMPERATURE,
functions=functions,
function_call={"name": functions[0]["name"]},
)
De même, un exemple de requête utilisant l'API Bedrock Converse est présenté ci-dessous :
response = bedrockClient.converse(
modelId= “us.anthropic.claude-3-5-sonnet-20241022-v2:0",
inferenceConfig={
"maxTokens": BEDROCK_MAXTOKENS,
"temperature": BEDROCK_TEMPERATURE,
},
system=[{"text": system_instruction}],
messages=[
{
"role": "user",
"content": [{"text": user_prompt}],
}
],
toolConfig={
"tools": [
{"toolSpec": tools},
],
"toolChoice": {"tool": {"name": tools["name"]}},
},
)
Il est évident que Bedrock et OpenAI offrent des paramètres similaires mais les rendent disponibles de différentes manières. Dressons la liste des principales différences :
Les paramètres de configuration du modèle, tels que la température, sont dans un objet inferenceConfig dans Bedrock, alors qu'ils sont configurés séparément dans OpenAI.
L'invite du système est son propre paramètre, contrairement à OpenAI qui la garde dans l'objet messages.
Les fonctions dans OpenAI sont appelées outils dans Bedrock et sont configurées de la même manière.
Une autre différence importante entre les deux API est la manière d'accéder à votre réponse structurée.
Bedrock: response["output"]["message"]["content"][0]["toolUse"]["input"] OpenAI : json.loads(response["choices"][0]["message"]["function_call"]["arguments"])
Enfin, le schéma que nous transmettons avec l'outil dans notre requête doit être enveloppé d'un {"json" : { ... }}.
Bedrock Exemple :
{
"json": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state or country (e.g., 'New York, NY')."
}
},
"required": ["location"]
}
}
OpenAI Exemple :
{
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state or country (e.g., 'New York, NY')."
}
},
"required": ["location"]
}
Conclusion
Le passage d'OpenAI à Amazon Bedrock est particulièrement pratique lorsque vous utilisez déjà AWS, car il réduit la latence et simplifie la gestion de l'infrastructure. Bedrock prend également en charge plusieurs modèles de fondation, ce qui offre aux utilisateurs une certaine flexibilité et permet d'éviter le verrouillage des fournisseurs. En outre, la fonction Playgrounds permet d'expérimenter facilement pour trouver le meilleur modèle pour vos besoins. En termes de coûts, Bedrock peut être considérablement moins cher - le Nova Pro d'Amazon coûte 68% de moins que le GPT-4o d'OpenAI. Même si la migration implique quelques différences d'API, la structure globale est similaire, ce qui rend la transition gérable. Par conséquent, si vous utilisez déjà AWS ou si vous recherchez des modèles d'IA rentables, Bedrock est une alternative solide.