Worstel je met AI of full-stack ontwikkeling? Onze experts staan klaar om je te begeleiden: advies op maat, technische integratie en meer. Neem contact op met [email protected].

Een chatbot bouwen met generatieve modellen zoals GPT-4, ChatGPT, LLaMA 3 en Mixtral 8x7b

Naarmate de vraag naar conversationele AI blijft groeien, neemt ook de behoefte aan geavanceerde chatbottechnologieën die gepersonaliseerde, mensachtige interacties kunnen bieden toe. In de afgelopen jaren zijn generatieve modellen zoals GPT-4 en ChatGPT, en open-source alternatieven zoals LLaMA 3 en Mixtral 8x7b naar voren gekomen als veelbelovende tools voor het bouwen van chatbots die natuurlijke taalinput kunnen begrijpen en erop kunnen reageren met ongekende nauwkeurigheid en verfijning.

In dit artikel verkennen we de basisprincipes van generatieve modellen en hoe ze kunnen worden gebruikt om chatbots te bouwen.

Chatbot en conversationele AI

LLaMA 3 en Mixtral 8x7b: open-source alternatieven voor ChatGPT en GPT-4

ChatGPT en GPT-4 zijn twee geavanceerde taalmodellen ontwikkeld door OpenAI. ChatGPT, kort voor "Chat Generative Pre-training Transformer," is een groot taalmodel dat mensachtige tekst kan genereren op basis van zijn trainingsgegevens. Het werd in november 2022 geïntroduceerd en kreeg al snel wijdverspreide aandacht voor zijn vermogen om op een conversatiegerichte manier met gebruikers te communiceren, vragen te beantwoorden, informatie te verstrekken en verschillende taken uit te voeren.

GPT-4, of "Generative Pre-training Transformer 4", is de opvolger van GPT-3 en werd in maart 2023 aangekondigd door OpenAI. GPT-4 betekent een grote sprong voorwaarts op het gebied van AI-taalmodellen en heeft een nog grotere omvang en verbeterde mogelijkheden in vergelijking met zijn voorgangers. GPT-4 is in staat om zeer gedetailleerde en nauwkeurige tekst te genereren in een groot aantal domeinen, waaronder natuurlijke taalverwerking, computerprogrammering en creatief schrijven.

Zowel ChatGPT als GPT-4 zijn getraind op enorme hoeveelheden gegevens met behulp van leren zonder toezicht, waardoor ze menselijke taal met opmerkelijke nauwkeurigheid en vloeiendheid kunnen begrijpen en genereren. Deze modellen hebben nieuwe mogelijkheden geopend voor de ontwikkeling van conversational AI, het genereren van content en diverse andere toepassingen in sectoren zoals klantenservice, onderwijs en entertainment.

Kort daarna werd LLaMA 3 uitgebracht door Meta en Mixtral 8x7b door de Franse AI startup Mistral AI. Deze generatieve modellen zijn open-source alternatieven voor ChatGPT en GPT-4. Het zijn zeer goede kandidaten als je een geavanceerde chatbot wilt bouwen. Je kunt LLaMA 3 en Mixtral op je eigen servers implementeren of ze eenvoudig gebruiken via de NLP Cloud API.

Al deze generatieve AI LLM's vergen echter wat oefening. Ten eerste omdat deze modellen de juiste aanwijzingen moeten krijgen om zich naar verwachting te gedragen. En ook omdat ze "stateless" zijn, wat betekent dat ze geen geschiedenis bijhouden van je conversaties.

De juiste prompt gebruiken voor je chatbot

Als je naïef verzoeken naar deze modellen stuurt zonder een beetje context en opmaak, zul je teleurgesteld worden door de reacties. Dit komt omdat deze modellen erg veelzijdig zijn. Ze kunnen niet alleen helpen bij het maken van chatbots, maar ook bij veel andere toepassingen zoals het beantwoorden van vragen, samenvatten, parafraseren, classificeren, entiteitextractie, het genereren van productbeschrijvingen en nog veel meer. Dus het eerste wat je moet doen is het model vertellen welke "modus" hij moet aannemen.

Hier is een voorbeeld van een verzoek dat je zou kunnen versturen:

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]:
            

In dit voorbeeld kun je 2 dingen opmerken.

Eerst hebben we een eenvoudige opmaak toegevoegd zodat het model begrijpt dat het in gespreksmodus staat: ([human], [ai], ...).

Ten tweede hebben we bovenaan wat context toegevoegd om het model te helpen begrijpen wat het doet en welke toon het moet gebruiken.:

Om dit proces eenvoudiger te maken, stellen zowel OpenAI als NLP Cloud speciale chatbot API-eindpunten voor, die deze opmaak voor je verzorgen.

