Een handleiding voor het gebruik van Amazon Bedrock Prompts voor LLM-integratie

Naarmate generatieve AI verschillende industrieën revolutioneert, zoeken ontwikkelaars steeds vaker naar efficiënte manieren om grote taalmodellen (LLM’s) te integreren in hun toepassingen. Amazon Bedrock is een krachtige oplossing. Het biedt een volledig beheerde service die toegang biedt tot een breed scala aan basismodellen via een uniforme API. Deze gids zal de belangrijkste voordelen van Amazon Bedrock verkennen, hoe verschillende LLM-modellen te integreren in uw projecten, hoe het beheer van de verschillende LLM-prompts die uw toepassing gebruikt te vereenvoudigen, en best practices om te overwegen voor productiegebruik.

Belangrijkste voordelen van Amazon Bedrock

Amazon Bedrock vereenvoudigt de initiële integratie van LLM’s in elke toepassing door alle basisfunctionaliteiten te bieden die nodig zijn om aan de slag te gaan.

Vereenvoudigde toegang tot toonaangevende modellen

Bedrock biedt toegang tot een gevarieerde selectie van hoog presterende basismodellen van brancheleiders zoals AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI en Amazon. Deze verscheidenheid stelt ontwikkelaars in staat om het meest geschikte model voor hun use case te kiezen en modellen te wisselen indien nodig zonder het beheren van meerdere leveranciersrelaties of API’s.

Volledig beheerd en serverless

Als een volledig beheerde service elimineert Bedrock de noodzaak voor infrastructuurbeheer. Dit stelt ontwikkelaars in staat zich te richten op het bouwen van toepassingen in plaats van zich zorgen te maken over de onderliggende complexiteiten van infrastructuurconfiguratie, modelimplementatie en schaling.

Beveiliging en privacy op ondernemingsniveau

Bedrock biedt ingebouwde beveiligingsfuncties, waardoor gegevens nooit uw AWS-omgeving verlaten en versleuteld zijn tijdens transport en opslag. Het ondersteunt ook naleving van verschillende normen, waaronder ISO, SOC en HIPAA.

Blijf Op de Hoogte van de Laatste Infrastructuurverbeteringen

Bedrock brengt regelmatig nieuwe functies uit die de grenzen van LLM-toepassingen verleggen en weinig of geen installatie vereisen. Zo heeft het onlangs een geoptimaliseerde inferentiemodus uitgebracht die de inferentievertraging van LLM verbetert zonder de nauwkeurigheid in gevaar te brengen. 

Aan de Slag Met Bedrock

In dit gedeelte zullen we de AWS SDK voor Python gebruiken om een kleine applicatie op uw lokale machine te bouwen, waarbij een praktische handleiding wordt geboden om aan de slag te gaan met Amazon Bedrock. Dit zal u helpen de praktische aspecten van het gebruik van Bedrock te begrijpen en hoe u het kunt integreren in uw projecten.

Vereisten

  1. U heeft een AWS-account.
  2. U heeft Python geïnstalleerd. Indien niet geïnstalleerd, verkrijg het door deze handleiding te volgen.
  3. U heeft de Python AWS SDK (Boto3) geïnstalleerd en correct geconfigureerd. Het wordt aanbevolen om een AWS IAM-gebruiker aan te maken die Boto3 kan gebruiken. Instructies zijn beschikbaar in de Boto3 Quickstart-handleiding.
  4. Als u een IAM-gebruiker gebruikt, zorg er dan voor dat u het beleid AmazonBedrockFullAccess eraan toevoegt. U kunt beleidsregels toevoegen via de AWS-console.
  5. Vraag toegang aan tot 1 of meer modellen op Bedrock door deze handleiding te volgen.

1. Het maken van de Bedrock Client

Bedrock heeft meerdere clients beschikbaar binnen de AWS CDK. De Bedrock client stelt u in staat om te interacteren met de service om modellen te maken en beheren, terwijl de BedrockRuntime client u in staat stelt om bestaande modellen aan te roepen. We zullen een van de bestaande kant-en-klare foundation modellen gebruiken voor onze tutorial, dus we zullen alleen werken met de BedrockRuntime client.

Python

 

2. Het aanroepen van het model

In dit voorbeeld heb ik het Amazon Nova Micro-model gebruikt (met modelId amazon.nova-micro-v1:0), een van de goedkoopste modellen van Bedrock. We zullen een eenvoudige prompt verstrekken om het model te vragen ons een gedicht te schrijven en parameters instellen om de lengte van de output en het creativiteitsniveau (genaamd “temperatuur”) te controleren dat het model moet bieden. Voel u vrij om te experimenteren met verschillende prompts en parameters af te stemmen om te zien hoe ze van invloed zijn op de output.

