Kæmper du med AI eller full-stack-udvikling? Vores eksperter er her for at vejlede dig: skræddersyet rådgivning, teknisk integration og meget mere. Kontakt os på [email protected].

Sådan bygger du en chatbot med generative modeller som GPT-4, ChatGPT, LLaMA 3 og Mixtral 8x7b

Efterspørgslen efter samtale-AI fortsætter med at vokse, og det samme gør behovet for avancerede chatbot-teknologier, der kan levere personlige, menneskelignende interaktioner. I de senere år er generative modeller som GPT-4 og ChatGPT og open source-alternativer som LLaMA 3 og Mixtral 8x7b dukket op som lovende værktøjer til at bygge chatbots, der kan forstå og reagere på naturligt sproginput med hidtil uset nøjagtighed og raffinement.

I denne artikel vil vi udforske det grundlæggende i generative modeller, og hvordan de kan bruges til at bygge chatbots.

Chatbot og AI til samtaler

LLaMA 3 og Mixtral 8x7b: open source-alternativer til ChatGPT og GPT-4

ChatGPT og GPT-4 er to avancerede sprogmodeller udviklet af OpenAI. ChatGPT, en forkortelse for "Chat Generative Pre-training Transformer", er en stor sprogmodel, der kan generere menneskelignende tekst baseret på sine træningsdata. Den blev introduceret i november 2022 og fik hurtigt stor opmærksomhed for sin evne til at interagere med brugere på en dialogisk måde, svare på spørgsmål, give information og deltage i forskellige opgaver.

GPT-4, eller "Generative Pre-training Transformer 4", er efterfølgeren til GPT-3 og blev annonceret af OpenAI i marts 2023. Den repræsenterer et betydeligt spring inden for AI-sprogmodeller og har en endnu større størrelse og forbedrede funktioner sammenlignet med sine forgængere. GPT-4 er i stand til at generere meget detaljeret og præcis tekst inden for en lang række domæner, herunder naturlig sprogbehandling, computerprogrammering og kreativ skrivning.

Både ChatGPT og GPT-4 er trænet på store mængder data ved hjælp af uovervåget læring, hvilket gør dem i stand til at forstå og generere menneskeligt sprog med bemærkelsesværdig nøjagtighed og smidighed. Disse modeller har åbnet nye muligheder for udvikling af samtale-AI, indholdsgenerering og forskellige andre anvendelser inden for brancher som kundeservice, uddannelse og underholdning.

Kort tid efter blev LLaMA 3 udgivet af Meta, og Mixtral 8x7b blev udgivet af den franske AI-startup Mistral AI. Disse generative modeller er open source-alternativer til ChatGPT og GPT-4. De er rigtig gode kandidater, hvis du vil bygge en avanceret chatbot. Du kan enten implementere LLaMA 3 og Mixtral på dine egne servere eller nemt bruge dem via NLP Cloud API.

Alle disse generative AI LLM'er kræver dog en smule øvelse. Først og fremmest fordi disse modeller skal have de rigtige prompts for at opføre sig som forventet. Og også fordi de er "statsløse", hvilket betyder, at de ikke fører en historik over dine samtaler.

Brug den rigtige prompt til din chatbot

Hvis du naivt sender forespørgsler til disse modeller uden en smule kontekst og formatering, vil du blive skuffet over svarene. Det skyldes, at disse modeller er meget alsidige. De kan ikke kun hjælpe med at skabe chatbots, men også mange andre applikationer som besvarelse af spørgsmål, opsummering, parafrase, klassificering, udtrækning af entiteter, generering af produktbeskrivelser og meget mere. Så det første, du skal gøre, er at fortælle modellen, hvilken "tilstand" den skal indtage.

Her er et eksempel på en anmodning, du kan sende:

This is a discussion between a [human] and an [ai]. 
The [ai] is very nice and empathetic.

[human]: I broke up with my girlfriend...
[robot]:
            

I dette eksempel kan du bemærke to ting.

Først tilføjede vi en simpel formatering, så modellen kan forstå, at den er i samtalemodus: ([human], [ai], ...).

For det andet har vi tilføjet noget kontekst i toppen for at hjælpe modellen med at forstå, hvad den laver, og hvilken tone den skal bruge.:

For at gøre denne proces enklere foreslår både OpenAI og NLP Cloud dedikerede chatbot API-slutpunkter, der tager sig af denne formatering for dig.

