Optimalisatie van Amazon Nova met tools

In het huidige snel evoluerende technologische landschap zijn grote taalmodellen (LLM’s) uitgegroeid tot krachtige instrumenten voor natuurlijke taalverwerking. Hun afhankelijkheid van statische trainingsdata beperkt echter hun vermogen om zich aan te passen aan real-world scenario’s. Aangezien industrieën steeds meer AI-oplossingen eisen die in staat zijn om weloverwogen beslissingen te nemen, is de integratie van externe tools en API’s van cruciaal belang geworden. De precisie waarmee deze tools worden gebruikt, is essentieel voor het verbeteren van de besluitvormingscapaciteiten en de operationele efficiëntie van autonome agents, waardoor uiteindelijk de weg wordt vrijgemaakt voor de ontwikkeling van geavanceerde agentic workflows.

Dit artikel gaat in op de technische aspecten van tool calling met behulp van Amazon Nova-modellen via Amazon Bedrock. Verder worden verschillende methoden onderzocht om deze modellen aan te passen om een grotere nauwkeurigheid in toolgebruik te bereiken.

LLM-mogelijkheden uitbreiden met toolgebruik

LLM’s hebben opmerkelijke vaardigheid getoond in een breed scala aan natuurlijke taaltaken. Hun ware potentieel wordt echter ontsloten door naadloze integratie met externe tools, zoals API’s en computationele frameworks. Deze tools stellen LLM’s in staat om toegang te krijgen tot real-time data, domeinspecifieke berekeningen uit te voeren en nauwkeurige informatie op te halen, waardoor hun betrouwbaarheid en veelzijdigheid worden vergroot.

Denk aan de integratie van een weer-API, die LLM’s in staat stelt om accurate en actuele weersvoorspellingen te leveren. Op dezelfde manier kan een Wikipedia API LLM’s uitrusten met de mogelijkheid om toegang te krijgen tot een enorme opslagplaats van informatie, waardoor ze met grotere nauwkeurigheid kunnen reageren op complexe vragen. In wetenschappelijke contexten kunnen tools zoals rekenmachines en symbolische engines LLM’s helpen om numerieke onnauwkeurigheden te overwinnen, waardoor ze betrouwbaarder worden voor complexe berekeningen.

Door naadloos te integreren met deze tools, evolueren LLM’s naar robuuste, domeinbewuste systemen die in staat zijn om dynamische en gespecialiseerde taken met real-world bruikbaarheid af te handelen.

Amazon Nova-modellen en Amazon Bedrock

Amazon Nova-modellen, geïntroduceerd op AWS re:Invent in december 2024, zijn ontworpen om uitzonderlijke prijs-prestatieverhouding te leveren. Deze modellen bieden state-of-the-art prestaties op belangrijke tekstbegrip benchmarks met behoud van kosteneffectiviteit. De serie bestaat uit drie varianten:

  • Micro: Een tekst-only model geoptimaliseerd voor edge gebruik, met ultra-efficiënte prestaties.
  • Lite: Een multimodaal model dat een balans biedt tussen veelzijdigheid en prestaties.
  • Pro: Een hoogwaardig multimodaal model ontworpen voor het aanpakken van complexe taken.

Amazon Nova-modellen kunnen worden gebruikt voor een breed scala aan taken, waaronder generatie en de ontwikkeling van agentic workflows. Deze modellen bezitten de mogelijkheid om te interageren met externe tools of services via een proces dat bekend staat als tool calling. Deze functionaliteit is toegankelijk via de Amazon Bedrock console en API’s zoals Converse en Invoke.

Naast het gebruik van de vooraf getrainde modellen hebben ontwikkelaars de mogelijkheid om deze modellen te finetunen met multimodaal data (Pro en Lite) of tekstdata (Pro, Lite en Micro). Deze flexibiliteit stelt ontwikkelaars in staat om de gewenste niveaus van nauwkeurigheid, latency en kosteneffectiviteit te bereiken. Verder kunnen ontwikkelaars de Amazon Bedrock console en API’s gebruiken om self-service custom finetuning en distillatie van grotere modellen in kleinere modellen uit te voeren.

Oplossing Overzicht

De oplossing omvat het voorbereiden van een custom dataset die specifiek is ontworpen voor toolgebruik. Deze dataset wordt vervolgens gebruikt om de prestaties van Amazon Nova-modellen te evalueren via Amazon Bedrock, met behulp van de Converse en Invoke API’s. Vervolgens worden de AmazonNova Micro en Amazon Nova Lite modellen gefinetuned met behulp van de voorbereide dataset via Amazon Bedrock. Na voltooiing van het finetuning proces worden deze aangepaste modellen geëvalueerd via provisioned throughput.

Tools

