Pular para o conteúdo principal

Modelos Nova da Amazon: Um guia com exemplos

Saiba mais sobre os novos modelos do Amazon Nova (Micro, Lite, Pro, Premier, Canvas, Reel), como acessá-los por meio do Bedrock Playground e da API e como criar um aplicativo multiagente de demonstração.
Actualizado 9 de dez. de 2024  · 8 min de leitura

A Amazon lançou um novo conjunto de modelos básicos de última geração projetados para uso acessível em larga escala. O Nova agora faz parte do ecossistema LLM da Amazon, integrado ao serviço Amazon Bedrock, e oferece suporte a várias modalidades, como geração de texto, imagem e vídeo.

Nesta postagem do blog, apresentarei uma visão geral dos novos modelos do Amazon Nova, explicarei como acessá-los por meio do serviço Bedrock, destacarei os recursos e os benefícios de cada modelo e demonstrarei seu uso em ação, incluindo a integração em um aplicativo multiagente.

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.
Comece a treinar gratuitamente

O que são modelos da Amazon Nova?

Os modelos Nova da Amazon são modelos fundamentais altamente antecipados, acessíveis por meio do serviço Amazon Bedrock. Eles foram projetados para uma variedade de aplicações, incluindo inferência rápida a baixo custo, compreensão de multimídia e geração de conteúdo criativo. Vamos explorar cada modelo.

Amazon Nova Micro

O modelo mais rápido da família, com a maior velocidade e baixo custo de computação. O Micro é melhor para aplicativos que exigem geração rápida de texto único com uma velocidade de inferência de 200 tokens/segundo.

Alguns dos melhores aplicativos da Micro são análises em tempo real, chatbots interativos e serviços de geração de texto de alto tráfego.

Benchmarks do Amazon Nova Micro

Benchmarks da Nova Micro. (Fonte: Amazon)

Amazon Nova Lite

O custo-benefício multimodal da família Nova, o Lite é um bom equilíbrio entre velocidade e alta precisão em várias tarefas, especialmente para tarefas de raciocínio e tradução, quando comparado com seus equivalentes, como o GPT-4o ou Llama.

Ele pode lidar com grandes volumes de solicitações de forma eficiente e, ao mesmo tempo, manter uma grande precisão. O Lite pode ser a escolha ideal para aplicações em que a velocidade é de grande importância e é necessário um modelo capaz de lidar com várias modalidades.

Benchmarks do Amazon Nova Lite

Benchmarks do Nova Lite. (Fonte: Amazon)

Amazon Nova Pro

O modelo mais avançado da família Nova para processamento de texto, o Nova Pro, oferece uma precisão impressionante e, ao mesmo tempo, mantém custos computacionais relativamente baixos em comparação com modelos com recursos semelhantes.

De acordo com a Amazon, o Nova Pro é adequado para aplicações como resumo de vídeo, resposta a perguntas, raciocínio matemático, desenvolvimento de software e agentes de IA capazes de executar fluxos de trabalho de várias etapas. Assim como os modelos Micro e Lite, o Nova Pro atualmente suporta o ajuste fino.

Benchmarks do Amazon Nova Pro

Benchmarks do Nova Pro. (Fonte: Amazon)

Amazon Nova Premier

Espera-se que o modelo multimodal mais capaz da família, que ainda está por vir no início de 2025, seja um avanço em relação ao modelo Pro.

Amazon Nova Canvas

O Canvas é a solução da Nova para geração de imagens. Ele pode gerar imagens de alta qualidade, dar controle sobre o esquema de cores e o estilo e oferecer recursos como pintura interna, pintura externa, extensão de imagens, transferência de estilo e remoção de plano de fundo. O modelo parece eficiente para a criação de imagens de marketing, maquetes de produtos, etc.

Amazon Nova Reel

O Nova Reel é um modelo de geração de vídeo projetado para saídas de vídeo de alta qualidade e facilmente personalizáveis. O Nova Reel permite que os usuários criem e controlem o estilo visual, o ritmo e o movimento da câmera nos vídeos. O Reel, assim como os outros modelos Nova, vem com controles de segurança integrados que permitem a geração de conteúdo alinhado.

Amazon Nova Reel

Como acessar os modelos do Amazon Nova por meio do Amazon Bedrock Playground

Você pode usar o Amazon Bedrock Playground para testar e comparar vários modelos por meio de uma interface de usuário pronta para uso.

Presumo que você tenha o Amazon CLI e o Bedrock configurados e prontos para uso. Caso contrário, você pode consultar meu tutorial sobre Orquestrador multiagente do AWSem que detalho as etapas para configurar um ambiente para usar os modelos fornecidos pelos serviços da Bedrock. Além disso, o post do blog de Nils Durner publicação no blog oferece capturas de tela passo a passo para orientar você na configuração dos serviços da Bedrock.

Amazon Bedrock Playground

Amazon Bedrock Playground

Ao comparar o Nova Micro e o Pro, notei que a diferença de precisão entre os dois modelos não é perceptível. Embora o Micro seja mais de duas vezes mais rápido que o Pro na geração de texto, ele fornece respostas adequadas para a maioria dos casos de uso regulares. O Pro, por outro lado, tende a produzir respostas um pouco mais detalhadas e longas.

