Verbesserung der Werkzeugnutzung durch Anpassung von Amazon Nova Modellen
In der heutigen sich schnell entwickelnden Technologielandschaft haben sich große Sprachmodelle (LLMs) als leistungsstarke Werkzeuge für die Verarbeitung natürlicher Sprache etabliert. Ihre Abhängigkeit von statischen Trainingsdaten schränkt jedoch ihre Fähigkeit ein, sich an reale Szenarien anzupassen. Da Branchen zunehmend KI-Lösungen fordern, die in der Lage sind, fundierte Entscheidungen zu treffen, ist die Integration externer Tools und APIs von größter Bedeutung. Die Präzision, mit der diese Tools eingesetzt werden, ist entscheidend für die Verbesserung der Entscheidungsfindung und der betrieblichen Effizienz autonomer Agenten, wodurch letztendlich der Weg für die Entwicklung ausgefeilter Agenten-Workflows geebnet wird.
Dieser Artikel befasst sich mit den technischen Aspekten des Tool-Calling mit Amazon Nova-Modellen über Amazon Bedrock. Darüber hinaus werden verschiedene Methoden zur Anpassung dieser Modelle untersucht, um eine höhere Genauigkeit bei der Werkzeugnutzung zu erzielen.
Erweiterung der LLM-Fähigkeiten durch Werkzeugnutzung
LLMs haben eine bemerkenswerte Kompetenz in einer Vielzahl von Aufgaben der natürlichen Sprachverarbeitung bewiesen. Ihr wahres Potenzial wird jedoch durch die nahtlose Integration mit externen Tools wie APIs und Computational Frameworks freigesetzt. Diese Tools ermöglichen es LLMs, auf Echtzeitdaten zuzugreifen, domänenspezifische Berechnungen durchzuführen und präzise Informationen abzurufen, wodurch ihre Zuverlässigkeit und Vielseitigkeit erhöht wird.
Betrachten Sie die Integration einer Wetter-API, die es LLMs ermöglicht, genaue und aktuelle Wettervorhersagen bereitzustellen. In ähnlicher Weise kann eine Wikipedia-API LLMs mit der Fähigkeit ausstatten, auf ein riesiges Informationsrepertoire zuzugreifen, sodass sie komplexe Abfragen genauer beantworten können. In wissenschaftlichen Kontexten können Tools wie Taschenrechner und symbolische Engines LLMs helfen, numerische Ungenauigkeiten zu überwinden, wodurch sie für komplexe Berechnungen zuverlässiger werden.
Durch die nahtlose Integration mit diesen Tools entwickeln sich LLMs zu robusten, domänenbewussten Systemen, die in der Lage sind, dynamische und spezialisierte Aufgaben mit realem Nutzen zu bewältigen.
Amazon Nova Modelle und Amazon Bedrock
Amazon Nova-Modelle, die auf der AWS re:Invent im Dezember 2024 vorgestellt wurden, sind darauf ausgelegt, ein außergewöhnliches Preis-Leistungs-Verhältnis zu bieten. Diese Modelle bieten eine hochmoderne Leistung bei wichtigen Textverständnis-Benchmarks und bleiben gleichzeitig kosteneffektiv. Die Serie umfasst drei Varianten:
- Micro: Ein reines Textmodell, das für den Einsatz am Edge optimiert ist und eine ultraeffiziente Leistung bietet.
- Lite: Ein multimodales Modell, das ein Gleichgewicht zwischen Vielseitigkeit und Leistung herstellt.
- Pro: Ein hochleistungsfähiges multimodales Modell, das für die Bewältigung komplexer Aufgaben entwickelt wurde.
Amazon Nova-Modelle können für eine Vielzahl von Aufgaben eingesetzt werden, einschließlich Generierung und der Entwicklung von Agenten-Workflows. Diese Modelle sind in der Lage, über einen Prozess, der als Tool-Calling bezeichnet wird, mit externen Tools oder Diensten zu interagieren. Auf diese Funktionalität kann über die Amazon Bedrock-Konsole und APIs wie Converse und Invoke zugegriffen werden.
Zusätzlich zur Verwendung der vortrainierten Modelle haben Entwickler die Möglichkeit, diese Modelle mit multimodalen Daten (Pro und Lite) oder Textdaten (Pro, Lite und Micro) zu optimieren. Diese Flexibilität ermöglicht es Entwicklern, die gewünschten Genauigkeits-, Latenz- und Kosteneffizienzniveaus zu erreichen. Darüber hinaus können Entwickler die Amazon Bedrock-Konsole und APIs nutzen, um die benutzerdefinierte Feinabstimmung und Destillation größerer Modelle in kleinere Modelle selbstständig durchzuführen.
Lösungsübersicht
Die Lösung umfasst die Vorbereitung eines benutzerdefinierten Datensatzes, der speziell für die Werkzeugnutzung entwickelt wurde. Dieser Datensatz wird dann verwendet, um die Leistung von Amazon Nova-Modellen über Amazon Bedrock mithilfe der Converse- und Invoke-APIs zu bewerten. Anschließend werden die AmazonNova Micro- und Amazon Nova Lite-Modelle mithilfe des vorbereiteten Datensatzes über Amazon Bedrock feinabgestimmt. Nach Abschluss des Feinabstimmungsprozesses werden diese angepassten Modelle über den bereitgestellten Durchsatz bewertet.
Werkzeuge
Die Werkzeugnutzung in LLMs umfasst zwei wesentliche Operationen: Werkzeugauswahl und Argumentextraktion oder -generierung. Betrachten Sie beispielsweise ein Tool, das zum Abrufen von Wetterinformationen für einen bestimmten Ort entwickelt wurde. Wenn eine Abfrage wie ‘Wie ist das Wetter gerade in London?’ angezeigt wird, bewertet das LLM seine verfügbaren Tools, um festzustellen, ob ein geeignetes Tool vorhanden ist. Wenn ein geeignetes Tool identifiziert wird, wählt das Modell es aus und extrahiert die erforderlichen Argumente – in diesem Fall ‘London’ –, um den Tool-Call zu erstellen.
Jedes Tool wird sorgfältig mit einer formalen Spezifikation definiert, die seine beabsichtigte Funktionalität, obligatorische und optionale Argumente sowie zugehörige Datentypen umreißt. Diese präzisen Definitionen, die als Tool-Konfiguration bezeichnet werden, stellen sicher, dass Tool-Calls korrekt ausgeführt werden und dass die Argumentanalyse mit den betrieblichen Anforderungen des Tools übereinstimmt. In Übereinstimmung mit dieser Anforderung definiert der in diesem Beispiel verwendete Datensatz acht verschiedene Tools, jedes mit seinen eigenen Argumenten und Konfigurationen, die alle in einem JSON-Format strukturiert sind. Die acht definierten Tools sind:
- weather_api_call: Ein benutzerdefiniertes Tool zum Abrufen von Wetterinformationen.
- stat_pull: Ein benutzerdefiniertes Tool zur Identifizierung von Statistiken.
- text_to_sql: Ein benutzerdefiniertes Tool zum Konvertieren von Text in SQL-Abfragen.
- terminal: Ein Tool zum Ausführen von Skripten in einer Terminalumgebung.
- wikipedia: Ein Wikipedia-API-Tool zum Durchsuchen von Wikipedia-Seiten.
- duckduckgo_results_json: Ein Internetsuchtool, das DuckDuckGo zum Durchführen von Suchen verwendet.
- youtube_search: Ein YouTube-API-Suchtool zum Durchsuchen von Videolisten.
- pubmed_search: Ein PubMed-Suchtool zum Durchsuchen von PubMed-Abstracts.
Datensatz
Der in dieser Lösung verwendete Datensatz ist ein synthetischer Tool-Calling-Datensatz, der mit Hilfe eines Foundation Models (FM) von Amazon Bedrock erstellt und anschließend manuell validiert und angepasst wurde. Dieser Datensatz wurde für die zuvor besprochenen acht Tools entwickelt, mit dem Ziel, eine vielfältige Sammlung von Fragen und Tool-Aufrufen zu generieren, die es einem anderen Modell ermöglichen, aus diesen Beispielen zu lernen und auf unsichtbare Tool-Aufrufe zu generalisieren.
Jeder Eintrag innerhalb des Datensatzes ist als JSON-Objekt strukturiert, das Schlüssel-Wert-Paare enthält, die die Frage (eine natürliche Sprachbenutzerabfrage für das Modell), das Ground-Truth-Tool, das zur Beantwortung der Benutzerabfrage erforderlich ist, seine Argumente (ein Wörterbuch mit den Parametern, die zur Ausführung des Tools erforderlich sind) und zusätzliche Einschränkungen wie order_matters: boolean
definieren, die angibt, ob die Reihenfolge der Argumente entscheidend ist, und arg_pattern: optional
, ein regulärer Ausdruck (Regex) zur Argumentvalidierung oder -formatierung. Diese Ground-Truth-Labels werden verwendet, um das Training vortrainierter Amazon Nova-Modelle zu überwachen und sie für die Werkzeugnutzung anzupassen. Dieser Prozess, der als Supervised Fine-Tuning bezeichnet wird, wird in den folgenden Abschnitten weiter untersucht.
Der Trainingsdatensatz umfasst 560 Fragen, während der Testdatensatz 120 Fragen enthält. Der Testdatensatz ist so strukturiert, dass er 15 Fragen pro Werkzeugkategorie enthält, was insgesamt 120 Fragen ergibt.
Vorbereiten des Datensatzes für Amazon Nova
Um diesen Datensatz effektiv mit Amazon Nova-Modellen zu verwenden, ist es erforderlich, die Daten gemäß einer bestimmten Chat-Vorlage zu formatieren. Native Tool-Calling umfasst eine Übersetzungsschicht, die die Eingaben in das entsprechende Format formatiert, bevor sie an das Modell weitergeleitet werden. In dieser Lösung wird ein DIY-Tool-Use-Ansatz verfolgt, der eine benutzerdefinierte Prompt-Vorlage verwendet. Insbesondere müssen der System-Prompt, die in die Tool-Konfiguration eingebettete Benutzernachricht und die Ground-Truth-Labels als Assistentennachricht hinzugefügt werden.
Hochladen des Datensatzes in Amazon S3
Dieser Schritt ist wichtig, damit Amazon Bedrock während des Feinabstimmungsprozesses auf die Trainingsdaten zugreifen kann. Der Datensatz kann entweder über die Amazon Simple Storage Service (Amazon S3)-Konsole oder programmgesteuert hochgeladen werden.
Tool-Calling mit Basismodellen über die Amazon Bedrock API
Nachdem der Tool-Use-Datensatz erstellt und wie erforderlich formatiert wurde, kann er zum Testen der Amazon Nova-Modelle verwendet werden. Sowohl die Converse- als auch die Invoke-API können für die Tool-Use in Amazon Bedrock verwendet werden. Die Converse-API ermöglicht dynamische, kontextbezogene Konversationen, sodass Modelle an mehrrundigen Dialogen teilnehmen können, während die Invoke-API es Benutzern ermöglicht, die zugrunde liegenden Modelle innerhalb von Amazon Bedrock aufzurufen und mit ihnen zu interagieren.
Um die Converse-API zu verwenden, werden die Nachrichten, der System-Prompt (falls vorhanden) und die Tool-Konfiguration direkt an die API gesendet.
Um das Tool und die Argumente aus der LLM-Antwort zu parsen, betrachten Sie die Frage: ‘Hey, wie ist die Temperatur gerade in Paris?’. Die Ausgabe wird geparst, um das Tool und die Argumente zu identifizieren, die zur Beantwortung der Frage benötigt werden.
Feinabstimmung von Amazon Nova-Modellen für verbesserte Werkzeugnutzung
Die Feinabstimmung ist ein entscheidender Schritt, um vortrainierte Sprachmodelle wie Amazon Nova an bestimmte Aufgaben anzupassen. Indem das Modell auf einem Datensatz trainiert wird, der auf die gewünschte Anwendung zugeschnitten ist, kann das Modell lernen, die Aufgabe genauer und effizienter auszuführen. Im Zusammenhang mit der Werkzeugnutzung kann die Feinabstimmung die Fähigkeit des Modells, das geeignete Werkzeug auszuwählen und die richtigen Argumente zu extrahieren, erheblich verbessern.
Der Prozess der Feinabstimmung umfasst die Anpassung der internen Parameter des Modells, um die Differenz zwischen seinen Vorhersagen und den Ground-Truth-Labels im Trainingsdatensatz zu minimieren. Dies wird typischerweise durch einen iterativen Prozess erreicht, bei dem das Modell wiederholt den Trainingsdaten ausgesetzt wird und seine Parameter basierend auf den beobachteten Fehlern angepasst werden.
Vorbereiten des Feinabstimmungsdatensatzes
Der Feinabstimmungsdatensatz sollte sorgfältig zusammengestellt werden, um die Arten von Fragen und Tool-Aufrufen widerzuspiegeln, die das Modell in realen Szenarien verarbeiten soll. Der Datensatz sollte eine vielfältige Auswahl an Beispielen enthalten, die verschiedene Werkzeugkategorien und Argumentmuster abdecken.
Jedes Beispiel im Datensatz sollte aus einer Frage, dem entsprechenden aufzurufenden Tool und den Argumenten bestehen, die zur Ausführung des Tools erforderlich sind. Die Argumente sollten strukturiert formatiert werden, typischerweise als JSON-Objekt.
Feinabstimmungsprozess
Der Feinabstimmungsprozess kann über die Amazon Bedrock-Konsole oder APIs durchgeführt werden. Der Prozess umfasst die Angabe des feinabzustimmenden Modells, des Feinabstimmungsdatensatzes und der gewünschten Trainingsparameter.
Die Trainingsparameter steuern verschiedene Aspekte des Feinabstimmungsprozesses, wie z. B. die Lernrate, die Batchgröße und die Anzahl der Epochen. Die Lernrate bestimmt die Größenordnung der Parameteranpassungen, die während jeder Iteration vorgenommen werden. Die Batchgröße bestimmt die Anzahl der Beispiele, die in jeder Iteration verarbeitet werden. Die Anzahl der Epochen bestimmt, wie oft das Modell dem gesamten Trainingsdatensatz ausgesetzt wird.
Bewerten des feinabgestimmten Modells
Nach Abschluss des Feinabstimmungsprozesses ist es wichtig, die Leistung des feinabgestimmten Modells zu bewerten. Dies kann durch Testen des Modells auf einem separaten Testdatensatz erfolgen, der während des Feinabstimmungsprozesses nicht verwendet wurde.
Der Testdatensatz sollte repräsentativ für die Arten von Fragen und Tool-Aufrufen sein, die das Modell in realen Szenarien verarbeiten soll. Die Leistung des Modells kann anhand von Metriken wie Genauigkeit, Präzision, Rückruf und F1-Score bewertet werden.
Vorteile der Anpassung von Amazon Nova-Modellen für die Werkzeugnutzung
Die Anpassung von Amazon Nova-Modellen für die Werkzeugnutzung bietet mehrere Vorteile:
- Verbesserte Genauigkeit: Die Feinabstimmung des Modells auf einem aufgabenspezifischen Datensatz kann die Genauigkeit der Werkzeugauswahl und Argumentextraktion erheblich verbessern.
- Erhöhte Effizienz: Feinabgestimmte Modelle können Werkzeugnutzungsaufgaben oft effizienter ausführen als vortrainierte Modelle.
- Verbesserte Anpassungsfähigkeit: Die Feinabstimmung ermöglicht es dem Modell, sich an bestimmte Domänen und Anwendungsfälle anzupassen.
- Reduzierte Kosten: In einigen Fällen kann die Feinabstimmung die Rechenressourcen reduzieren, die zur Ausführung von Werkzeugnutzungsaufgaben erforderlich sind.
Fazit
Die Anpassung von Amazon Nova-Modellen für die Werkzeugnutzung ist eine wertvolle Technik zur Verbesserung der Leistung und Anpassungsfähigkeit von LLMs. Durch die Feinabstimmung des Modells auf einem aufgabenspezifischen Datensatz können Entwickler die Genauigkeit, Effizienz und Anpassungsfähigkeit von Werkzeugnutzungsanwendungen erheblich verbessern. Da Branchen zunehmend KI-Lösungen fordern, die in der Lage sind, fundierte Entscheidungen zu treffen, wird die Anpassung von LLMs für die Werkzeugnutzung immer wichtiger.