Krok 5 (generacja). Jak debugować jakość generowania
Na tej stronie opisano sposób identyfikowania głównej przyczyny problemów z generowaniem. Użyj tej strony, gdy analiza głównej przyczyny wskazuje główną przyczynę Improve Generation
.
Nawet w przypadku optymalnego pobierania, jeśli składnik LLM łańcucha RAG nie może skutecznie wykorzystać pobranego kontekstu do generowania dokładnych, spójnych i odpowiednich odpowiedzi, ostateczna jakość danych wyjściowych cierpi. Niektóre sposoby, w jakie mogą występować problemy z jakością generowania, to halucynacje, niespójności lub zwięzłe rozwiązywanie problemów z zapytaniem użytkownika.
Instrukcje
Wykonaj następujące kroki, aby rozwiązać problemy z jakością generowania:
- Otwórz notes B_quality_iteration/01_root_cause_quality_issues.
- Użyj zapytań, aby załadować ślady MLflow rekordów, które miały problemy z jakością generowania.
- Dla każdego rekordu ręcznie sprawdź wygenerowaną odpowiedź i porównaj ją z pobranym kontekstem i odpowiedzią ground-truth.
- Poszukaj wzorców lub typowych problemów z zapytaniami o niskiej jakości generowania. Na przykład: .
- Generowanie informacji, które nie są obecne w pobranym kontekście.
- Generowanie informacji, które nie są zgodne z pobranym kontekstem (halucynacja).
- Nie można bezpośrednio rozwiązać zapytania użytkownika, biorąc pod uwagę podany kontekst pobrany.
- Generowanie odpowiedzi, które są nadmiernie pełne, trudne do zrozumienia lub brak spójności logicznej.
- W oparciu o zidentyfikowany problem hipoteza ma potencjalne główne przyczyny i odpowiednie poprawki. Aby uzyskać wskazówki, zobacz Typowe przyczyny niskiej jakości generowania.
- Wykonaj kroki opisane w artykule Implementowanie i ocenianie zmian w celu zaimplementowania i oceny potencjalnej poprawki. Może to obejmować modyfikowanie łańcucha RAG (na przykład dostosowanie szablonu monitu lub wypróbowanie innego modułu LLM) lub potoku danych (na przykład dostosowanie strategii fragmentowania w celu zapewnienia większego kontekstu).
- Jeśli jakość generacji jest nadal niezadowalająca, powtórz kroki 4 i 5 dla następnej najbardziej obiecującej poprawki do momentu osiągnięcia żądanej wydajności.
- Uruchom ponownie analizę głównej przyczyny, aby ustalić, czy ogólny łańcuch ma jakiekolwiek dodatkowe główne przyczyny, które należy rozwiązać.
Typowe przyczyny niskiej jakości generowania
W poniższej tabeli wymieniono kroki debugowania i potencjalne poprawki typowych problemów z generowaniem. Poprawki są podzielone na kategorie według składnika:
- Konfiguracja łańcucha
- Kod łańcucha
Składnik definiuje, które kroki należy wykonać w kroku implementowania i oceniania zmian .
Ważne
Usługa Databricks zaleca użycie monitu inżynieryjnego do iterowania jakości danych wyjściowych aplikacji. Większość poniższych kroków używa inżynierii monitu.
Problem z generowaniem | Kroki debugowania | Potencjalna poprawka |
---|---|---|
Wygenerowane informacje nie są obecne w pobranym kontekście (na przykład halucynacje). | — Porównaj wygenerowane odpowiedzi z pobranym kontekstem, aby zidentyfikować halucynowane informacje. - Oceń, czy niektóre typy zapytań lub pobrany kontekst są bardziej podatne na halucynacje. |
- Szablon monitu o aktualizację łańcucha konfiguracji , aby podkreślić zależność od pobranego kontekstu. - Konfiguracja łańcucha Użyj bardziej zdolnego modułu LLM. - Kod łańcucha Implementowanie weryfikacji lub weryfikacji krok po wygenerowaniu. |
Nie można bezpośrednio rozwiązać zapytania użytkownika lub podawać nadmiernie ogólne odpowiedzi | — Porównaj wygenerowane odpowiedzi z zapytaniami użytkowników, aby ocenić istotność i specyfikę. — Sprawdź, czy niektóre typy zapytań powodują pobranie poprawnego kontekstu, ale funkcja LLM generuje dane wyjściowe o niskiej jakości. |
- Konfiguracja łańcucha Ulepszanie szablonu monitu w celu zachęcania do bezpośrednich, konkretnych odpowiedzi. - Konfiguracja łańcucha Pobierz bardziej docelowy kontekst, poprawiając proces pobierania. - Wyniki ponownego pobierania kodu łańcucha, aby najpierw umieścić najbardziej odpowiednie fragmenty, podaj je tylko w usłudze LLM. - Konfiguracja łańcucha Użyj bardziej zdolnego modułu LLM. |
Wygenerowane odpowiedzi są trudne do zrozumienia lub braku przepływu logicznego | - Ocenianie danych wyjściowych dla przepływu logicznego, poprawności gramatycznej i zrozumiałości. — Analizuj, czy niespójność występuje częściej z określonymi typami zapytań lub gdy są pobierane określone typy kontekstu. |
- Szablon monitu o zmianę konfiguracji łańcucha, aby zachęcić do spójnej, dobrze ustrukturyzowanej odpowiedzi. - Konfiguracja łańcucha Zapewnij więcej kontekstu w usłudze LLM, pobierając dodatkowe istotne fragmenty. - Konfiguracja łańcucha Użyj bardziej zdolnego modułu LLM. |
Wygenerowane odpowiedzi nie mają żądanego formatu ani stylu | — Porównaj dane wyjściowe z oczekiwanymi wytycznymi dotyczącymi formatu i stylu. - Oceń, czy niektóre typy zapytań lub pobrany kontekst są bardziej prawdopodobne, aby spowodować odchylenia formatu lub stylu. |
- Szablon monitu o aktualizację konfiguracji łańcucha w celu określenia żądanego formatu danych wyjściowych i stylu. - Kod łańcucha Implementowanie kroku przetwarzania końcowego w celu przekonwertowania wygenerowanej odpowiedzi na żądany format. - Kod łańcucha Dodaj krok, aby zweryfikować strukturę danych wyjściowych i styl, a w razie potrzeby wyświetlić rezerwową odpowiedź. - Konfiguracja łańcucha Użyj modułu LLM, który jest dostrojony, aby zapewnić dane wyjściowe w określonym formacie lub stylu. |
Następny krok
Jeśli zidentyfikowano również problemy z jakością pobierania, przejdź do kroku 5 (pobieranie). Jak debugować jakość pobierania.
Jeśli uważasz, że wszystkie zidentyfikowane problemy zostały rozwiązane, przejdź do kroku 6. Utwórz i oceń poprawki dotyczące jakości agenta sztucznej inteligencji.
< Poprzedni: Krok 5.1. Jakość pobierania debugowania
Dalej: Krok 6. Iteracyjne rozwiązywanie problemów z jakością >