Accéder au contenu principal

Modèles Amazon Nova : Un guide avec des exemples

Découvrez les nouveaux modèles Amazon Nova (Micro, Lite, Pro, Premier, Canvas, Reel), comment y accéder à travers le Bedrock Playground et l'API, et comment construire une application multi-agents de démonstration.
Actualisé 9 déc. 2024  · 8 min de lecture

Amazon a publié une nouvelle série de modèles fondamentaux de pointe conçus pour une utilisation à grande échelle abordable. Nova rejoint désormais l'écosystème LLM d'Amazon, intégré au service Amazon Bedrock, et prend en charge de multiples modalités telles que la génération de textes, d'images et de vidéos.

Dans ce billet de blog, je vais donner un aperçu des nouveaux modèles Amazon Nova, expliquer comment y accéder via le service Bedrock, mettre en évidence les capacités et les avantages de chaque modèle, et démontrer leur utilisation en action, y compris l'intégration dans une application multi-agents.

Développer des applications d'IA

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

Que sont les modèles Amazon Nova ?

Les modèles Nova d'Amazon sont des modèles de base très attendus, accessibles via le service Amazon Bedrock. Ils sont conçus pour une variété d'applications, y compris l'inférence rapide à faible coût, la compréhension multimédia et la génération de contenu créatif. Examinons chaque modèle.

Amazon Nova Micro

Le modèle le plus rapide de la famille, avec la vitesse la plus élevée et un faible coût de calcul. Micro est la solution idéale pour les applications nécessitant une génération rapide de texte unique avec une vitesse d'inférence de 200 tokens/seconde.

Les meilleures applications de Micro sont l'analyse en temps réel, les chatbots interactifs et les services de génération de texte à fort trafic.

Bancs d'essai de l'Amazon Nova Micro

Benchmarks Nova Micro. (Source : Amazon)

Amazon Nova Lite

Le système de transport multimodal de la famille Nova, Lite est un bon équilibre entre la vitesse et la précision élevée pour de multiples tâches, en particulier pour les tâches de raisonnement et de traduction, par rapport à ses homologues tels que le GPT-4o ou Llama.

Il peut traiter efficacement de grands volumes de demandes tout en conservant une grande précision. Lite peut être un choix optimal pour les applications où la vitesse est très importante et où un modèle capable de gérer plusieurs modalités est nécessaire.

Bancs d'essai de l'Amazon Nova Lite

Benchmark du Nova Lite. (Source : Amazon)

Amazon Nova Pro

Le modèle le plus avancé de la famille Nova pour le traitement du texte, Nova Pro, offre une précision impressionnante tout en maintenant des coûts de calcul relativement bas par rapport à des modèles ayant des capacités similaires.

Selon Amazon, Nova Pro est bien adapté aux applications telles que le résumé vidéo, la réponse aux questions, le raisonnement mathématique, le développement de logiciels et les agents d'intelligence artificielle capables d'exécuter des flux de travail à plusieurs étapes. Comme les modèles Micro et Lite, Nova Pro permet actuellement un réglage fin.

Benchmark de l'Amazon Nova Pro

Benchmarks Nova Pro. (Source : Amazon)

Amazon Nova Premier

Le modèle multimodal le plus performant de la famille, qui doit encore être présenté au début de 2025, devrait constituer une étape supplémentaire par rapport au modèle Pro.

Amazon Nova Canvas

Canvas est la solution de Nova pour la génération d'images. Il permet de générer des images de haute qualité, de contrôler la palette de couleurs et le style, et offre des fonctions telles que l'incrustation, l'éviction, l'extension d'images, le transfert de style et la suppression de l'arrière-plan. Le modèle semble efficace pour créer des images de marketing, des maquettes de produits, etc.

Amazon Nova Reel

Nova Reel est un modèle de génération vidéo conçu pour des sorties vidéo de haute qualité et facilement personnalisables. Nova Reel permet aux utilisateurs de créer et de contrôler le style visuel, le rythme et les mouvements de caméra dans les vidéos. Reel, tout comme les autres modèles Nova, est doté de contrôles de sécurité intégrés qui permettent de générer des contenus alignés.

Amazon Nova Reel

Comment accéder aux modèles Amazon Nova via l'Amazon Bedrock Playground ?

Vous pouvez utiliser l'Amazon Bedrock Amazon Bedrock pour tester et comparer plusieurs modèles à l'aide d'une interface utilisateur prête à l'emploi.

