Inteligencja chatbotów – modele językowe

Chatboty często nazywane są sztuczną inteligencją. Rozpoznają oraz interpretują treści przekazane przez użytkownika i dopasowują odpowiednią reakcję na nie. Inteligencja chatbotów bazuje na niczym innym jak systemie przetwarzania języka naturalnego. Do stworzenia dobrze działającego rozwiązania, kluczowy jest dobór odpowiedniego modelu językowego, który sprosta stawianym mu wyzwaniom.

Należałoby wyodrębnić trzy kategorie algorytmów przetwarzania języka naturalnego – model lingwistyczny, uczenie maszynowe (ML) oraz duże modele językowe (LLM). Dobór modelu powinien być dopasowany zarówno do treści, jak i sposobu ich prezentowania w chatbocie, a także do grupy odbiorców, którzy z niego będą korzystać. 

Model lingwistyczny

Podejście lingwistyczne do rozpoznawania mowy polega na dopasowywaniu słów kluczowych, nazywanych również frazami treningowymi. Oznacza to, że w wiadomości użytkownika wyszukiwane są frazy, które zostały wcześniej wprowadzone do intencji danego bota. Dopasowanie w przypadku modelu lingwistycznego musi być niemalże całkowite. Sposobami na rozwój tego typu podejścia są m.in. korzystanie z funkcji poprawiającej literówki lub zintegrowanie się z zewnętrzną bazą językową, która generuje odmiany danego słowa lub frazy.

Model lingwistyczny zastosowany na platformie KODA może korzystać z kilku trybów działania, co daje mu szersze możliwości zastosowań:

  • wybierając tryb działania, w którym wiadomość użytkownika musi zawierać przynajmniej jedną frazę, model językowy wyszukuje pokrywających się słów i dopasowuje intencję o najwyższym priorytecie spełniającą ten warunek,
  • korzystając z korpusów językowych, bazujemy na frazie początkowej w danym słowie dopasowując każdą jego formę, np. liczbę mnogą lub odmianę,
  • działanie równe w przypadku modelu lingwistycznego wymaga całkowitego dopasowanie frazy z intencji z wiadomością użytkownika,
  • w ramach tego typu podejścia językowego możliwe jest również bazowanie na encjach – zbiorach słów – które mogą być traktowane jako listy synonimów lub kilka zbiorów słów, z których minimum jedno z każdego musi się znaleźć w wiadomości użytkownika.

Trenowanie takiego modelu językowego polega na weryfikacji fraz treningowych z intencji z wiadomościami użytkowników. Uczenie bota w tym przypadku to w głównej mierze dodawanie zwrotów lub nowych sposobów, na jakie użytkownik może zapytać np. o to kiedy może się spodziewać największych kolejek. Język – nie tylko polski – może być bardzo kwiecisty i nawet gdy wymyślimy 50 określeń na coś, to użytkownik może użyć 51 lub wpisać słowo z takim błędem ortograficznym, o którym nikt by nie pomyślał. Dlatego ważne (i trzeba przyznać niejednokrotnie bardzo ciekawe) jest regularne przeglądanie rozmów.

Model lingwistyczny sprawdza się w przypadku mniej zróżnicowanych intencji, w których precyzja odpowiedzi ma większe znaczenie. Stosowanie takiej metody rozpoznawania języka naturalnego daje nam większą kontrolę nad wykrywalnością nawet bardzo precyzyjnych intencji już od samego początku funkcjonowania bota. Podejście lingwistyczne ma ograniczenia w postaci braku możliwości dopasowywania podobnych fraz na podstawie prawdopodobieństwa. 

Uczenie maszynowe (ML)

Drugą metodą rozpoznawania języka naturalnego w botach jest zastosowanie Machine Learning – zaawansowanych systemów statystycznych, które zbierają dane, przetwarzają je, a następnie się na ich postawie doskonalą. 

Podstawowymi różnicami pomiędzy podejściem lingwistycznym a uczeniem maszynowym są prawdopodobieństwo oraz typy fraz trenujących. Przy podejściu maszynowym twórca bota decyduje jaki poziom prawdopodobieństwa jest wymagany w danym rozwiązaniu. Im niższy poziom, tym bardziej mogą się wiadomości użytkownika różnić od tych podanych podczas produkcji rozwiązania. ML daje możliwość wprowadzania przykładów w postaci dłuższych, często bardziej skomplikowanych zdań. Dodatkowo w przykładowych frazach lub zdaniach treningowym jest możliwość zaznaczenia encji – miejsca, w którym bot ma możliwość podstawienia synonimu lub odpowiednika podczas wykrywania intencji. Mogą to być lokalizacje, nazwy własne, daty, czy zdefiniowane przez nas zbiory.

