Hur man bygger en chatbot med generativa modeller som GPT-4, ChatGPT, LLaMA 3 och Mixtral 8x7b

I takt med att efterfrågan på AI för konversation fortsätter att öka, ökar också behovet av avancerad teknik för chatbotar som kan ge personliga, människoliknande interaktioner. Under de senaste åren har generativa modeller som GPT-4 och ChatGPT och alternativ med öppen källkod som LLaMA 3 och Mixtral 8x7b visat sig vara lovande verktyg för att bygga chatbots som kan förstå och svara på naturligt språk med en aldrig tidigare skådad noggrannhet och sofistikering.

I den här artikeln går vi igenom grunderna i generativa modeller och hur de kan användas för att bygga chatbots.

Chatbot och AI för konversation

LLaMA 3 och Mixtral 8x7b: alternativ med öppen källkod till ChatGPT och GPT-4

ChatGPT och GPT-4 är två avancerade språkmodeller som utvecklats av OpenAI. ChatGPT, kort för "Chat Generative Pre-training Transformer", är en stor språkmodell som kan generera människoliknande text baserat på sina träningsdata. Den introducerades i november 2022 och fick snabbt stor uppmärksamhet för sin förmåga att interagera med användare på ett dialogiskt sätt, svara på frågor, ge information och delta i olika uppgifter.

GPT-4, eller "Generative Pre-training Transformer 4", är efterföljaren till GPT-3 och tillkännagavs av OpenAI i mars 2023. Den representerar ett betydande steg inom området AI-språkmodeller och har en ännu större storlek och förbättrade funktioner jämfört med sina föregångare. GPT-4 kan generera mycket detaljerad och exakt text inom en rad olika områden, inklusive naturlig språkbehandling, datorprogrammering och kreativt skrivande.

Både ChatGPT och GPT-4 tränas på stora mängder data med hjälp av oövervakad inlärning, vilket gör att de kan förstå och generera mänskligt språk med anmärkningsvärd noggrannhet och flyt. Dessa modeller har öppnat nya möjligheter för utvecklingen av konversationell AI, innehållsgenerering och olika andra tillämpningar inom branscher som kundservice, utbildning och underhållning.

Kort därefter släpptes LLaMA 3 av Meta och Mixtral 8x7b av den franska AI-startupen Mistral AI. Dessa generativa modeller är open source-alternativ till ChatGPT och GPT-4. De är mycket bra kandidater om du vill bygga en avancerad chatbot. Du kan antingen distribuera LLaMA 3 och Mixtral på dina egna servrar eller enkelt använda dem via NLP Cloud API.

Alla dessa generativa AI LLM kräver dock lite övning. Först och främst för att dessa modeller måste få rätt instruktioner för att bete sig som förväntat. Och även för att de är "statslösa", vilket innebär att de inte har någon historik över dina konversationer.

Använd rätt uppmaning för din chatbot

Om du naivt skickar förfrågningar till dessa modeller utan lite sammanhang och formatering kommer du att bli besviken på svaren. Det beror på att dessa modeller är mycket mångsidiga. De kan inte bara hjälpa till att skapa chatbots, utan också många andra applikationer som frågesvar, sammanfattning, parafras, klassificering, entitetsutvinning, generering av produktbeskrivningar och mycket mer. Så det första du behöver göra är att berätta för modellen vilket "läge" den ska anta.

Här är ett exempel på en förfrågan som du kan skicka:

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 det här exemplet kan du notera 2 saker.

Först lade vi till en enkel formatering för att modellen ska förstå att den befinner sig i samtalsläge: ([human], [ai], ...).

För det andra har vi lagt till lite sammanhang högst upp för att hjälpa modellen att förstå vad den gör och vilken ton den bör använda.:

För att göra denna process enklare föreslår både OpenAI och NLP Cloud dedikerade chatbot API-slutpunkter som tar hand om denna formatering åt dig.

Ibland räcker det inte med ett sammanhang. Tänk dig till exempel att du vill skapa en chatbot med en mycket specifik ton och karaktär. I så fall kommer du att vilja finjustera din egen generativa modell. Du kan finjustera din egen chatbot baserad på generativ AI på OpenAI och på NLP Cloud.

