Dodałem warstwę weryfikacji do mojego lokalnego RAG, aby wyłapywać halucynacje

Zbudowałem lokalnego asystenta badawczego przy użyciu Ollama. Działa on na moich własnych pracach. Nic nie opuszcza mojego komputera.

Chciałem powstrzymać halucynacje. Narzędzie, które podaje błędną liczbę, brzmiąc przy tym pewnie, jest niebezpieczne.

Dodałem warstwę weryfikacji. Działa ona w trzech krokach:

  • Podziel odpowiedź na małe twierdzenia.
  • Użyj LLM, aby sprawdzić każde twierdzenie pod kątem zgodności ze źródłem.
  • Oznacz twierdzenia, których źródło nie potwierdza.

Wyniki nauczyły mnie bolesnej lekcji. Dwukrotnie pomyliłem się w kwestii własnych danych.

Po pierwsze, model podał prawdziwą liczbę, ale użył błędnego kontekstu. Przytoczył wartość AUROC wynoszącą 0,804 dla zestawu testowego, który nie istnieje. Liczba była prawdziwa. Kontekst był kłamstwem. Mój weryfikator przepuścił to, ponieważ cyfry się zgadzały.

Po drugie, model pobrał liczbę z innej części pracy. Przypisał wartość do niewłaściwego eksperymentu.

Oto czego nauczyłem się podczas testowania tego rozwiązania:

  1. Weryfikacja wyłapuje tylko brakujące wartości. Jeśli liczby w ogóle nie ma w tekście, weryfikator ją wykryje. Jeśli liczba jest prawdziwa, ale przypisana do błędnego faktu, weryfikacja często zawodzi.

  2. Sędziowie będący tym samym modelem mają martwe punkty. Jeśli ten sam model generuje odpowiedź i ją ocenia, bezkrytycznie akceptuje własne błędy. Użycie innego modelu do oceny pomaga wyłapać błędnie przypisane liczby.

  3. Flaga nie zawsze oznacza kłamstwo. Flaga może oznaczać trzy rzeczy:

  • Prawdziwą halucynację.
  • Błąd wyszukiwania (retrieval), w którym nie znaleziono źródła.
  • Prawdziwy fakt, którego nie było w pobranym tekście. Gdy zobaczysz flagę, spróbuj ponownie pobrać dane, zamiast po prostu usuwać twierdzenie.
  1. Potrzebujesz prawdy obiektywnej (ground truth). Nie można mierzyć halucynacji bez znajomości prawdziwych odpowiedzi. O mało nie opublikowałem dwóch błędnych wniosków dotyczących własnej pracy. Proste przeszukanie moich plików naprawiło oba błędy.

Praktyczne porady dla Twojego RAG:

  • Używaj innego modelu do oceny niż ten, który generuje odpowiedź.
  • Skup się na lepszym wyszukiwaniu (retrieval). Większość „halucynacji” to po prostu błędy wyszukiwania.
  • Traktuj flagi jako sygnał do głębszego sprawdzenia, a nie tylko jako znak błędu.

Źródło: https://dev.to/sysoft/i-added-a-verify-layer-to-my-local-rag-to-catch-hallucinations-it-caught-me-being-wrong-twice-1jm

Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi