Saltar al contenido principal

Amazon Nova Models: Una guía con ejemplos

Conoce los nuevos modelos de Amazon Nova (Micro, Lite, Pro, Premier, Canvas, Reel), cómo acceder a ellos a través de Bedrock Playground y la API, y cómo crear una aplicación multiagente de demostración.
Actualizado 9 dic 2024  · 8 min de lectura

Amazon lanzó un nuevo conjunto de modelos fundacionales de última generación diseñados para un uso asequible a gran escala. Nova se une ahora al ecosistema LLM de Amazon, integrado con su servicio Amazon Bedrock, y admite múltiples modalidades, como la generación de texto, imagen y vídeo.

En esta entrada del blog, ofreceré una visión general de los nuevos modelos de Amazon Nova, explicaré cómo acceder a ellos a través del servicio Bedrock, destacaré las capacidades y ventajas de cada modelo y demostraré su uso en acción, incluida la integración en una aplicación multiagente.

Desarrollar aplicaciones de IA

Aprende a crear aplicaciones de IA utilizando la API OpenAI.
Empieza a hacer Upskilling gratis

¿Qué son los modelos Amazon Nova?

Los modelos Nova de Amazon son modelos fundacionales muy esperados, accesibles a través del servicio Amazon Bedrock. Están diseñados para diversas aplicaciones, como la inferencia rápida a bajo coste, la comprensión multimedia y la generación creativa de contenidos. Exploremos cada modelo.

Amazon Nova Micro

El modelo más rápido de la familia, con mayor velocidad y bajo coste de cálculo. Micro es mejor para aplicaciones que requieran una generación rápida de sólo texto con una velocidad de inferencia de 200 tokens/segundo.

Algunas de las mejores aplicaciones de Micro son el análisis en tiempo real, los chatbots interactivos y los servicios de generación de texto de alto tráfico.

Puntos de referencia de Amazon Nova Micro

Puntos de referencia de Nova Micro. (Fuente: Amazon)

Amazon Nova Lite

El rentable multimodal miembro de la familia Nova, Lite es un buen equilibrio entre velocidad y alta precisión en múltiples tareas, especialmente en tareas de razonamiento y traducción si se compara con sus homólogos como el GPT-4o o Llama.

Puede gestionar grandes volúmenes de solicitudes de forma eficiente, manteniendo al mismo tiempo una gran precisión. Lite puede ser una elección óptima para aplicaciones en las que la velocidad es de gran importancia, y se requiere un modelo capaz de manejar múltiples modalidades.

Amazon Nova Lite benchmarks

Pruebas de Nova Lite. (Fuente: Amazon)

Amazon Nova Pro

El modelo más avanzado de la familia Nova para el tratamiento de textos, Nova Pro, ofrece una precisión impresionante al tiempo que mantiene unos costes computacionales relativamente bajos en comparación con modelos de capacidades similares.

Según Amazon, Nova Pro es adecuado para aplicaciones como el resumen de vídeos, la respuesta a preguntas, el razonamiento matemático, el desarrollo de software y los agentes de IA capaces de ejecutar flujos de trabajo de varios pasos. Al igual que los modelos Micro y Lite, Nova Pro admite actualmente el ajuste fino.

Puntos de referencia del Amazon Nova Pro

Puntos de referencia Nova Pro. (Fuente: Amazon)

Amazon Nova Premier

Se espera que el modelo multimodal más capaz de la familia, que aún está por llegar a principios de 2025, sea un escalón superior al modelo Pro.

Amazon Nova Canvas

Canvas es la solución de Nova para la generación de imágenes. Puede generar imágenes de alta calidad, dar control sobre la combinación de colores y el estilo, y proporcionar funciones como inpainting, outpainting, ampliación de imágenes, transferencia de estilos y eliminación del fondo. El modelo parece eficaz para crear imágenes de marketing, maquetas de productos, etc.

Amazon Nova Reel

Nova Reel es un modelo de generación de vídeo diseñado para obtener salidas de vídeo de alta calidad y fácilmente personalizables. Nova Reel permite a los usuarios crear y controlar el estilo visual, el ritmo y el movimiento de la cámara en los vídeos. Reel, al igual que los demás modelos Nova, incorpora controles de seguridad que permiten generar contenidos alineados.

Amazon Nova Reel

Cómo acceder a los modelos de Amazon Nova a través de Amazon Bedrock Playground

Puedes utilizar el Amazon Bedrock Playground para probar y comparar varios modelos a través de una interfaz de usuario lista para usar.

Asumiré que tienes la CLI de Amazon y Bedrock configurados y listos para usar. Si no, puedes consultar mi tutorial sobre Orquestador multiagente de AWSdonde detallo los pasos para configurar un entorno para utilizar los modelos proporcionados por los servicios de Bedrock. Además, la de Nils Durner ofrece capturas de pantalla paso a paso para guiarte en la configuración de los servicios de Bedrock.

Zona de juegos Amazon Bedrock

Zona de juegos Amazon Bedrock

Al comparar la Nova Micro y la Pro, he observado que la diferencia de precisión entre ambos modelos no es apreciable. Aunque Micro es más del doble de rápido que Pro en la generación de texto, proporciona respuestas adecuadas para la mayoría de los casos de uso habituales. Pro, en cambio, tiende a producir respuestas algo más detalladas y largas.