Toolgebruik in LLM’s omvat twee essentiële operaties: toolselectie en argumentextractie of -generatie. Neem bijvoorbeeld een tool die is ontworpen om weersinformatie voor een specifieke locatie op te halen. Wanneer een vraag wordt voorgelegd als: “Wat is het weer in Londen op dit moment?”, beoordeelt de LLM zijn beschikbare tools om te bepalen of er een geschikte tool bestaat. Als een geschikte tool wordt geïdentificeerd, selecteert het model deze en extraheert het de benodigde argumenten - in dit geval “Londen” - om de tool call te construeren.

Elke tool is zorgvuldig gedefinieerd met een formele specificatie die de beoogde functionaliteit, verplichte en optionele argumenten en bijbehorende datatypes schetst. Deze precieze definities, aangeduid als tool config, zorgen ervoor dat tool calls correct worden uitgevoerd en dat argumentparsing overeenkomt met de operationele vereisten van de tool. In overeenstemming met deze vereiste definieert de dataset die in dit voorbeeld wordt gebruikt acht verschillende tools, elk met zijn eigen argumenten en configuraties, allemaal gestructureerd in een JSON-formaat. De acht gedefinieerde tools zijn als volgt:

  • weather_api_call: Een custom tool die is ontworpen voor het ophalen van weersinformatie.
  • stat_pull: Een custom tool voor het identificeren van statistieken.
  • text_to_sql: Een custom tool voor het converteren van tekst naar SQL-queries.
  • terminal: Een tool voor het uitvoeren van scripts in een terminalomgeving.
  • wikipedia: Een Wikipedia API tool voor het zoeken door Wikipedia pagina’s.
  • duckduckgo_results_json: Een internetzoektool die DuckDuckGo gebruikt om zoekopdrachten uit te voeren.
  • youtube_search: Een YouTube API zoektool voor het zoeken van video listings.
  • pubmed_search: Een PubMed zoektool voor het zoeken van PubMed abstracts.

Dataset

De dataset die in deze oplossing wordt gebruikt, is een synthetische tool calling dataset, gemaakt met behulp van een foundation model (FM) van Amazon Bedrock en vervolgens handmatig gevalideerd en aangepast. Deze dataset is ontwikkeld voor de set van acht tools die eerder zijn besproken, met als doel een diverse verzameling vragen en tool invocaties te genereren die een ander model in staat stellen om van deze voorbeelden te leren en te generaliseren naar ongeziene tool invocaties.

Elke entry binnen de dataset is gestructureerd als een JSON-object, met key-value pairs die de vraag definiëren (een natural language user query voor het model), de ground truth tool die nodig is om de user query te beantwoorden, zijn argumenten (een dictionary met de parameters die nodig zijn om de tool uit te voeren) en aanvullende constraints, zoals order_matters: boolean, die aangeeft of de volgorde van argumenten cruciaal is, en arg_pattern: optional, een regular expression (regex) voor argumentvalidatie of -formattering. Deze ground truth labels worden gebruikt om het trainen van vooraf getrainde Amazon Nova-modellen te begeleiden, waardoor ze worden aangepast voor toolgebruik. Dit proces, bekend als supervised fine-tuning, wordt verder onderzocht in de volgende secties.

De trainingset bevat 560 vragen, terwijl de testset 120 vragen bevat. De testset is gestructureerd om 15 vragen per toolcategorie te bevatten, in totaal 120 vragen.

De dataset voorbereiden voor Amazon Nova

Om deze dataset effectief te gebruiken met Amazon Nova-modellen, is het noodzakelijk om de data te formatteren volgens een specifiek chat template. Native tool calling bevat een translation layer die de inputs in de juiste indeling formatteert voordat ze naar het model worden gestuurd. In deze oplossing wordt een DIY tool use approach gebruikt, waarbij een custom prompt template wordt gebruikt. Concreet moeten de system prompt, de user message embedded met de tool config en de ground truth labels worden toegevoegd als de assistant message.

De dataset uploaden naar Amazon S3

Deze stap is essentieel om Amazon Bedrock in staat te stellen om toegang te krijgen tot de trainingsdata tijdens het finetuning proces. De dataset kan worden geüpload via de Amazon Simple Storage Service (Amazon S3) console of programmatisch.

Tool Calling met Base Models via de Amazon Bedrock API

Met de tool use dataset gemaakt en geformatteerd zoals vereist, kan deze worden gebruikt om de Amazon Nova-modellen te testen. Zowel de Converse als Invoke API’s kunnen worden gebruikt voor tool use in Amazon Bedrock. De Converse API maakt dynamische, contextbewuste conversaties mogelijk, waardoor modellen in staat zijn om deel te nemen aan multi-turn dialogen, terwijl de Invoke API gebruikers in staat stelt om de onderliggende modellen binnen Amazon Bedrock aan te roepen en ermee te interageren.