Je suppose que vous avez l'interface de commande Amazon et Bedrock configurés et prêts à l'emploi. Si ce n'est pas le cas, vous pouvez vous référer à mon tutoriel sur AWS Multi-Agent Orchestratoroù je détaille les étapes pour mettre en place un environnement permettant d'utiliser les modèles fournis par les services Bedrock. En outre, l'article de blog de Nils Durner article de blog de Nils Durner propose des captures d'écran étape par étape pour vous guider dans la mise en place des services Bedrock.

Terrain de jeu Amazon Bedrock

Terrain de jeu Amazon Bedrock

En comparant les Nova Micro et Pro, j'ai remarqué que l'écart de précision entre les deux modèles n'est pas perceptible. Bien que Micro soit plus de deux fois plus rapide que Pro dans la génération de texte, il fournit des réponses adéquates pour la plupart des cas d'utilisation courants. Pro, en revanche, a tendance à produire des réponses légèrement plus détaillées et plus longues.

Comment accéder aux modèles Amazon Nova via l'API Amazon Bedrock ?

Pour utiliser les modèles Nova via l'API et les intégrer dans votre code, assurez-vous d'abord que votre compte AWS, AWS CLI, et l'accès aux modèles sont correctement configurés (la documentation fournit des conseils à ce sujet).

Ensuite, installez la bibliothèque boto3, le SDK d'AWS pour Python, qui vous permet de travailler avec leurs modèles.

pip install boto3

Vous pouvez interagir avec les modèles de manière programmatique à l'aide d'un script tel que celui présenté ci-dessous :

import boto3
import json 

client = boto3.client(service_name="bedrock-runtime")

messages = [
    {"role": "user", "content": [{"text": "Write a short poem"}]},
]

model_response = client.converse(
    modelId="us.amazon.nova-lite-v1:0", 
    messages=messages
)

print("\\n[Full Response]")
print(json.dumps(model_response, indent=2))

print("\\n[Response Content Text]")
print(model_response["output"]["message"]["content"][0]["text"])

Projet de démonstration avec Nova Micro et AWS Multi-Agent Orchestrator

Nous allons maintenant mettre en place un projet de démonstration pour tester les capacités agentiques de Nova Micro. Nous utiliserons le cadre AWS Multi-Agent Orchestrator pour mettre en place une application Python simplifiée composée de deux agents : L'agent développeur Python et l'agent expert ML. Si vous souhaitez configurer l'orchestrateur, vous pouvez utiliser ce Guide de l'orchestrateur multi-agent AWS.

Nous utiliserons également Chainlit, un paquetage Python open-source, pour mettre en œuvre une interface utilisateur simple pour l'application. Pour commencer, installez les bibliothèques nécessaires :

chainlit==1.2.0
multi_agent_orchestrator==0.0.18

Nous commençons par importer les bibliothèques nécessaires :

import uuid
import chainlit as cl
from multi_agent_orchestrator.orchestrator import MultiAgentOrchestrator, OrchestratorConfig
from multi_agent_orchestrator.classifiers import BedrockClassifier, BedrockClassifierOptions
from multi_agent_orchestrator.agents import AgentResponse
from multi_agent_orchestrator.agents import BedrockLLMAgent, BedrockLLMAgentOptions, AgentCallbacks
from multi_agent_orchestrator.orchestrator import MultiAgentOrchestrator
from multi_agent_orchestrator.types import ConversationMessage
import asyncio
import chainlit as cl

Le cadre utilise un classificateur pour choisir le meilleur agent pour une demande d'utilisateur entrante. Nous utilisons "anthropic.claude-3-haiku-20240307-v1:0" comme modèle pour notre classificateur.

class ChainlitAgentCallbacks(AgentCallbacks):
    def on_llm_new_token(self, token: str) -> None:
        asyncio.run(cl.user_session.get("current_msg").stream_token(token))

# Initialize the orchestrator
custom_bedrock_classifier = BedrockClassifier(BedrockClassifierOptions(
    model_id='anthropic.claude-3-haiku-20240307-v1:0',
    inference_config={
        'maxTokens': 500,
        'temperature': 0.7,
        'topP': 0.9
    }
))

orchestrator = MultiAgentOrchestrator(options=OrchestratorConfig(
        LOG_AGENT_CHAT=True,
        LOG_CLASSIFIER_CHAT=True,
        LOG_CLASSIFIER_RAW_OUTPUT=True,
        LOG_CLASSIFIER_OUTPUT=True,
        LOG_EXECUTION_TIMES=True,
        MAX_RETRIES=3,
        USE_DEFAULT_AGENT_IF_NONE_IDENTIFIED=False,
        MAX_MESSAGE_PAIRS_PER_AGENT=10,
    ),
    classifier=custom_bedrock_classifier
)

