Lernpfad
Amazon Nova Models: Ein Leitfaden mit Beispielen
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
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.
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.
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.
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.
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
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
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.
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.
Lerne AI & AWS mit diesen Kursen!
Kurs
AWS Cloud Technology and Services
Kurs
Large Language Models (LLMs) Concepts
Der Blog
Die 32 besten AWS-Interview-Fragen und Antworten für 2024
Der Blog
Top 30 Generative KI Interview Fragen und Antworten für 2024
Hesam Sheikh Hassani
15 Min.
Der Blog
Die 20 besten Snowflake-Interview-Fragen für alle Niveaus
Nisha Arya Ahmed
20 Min.