Jak ocenić, czy Twój chatbot staje się coraz lepszy?

W tradycyjnych aplikacjach, niezależnych od AI, naprawienie błędu zazwyczaj oznacza poprawę działania całego systemu. Jednak w przypadku aplikacji opartych na generatywnej sztucznej inteligencji, takich jak chatboty, takie założenie może być mylne. W tym artykule wyjaśnimy, dlaczego tak się dzieje i jak można zagwarantować rozwój oraz ulepszanie chatbota.

Dlaczego ciągłe poprawki w środowisku produkcyjnym to ryzykowna strategia?

Dlaczego nie możemy po prostu ulepszać chatbota, wdrażając go na produkcję i naprawiając błędy na bieżąco? Wyjaśnijmy to na przykładzie.

Firma X podpisała kontrakt z firmą Y na stworzenie chatbota dla strony uczelni. Ustalono, że szybko zostanie wdrożone MVP chatbota, a firma Y będzie odpowiedzialna za bieżące usuwanie zgłaszanych błędów. Po wdrożeniu chatbota sytuacja mogłaby wyglądać następująco:

  1. Chatbot nie wymienia wszystkich wymaganych dokumentów w odpowiedzi na pytanie: „Jakie dokumenty są potrzebne do zapisu na studia?”
  1. Firma X zgłasza błąd do firmy Y.
  1. Firma Y informuje, że dokonała zmian w konfiguracji, co rozwiązało problem – chatbot teraz odpowiada poprawnie na powyższe pytanie.
  1. Sukces? Nie do końca. Okazuje się, że naprawiony miesiąc wcześniej błąd (chatbot polecał wszystkim kierunek psychologia) powrócił.
  1. Firma Y ponownie ingeruje w konfigurację, poprawiając zarówno błąd z polecaniem psychologii, jak i ten związany z dokumentami.
  1. Po poprawkach chatbot odpowiada poprawnie na oba pytania. Jednak wkrótce użytkownicy zauważają, że w niektórych przypadkach chatbot udziela odpowiedzi w języku chińskim, a jego ogólna ocena wśród odbiorców spada względem pierwotnego stanu.

Co zrobić, kiedy nie da się przewidzieć każdego pytania?

Aplikacje oparte na AI różnią się od tych tradycyjnych, ponieważ błędy mogą występować, nawet jeśli kod nie zawiera żadnych logicznych błędów. Dodatkowo, w przypadku chatbotów oczywiste jest, że nie da się przetestować każdego możliwego scenariusza przed wprowadzeniem zmian na produkcję. Istnieją jednak rozwiązania, które mogą znacząco zmniejszyć ryzyko wystąpienia regresji. Czego więc zabrakło firmie Y? Testów benchmarkowych!

Czym są testy benchmarkowe i jak z nich korzystać?

Podczas tworzenia chatbota kluczowe jest przygotowanie zestawu pytań benchmarkowych, które pozwolą ocenić, jak dobrze radzi sobie aktualna wersja rozwiązania. Pytania te powinny odzwierciedlać najczęściej zadawane zapytania w danym kontekście i obejmować możliwie jak najszerszy zakres potencjalnych zastosowań chatbota.

Gdy posiadamy taki zestaw pytań benchmarkowych i chatbot osiąga 80% skuteczności, każda zmiana, która obniża ten wynik, na przykład do 60%, nie powinna być wdrażana (nawet jeśli naprawia błąd, który ktoś zgłosił). Odpowiednio dobrany zestaw pytań benchmarkowych stanowi więc skuteczną ochronę przed wprowadzeniem regresji do chatbota.

Przykład:

Pytanie: Jak mogę skontaktować się z sekretariatem?

Kryteria oceny:

  1. Odpowiedź zawiera numer telefonu „123 456 789”.
  1. Odpowiedź ma formalny ton.

Tego typu pytań powinno być jak najwięcej, a ich minimalna liczba zależy od poziomu skomplikowania i zakresu wiedzy, jaką chatbot powinien obejmować. Z naszego doświadczenia wynika, że liczba pytań benchmarkowych raczej nie powinna być mniejsza niż 15, a w bardziej złożonych przypadkach może wynosić nawet 50.

Czemu testy benchmarkowe są konieczne?  

We wszystkich rozwiązaniach opartych na generatywnej sztucznej inteligencji testy benchmarkowe odgrywają kluczową rolę w ocenie, czy wprowadzone zmiany faktycznie ulepszają system. Bez nich rozwój narzędzi opierałby się wyłącznie na subiektywnym „wydaje mi się” programisty, co mogłoby prowadzić do stagnacji i powtarzania tych samych błędów zamiast rzeczywistego postępu.

Wróćmy do przykładu omawianego wcześniej: mimo włożonej pracy i serii doraźnych poprawek chatbot ostatecznie działał gorzej niż przed rozpoczęciem modyfikacji. Tego właśnie można było uniknąć, gdyby zastosowano dobrze zdefiniowany zestaw testów benchmarkowych.

Testy te są szczególnie istotne w przypadku chatbotów, ponieważ systemy RAG (o których można przeczytać w innych artykułach na naszym blogu), oferują ogromne możliwości konfiguracji. Różne konfiguracje sprawdzą się w odmiennych zastosowaniach – na przykład inna konfiguracja będzie odpowiednia dla chatbota pomagającego w wyborze ścieżki kariery (gdzie bazą wiedzy jest jeden duży PDF), a inna dla chatbota doradzającego w zakupie podzespołów komputerowych (gdzie bazą wiedzy jest specyfikacja tysięcy produktów). Bez testów benchmarkowych trudno jest obiektywnie ocenić, która konfiguracja najlepiej spełnia wymagania danego zastosowania.

Automatyczne testowanie chatbotów

Omówiliśmy już, że liczba przypadków testowych w testach benchmarkowych może sięgać nawet 50 przykładów. Czy to oznacza, że każda zmiana konfiguracji wymaga ręcznego testowania i oceny wszystkich 50 pytań? Oczywiście, że nie! Współczesne modele językowe (LLM) są wystarczająco zaawansowane, by automatycznie ocenić, czy dana odpowiedź spełnia określoną specyfikację. Dzięki temu możliwa jest pełna automatyzacja procesu testowania.

W stworzonym przez nas Chatbocie AI - X-TALK (więcej informacji można znaleźć tutaj: X-TALK – Inteligentna automatyzacja oparta o dane) zaimplementowaliśmy właśnie taką funkcjonalność. Nowi klienci mają możliwość zdefiniowania pytań benchmarkowych wraz ze specyfikacją odpowiedzi i mierzenia skuteczności aktualnej konfiguracji chatbota.

Dzięki temu, zamiast tracić długie godziny na ręczne testowanie i poprawki, narzędzie X-TALK umożliwia szybkie i efektywne dostarczenie dobrze działającego chatbota AI, który spełnia oczekiwania użytkowników.

Chcesz przetestować X-TALK? Napisz do nas!

Wzmocnij swoją firmę narzędziami AI