Ensuite, nous définissons deux agents alimentés par Nova Micro, l'un agissant en tant qu'expert développeur Python et l'autre en tant qu'expert en apprentissage automatique.

def create_python_dev():
    return BedrockLLMAgent(BedrockLLMAgentOptions(
        name="Python Developer Agent",
        streaming=True,
        description="Experienced Python developer specialized in writing, debugging, and evaluating only Python code.",
        model_id="amazon.nova-micro-v1:0",
        callbacks=ChainlitAgentCallbacks()
    ))

def create_ml_expert():
    return BedrockLLMAgent(BedrockLLMAgentOptions(
        name="Machine Learning Expert",
        streaming=True,
        description="Expert in areas related to machine learning including deep learning, pytorch, tensorflow, scikit-learn, and large language models.",
        model_id="amazon.nova-micro-v1:0",
        callbacks=ChainlitAgentCallbacks()
    ))
    

# Add agents to the orchestrator
orchestrator.add_agent(create_python_dev())
orchestrator.add_agent(create_ml_expert())

Enfin, nous configurons le corps principal du script pour l'interface utilisateur Chainlit afin de gérer les demandes de l'utilisateur et les réponses de l'agent.

@cl.on_chat_start
async def start():
    cl.user_session.set("user_id", str(uuid.uuid4()))
    cl.user_session.set("session_id", str(uuid.uuid4()))
    cl.user_session.set("chat_history", [])

@cl.on_message
async def main(message: cl.Message):
    user_id = cl.user_session.get("user_id")
    session_id = cl.user_session.get("session_id")
    msg = cl.Message(content="")
    await msg.send()  # Send the message immediately to start streaming
    cl.user_session.set("current_msg", msg)
    response:AgentResponse = await orchestrator.route_request(message.content, user_id, session_id, {})
    # Handle non-streaming responses
    if isinstance(response, AgentResponse) and response.streaming is False:
        # Handle regular response
        if isinstance(response.output, str):
            await msg.stream_token(response.output)
        elif isinstance(response.output, ConversationMessage):
                await msg.stream_token(response.output.content[0].get('text'))
    await msg.update()

if __name__ == "__main__":
    cl.run()

Le résultat est l'interface Chainlit, qui vous permet de discuter avec les modèles Nova en pratique et comme vous le souhaitez.

Exécuter notre application sur Chainlit

Exécuter notre application sur Chainlit

Des modèles de génération d'images et de vidéos sont également disponibles via l'API. Vous pouvez vous référer à la documentation pour obtenir des scripts démontrant comment les utiliser.

Conclusion

Les modèles Amazon Nova représentent une étape supplémentaire dans l'écosystème des modèles de fondations, combinant une précision, une vitesse, une rentabilité et des capacités multimodales à la pointe de la technologie. Au fur et à mesure que la suite Amazon LLM s'enrichit de nouveaux produits, elle devient un choix puissant pour construire des applications abordables et évolutives sur le dos d'AWS.

Que vous développiez des applications d'IA agentique, que vous créiez des chatbots pour le service client ou que vous exploriez en tant que développeur, l'expérimentation des modèles Nova est une expérience qui en vaut la peine. Il est également utile d'approfondir vos connaissances sur AWS, Bedrock et les outils LLM d'Amazon.

Dans cet article, nous avons couvert les aspects clés de ces modèles, comment les expérimenter et comment construire une application d'IA agentique de base en utilisant les modèles Nova.


Hesam Sheikh Hassani's photo
Author
Hesam Sheikh Hassani
LinkedIn
Twitter

Étudiante en master d'intelligence artificielle et rédactrice technique en intelligence artificielle. Je partage mes connaissances sur les dernières technologies de l'IA, en rendant la recherche en ML accessible et en simplifiant les sujets complexes liés à l'IA afin que vous restiez à la pointe du progrès.

Sujets

Apprenez l'IA et AWS avec ces cours !

cursus

Principes de l'IA

10 heures hr
Découvrez les fondamentaux de l'IA, plongez dans des modèles comme ChatGPT et décodez les secrets de l'IA générative pour naviguer dans le paysage dynamique de l'IA.
Afficher les détailsRight Arrow
Commencer Le Cours
Certification disponible

cours

Technologie et services cloud AWS

3 hr
5.8K
Maîtrisez la technologie cloud AWS grâce à un apprentissage pratique et des applications concrètes dans l'écosystème AWS.
Voir plusRight Arrow