Udostępnij za pośrednictwem


Krok 5 (pobieranie). Jak debugować jakość pobierania

Na tej stronie opisano sposób identyfikowania głównej przyczyny problemów z pobieraniem. Użyj tej strony, gdy analiza głównej przyczyny wskazuje główną przyczynę Improve Retrieval.

Jakość pobierania jest prawdopodobnie najważniejszym składnikiem aplikacji RAG. Jeśli najbardziej odpowiednie fragmenty nie są zwracane dla danego zapytania, usługa LLM nie ma dostępu do niezbędnych informacji w celu wygenerowania wysokiej jakości odpowiedzi. Słabe pobieranie może prowadzić do nieistotnych, niekompletnych lub halucynowanych danych wyjściowych. Ten krok wymaga ręcznego nakładu pracy w celu przeanalizowania danych bazowych. Narzędzie Mosaic AI Agent Framework z ścisłą integracją między platformą danych (w tym katalogiem aparatu Unity i wyszukiwaniem wektorów) oraz śledzenie eksperymentów za pomocą platformy MLflow (w tym oceny llM i śledzenia MLflow) znacznie ułatwia rozwiązywanie problemów.

Instrukcje

Wykonaj następujące kroki, aby rozwiązać problemy z jakością pobierania:

  1. Otwórz notes B_quality_iteration/01_root_cause_quality_issues.
  2. Użyj zapytań, aby załadować ślady MLflow rekordów, które miały problemy z jakością pobierania.
  3. Dla każdego rekordu ręcznie sprawdź pobrane fragmenty. Jeśli są dostępne, porównaj je z dokumentami pobierania podstawy prawdy.
  4. Poszukaj wzorców lub typowych problemów z zapytaniami o niskiej jakości pobierania. Na przykład: .
    • W całości brakuje odpowiednich informacji z bazy danych wektorów.
    • Niewystarczająca liczba fragmentów lub dokumentów zwracanych dla zapytania pobierania.
    • Fragmenty są zbyt małe i nie mają wystarczającego kontekstu.
    • Fragmenty są zbyt duże i zawierają wiele niepowiązanych tematów.
    • Model osadzania nie przechwytuje podobieństwa semantycznego dla terminów specyficznych dla domeny.
  5. W oparciu o zidentyfikowany problem hipoteza ma potencjalne główne przyczyny i odpowiednie poprawki. Aby uzyskać wskazówki, zobacz Typowe przyczyny niskiej jakości pobierania.
  6. Wykonaj kroki opisane w artykule Implementowanie i ocenianie zmian w celu zaimplementowania i oceny potencjalnej poprawki. Może to obejmować modyfikowanie potoku danych (na przykład dostosowanie rozmiaru fragmentu lub wypróbowanie innego modelu osadzania) lub zmodyfikowanie łańcucha RAG (na przykład implementowanie wyszukiwania hybrydowego lub pobieranie większej liczby fragmentów).
  7. Jeśli jakość pobierania jest nadal niezadowalająca, powtórz kroki 4 i 5 dla następnych najbardziej obiecujących poprawek do momentu osiągnięcia żądanej wydajności.
  8. 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 pobierania

W poniższej tabeli wymieniono kroki debugowania i potencjalne poprawki typowych problemów z pobieraniem. Poprawki są podzielone na kategorie według składnika:

  • Potok danych
  • Konfiguracja łańcucha
  • Kod łańcucha

Składnik definiuje, które kroki należy wykonać w kroku implementowania i oceniania zmian .

Problem z pobieraniem Kroki debugowania Potencjalna poprawka
Fragmenty są za małe - Sprawdź fragmenty pod kątem niekompletnych informacji odciętych. - Potok danych Zwiększa rozmiar fragmentu lub nakłada się na siebie.
- Potok danych Wypróbuj inną strategię fragmentowania.
Fragmenty są zbyt duże — Sprawdź, czy pobrane fragmenty zawierają wiele niepowiązanych tematów. - Potok danych Zmniejsz rozmiar fragmentu .
- Potok danych Usprawnij strategię fragmentowania, aby uniknąć kombinacji niepowiązanych tematów (na przykład fragmentowania semantycznego).
Fragmenty nie mają wystarczającej ilości informacji o tekście, z którego zostały pobrane - Oceń, czy brak kontekstu dla każdego fragmentu powoduje zamieszanie lub niejednoznaczność w pobranych wynikach. - Potok danych Spróbuj dodać metadane i tytuły do każdego fragmentu (na przykład tytuły sekcji).
- Konfiguracja łańcucha Pobierz więcej fragmentów i użyj modułu LLM o większym rozmiarze kontekstu.
Model osadzania nie rozumie dokładnie domeny ani kluczowych fraz w zapytaniach użytkowników — Sprawdź, czy podobne fragmenty są pobierane dla tego samego zapytania. - Potok danych Wypróbuj różne modele osadzania.
- Konfiguracja łańcucha Wypróbuj wyszukiwanie hybrydowe.
- Łączenie wyników pobierania kodu nadmiarowego i ponowne pozycjonowanie. Tylko zestawienie wyników ponownie sklasyfikowanych w kontekście LLM.
- Dostrajanie modelu osadzania potoku danych na danych specyficznych dla domeny.
Brak odpowiednich informacji z bazy danych wektorów — Sprawdź, czy w bazie danych wektorów brakuje odpowiednich dokumentów lub sekcji. - Potok danych Dodaj bardziej istotne dokumenty do bazy danych wektorów.
- Potok danych Usprawnij analizowanie dokumentów i wyodrębnianie metadanych.
Zapytania pobierania są słabo sformułowane — Jeśli zapytania użytkowników są używane bezpośrednio do wyszukiwania semantycznego, przeanalizuj te zapytania i sprawdź niejednoznaczność lub brak specyfiki. Może się to zdarzyć w wielu konwersacjach, w których nieprzetworzone zapytanie użytkownika odwołuje się do poprzednich części konwersacji, co czyni go nieodpowiednim do użycia bezpośrednio jako zapytanie pobierania.
— Sprawdź, czy terminy zapytania są zgodne z terminologią używaną w korpusie wyszukiwania.
- Łączenie kodu Dodawanie metod rozszerzania lub przekształcania zapytań (na przykład przy użyciu zapytania użytkownika, przekształcanie zapytania przed wyszukiwaniem semantycznym).
- Kod łańcucha Dodaj informacje o zapytaniach w celu identyfikowania intencji i jednostek (na przykład użyj narzędzia LLM, aby wyodrębnić właściwości do użycia w filtrowaniu metadanych).

Następny krok

Jeśli zidentyfikowano również problemy z jakością generowania, przejdź do kroku 5 (generacja). Jak debugować jakość generowania.

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. Identyfikowanie głównych przyczyn problemów z jakością

Dalej: Krok 5.2. Jakość generowania debugowania >