Ett annat scenario är när du vill skapa en chattbot som svarar på frågor om specifik domänkunskap. I det fallet är finjustering inte lösningen. Då behöver du istället skapa ditt eget RAG-system (retrieval augmented generation) baserat på semantisk sökning. Se vår artikel om RAG och semantisk sökning här.

Upprätthålla en konversationshistorik för din chatbot

Generativa AI-modeller är "statslösa" modeller, vilket innebär att varje förfrågan du gör är ny och att AI:n inte kommer att komma ihåg något om de tidigare förfrågningar du har gjort.

För många användningsområden är det inte ett problem (sammanfattning, klassificering, parafras ...), men när det gäller chatbotar är det definitivt ett problem eftersom vi vill att vår chatbot ska memorera diskussionshistoriken för att kunna ge mer relevanta svar.

Om du t.ex. berättar för AI:n att du är programmerare vill du att den ska hålla det i minnet eftersom det kommer att påverka de följande svaren den kommer att ge.

Det bästa sättet att uppnå detta är att lagra varje AI-svar i en lokal databas. PostgreSQL-databasen stöder till exempel lagring av långa texter med mycket god effektivitet.

Varje gång du gör en ny förfrågan till chatboten bör du göra följande:

Detta är både ett mångsidigt och robust system som kräver lite arbete och som perfekt utnyttjar kraften i generativa modeller som GPT-4, ChatGPT, LLaMA 3 och Mixtral.

Det är viktigt att notera att varje modell har sin egen kontextstorlek som avgör hur mycket text du kan skicka till historiken. Till exempel är den aktuella kontextstorleken för GPT-4 8k tokens (dvs. mer eller mindre 7k ord) och den aktuella kontextstorleken för Mixtral 8x7b är 16k tokens på NLP Cloud (dvs. mer eller mindre 14k ord). Så om din konversationshistorik går över detta kanske du vill antingen trunkera den äldsta delen av historiken eller bara behålla de viktigaste delarna av diskussionerna.

Innehållsbegränsningar för en chatbot

OpenAI har implementerat innehållsbegränsningar på ChatGPT och GPT-4 för att säkerställa att den AI-genererade texten följer deras riktlinjer. Genom att övervaka och reglera det innehåll som genereras av chatbots vill OpenAI skapa en mer positiv och tillförlitlig användarupplevelse. Detta inkluderar att blockera förfrågningar om information om vissa ämnen eller att endast tillhandahålla förhandsgranskad, pålitlig information.

Vissa föredrar dock att använda generativa modeller som inte har sådana begränsningar, och tycker att kvaliteten på svaren är mer varierad och korrekt. LLaMA 3 och Mixtral 8x7b har inte sådana begränsningar. Vid användning av sådana AI-modeller är det utvecklarens ansvar att använda AI på ett ansvarsfullt sätt. Vid behov kan begränsningar fortfarande implementeras genom att skapa rätt prompt för chatboten, genom att finjustera din egen chatbot eller genom att filtrera användarförfrågningar innan de når AI-modellen.

Slutsats

Generativa AI-modeller som GPT-4, ChatGPT, LLaMA 3 och Mixtral 8x7b tog verkligen chatbots och konversations-AI till nästa nivå. Dessa avancerade modeller är mycket bra på att förstå ditt sammanhang och anpassa sig till det. I de flesta fall räcker det med att sätta rätt sammanhang, men för avancerade användningsfall är den bästa lösningen att träna/finjustera din egen AI-modell (vilket är ganska enkelt eftersom dessa modeller kräver mycket små datamängder).

På NLP Cloud kan du enkelt prova LLaMA 3 och Mixtral 8x7b bland andra modeller. Du kan också finjustera dem och distribuera dina egna privata generativa AI-modeller med ett klick. Om du inte har gjort det ännu kan du prova NLP Cloud gratis.

Om du har frågor om hur du implementerar din egen chatbot, tveka inte att kontakta oss!

François
Fullstack-ingenjör på NLP Cloud