Python

 

We kunnen dit ook proberen met een ander model zoals Anthropic’s Haiku, zoals hieronder weergegeven.

Python

 

Let op dat de structuur van de verzoeken/responsen iets kan verschillen tussen modellen. Dit is een nadeel dat we zullen aanpakken door vooraf gedefinieerde prompttemplates te gebruiken in de volgende sectie. Om te experimenteren met andere modellen, kun je de modelId en voorbeeld-API-verzoeken voor elk model opzoeken op de pagina “Model Catalogus” in de Bedrock-console en je code daarop afstemmen. Sommige modellen hebben ook gedetailleerde handleidingen geschreven door AWS, die je hier kunt vinden.

3. Gebruik van Promptbeheer

Bedrock biedt een handige tool om vooraf gedefinieerde prompttemplates te maken en te experimenteren. In plaats van prompts en specifieke parameters zoals tokenlengtes of temperatuur telkens opnieuw in je code te definiëren wanneer je ze nodig hebt, kun je vooraf gedefinieerde templates maken in de Promptbeheerconsole. Je specificeert invoervariabelen die tijdens runtime zullen worden ingevoegd, stelt alle vereiste inferentieparameters in en publiceert een versie van je prompt. Zodra dit is gedaan, kan je toepassingscode de gewenste versie van je prompttemplate oproepen.

Belangrijkste voordelen van het gebruik van vooraf gedefinieerde prompts:

  1. Het helpt je toepassing georganiseerd te blijven naarmate deze groeit en verschillende prompts, parameters en modellen gebruikt voor verschillende use-cases.
  2. Het helpt bij het hergebruik van prompts als dezelfde prompt op meerdere plaatsen wordt gebruikt.
  3. Verbergt de details van LLM-inferentie voor onze toepassingscode.
  4. Stelt prompt-engineers in staat om aan promptoptimalisatie te werken in de console zonder je daadwerkelijke toepassingscode aan te raken.
  5. Het maakt het mogelijk om gemakkelijk te experimenteren, gebruikmakend van verschillende versies van prompts. Je kunt de promptinvoer aanpassen, parameters zoals temperatuur wijzigen, of zelfs het model zelf.

Laten we dit nu proberen: 

  1. Ga naar de Bedrock-console en klik op “Promptbeheer” in het linkermenu.
  2. Klik op “Prompt maken” en geef je nieuwe prompt een naam
  3. Voer de tekst in die we naar de LLM willen sturen, samen met een tijdelijke variabele. Ik heb Schrijf een kort gedicht over een {{onderwerp}} gebruikt.
  4. In het configuratiegedeelte, geef aan welk model je wilt gebruiken en stel de waarden in voor dezelfde parameters die we eerder hebben gebruikt, zoals “Temperatuur” en “Max Tokens”. Als je wilt, kun je de standaardwaarden laten staan.
  5. Het is tijd om te testen! Onderaan de pagina, geef een waarde voor je testvariabele. Ik heb “Software Development Hero” gebruikt. Klik vervolgens op “Uitvoeren” rechts om te zien of je tevreden bent met de output.

Ter referentie, hier is mijn configuratie en de resultaten.

We moeten een nieuwe Promptversie publiceren om deze Prompt in je toepassing te gebruiken. Klik hiervoor op de knop “Versie maken” bovenaan. Dit maakt een momentopname van je huidige configuratie. Als je ermee wilt spelen, kun je doorgaan met bewerken en meer versies maken.

Zodra gepubliceerd, moeten we de ARN (Amazon Resource Name) van de Promptversie vinden door naar de pagina van je Prompt te navigeren en te klikken op de nieuw gemaakte versie.

Kopieer de ARN van deze specifieke promptversie om te gebruiken in je code.

Zodra we de ARN hebben, kunnen we onze code bijwerken om deze vooraf gedefinieerde prompt aan te roepen. We hebben alleen de ARN van de promptversie en de waarden nodig voor eventuele variabelen die we erin injecteren.

Python

 

Zoals je kunt zien, vereenvoudigt dit onze toepassingscode door de details van LLM-inferentie weg te abstraheren en herbruikbaarheid te bevorderen. Voel je vrij om te experimenteren met parameters binnen je prompt, verschillende versies te maken en ze te gebruiken in je toepassing. Je zou dit kunnen uitbreiden naar een eenvoudige opdrachtregeltoepassing die gebruikersinvoer accepteert en een kort gedicht schrijft over dat onderwerp.

Volgende stappen en beste praktijken

