Skapa ett webbgränssnitt för att interagera med LLM:er med Amazon SageMaker JumpStart | Amazon webbtjänster

Skapa ett webbgränssnitt för att interagera med LLM:er med Amazon SageMaker JumpStart | Amazon webbtjänster

Lanseringen av ChatGPT och ökande popularitet för generativ AI har fångat fantasin hos kunder som är nyfikna på hur de kan använda den här tekniken för att skapa nya produkter och tjänster på AWS, till exempel företagschattbotar, som är mer konverserande. Det här inlägget visar hur du kan skapa ett webbgränssnitt, som vi kallar Chat Studio, för att starta en konversation och interagera med grundmodeller som finns tillgängliga i Amazon SageMaker JumpStart som Llama 2, Stable Diffusion och andra modeller tillgängliga på Amazon SageMaker. När du har implementerat den här lösningen kan användare snabbt komma igång och uppleva funktionerna hos flera grundmodeller i konversations-AI via ett webbgränssnitt.

Chat Studio kan också valfritt anropa den stabila diffusionsmodellens slutpunkt för att returnera ett kollage av relevanta bilder och videor om användaren begär att media ska visas. Den här funktionen kan hjälpa till att förbättra användarupplevelsen genom att använda media som medföljande tillgångar till svaret. Det här är bara ett exempel på hur du kan berika Chat Studio med ytterligare integrationer för att nå dina mål.

Följande skärmdumpar visar exempel på hur en användares fråga och svar ser ut.

Chat Studio frågegränssnitt

Chat Studio svarsgränssnitt

Stora språkmodeller

Generativa AI-chatbotar som ChatGPT drivs av stora språkmodeller (LLM), som är baserade på ett djupt lärande neuralt nätverk som kan tränas på stora mängder omärkt text. Användningen av LLM möjliggör en bättre samtalsupplevelse som nära liknar interaktioner med riktiga människor, vilket främjar en känsla av anknytning och förbättrad användartillfredsställelse.

SageMaker foundation modeller

År 2021 kallade Stanford Institute for Human-Centered Artificial Intelligence vissa LLM:er som grundmodeller. Grundmodeller är förutbildade på en stor och bred uppsättning allmänna data och är tänkta att fungera som grunden för ytterligare optimeringar i ett brett spektrum av användningsfall, från generering av digital konst till flerspråkig textklassificering. Dessa grundmodeller är populära bland kunder eftersom att träna en ny modell från grunden tar tid och kan vara dyrt. SageMaker JumpStart ger tillgång till hundratals grundmodeller som underhålls från tredje parts öppen källkod och proprietära leverantörer.

Lösningsöversikt

Det här inlägget går igenom ett arbetsflöde med låg kod för att distribuera förutbildade och anpassade LLM:er genom SageMaker, och skapa ett webbgränssnitt för gränssnitt med de utplacerade modellerna. Vi täcker följande steg:

  1. Distribuera SageMaker grundmodeller.
  2. Distribuera AWS Lambda och AWS identitets- och åtkomsthantering (IAM) behörigheter med hjälp av AWS molnformation.
  3. Konfigurera och kör användargränssnittet.
  4. Alternativt kan du lägga till andra SageMaker foundation-modeller. Detta steg utökar Chat Studios förmåga att interagera med ytterligare grundmodeller.
  5. Eventuellt kan du distribuera programmet med hjälp av AWS förstärka. Det här steget distribuerar Chat Studio till webben.

Se följande diagram för en översikt över lösningsarkitekturen.

Chat Studio Solution Architecture

Förutsättningar

För att gå igenom lösningen måste du ha följande förutsättningar:

  • An AWS-konto med tillräcklig IAM-användarbehörighet.
  • npm installerad i din lokala miljö. För instruktioner om hur man installerar npm, hänvisa till Ladda ner och installera Node.js och npm.
  • En tjänstekvot på 1 för motsvarande SageMaker-slutpunkter. För Llama 2 13b Chat använder vi en ml.g5.48xlarge-instans och för Stable Diffusion 2.1 använder vi en ml.p3.2xlarge-instans.

För att begära en ökning av tjänstekvoten, på AWS Service Quotas-konsol, navigera till AWS-tjänster, SageMaker, och begäran om en tjänstekvot höjs till värdet 1 för ml.g5.48xlarge för endpoint-användning och ml.p3.2xlarge för endpoint-användning.

Begäran om tjänstekvot kan ta några timmar innan den godkänns, beroende på instanstypens tillgänglighet.

Distribuera SageMaker grundmodeller

SageMaker är en fullständigt hanterad maskininlärningstjänst (ML) för utvecklare för att snabbt bygga och träna ML-modeller med lätthet. Utför följande steg för att distribuera Llama 2 13b Chat och Stable Diffusion 2.1 grundmodeller med Amazon SageMaker Studio:

  1. Skapa en SageMaker-domän. För instruktioner, se Ombord på Amazon SageMaker Domain med snabbinställning.