Choć ciężko w to uwierzyć trening bota opartego na ML jest jeszcze prostszy niż takiego z modelem lingwistycznym. Jedyne co trzeba zrobić to przypisać wiadomość wpisaną przez użytkownika do odpowiedniej intencji. I to już – pojawi się ona jako kolejna fraza treningowa i maszyna będzie miała dodatkową informację do przetrawienia i douczenia naszego bota. Jak często należy to robić? Im częściej, tym lepiej! Każdy z Was – czytających to teraz – mógłby zadać pytanie np. o godziny otwarcia sklepu inaczej. Im więcej takich próbek otrzyma ML, tym więcej z nas bot zrozumie, a przecież o to na koniec dnia chodzi. 

Model językowy oparty na uczeniu maszynowym daje większe możliwości interpretacji treści przekazywanych przez użytkowników i oznaczaniu pewnych informacji w nich zawartych w encjach. Ponadto regularne trenowanie botów operujących na tym modelu sprawia, że poprawność wykrytych wiadomości znacząco rośnie. Model ML sprawdzi się w rozwiązaniach posiadających dużą bazę początkowych fraz treningowych oraz dotrenowanych rozmów. Czy ten model sprawdził nam się we wszystkich wdrożeniach? Niekoniecznie – nie chcieliśmy przykładowo by bot przez pomyłkę wskazał nam godziny karmienia zwierząt jeśli szukamy restauracji. 

Duże modele językowe (LLM)

W ostatnim czasie coraz popularniejsze stają się duże modele językowe (LLM), a do najbardziej znanych zalicza się ChatGPT. W przypadku takiego podejścia odpowiedź na zadane przez użytkownika pytanie wyszukiwana jest na podstawie promptu (instrukcji, jakiej sztuczna inteligencja powinna przestrzegać w ramach generowania odpowiedzi) w bazie wiedzy.

Metoda ta przy stosunkowo małym wkładzie informacji daje bardzo duże możliwości podczas generowania odpowiedzi. Kluczowe dla LLM jest tworzenie promptów. Dobrze skonstruowana instrukcja pozwoli na uzyskanie satysfakcjonującej odpowiedzi. Nie bez znaczenia jest też temperatura uzyskanej odpowiedzi – jest to wskaźnik określający stopień różnorodności uzyskanego wyniku. Im jest ona wyższa, tym bardziej kreatywne, co za tym idzie możliwie mniej precyzyjne i odnoszące się do tematu, są wiadomości generowane przez AI.

Niewątpliwą zaletą modeli typu ChatGPT jest bardzo szeroki zakres wiedzy, budowany na podstawie ogólnodostępnych danych w sieci. Pozwalają one również na sprawniejsze wyszukiwanie wśród danych, porównywanie ich, czy zestawianie ze sobą. Należy jednak zwrócić uwagę na źródła, z których są zaciągane dane potrzebne do wygenerowania odpowiedzi, by mieć pewność, że przekazywane przez bota informacje są rzetelne. Warto więc już na poziomie projektowania promptu przemyśleć zagrożenia, jakie mogą mieć wpływ na działanie naszego rozwiązania. Pomyślmy już wtedy jakie ograniczenia powinniśmy na ChatGPT nałożyć, bo wiemy, że potrafi on być kreatywny – niekoniecznie z korzyścią dla marki, którą promujemy.

Który model wybrać?

Nie można więc stwierdzić, który z modeli językowych stosowany podczas produkcji botów jest najlepszy, najskuteczniejszy, najinteligentniejszy. Przy doborze modelu należy wziąć pod uwagę zakres wiedzy, jaki ma bot, typ pytań, grupę odbiorców oraz sposób, w jaki komunikują się oni z wirtualnym asystentem. Dzięki doświadczeniu w pracy różnymi metodami i znajomości ich ograniczeń oraz możliwości możemy projektować rozwiązania o dużo większej wiedzy i skuteczności. A co jeśli metoda, którą wybierzemy się nie sprawdzi? Zmieńmy ją – zastosujmy inną – eksperymentujemy i dopasowujmy je na bieżąco do naszych potrzeb. Jeśli część pytań pasuje bardziej do podejścia lingwistycznego, a pozostałe do maszynowego to je połączmy. To jak inteligentne będą nasze boty, zależy od tego jak kreatywni będziemy podczas ich produkcji.