Zodra je vertrouwd bent met het gebruik van Bedrock om een LLM te integreren in je toepassing, verken dan enkele praktische overwegingen en beste praktijken om je toepassing klaar te maken voor productiegebruik. 

Prompt Engineering

De prompt die je gebruikt om het model aan te roepen kan je toepassing maken of breken. Prompt engineering is het proces van het creëren en optimaliseren van instructies om de gewenste output van een LLM te krijgen. Met de bovenstaande vooraf gedefinieerde prompttemplates kunnen bekwame prompt engineers aan de slag met prompt engineering zonder de softwareontwikkelingsprocessen van je toepassing te verstoren. Mogelijk moet je je prompt aanpassen om specifiek te zijn voor het model dat je wilt gebruiken. Maak jezelf vertrouwd met prompttechnieken die specifiek zijn voor elke modelaanbieder. Bedrock biedt enkele richtlijnen voor vaak grote modellen.

Modelselectie

Het maken van de juiste modelkeuze is een balans tussen de behoeften van uw toepassing en de kosten die ermee gemoeid zijn. Meer capabele modellen zijn meestal duurder. Niet alle gebruiksgevallen vereisen het krachtigste model, terwijl de goedkoopste modellen niet altijd de prestaties bieden die u nodig heeft. Gebruik de Model Evaluatie functie om snel de uitvoer van verschillende modellen te evalueren en te vergelijken om te bepalen welke het beste aan uw behoeften voldoet. Bedrock biedt meerdere opties om testdatasets te uploaden en te configureren hoe de modelnauwkeurigheid moet worden geëvalueerd voor individuele gebruiksgevallen.

Fijnafstemmen en Uitbreiden van Uw Model Met RAG en Agents

Als een kant-en-klaar model niet goed genoeg werkt voor u, biedt Bedrock opties om uw model af te stemmen op uw specifieke gebruikssituatie. Maak uw trainingsdata, upload deze naar S3, en gebruik de Bedrock-console om een fijnafstemmingsopdracht te starten. U kunt ook uw modellen uitbreiden met technieken zoals retrieval-augmented generation (RAG) om de prestaties voor specifieke gebruiksgevallen te verbeteren. Sluit bestaande gegevensbronnen aan die Bedrock beschikbaar zal maken voor het model om zijn kennis te verbeteren. Bedrock biedt ook de mogelijkheid om agenten te creëren om complexe taken met meerdere stappen te plannen en uit te voeren met behulp van uw bestaande bedrijfssystemen en gegevensbronnen.

Beveiliging en Beveiligingsmaatregelen

Met Guardrails kunt u ervoor zorgen dat uw generatieve applicatie gevoelige onderwerpen (zoals racisme, seksuele inhoud en grof taalgebruik) op een respectvolle manier vermijdt en dat de gegenereerde inhoud realistisch is om hallucinaties te voorkomen. Deze functie is cruciaal om de ethische en professionele normen van uw applicaties te handhaven. Maak gebruik van de ingebouwde beveiligingsfuncties van Bedrock en integreer ze met uw bestaande AWS-beveiligingscontroles.

Kostenoptimalisatie

Voordat u uw applicatie of functie breed uitrolt, overweeg de kosten die Bedrock-inferentie en extensies zoals RAG met zich mee zullen brengen. 

  • Als u uw verkeerspatronen kunt voorspellen, overweeg dan het gebruik van Provisioned Throughput voor efficiëntere en kosteneffectieve modelinferentie.
  • Als uw applicatie uit meerdere functies bestaat, kunt u verschillende modellen en prompts gebruiken voor elke functie om de kosten op individuele basis te optimaliseren.
  • Herzie uw keuze van model en de grootte van de prompt die u verstrekt voor elke inferentie. Bedrock hanteert over het algemeen prijzen op basis van “per-token”, dus langere prompts en grotere uitvoer zullen meer kosten met zich meebrengen.

Conclusie

Amazon Bedrock is een krachtig en flexibel platform voor het integreren van LLM’s in applicaties. Het biedt toegang tot veel modellen, vereenvoudigt ontwikkeling en levert robuuste aanpassings- en beveiligingsfuncties. Ontwikkelaars kunnen zo profiteren van de kracht van generatieve AI terwijl ze zich richten op het creëren van waarde voor hun gebruikers. Dit artikel laat zien hoe u aan de slag kunt met een essentiële Bedrock-integratie en onze Prompts georganiseerd kunt houden.

Naarmate AI zich ontwikkelt, moeten ontwikkelaars op de hoogte blijven van de nieuwste functies en beste praktijken in Amazon Bedrock om hun AI-toepassingen te bouwen.

Source:
https://dzone.com/articles/amazon-bedrock-prompts-llm-integration-guide