Nogle gange er en kontekst ikke nok. Forestil dig for eksempel, at du vil skabe en chatbot med en meget specifik tone og karakter. I så fald vil du gerne finjustere din egen generative model. Du kan finjustere din egen chatbot baseret på generativ AI på OpenAI og på NLP Cloud.

Et andet scenarie er, når du vil skabe en chatbot, der besvarer spørgsmål om specifik domæneviden. I det tilfælde er finjustering ikke løsningen. Du skal i stedet skabe dit eget RAG-system (retrieval augmented generation) baseret på semantisk søgning. Se vores dedikerede artikel om RAG og semantisk søgning her.

Opretholdelse af en samtalehistorik for din chatbot

Generative AI-modeller er "statsløse" modeller, hvilket betyder, at hver anmodning, du kommer med, er ny, og at AI'en ikke kan huske noget om de tidligere anmodninger, du er kommet med.

I mange tilfælde er det ikke et problem (opsummering, klassificering, parafrase...), men for chatbots er det bestemt et problem, fordi vi ønsker, at vores chatbot skal huske diskussionshistorikken for at kunne komme med mere relevante svar.

Hvis du for eksempel fortæller AI'en, at du er programmør, vil du have den til at huske det, fordi det vil have indflydelse på de følgende svar, den vil give.

Den bedste måde at opnå dette på er at gemme alle AI-svar i en lokal database. For eksempel understøtter PostgreSQL-databasen lagring af lange tekster med en meget god effektivitet.

Hver gang du laver en ny forespørgsel til chatbotten, skal du gøre følgende:

Dette er både et alsidigt og robust system, der kræver en lille indsats, og som perfekt udnytter kraften i generative modeller som GPT-4, ChatGPT, LLaMA 3 og Mixtral.

Det er vigtigt at bemærke, at hver model har sin egen kontekststørrelse, der bestemmer, hvor meget tekst du kan sende til historikken. For eksempel er den aktuelle kontekststørrelse for GPT-4 8k tokens (dvs. mere eller mindre 7k ord), og den aktuelle kontekststørrelse for Mixtral 8x7b er 16k tokens på NLP Cloud (dvs. mere eller mindre 14k ord). Så hvis din samtalehistorik er større end dette, kan du enten afkorte den ældste del af historikken eller kun beholde de vigtigste dele af diskussionerne.

Indholdsbegrænsninger for en chatbot

OpenAI har implementeret indholdsbegrænsninger på ChatGPT og GPT-4 for at sikre, at den AI-genererede tekst overholder deres retningslinjer. Ved at overvåge og regulere det indhold, der genereres af chatbots, sigter OpenAI mod at skabe en mere positiv og pålidelig brugeroplevelse. Dette omfatter blokering af anmodninger om oplysninger om bestemte emner eller kun at give forudgående kontrollerede, troværdige oplysninger.

Nogle foretrækker dog at bruge generative modeller, der ikke har sådanne begrænsninger, og finder kvaliteten af svarene mere forskelligartede og præcise. LLaMA 3 og Mixtral 8x7b har ikke sådanne restriktioner. Når man bruger sådanne AI-modeller, er det udviklerens ansvar at bruge AI på en ansvarlig måde. Hvis det er nødvendigt, kan begrænsninger stadig implementeres ved at skabe den rigtige prompt til chatbotten, ved at finjustere din egen chatbot eller ved at filtrere brugeranmodninger, før de når AI-modellen.

Konklusion

Generative AI-modeller som GPT-4, ChatGPT, LLaMA 3 og Mixtral 8x7b tog virkelig chatbots og conversational AI til det næste niveau. Disse avancerede modeller er meget gode til at forstå din kontekst og tilpasse sig den. I de fleste tilfælde er det nok at indstille den rigtige kontekst, men til avancerede brugssager er den bedste løsning at træne/finjustere din egen AI-model (hvilket er ret nemt, da disse modeller kræver meget små datasæt).

På NLP Cloud kan du nemt prøve LLaMA 3 og Mixtral 8x7b blandt andre modeller. Du kan også finjustere dem og implementere dine egne private generative AI-modeller med et enkelt klik. Hvis du ikke er færdig endnu, kan du prøve NLP Cloud gratis.

Hvis du har spørgsmål om, hvordan du implementerer din egen chatbot, så tøv ikke med at kontakte os!

François
Full-stack ingeniør hos NLP Cloud