Soms is een context niet genoeg. Stel je bijvoorbeeld voor dat je een chatbot wilt maken met een heel specifieke toon en karakter. In dat geval wil je je eigen generatieve model verfijnen. Je kunt je eigen chatbot verfijnen op basis van generatieve AI op OpenAI en op NLP Cloud.

Een ander scenario is wanneer je een chatbot wilt maken die vragen beantwoordt over specifieke domeinkennis. In dat geval is fine-tuning niet de oplossing. Je zult in plaats daarvan je eigen retrieval augmented generation (RAG) systeem willen maken op basis van semantisch zoeken. Bekijk hier ons speciale artikel over RAG en semantisch zoeken.

Een conversatiegeschiedenis bijhouden voor je chatbot

Generatieve AI-modellen zijn "stateloze" modellen, wat betekent dat elk verzoek dat je doet nieuw is en dat de AI zich niets herinnert over de vorige verzoeken die je hebt gedaan.

Voor veel use cases is het geen probleem (samenvatten, classificeren, parafraseren...), maar voor chatbots is het zeker een probleem omdat we willen dat onze chatbot de discussiegeschiedenis onthoudt om relevantere reacties te kunnen geven.

Als je de AI bijvoorbeeld vertelt dat je een programmeur bent, wil je dat hij dit in het geheugen bewaart omdat het invloed heeft op de volgende reacties die hij zal geven.

De beste manier om dit te bereiken is door elk AI-antwoord op te slaan in een lokale database. De PostgreSQL database ondersteunt bijvoorbeeld het opslaan van lange teksten, met een zeer goede efficiëntie.

Dan moet je, elke keer dat je een nieuw verzoek doet aan de chatbot, het volgende doen:

Dit is zowel een veelzijdig als robuust systeem dat weinig inspanning vereist en perfect gebruik maakt van de kracht van generatieve modellen zoals GPT-4, ChatGPT, LLaMA 3 en Mixtral.

Het is belangrijk om op te merken dat elk model zijn eigen contextgrootte heeft die bepaalt hoeveel tekst je kunt doorgeven aan de geschiedenis. De huidige contextgrootte voor GPT-4 is bijvoorbeeld 8k tokens (d.w.z. ongeveer 7k woorden) en de huidige contextgrootte van Mixtral 8x7b is 16k tokens op NLP Cloud (d.w.z. ongeveer 14k woorden). Dus als uw conversatiegeschiedenis groter is dan dit, wilt u misschien het oudste deel van de geschiedenis inkorten of alleen de belangrijkste delen van de discussies behouden.

Inhoudsbeperkingen voor een chatbot

OpenAI heeft inhoudsbeperkingen geïmplementeerd op ChatGPT en GPT-4 om ervoor te zorgen dat de door AI gegenereerde tekst voldoet aan hun richtlijnen. Door de door chatbots gegenereerde inhoud te controleren en te reguleren, wil OpenAI een positievere en betrouwbaardere gebruikerservaring creëren. Dit omvat het blokkeren van verzoeken om informatie over bepaalde onderwerpen of het verstrekken van alleen vooraf gescreende, betrouwbare informatie.

Sommigen geven echter de voorkeur aan generatieve modellen die dergelijke beperkingen niet hebben en vinden de kwaliteit van de antwoorden diverser en nauwkeuriger. LLaMA 3 en Mixtral 8x7b hebben dergelijke beperkingen niet. Bij het gebruik van zulke AI-modellen is het de verantwoordelijkheid van de ontwikkelaar om AI op een verantwoorde manier te gebruiken. Indien nodig kunnen beperkingen nog steeds worden geïmplementeerd door de juiste prompt voor de chatbot te maken, door je eigen chatbot te finetunen of door gebruikersverzoeken te filteren voordat ze het AI-model bereiken.

Conclusie

Generatieve AI-modellen zoals GPT-4, ChatGPT, LLaMA 3 en Mixtral 8x7b hebben chatbots en conversationele AI echt naar een hoger niveau getild. Deze geavanceerde modellen zijn erg goed in het begrijpen van je context en het aanpassen daaraan. In de meeste gevallen is het voldoende om de juiste context in te stellen, maar voor geavanceerde gebruikssituaties is de beste oplossing om je eigen AI-model te trainen/fine-tunen (wat vrij eenvoudig is omdat deze modellen zeer kleine datasets vereisen).

Op NLP Cloud kunt u eenvoudig LLaMA 3 en Mixtral 8x7b uitproberen, naast andere modellen. U kunt ze ook verfijnen en met één klik uw eigen generatieve AI-modellen implementeren. Probeer NLP Cloud gratis uit als je dat nog niet hebt gedaan.

Als je vragen hebt over hoe je je eigen chatbot kunt implementeren, aarzel dan niet om contact met ons op te nemen!

François
Full-stack ingenieur bij NLP Cloud