Direkt zum Inhalt

Amazon Nova Models: Ein Leitfaden mit Beispielen

Lerne die neuen Amazon Nova Modelle (Micro, Lite, Pro, Premier, Canvas, Reel) kennen, wie du über den Bedrock Playground und die API auf sie zugreifen kannst und wie du eine Demo-Multi-Agenten-App erstellst.
Aktualisierte 9. Dez. 2024  · 8 Min. Lesezeit

Amazon hat eine neue Reihe hochmoderner Basismodelle veröffentlicht, die für den erschwinglichen Einsatz in großem Maßstab entwickelt wurden. Nova ist jetzt Teil von Amazons LLM-Ökosystem, das in den Amazon Bedrock Service integriert ist, und unterstützt mehrere Modalitäten wie Text-, Bild- und Videoerstellung.

In diesem Blogbeitrag gebe ich einen Überblick über die neuen Amazon Nova-Modelle, erkläre, wie man über den Bedrock-Service auf sie zugreift, hebe die Fähigkeiten und Vorteile jedes Modells hervor und demonstriere ihre Verwendung in der Praxis, einschließlich der Integration in eine Multi-Agenten-Anwendung.

KI-Anwendungen entwickeln

Lerne, wie man KI-Anwendungen mit der OpenAI API erstellt.
Start Upskilling for Free

Was sind Amazon Nova-Modelle?

Amazons Nova-Modelle sind mit Spannung erwartete Gründungsmodelle, die über den Amazon Bedrock Service zugänglich sind. Sie wurden für eine Vielzahl von Anwendungen entwickelt, z. B. für schnelle Schlussfolgerungen zu geringen Kosten, für das Verstehen von Multimedia und für die Erstellung kreativer Inhalte. Schauen wir uns die einzelnen Modelle an.

Amazon Nova Micro

Das schnellste Modell in der Familie, mit der höchsten Geschwindigkeit und niedrigen Rechenkosten. Micro eignet sich am besten für Anwendungen, die eine schnelle, reine Texterstellung mit einer Inferenzgeschwindigkeit von 200 Token/Sekunde erfordern.

Einige der besten Anwendungen von Micro sind Echtzeit-Analysen, interaktive Chatbots und hochfrequentierte Textgenerierungsdienste.

Amazon Nova Micro Benchmarks

Nova Micro benchmarks. (Quelle: Amazon)

Amazon Nova Lite

Die kosteneffiziente multimodale Mitglied der Nova-Familie, bietet Lite ein ausgewogenes Verhältnis zwischen Geschwindigkeit und hoher Genauigkeit bei verschiedenen Aufgaben, insbesondere bei logischen Schlussfolgerungen und Übersetzungsaufgaben, im Vergleich zu seinen Pendants wie dem GPT-4o oder Llama.

Sie kann große Mengen an Anfragen effizient bearbeiten und gleichzeitig eine hohe Genauigkeit gewährleisten. Lite kann eine optimale Wahl für Anwendungen sein, bei denen es auf Geschwindigkeit ankommt und ein Modell benötigt wird, das mehrere Modalitäten verarbeiten kann.

Amazon Nova Lite Benchmarks

Nova Lite Benchmarks. (Quelle: Amazon)

Amazon Nova Pro

Das fortschrittlichste Modell der Nova-Familie für die Textverarbeitung, Nova Pro, bietet eine beeindruckende Genauigkeit bei relativ geringen Rechenkosten im Vergleich zu Modellen mit ähnlichen Fähigkeiten.

Laut Amazon eignet sich Nova Pro gut für Anwendungen wie Videozusammenfassung, Fragebeantwortung, mathematische Schlussfolgerungen, Softwareentwicklung und KI-Agenten, die mehrstufige Workflows ausführen können. Wie die Micro- und Lite-Modelle unterstützt auch Nova Pro derzeit die Feinabstimmung.

Amazon Nova Pro Benchmarks

Nova Pro benchmarks. (Quelle: Amazon)

Amazon Nova Premier

Das leistungsstärkste multimodale Modell der Familie, das noch bis Anfang 2025 auf sich warten lässt, wird voraussichtlich eine Weiterentwicklung des Pro-Modells sein.

Amazon Nova Canvas

Canvas ist die Lösung von Nova für die Bilderzeugung. Es kann qualitativ hochwertige Bilder erzeugen, Farbschema und Stil kontrollieren und bietet Funktionen wie Ein- und Ausmalen, Bilder erweitern, Stilübertragung und Hintergrundentfernung. Das Modell scheint effizient für die Erstellung von Marketingbildern, Produktmockups usw. zu sein.

Amazon Nova Reel

Nova Reel ist ein Videogenerierungsmodell, das für hochwertige und leicht anpassbare Videoausgaben entwickelt wurde. Mit Nova Reel kannst du den visuellen Stil, das Tempo und die Kamerabewegung in Videos erstellen und kontrollieren. Reel verfügt wie die anderen Nova-Modelle über eingebaute Sicherheitskontrollen, die eine abgestimmte Inhaltserstellung ermöglichen.

Amazon Nova Reel

Wie man über den Amazon Bedrock Playground auf die Amazon Nova Models zugreift