En domän ställer in all lagring och låter dig lägga till användare för att komma åt SageMaker.

  1. Välj på SageMaker-konsolen Studio i navigeringsfönstret och välj sedan Öppen studio.
  2. När du startar Studio, under SageMaker JumpStart välj i navigeringsfönstret Modeller, anteckningsböcker, lösningar.
    SageMaker JumpStart-konsol
  3. Sök efter Llama 2 13b Chat i sökfältet.
  4. Enligt Implementeringskonfiguration, För SageMaker värdinstansväljer ml.g5.48xlarge och för Slutpunktsnamn, stiga på meta-textgeneration-llama-2-13b-f.
  5. Välja Distribuera.

SageMaker JumpStart Deployment Configuration

Efter att implementeringen har lyckats bör du kunna se In Service status.

Lamamodellstatus

  1. Modeller, anteckningsböcker, lösningar sida, sök efter Stable Diffusion 2.1.
  2. Enligt Implementeringskonfiguration, För SageMaker värdinstansväljer ml. mp3.2xstor och för Slutpunktsnamn, stiga på jumpstart-dft-stable-diffusion-v2-1-base.
  3. Välja Distribuera.

SageMaker JumpStart Deployment Configuration

Efter att implementeringen har lyckats bör du kunna se In Service status.

Stabil diffusionsmodellstatus

Distribuera Lambda- och IAM-behörigheter med AWS CloudFormation

Det här avsnittet beskriver hur du kan starta en CloudFormation-stack som distribuerar en Lambda-funktion som bearbetar din användarförfrågan och anropar SageMaker-slutpunkten som du distribuerade, och distribuerar alla nödvändiga IAM-behörigheter. Slutför följande steg:

  1. Navigera till GitHub repository och ladda ner CloudFormation-mallen (lambda.cfn.yaml) till din lokala dator.
  2. På CloudFormation-konsolen väljer du Skapa stack rullgardinsmeny och välj Med nya resurser (standard).
  3. Ange mall sida, välj Ladda upp en mallfil och Välj FIL.
  4. Välj lambda.cfn.yaml fil som du laddade ner och välj sedan Nästa.
  5. Ange stapeldetaljer sida, ange ett stacknamn och API-nyckeln som du fick i förutsättningarna och välj sedan Nästa.
  6. Konfigurera stackalternativ sida, välj Nästa.
  7. Granska och bekräfta ändringarna och välj Skicka.

Konfigurera webbgränssnittet

Det här avsnittet beskriver stegen för att köra webbgränssnittet (skapat med Cloudscape designsystem) på din lokala dator:

  1. Navigera till användaren på IAM-konsolen functionUrl.
  2. Säkerhetsuppgifter fliken, välj Skapa åtkomstnyckel.
  3. Få tillgång till viktiga bästa metoder och alternativ sida, välj Kommandoradsgränssnitt (CLI) Och välj Nästa.
  4. Ställ in beskrivningstagg sida, välj Skapa åtkomstnyckel.
  5. Kopiera åtkomstnyckeln och den hemliga åtkomstnyckeln.
  6. Välja Färdig .
  7. Navigera till GitHub repository och ladda ner react-llm-chat-studio koda.
  8. Starta mappen i din föredragna IDE och öppna en terminal.
  9. Navigera till src/configs/aws.json och mata in åtkomstnyckeln och den hemliga åtkomstnyckeln du fick.
  10. Ange följande kommandon i terminalen:
    npm install npm start

  11. Öppen http://localhost:3000 i din webbläsare och börja interagera med dina modeller!

För att använda Chat Studio, välj en grundmodell på rullgardinsmenyn och skriv din fråga i textrutan. För att få AI-genererade bilder tillsammans med svaret, lägg till frasen "med bilder" i slutet av din fråga.

Lägg till andra SageMaker foundation-modeller

Du kan utöka kapaciteten för denna lösning ytterligare till att inkludera ytterligare SageMaker-fundamentmodeller. Eftersom varje modell förväntar sig olika inmatnings- och utdataformat när de anropar sin SageMaker-slutpunkt, måste du skriva lite transformationskod i callSageMakerEndpoints Lambda-funktionen för att gränssnittet med modellen.

Det här avsnittet beskriver de allmänna stegen och kodändringarna som krävs för att implementera en ytterligare modell som du väljer. Observera att grundläggande kunskaper i Python-språket krävs för steg 6–8.

  1. I SageMaker Studio, distribuera SageMaker grundmodell som du väljer.
  2. Välja SageMaker JumpStart och Starta JumpStart-tillgångar.
  3. Välj din nydistribuerade modellslutpunkt och välj Öppna Notebook.
  4. Hitta nyttolastparametrarna på notebook-konsolen.