Como acessar os modelos do Amazon Nova por meio da API do Amazon Bedrock

Para usar os modelos Nova por meio da API e integrá-los ao seu código, primeiro verifique se sua conta do AWS, a CLI do AWS e o acesso aos modelos estão configurados corretamente (a documentação fornece orientação para isso).

Em seguida, instale a biblioteca boto3, o SDK do AWS para Python, que permite que você trabalhe com seus modelos.

pip install boto3

Você pode interagir com os modelos de forma programática usando um script como o que está abaixo:

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

Projeto de demonstração com o Nova Micro e o AWS Multi-Agent Orchestrator

Agora, implementamos um projeto de demonstração para testar os recursos agênticos da Nova Micro. Usaremos a estrutura do AWS Multi-Agent Orchestrator para configurar um aplicativo Python simplificado que consiste em dois agentes: Agente desenvolvedor Python e agente especialista em ML. Se quiser configurar o orquestrador, você pode usar este Guia do orquestrador multiagente da AWS.

Também usaremos o Chainlit, um pacote Python de código aberto, para implementar uma interface de usuário simples para o aplicativo. Para começar, instale as bibliotecas necessárias:

chainlit==1.2.0
multi_agent_orchestrator==0.0.18

Começamos importando as bibliotecas necessárias:

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

A estrutura usa um classificador para escolher o melhor agente para uma solicitação de usuário recebida. Usamos "anthropic.claude-3-haiku-20240307-v1:0" como modelo para nosso classificador.

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
)

Em seguida, definimos dois agentes com tecnologia Nova Micro, um atuando como especialista em desenvolvimento Python e o outro como especialista em aprendizado de máquina.

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 fim, configuramos o corpo principal do script para que a interface do usuário Chainlit manipule as solicitações do usuário e as respostas do 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()

O resultado é a interface de usuário Chainlit, que permite que você converse com os modelos Nova na prática e como quiser.

Executando nosso aplicativo no Chainlit

Executando nosso aplicativo no Chainlit

Os modelos de geração de imagens e vídeos também estão disponíveis por meio da API. Você pode consultar a documentação para obter scripts que demonstrem como usá-los.

Conclusão

Os modelos Amazon Nova representam um avanço no ecossistema de modelos de fundação, combinando precisão, velocidade, custo-benefício e recursos multimodais de última geração. À medida que a suíte Amazon LLM cresce com novos produtos, ela está se tornando uma opção poderosa para a criação de aplicativos acessíveis e dimensionáveis com base na AWS.

Se você estiver desenvolvendo aplicativos de IA agêntica, criando chatbots para atendimento ao cliente ou explorando como desenvolvedor, experimentar os modelos Nova é uma experiência que vale a pena. Também é bom que você aprofunde seus conhecimentos sobre AWS, Bedrock e as ferramentas LLM da Amazon.

Neste artigo, abordamos os principais aspectos desses modelos, como fazer experiências com eles e como criar um aplicativo básico de IA agêntica usando os modelos Nova.


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

Estudante de mestrado em Inteligência Artificial e redatora técnica de IA. Compartilho insights sobre a mais recente tecnologia de IA, tornando a pesquisa de ML acessível e simplificando tópicos complexos de IA necessários para manter você na vanguarda.

Temas

Aprenda IA e AWS com estes 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 DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

8 modelos de aprendizado de máquina explicados em 20 minutos

Descubra tudo o que você precisa saber sobre os tipos de modelos de aprendizado de máquina, inclusive para que eles são usados e exemplos de como implementá-los.
Natassha Selvaraj's photo

Natassha Selvaraj

25 min

Machine Learning

blog

25 projetos de aprendizado de máquina para todos os níveis

Projetos de aprendizado de máquina para iniciantes, estudantes do último ano e profissionais. A lista consiste em projetos guiados, tutoriais e exemplos de código-fonte.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Os 7 principais geradores de vídeo com IA para 2024 com vídeos de exemplo

Descubra os principais geradores de vídeo com IA disponíveis atualmente, incluindo RunwayML, Synthesia, Colossyan, Pictory, DeepBrain AI, Invideo e os altamente esperados Sora e Veo da DeepMind.

tutorial

DCLM-7B da Apple: Configuração, exemplo de uso, ajuste fino

Comece a usar o modelo de linguagem grande DCLM-7B da Apple e saiba como configurá-lo, usá-lo e ajustá-lo para tarefas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

tutorial

Tutorial da API de assistentes da OpenAI

Uma visão geral abrangente da API Assistants com nosso artigo, que oferece uma análise aprofundada de seus recursos, usos no setor, orientação de configuração e práticas recomendadas para maximizar seu potencial em vários aplicativos de negócios.
Zoumana Keita 's photo

Zoumana Keita

14 min

tutorial

O guia completo para machine learning na AWS com o Amazon SageMaker

Este tutorial abrangente ensina você a usar o AWS SageMaker para criar, treinar e implantar modelos de machine learning. Nós guiamos você por todo o fluxo de trabalho, desde a configuração do seu ambiente AWS e a criação de uma instância de notebook do SageMaker até a preparação de dados, modelos de treinamento e sua implementação como endpoints.
Bex Tuychiev's photo

Bex Tuychiev

25 min

See MoreSee More