Du kannst den Amazon Bedrock Spielplatz nutzen, um mehrere Modelle über eine gebrauchsfertige Benutzeroberfläche zu testen und zu vergleichen.

Ich gehe davon aus, dass du das Amazon CLI und Bedrock konfiguriert und einsatzbereit hast. Falls nicht, kannst du in meinem Tutorial über AWS Multi-Agent Orchestratornachlesen, in dem ich die Schritte zum Einrichten einer Umgebung für die Nutzung der von den Bedrock-Services bereitgestellten Modelle beschreibe. Außerdem hat Nils Durner in seinem Blogbeitrag bietet Schritt-für-Schritt-Screenshots, die dich durch die Einrichtung von Bedrock-Diensten führen.

Amazon Bedrock Playground

Amazon Bedrock Playground

Beim Vergleich von Nova Micro und Pro ist mir aufgefallen, dass der Unterschied in der Genauigkeit zwischen den beiden Modellen nicht spürbar ist. Obwohl Micro bei der Texterstellung mehr als doppelt so schnell ist wie Pro, liefert es für die meisten normalen Anwendungsfälle ausreichende Antworten. Pro hingegen neigt dazu, etwas ausführlichere und längere Antworten zu geben.

Wie man über die Amazon Bedrock API auf die Amazon Nova Models zugreift

Um die Nova-Modelle über die API zu nutzen und sie in deinen Code zu integrieren, musst du zunächst sicherstellen, dass dein AWS-Konto, die AWS-CLI und der Zugriff auf die Modelle richtig eingerichtet sind (die Dokumentation enthält eine Anleitung dazu).

Als Nächstes installierst du die Bibliothek boto3, das SDK von AWS für Python, mit dem du mit den Modellen von AWS arbeiten kannst.

pip install boto3

Du kannst mit den Modellen programmatisch interagieren, indem du ein Skript wie das folgende verwendest:

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

Demo-Projekt mit Nova Micro und AWS Multi-Agent Orchestrator

Wir implementieren jetzt ein Demoprojekt, um die Fähigkeiten von Nova Micro als Agent zu testen. Wir verwenden das AWS Multi-Agent Orchestrator Framework, um eine vereinfachte Python-Anwendung einzurichten, die aus zwei Agenten besteht: Python Developer Agent und ML Expert Agent. Wenn du den Orchestrator einrichten möchtest, kannst du diese AWS Multi-Agent Orchestrator Anleitung.

Wir werden auch Chainlit, ein Open-Source-Paket für Python, verwenden, um eine einfache Benutzeroberfläche für die Anwendung zu implementieren. Installiere zunächst die erforderlichen Bibliotheken:

chainlit==1.2.0
multi_agent_orchestrator==0.0.18

Wir beginnen damit, die notwendigen Bibliotheken zu importieren:

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

Das Framework verwendet einen Klassifikator, um den besten Agenten für eine eingehende Benutzeranfrage auszuwählen. Wir verwenden "anthropic.claude-3-haiku-20240307-v1:0" als Modell für unseren Classifier.

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
)

Als Nächstes definieren wir zwei von Nova Micro betriebene Agenten, von denen einer als Python-Entwicklungsexperte und der andere als Experte für maschinelles Lernen fungiert.

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

Schließlich richten wir den Hauptteil des Skripts für die Chainlit UI ein, um die Benutzeranfragen und die Antworten des Agenten zu verarbeiten.

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

Das Ergebnis ist die Chainlit UI, die es dir ermöglicht, mit den Nova-Modellen in der Praxis und nach Belieben zu chatten.

Unsere App auf Chainlit ausführen

Unsere App auf Chainlit ausführen

Bild- und Videoerstellungsmodelle sind auch über die API verfügbar. In der Dokumentation findest du Skripte, die dir zeigen, wie du sie verwenden kannst.

Fazit

Die Nova-Modelle von Amazon sind ein Schritt nach vorne im Ökosystem der Gründungsmodelle und kombinieren modernste Genauigkeit, Geschwindigkeit, Kosteneffizienz und multimodale Fähigkeiten. Die Amazon LLM-Suite wächst mit neuen Produkten und wird zu einer leistungsstarken Wahl für den Aufbau von erschwinglichen und skalierbaren Anwendungen auf der Basis von AWS.

Ganz gleich, ob du agentenbasierte KI-Anwendungen entwickelst, Chatbots für den Kundenservice erstellst oder als Entwicklerin oder Entwickler auf Entdeckungsreise gehst, das Experimentieren mit den Nova-Modellen ist eine lohnende Erfahrung. Es ist auch von Vorteil, wenn du dein Wissen über AWS, Bedrock und die LLM-Tools von Amazon vertiefst.

In diesem Artikel haben wir die wichtigsten Aspekte dieser Modelle behandelt, wie man mit ihnen experimentiert und wie man eine grundlegende agentenbasierte KI-Anwendung mit den Nova-Modellen erstellt.


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

Masterstudent der Künstlichen Intelligenz und technischer Redakteur für KI. Ich gebe Einblicke in die neuesten KI-Technologien, mache ML-Forschung zugänglich und vereinfache komplexe KI-Themen, die du brauchst, um ganz vorne mit dabei zu sein.

Themen

Lerne AI & AWS mit diesen Kursen!

Lernpfad

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.
Siehe DetailsRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

See MoreSee More