Dlaczego RAG cytuje starszy plik po zsynchronizowaniu nowszej kopii?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

RAG może cytować starszy plik po synchronizacji, ponieważ pojawienie się pliku, pomyślne przetworzenie, aktywacja indeksu i wybór bieżącej wersji to odrębne zmiany stanu.

Interfejs NAS może natychmiast wyświetlać nową kopię, podczas gdy indeks wyszukiwania nadal zawiera tylko poprzednią wersję. Nawet po wygenerowaniu reprezentacji wektorowej nowego dokumentu obie kopie mogą pozostać dostępne w wyszukiwaniu, a starszy fragment może uzyskać wyższą pozycję, ponieważ jego tekst, metadane lub wektor lepiej pasują do zapytania. Niezawodny system potrzebuje jednoznacznej identyfikacji wersji i atomowej aktywacji, a nie wyłącznie aktualności nazwy pliku.

Synchronizacja kończy się przed zakończeniem potoku wyszukiwania

Klient synchronizacji uznaje swoją pracę za zakończoną, gdy bajty i metadane dotrą do miejsca docelowego. Indeksator musi jeszcze wykryć zmianę, zaczekać na ustabilizowanie pliku, przeanalizować go lub poddać OCR, podzielić go na fragmenty, wygenerować reprezentacje wektorowe, zapisać rekordy i opublikować generację indeksu.

Opis przyrostowej aktualności indeksu rozdziela wykrywanie zmian, przetwarzanie treści i aktualizacje indeksu. Ten etapowy model wyjaśnia lukę w aktualności, w której plik jest obecny w pamięci masowej, ale niedostępny dla wyszukiwania. Rozróżnienie to pozostaje widoczne podczas późniejszych testów domowych.

Kolejki, opóźnienia ponawiania prób, zablokowane pliki, nieobsługiwane formaty lub zabezpieczenia przed częściowo skopiowanymi plikami mogą wydłużyć tę lukę. Porównanie znaczników czasu NAS ze znacznikami zatwierdzenia indeksu ujawnia więcej niż samo sprawdzenie, czy istnieje nowa nazwa pliku. Wynik pośredni musi pozostać możliwy do zbadania, zanim automatyzacja będzie kontynuowana.

Obie wersje mogą konkurować po zindeksowaniu nowej kopii

Jeśli zaktualizowany plik otrzyma nowy identyfikator dokumentu bez wycofania starego, wyszukiwanie traktuje je jako niezależne źródła informacji. Podobna treść tworzy niemal identyczne fragmenty, a niewielkie zmiany w sformułowaniu lub granicach fragmentów decydują o tym, który z nich znajdzie się wyżej.

Podejście wyszukiwania uwzględniającego aktualność analizuje wyszukiwanie uwzględniające aktualność dla zmieniającej się wiedzy. Jego założenie pokazuje, dlaczego sama trafność jest niewystarczająca, gdy współistnieje wiele odpowiedzi ważnych w różnych momentach. Tę granicę należy mierzyć osobno w realistycznych warunkach pracy.

Czas modyfikacji systemu plików jest słabym identyfikatorem wersji, ponieważ kopiowanie może go zachować lub zmienić, zegary mogą się różnić, a zmienione nazwy plików mogą reprezentować tę samą linię pochodzenia. Bezpieczniejszy jest stabilny identyfikator dokumentu wraz z monotoniczną wersją lub śledzeniem pochodzenia treści.

Tworzenie cytatu może zachować nieaktualne mapowanie źródła

Generator może używać bieżącego fragmentu, podczas gdy pamięć podręczna cytatów, usługa podglądu lub tabela źródeł nadal mapuje jego identyfikator logiczny na starszą ścieżkę. Z kolei sam wynik wyszukiwania może być nieaktualny, choć wyświetlana nazwa pliku wygląda na bieżącą.

Struktura mapowań pochodzenia danych traktuje pochodzenie jako mapowania artefaktów pochodnych z powrotem do danych źródłowych i przekształceń. Zastosowanie tego łańcucha do RAG pozwala odróżnić nieaktualne wyszukiwanie od nieaktualnej prezentacji cytatu. Praktyczne znaczenie tego rozróżnienia widać, gdy kilka źródeł konkuruje o ograniczony kontekst.

Błędem jest ocenianie aktualności wyłącznie na podstawie etykiety cytatu. Należy zweryfikować cytowane bajty, identyfikator wersji, skrót treści, znacznik czasu indeksowania, pobrany fragment i wyświetlane źródło. Zmieniona nazwa starego pliku i rzeczywiście aktualny dokument mogą mieć tę samą przyjazną nazwę.

Przetestuj aktywację wersji za pomocą kontrolowanej aktualizacji pliku

Utwórz dokument, którego stara i nowa wersja zawierają łatwe do odróżnienia fakty. Rejestruj zakończenie synchronizacji, zdarzenie obserwatora, zakończenie analizy, zapis reprezentacji wektorowej, generację aktywnego indeksu, znacznik wycofania wersji, wynik wyszukiwania, rozwiązanie cytatu i podgląd źródła, wykonując zapytania przez cały czas aktualizacji.

Porównaj implementację z wersjonowaniem dokumentów RAG. Nowa wersja powinna zostać aktywowana atomowo, a poprzednia powinna przestać uczestniczyć w bieżących zapytaniach bez niszczenia pochodzenia potrzebnego do wyjaśniania historycznych odpowiedzi. Ta zależność powinna pozostać wyraźnie określona w końcowym interfejsie.

Test można uznać za zaliczony tylko wtedy, gdy filtry bieżącej wersji wybierają nowe bajty po aktywacji, a zapytania wykonywane podczas przetwarzania zwracają albo ostatnią kompletną wersję, albo wyraźny stan aktualizacji. Jeśli obie wersje uzyskują wysoką pozycję, najpierw napraw identyfikację i wycofywanie wersji, a dopiero potem dostrajaj podobieństwo.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.