Cómo acceder a los modelos de Amazon Nova a través de la API de Amazon Bedrock

Para utilizar los modelos de Nova a través de la API e integrarlos en tu código, asegúrate primero de que tu cuenta de AWS, la CLI de AWS y el acceso a los modelos están configurados correctamente (la documentación proporciona orientación al respecto).

A continuación, instala la biblioteca boto3, el SDK de AWS para Python, que te permite trabajar con sus modelos.

pip install boto3

Puedes interactuar con los modelos mediante programación utilizando un script como el siguiente:

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"])

Proyecto de demostración con Nova Micro y AWS Multi-Agent Orchestrator

Ahora ponemos en marcha un proyecto de demostración para probar las capacidades agénticas de Nova Micro. Utilizaremos el marco AWS Multi-Agent Orchestrator para configurar una aplicación Python simplificada formada por dos agentes: Agente Desarrollador Python y Agente Experto ML. Si quieres configurar el orquestador, puedes utilizar esta Guía del orquestador multiagente de AWS.

También utilizaremos Chainlit, un paquete de Python de código abierto, para implementar una interfaz de usuario sencilla para la aplicación. Para empezar, instala las bibliotecas necesarias:

chainlit==1.2.0
multi_agent_orchestrator==0.0.18

Comenzamos importando las bibliotecas necesarias:

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

El marco utiliza un Clasificador para elegir el mejor agente para una solicitud de usuario entrante. Utilizamos "antropic.claude-3-haiku-20240307-v1:0" como modelo para nuestro Clasificador.

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
)

A continuación, definimos dos agentes impulsados por Nova Micro, uno que actúa como experto en desarrollo Python y otro como experto en aprendizaje automático.

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())

Por último, configuramos el cuerpo principal del script para que la IU de Chainlit gestione las peticiones del usuario y las respuestas del agente.

@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()

El resultado es la interfaz de usuario Chainlit, que te permite chatear con los modelos Nova en la práctica y como quieras.

Ejecutar nuestra aplicación en Chainlit

Ejecutar nuestra aplicación en Chainlit

Los modelos de generación de imágenes y vídeos también están disponibles a través de la API. Puedes consultar en la documentación los guiones que demuestran cómo utilizarlos.

Conclusión

Los modelos de Amazon Nova representan un paso adelante en el ecosistema de los modelos de cimentación, ya que combinan la precisión, la velocidad, la rentabilidad y las capacidades multimodales más avanzadas. A medida que la suite Amazon LLM crece con nuevos productos, se está convirtiendo en una potente opción para crear aplicaciones asequibles y escalables con el respaldo de AWS.

Tanto si desarrollas aplicaciones de IA agéntica, como si creas chatbots para atención al cliente o exploras como desarrollador, experimentar con los modelos Nova es una experiencia que merece la pena. También es beneficioso profundizar tus conocimientos sobre AWS, Bedrock y las herramientas LLM de Amazon.

En este artículo, cubrimos los aspectos clave de estos modelos, cómo experimentar con ellos y cómo construir una aplicación básica de IA agéntica utilizando los modelos Nova.


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

Estudiante de Máster en Inteligencia Artificial y redactor técnico de IA. Comparto ideas sobre la última tecnología de IA, haciendo accesible la investigación en ML y simplificando los complejos temas de IA necesarios para mantenerte a la vanguardia.

Temas

¡Aprende IA y AWS con estos cursos!

programa

AI Fundamentals

10hrs hr
Discover the fundamentals of AI, dive into models like ChatGPT, and decode generative AI secrets to navigate the dynamic AI landscape.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

8 modelos de machine learning explicados en 20 minutos

Descubre todo lo que necesitas saber sobre los tipos de modelos de machine learning, incluyendo para qué se utilizan y ejemplos de cómo ponerlos en práctica.
Natassha Selvaraj's photo

Natassha Selvaraj

25 min

blog

Los 13 mejores proyectos de AWS: De principiante a profesional

Explora 13 proyectos prácticos de AWS para todos los niveles. Mejora tus conocimientos sobre la nube con aplicaciones prácticas del mundo real y la orientación de expertos.
Joleen Bothma's photo

Joleen Bothma

12 min

blog

Los 7 mejores generadores de vídeo de IA para 2024 con vídeos de ejemplo

Descubre los mejores generadores de vídeo de IA disponibles en la actualidad, como RunwayML, Synthesia, Colossyan, Pictory, DeepBrain AI, Invideo y el esperadísimo Sora y Veo de DeepMind.

tutorial

DCLM-7B de Apple: Configuración, Ejemplo de uso, Ajuste fino

Empieza a utilizar el gran modelo de lenguaje DCLM-7B de Apple y aprende a configurarlo, utilizarlo y ajustarlo para tareas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

tutorial

Tutorial de la API de OpenAI Assistants

Una visión completa de la API Assistants con nuestro artículo, que ofrece una mirada en profundidad a sus características, usos en la industria, guía de configuración y las mejores prácticas para maximizar su potencial en diversas aplicaciones empresariales.
Zoumana Keita 's photo

Zoumana Keita

14 min

See MoreSee More