Diagnozowanie problemów z wynikami LLM: kiedy używać promptów, pobierania danych lub drobnej optymalizacji
Sposób oparty na objawach, który pomaga określić, czy słaba funkcja sztucznej inteligencji wymaga lepszego promptu, warstwy wyszukiwania lub drobnej kalibracji, oraz dlaczego szkolenie modelu na faktach przynosi odwrotne efekty.
Pierwsza wersja każdej funkcji AI generuje wyniki, które nie są do końca poprawne. Masz trzy sposoby, aby to naprawić: zmienić instrukcje, dostarczyć modelowi brakujące dokumenty lub przeszkolić go na własnych przykładach. Ich koszt różni się ogromnie – od kilku minut pracy po tygodnie zbierania danych – a każdy z nich naprawia inny rodzaj błędu. Ten przewodnik pomaga Ci wybrać odpowiedni sposób poprzez skupienie się najpierw na objawach, dzięki czemu unikniesz marnowania tygodni na rozwiązywanie problemu, którego wcale nie było potrzeby.
Traktuj model jak zdolnego nowego pracownika
Korzystnym modelem myślowym jest postrzeganie modelu jako bardzo utalentowanego pracownika w pierwszym dniu pracy. Zna on ogromną ilość informacji na temat świata, ale nic o twojej firmie – ani o produktach, ani o politykach, ani o tym, w jaki sposób twoz zespół lubi formułowanie odpowiedzi. Będzie popełniać błędy, tak jak to robi każdy utalentowany nowicjusz.
Możesz pomóc nowemu pracownikowi na dokładnie trzy sposoby. Możesz lepiej go poinstruować, przekazać mu materiały referencyjne lub wysłać go na kurs szkoleniowy. Odpowiadają one odpowiednio za podawanie wskazówek, pozyskiwanie informacji i dopracowywanie umiejętności, a są uporządkowane od najtańszych do najdroższych. Kluczem jest dopasowanie interwencji do problemu, dlatego sensowne jest rozpatrywanie ich w takiej kolejności.
Podawanie wskazówek: najpierw przepisz instrukcje
Zawsze zaczynaj od tego. Wskazówka to po prostu instrukcje, które wysyłasz wraz z prośbą: sama zadanie, jeden lub dwa przykłady dobrych odpowiedzi, dla kogo ma być ta odpowiedź oraz format, jakiego oczekujesz. Ich zmiana nie kosztuje nic i zajmuje kilka minut. Duża część skarg na to, że „sztuczna inteligencja jest kiepska”, okazuje się skargami na to, że wskazówki były niejasne.
Załóżmy, że odpowiedzi twojej funkcji są rozwlekłe i sztywne. Nie ma potrzeby ponownego szkolenia modelu. Dodaj instrukcję w stylu „odpowiedz w trzech zdaniami, w ciepłym, prostym tonie”, wklej jeden dobry przykład odpowiedzi i problem zazwyczaj zostaje rozwiązany już przy pierwszej iteracji. Instrukcje ustalone raz na każde żądanie nazywane są promptem systemowym; przykłady odpowiedzi, które dodajesz w celu pokazania wzorca, to przykłady typu few-shot.
Jednak promptowanie ma swoje ograniczenia: instrukcje nie mogą dostarczyć wiedzy, której model nigdy wcześniej nie widział. Jeśli nowy pracownik nie został poinformowany o danych z bieżącego kwartału, proszenie go o „większą precyzję” nie spowoduje uzyskania tych danych. Gdy prawdziwym problemem jest brak informacji, potrzebny jest drugi sposób rozwiązania.
Szybka weryfikacja przed przejściem dalej
Zanim doszukasz się wniosku, że próby sterowania nie przyniosły rezultatu, upewnij się, że wypróbowałeś oczywiste rozwiązania: jasno określ format wyjściowy, podaj co najmniej jeden konkretny przykład, powiedz, co robić w przypadku nieznanej odpowiedzi, oraz przetestuj to na małym, ustalonym zestawie rzeczywistych danych wejściowych, a nie na jednym lub dwóch wybranych przypadkach. Bez tego ustalonego zestawu trudno stwierdzić, czy zmiana rzeczywiście pomogła.
Pobieranie: przekaż pliki
Retrieval-augmented generation, zwykle skracane do RAG, umożliwia modelowi dostęp do twoich dokumentów w momencie udzielania odpowiedzi: aktualnej listy cen, polityki zwrotów, historii zamówień konkretnego klienta. Pozwala to na uzupełnienie brakującej wiedzy, informacji często zmieniających się lub będących własnością twojej organizacji. Gdy dokument zostanie zaktualizowany, odpowiedzi zmieniają się wraz z nim, bez konieczności ponownego szkolenia modelu. Jest to odpowiedni wybór, gdy wiedza należy do ciebie, jest często aktualizowana lub wymaga cytowania. Różnice pomiędzy tym, co model zapamiętał w swoich wagach, a tym, do czego odwołuje się podczas udzielania odpowiedzi, są omówione bardziej szczegółowo w tekście o tym, jak różnią się pamięć AI, kontekst, embeddingi i wagi modelu.
W przypadku nowych pracowników nie musisz już im nic wyjaśniać; dajesz im podręcznik i pozwalamy im go sprawdzić przed udzieleniem odpowiedzi. Mogą teraz odpowiadać na pytania dotyczące zmian, które nastąpiły długo po szkoleniu modelu, oraz wskazywać dokładnie, skąd pochodzi każda odpowiedź.
Koszt jest wyższy niż prosta modyfikacja promptu. Tworzysz mały system, który przechowuje dokumenty i wyszukuje je według znaczenia, co zazwyczaj wymaga dni pracy, a nie minut. Nadal jest to znacznie tańsze niż drogie dostosowywanie modelu, a system pozostaje aktualny wraz z Twoimi dokumentami. Dodatkowo pojawiają się elementy, które trzeba utrzymywać: sposób dzielenia dokumentów, metoda oceny jakości wyszukiwania oraz to, co się dzieje, gdy nie znajduje się żadnych istotnych wyników.
Pobieranie informacji ma swoje wyraźne granice. Dokument wypełnia luki w wiedzy modelu, ale nie zmienia jego zachowania. Przekazanie komuś instrukcji nie modyfikuje jego stylu pisania ani osądu. Do tego celu trzeba ich szkolić.
Doprecyzowanie: wysłanie na kurs szkoleniowy
Doprecyzowanie polega na ponownym szkoleniu modelu na wielu przykładach, aż określony styl lub umiejętność staną się automatyczne. Jest to narzędzie służące do osiągnięcia spójnego zachowania, którego nie udaje się zapewnić poprzez proste polecenia, lub w sytuacjach, gdy zbiór poleceń rozrosł się do rozmiarów strony z zasadami i nadal jest niewiarygodny. Wyobraźmy sobie potrzebę, by każda odpowiedź odpowiadała bardzo specyficznemu głosowi marki w milionie rozmów, bez żadnych odchyleń. Szkolenie na tysiącach przykładów może sprawić, że takie zachowanie stanie się standardem, bez konieczności dodatkowych instrukcji.
Najczęściej popełnianym błędem jest myślenie, że doprecyzowanie modelu zmienia to, co on wie, a nie sposób jego działania. Jest to proces powolny i kosztowny, wymagający dużej ilości danych przykładowych, a wszelkie fakty włączone do modelu stają się przestarzałe, gdy tylko te fakty ulegną zmianie. Dlatego nie należy go używać do przechowywania faktów – do tego służy wyszukiwanie. Jest to opcja treningowa spośród trzech dostępnych: skuteczna, gdy problem dotyczy rzeczywiście zachowania modelu, ale bezużyteczna w przypadkach, które dałoby się rozwiązać prostszym wyjaśnieniem. Aby zapoznać się z analizą ekonomiczną tej decyzji, sprawdź porównanie kosztów modelu doprecyzowanego z kosztami wywołania API.
Wybór na podstawie objawów
Zacznij od jednego pytania: co dokładnie jest nie tak z wynikiem?
- Format lub ton jest nieodpowiedni, albo model ignoruje części twoich instrukcji. To problem z sformułowaniem zapytania, więc należy je poprawić.
- Brakuje jakiegoś faktu lub jest on przestarzały, model przytacza niewłaściwą wersję informacji, albo potrzebujesz, aby pokazał źródło. To problem z wiedzą, więc należy dodać funkcję wyszukiwania informacji.
- Fakty są poprawne, ale zachowanie modelu nie jest spójne bez względu na to, jak sformułujesz prośbę, a ty potrzebujesz, aby było niezawodne w tysiącach odpowiedzi. To problem z zachowaniem modelu, więc warto rozważyć jego dopasowanie.
Symptomy wskazują na rozwiązanie. Dwa kolejne punkty łatwo przeoczyć.
Narzędzia współpracują ze sobą, a nie konkurują
Prawie każda funkcja zaczyna się od instrukcji. Wiele z nich dodaje później mechanizm pozyskiwania informacji, gdy potrzebne są aktualne lub prywatne dane, a mniejsza liczba z nich wprowadza dopasowanie modelu w celu osiągnięcia zachowania, którego nie można zapewnić za pomocą instrukcji. Zazwyczaj to ty decydujesz, który element dodać następnie, a nie wybierasz jednego podejścia na zawsze. Model po dopasowaniu nadal otrzymuje instrukcje, a system RAG wciąż polega na wytycznych mówiących mu, jak używa pozyskanych danych.
Iść tylko tak daleko, jak wymaga to objaw
Ponieważ opcje są uporządkowane od najtańszych do najdroższych, zatrzymaj się przy pierwszej, która rozwiązuje problem. Ten sam rozsądek obowiązuje przed rozpoczęciem prac: jeśli zadanie wymaga danych, które się zmieniają, planuj pozyskiwanie informacji; jeśli potrzebne jest bardzo precyzyjne zachowanie przy dużym obrocie, dopasowanie modelu może ostatecznie okazać się uzasadnione; we wszystkich pozostałych przypadkach zaczyna się od instrukcji.
Drogi błąd: dopasowywanie modelu w celu nauczenia go faktów
Błąd, który należy wyraźnie wskazać, to próba użycia drogiego procesu dopasowywania modelu, aby ten coś wiedział. Brzmi to jak poważna, wymagająca zaawansowanej inżynierii decyzja, właśnie dlatego zespoły najpierw do niej się uciekają. Jednak fakt, który ciągle się zmienia, nie powinien być częścią nawyków modelu – powinien znajdować się w dokumencie, do którego model może się odwołać. Jeśli postąpisz inaczej, możesz spędzić tygodnie na uczeniu modelu faktu, który już przed uruchomieniem znów będzie błędny, bez możliwości łatwego pokazania źródła odpowiedzi.
Kolejną pułapką jest dopasowywanie modelu w celu naprawienia tego, co tak naprawdę jest niejasnym poleceniem. Jeśli jeszcze nie wypróbowałeś wyraźnych instrukcji formatowania oraz kilku dobrych przykładów na ustalonej bazie testowej, to jeszcze nie wiesz, czy w ogóle masz problem z zachowaniem modelu.
Główne wnioski
- Zdiagnozuj przed wydawaniem pieniędzy: określ, czy problem dotyczy instrukcji, wiedzy czy zachowania.