In de digitale wereld van vandaag zoeken bedrijven naar manieren om online interacties gemakkelijker toegankelijk te maken. Online shoppers hebben vaak moeite om relevante informatie en assistentie te vinden voor hun gewenste producten. In tegenstelling tot een fysieke winkel waar een vriendelijk gesprek met een medewerker je helpt de juiste producten te ontdekken, worden gebruikers in de online omgeving vaak overweldigd door een overvloed aan informatie.
Een project van Squadra Machine Learning Company heeft tot doel deze kloof te overbruggen door gepersonaliseerde winkelassistentie te introduceren die is afgestemd op individuele behoeften. Het doel is om de algehele klantervaring te verbeteren door de tekortkomingen van generieke online interacties aan te pakken. De oplossing komt in de vorm van een chatbot, ontwikkeld met behulp van een groot taalmodel (LLM) en verrijkt met relevante gegevens. Hiervoor wordt een techniek genaamd ‘Retrieval-Augmented Generation’ (RAG) gebruikt. Hoewel deze chatbot specifiek is ontworpen voor een hardwarewinkel, kan deze worden aangepast aan verschillende domeinen.
De chatbot fungeert als een AI-assistent, waardoor gebruikers kunnen deelnemen aan gesprekken, productinformatie kunnen verkrijgen en begeleiding kunnen zoeken voor hun doe-het-zelf projecten. De primaire focus van deze studie draait om de vraag: “Hoe kan de effectiviteit van een door AI aangedreven chatbot worden geoptimaliseerd om gebruikers beter te helpen bij het verkrijgen van informatie over doe-het-zelf projecten en productaanbevelingen?”.
Door deze onderzoeksvraag te beantwoorden, hopen we praktische inzichten te bieden in het verbeteren van de effectiviteit van door AI aangedreven chatbots, waardoor een meer gebruiksvriendelijke en ondersteunende online winkelervaring wordt geboden.
Product
De chatbot gebruikt een LLM om een gebruikersquery te beantwoorden. Daarnaast maakt het gebruik van productgegevens en expertblogs, die zijn opgeslagen in een vector database. Het eindproduct is een prototype dat de mogelijkheden van generatieve AI in e-commerce aantoont. Het volgende voorbeeld illustreert hoe de chatbot kan worden gebruikt.
Zoals te zien is, bevat het antwoord verschillende links naar de juiste producten. Bovendien eindigt het antwoord met een link naar een blogpost met meer relevante informatie.
Workflow
Om te begrijpen hoe de chatbot werkt en wat de impact is op gebruikersinteracties, kijken we naar de stappen die worden genomen om gepersonaliseerde informatie te verstrekken:
- Gebruikersquery indienen: Het proces begint wanneer een gebruiker een vraag aan de chatbot stuurt, op zoek naar informatie over doe-het-zelfprojecten of productaanbevelingen.
- Queryverfijning: De chatbot verfijnt de vraag van de gebruiker door een verzoek naar de OpenAI API te sturen, waarbij de chatgeschiedenis als context wordt gebruikt.
- Queryclassificatie: Een verzoek wordt naar de OpenAI API gestuurd om de verfijnde vraag in specifieke categorieën te indelen, zoals ‘aanbevelingen’, ‘vergelijkingen’, ‘stapsgewijze handleidingen’, ‘beschikbaarheid’ of ‘overig’.
- Productopvraging: De chatbot haalt de beste producten op die het meest relevant zijn voor de vraag van de gebruiker uit de vector database. Deze stap zorgt ervoor dat de chatbot nauwkeurige en contextspecifieke productaanbevelingen geeft.
- Blogopvraging: Tegelijkertijd haalt de chatbot het meest relevante blog op dat gerelateerd is aan de vraag van de gebruiker uit de vector database. Het haalt ook een verzameling relevante blogfragmenten op.
- Specificatiegeneratie: De chatbot stuurt een verzoek naar de OpenAI API om een lijst met productspecificaties te genereren op basis van de vraag van de gebruiker en de opgehaalde blogs.
- Aanvullende productopvraging: Voor elke vermelde productspecificatie verfijnt de chatbot de informatie door aanvullende producten op te halen die nauw aansluiten bij de vraag van de gebruiker uit de vector database.
- Responsgeneratie: Tot slot wordt een verzoek naar de OpenAI API gestuurd om een volledig antwoord te formuleren op de vraag van de gebruiker. De chatbot gebruikt de geclassificeerde vraag, de bloggegevens en de productinformatie om een gedetailleerd en contextueel rijk antwoord te maken.
Modelontwikkeling
Om de vooruitgang die is geboekt in de prestaties van de chatbot te beoordelen, gebruiken we een systematische aanpak van evolueren door middel van verschillende versies. Deze aanpak maakt een eenvoudige vergelijking tussen versies mogelijk, waardoor we voortbouwen op de successen van elke voorgaande iteratie.
Versie 0: Het leggen van de basis
De eerste versie legt de basis, waarbij een groot taalmodel (LLM) wordt geïntegreerd met productgegevens en expertblogs. Daarnaast wordt de vraag geclassificeerd in een van de queryklassen. De chatbot kan nu basisinformatie verstrekken, maar er is ruimte voor verbetering.
Versie 1: De kracht van prompt engineering
Prompt engineering wordt een aandachtspunt in versie 1, waarbij de taken van de chatbot worden opgesplitst in kleinere, beter beheersbare stappen. Deze strategische zet resulteert in een opmerkelijke toename van de prestaties, waarbij het belang van prompt engineering wordt aangetoond bij het optimaliseren van het begrip van de chatbot van gebruikersquery’s.
Versie 2: Slimmere informatieopvraging
In versie 2 wordt de behoefte aan slimmere informatieopvraging erkend en wordt het gebruik van de LLM geïntroduceerd om een lijst met productspecificaties te genereren op basis van de vraag van de gebruiker. In eerdere versies zou de chatbot slechts één type product voorstellen, zelfs als de gebruiker meer nodig had, deze oplossing dwingt de chatbot om meer gevarieerde producten te verkrijgen.
Versie 3: Balans tussen efficiëntie en kosten
Balanceren tussen efficiëntie en kosten Efficiëntie- en kostenoverwegingen spelen een rol in versie 3. De functionaliteit van de chatbot wordt verfijnd, met zorgvuldige beslissingen over wanneer geavanceerde modellen te gebruiken en wanneer een eenvoudigere aanpak volstaat. Het opsplitsen van bloggegevens in kleinere delen stelt de chatbot in staat om specifieke informatie op te halen, waarbij een evenwicht wordt gevonden tussen efficiëntie en kosteneffectiviteit.
Versie 4: Het proces versnellen
In versie 4 wordt het belang van snelheid erkend en wordt het samenvattingsgedeelte verwijderd, waardoor de responstijd van de chatbot wordt gestroomlijnd. Bovendien wordt de productinformatie vereenvoudigd, waarbij alleen de essentiële details worden bewaard.
Versie 5: Finetunen
Versie 5 creëert een gefinetuned model, getraind op gegevens die zijn verkregen uit antwoorden die in versie 4 zijn gegenereerd, waardoor het minder instructies en tokens vereist. Het gebruikt een sneller en goedkoper model (gpt-3.5), waardoor de efficiëntie van de chatbot wordt verbeterd. Dit blijkt een zeer effectieve strategie te zijn, die de kosten, responstijden en de algehele prestaties aanzienlijk vermindert.
Conclusie
Om de door AI aangedreven chatbot voor doe-het-zelf projecten en productaanbevelingen te optimaliseren, evolueerden we door verschillende versies. Strategieën zoals prompt-engineering en vraagclassificatie worden gebruikt om gebruikersinteracties te verbeteren. Het balanceren van complexiteit en efficiëntie omvatte het wijselijk selecteren van modellen en het opsplitsen van gegevens voor kosteneffectiviteit. Latere versies prioriteerden snelheid door het vereenvoudigen van informatie, en de meest optimale versie maakt gebruik van model-finetuning voor verhoogde efficiëntie.
De resultaten tonen duidelijk aan dat een sterke focus op prompt-engineering aanzienlijke verbeteringen oplevert voor de prestaties van de chatbot. Verbeteringen in economische overwegingen benadrukken de noodzaak om verder te kijken dan alleen nauwkeurigheid. Finetuning is een effectieve manier om de prestaties te verbeteren terwijl kosten en duur laag worden gehouden.
Emma Beekman
Stagiaire Data Science bij Squadra Machine Learning Company