Om de Converse API te gebruiken, worden de messages, system prompt (indien van toepassing) en de tool config rechtstreeks naar de API gestuurd.

Om de tool en argumenten uit de LLM-response te parseren, overweeg de vraag: “Hey, wat is de temperatuur in Parijs op dit moment?”. De output zal worden geparsed om de tool en argumenten te identificeren die nodig zijn om de vraag te beantwoorden.

Amazon Nova-modellen finetunen voor verbeterd toolgebruik

Finetunen is een cruciale stap in het aanpassen van vooraf getrainde taalmodellen zoals Amazon Nova aan specifieke taken. Door het model te trainen op een dataset die is afgestemd op de gewenste applicatie, kan het model leren om de taak met grotere nauwkeurigheid en efficiëntie uit te voeren. In de context van toolgebruik kan finetunen het vermogen van het model om de juiste tool te selecteren en de correcte argumenten te extraheren aanzienlijk verbeteren.

Het proces van finetunen omvat het aanpassen van de interne parameters van het model om het verschil tussen zijn voorspellingen en de ground truth labels in de trainingsdataset te minimaliseren. Dit wordt doorgaans bereikt door een iteratief proces, waarbij het model herhaaldelijk wordt blootgesteld aan de trainingsdata en zijn parameters worden aangepast op basis van de waargenomen fouten.

De finetuning dataset voorbereiden

De finetuning dataset moet zorgvuldig worden samengesteld om de soorten vragen en tool invocaties weer te geven die het model in real-world scenario’s naar verwachting zal afhandelen. De dataset moet een divers scala aan voorbeelden bevatten, die verschillende toolcategorieën en argumentpatronen omvatten.

Elk voorbeeld in de dataset moet bestaan uit een vraag, de corresponderende tool die moet worden aangeroepen en de argumenten die nodig zijn om de tool uit te voeren. De argumenten moeten op een gestructureerde manier worden geformatteerd, doorgaans als een JSON-object.

Finetuning Proces

Het finetuning proces kan worden uitgevoerd met behulp van de Amazon Bedrock console of API’s. Het proces omvat het specificeren van het model dat moet worden gefinetuned, de finetuning dataset en de gewenste trainingsparameters.

De trainingsparameters bepalen verschillende aspecten van het finetuning proces, zoals de learning rate, batch size en het aantal epochs. De learning rate bepaalt de omvang van de parameteraanpassingen die tijdens elke iteratie worden gemaakt. De batch size bepaalt het aantal voorbeelden dat in elke iteratie wordt verwerkt. Het aantal epochs bepaalt het aantal keren dat het model wordt blootgesteld aan de gehele trainingsdataset.

Het gefinetunede model evalueren

Nadat het finetuning proces is voltooid, is het essentieel om de prestaties van het gefinetunede model te evalueren. Dit kan worden gedaan door het model te testen op een afzonderlijke testdataset die niet is gebruikt tijdens het finetuning proces.

De testdataset moet representatief zijn voor de soorten vragen en tool invocaties die het model in real-world scenario’s naar verwachting zal afhandelen. De prestaties van het model kunnen worden geëvalueerd door metingen zoals nauwkeurigheid, precisie, recall en F1-score.

Voordelen van het aanpassen van Amazon Nova-modellen voor toolgebruik

Het aanpassen van Amazon Nova-modellen voor toolgebruik biedt verschillende voordelen:

  • Verbeterde nauwkeurigheid: Het finetunen van het model op een taakspecifieke dataset kan de nauwkeurigheid van toolselectie en argumentextractie aanzienlijk verbeteren.
  • Verhoogde efficiëntie: Gefinetunede modellen kunnen toolgebruikstaken vaak efficiënter uitvoeren dan vooraf getrainde modellen.
  • Verbeterde aanpasbaarheid: Finetunen stelt het model in staat om zich aan te passen aan specifieke domeinen en use cases.
  • Verminderde kosten: In sommige gevallen kan finetunen de computationele resources verminderen die nodig zijn om toolgebruikstaken uit te voeren.

Conclusie

Het aanpassen van Amazon Nova-modellen voor toolgebruik is een waardevolle techniek voor het verbeteren van de prestaties en aanpasbaarheid van LLM’s. Door het model te finetunen op een taakspecifieke dataset, kunnen ontwikkelaars de nauwkeurigheid, efficiëntie en aanpasbaarheid van toolgebruikapplicaties aanzienlijk verbeteren. Aangezien industrieën steeds meer AI-oplossingen eisen die in staat zijn om weloverwogen beslissingen te nemen, zal de aanpassing van LLM’s voor toolgebruik steeds belangrijker worden.