Det här är fälten som den nya modellen förväntar sig när den anropar sin SageMaker-slutpunkt. Följande skärmdump visar ett exempel.

SageMaker Endpoint Configuration

  1. På lambdakonsolen, navigera till callSageMakerEndpoints.
  2. Lägg till en anpassad inmatningshanterare för din nya modell.

I följande skärmdump transformerade vi ingången för Falcon 40B Instruct BF16 och GPT NeoXT Chat Base 20B FP16. Du kan infoga din anpassade parameterlogik enligt anvisningarna för att lägga till logiken för ingångstransformation med referens till nyttolastparametrarna som du kopierade.

Lambdakodavsnitt

  1. Gå tillbaka till notebook-konsolen och leta upp query_endpoint.

Den här funktionen ger dig en idé om hur du omvandlar utdata från modellerna för att extrahera det slutliga textsvaret.

SageMaker Endpoint Configuration

  1. Med hänvisning till koden i query_endpoint, lägg till en anpassad utdatahanterare för din nya modell.
    Lambdakod
  2. Välja Distribuera.
  3. Öppna din IDE, starta react-llm-chat-studio kod och navigera till src/configs/models.json.
  4. Lägg till ditt modellnamn och modellslutpunkt och ange nyttolastparametrarna från steg 4 under payload med följande format:
    "add_model_name": { "endpoint_name": "add_model_enpoint", "payload": { "add_payload_paramters_here"
    }
    },

  5. Uppdatera din webbläsare för att börja interagera med din nya modell!

Distribuera applikationen med Amplify

Amplify är en komplett lösning som gör att du snabbt och effektivt kan distribuera din applikation. Det här avsnittet beskriver stegen för att distribuera Chat Studio till en Amazon CloudFront distribution med Amplify om du vill dela din applikation med andra användare.

  1. Navigera till react-llm-chat-studio kodmapp som du skapade tidigare.
  2. Ange följande kommandon i terminalen och följ installationsinstruktionerna:
    npm install -g @aws-amplify/cli amplify configure

  3. Initiera ett nytt Amplify-projekt genom att använda följande kommando. Ange ett projektnamn, acceptera standardkonfigurationerna och välj AWS-åtkomstnycklar när du uppmanas att välja autentiseringsmetod.
    amplify init

  4. Värd för Amplify-projektet genom att använda följande kommando. Välja Amazon CloudFront och S3 när du uppmanas att välja plugin-läge.
    amplify hosting add

  5. Slutligen, bygg och distribuera projektet med följande kommando:
    amplify publish

  6. När implementeringen har lyckats öppnar du webbadressen i din webbläsare och börjar interagera med dina modeller!

Städa upp

Gör så här för att undvika framtida avgifter:

  1. Ta bort CloudFormation-stacken. För instruktioner, se Ta bort en stack på AWS CloudFormation-konsolen.
  2. Ta bort SageMaker JumpStart-slutpunkten. För instruktioner, se Ta bort slutpunkter och resurser.
  3. Ta bort SageMaker-domänen. För instruktioner, se Ta bort en Amazon SageMaker-domän.

Slutsats

I det här inlägget förklarade vi hur man skapar ett webbgränssnitt för gränssnitt med LLM:er distribuerade på AWS.

Med den här lösningen kan du interagera med din LLM och föra en konversation på ett användarvänligt sätt för att testa eller ställa LLM-frågorna och få ett kollage av bilder och videor om det behövs.

Du kan utöka denna lösning på olika sätt, som att integrera ytterligare grundmodeller, integrera med Amazon Kendra för att möjliggöra ML-driven intelligent sökning för att förstå företagsinnehåll och mer!

Vi inbjuder dig att experimentera med olika förutbildade LLM:er tillgängliga på AWS, eller bygga på eller till och med skapa dina egna LLM i SageMaker. Låt oss veta dina frågor och fynd i kommentarerna och ha kul!


Om författarna

Skapa ett webbgränssnitt för att interagera med LLM:er med Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Jarrett Yeo Shan Wei är en associerad molnarkitekt inom AWS Professional Services som täcker den offentliga sektorn över ASEAN och är en förespråkare för att hjälpa kunder att modernisera och migrera till molnet. Han har uppnått fem AWS-certifieringar och har också publicerat en forskningsartikel om gradientförstärkande maskinensembler i den åttonde internationella konferensen om AI. På fritiden fokuserar Jarrett på och bidrar till den generativa AI-scenen på AWS.

Skapa ett webbgränssnitt för att interagera med LLM:er med Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Tammy Lim Lee Xin är Associate Cloud Architect på AWS. Hon använder teknik för att hjälpa kunder att leverera sina önskade resultat i sin molnanpassningsresa och brinner för AI/ML. Utanför jobbet älskar hon att resa, vandra och umgås med familj och vänner.

Tidsstämpel:

Mer från AWS maskininlärning