Strona główna / Artykuły / Podzielenie dokumentów wokół dowodów i odpowiedzi, których potrzeba

Podzielenie dokumentów wokół dowodów i odpowiedzi, których potrzeba

Wybierz granice fragmentów, sprawdzając, które fakty muszą być przekazywane razem, a następnie przetestuj ich odzyskiwanie przy ustalonej ilości zasobów kontekstowych.

592 słów

Załóżmy, że pytasz podręcznik implementacji o to, kiedy usługa powinna zostać cofnięta. Wyszukiwanie zwraca instrukcję cofnięcia, ale wyjątek znajduje się w następnym fragmencie: instrukcja ta obowiązuje tylko po nieudanej konkretnej sprawdze stanu. Pobrany tekst jest istotny, ale odpowiedź może nadal być błędna.

To jest główny problem fragmentowania. Jednostka łatwa do indeksowania może różnić się od jednostki wystarczającej do wyjaśnienia czegoś.

Zanim dostosujesz model embeddingowy, sprawdź, co twoje fragmenty pozwalają modelowi zobaczyć.

Zacznij od struktury, którą faktycznie masz

Dla artykułu technicznego sensownym punktem wyjścia jest nagłówek i jego akapity. Przykład kodu powinien towarzyszyć wyjaśnieniu jego założeń. Tabela wymaga wystarczającej liczby etykiet, aby można było zinterpretować wartości. Wyjątek powinien znajdować się blisko reguły, którą modyfikuje.

To zależy od odzyskania wiarygodnego tekstu źródłowego. Jeśli Twój parser już przekształcił tabelę w niejednoznaczną sekwencję, mniejsze fragmenty jedynie rozproszą tę niejednoznaczność.

Pракtycznym pierwszym krokiem jest podział na granicach sekcji, umieszczanie sąsiadujących akapitów w ramach określonego limitu rozmiaru oraz dzielenie zbyt dużych sekcji na granicach zdań. Bloki kodu i tabele wymagają specjalnego traktowania, gdy przekraczają ten limit; należy zachować ich strukturę i powtórzyć etykiety potrzebne do interpretacji każdej części.

To jest wstępny projekt, a nie uniwersalne rozwiązanie optymalne. Glosariusze i raporty z incydentów organizują dane w inny sposób.

Używaj nakładania się z określonego powodu

Przeplatanie się może zachować zdanie, które w przeciwnym razie przekroczyłoby granicę. Powoduje ono również pojawienie się powtarzającego się tekstu. Przy wystarczającym stopniu przeplatania kilka najważniejszych wyników może zawierać praktycznie ten sam akapit, zużywając zasoby kontekstowe bez dodawania nowych dowodów.

Należy mierzyć zarówno użyteczne pokrycie, jak i relewanckość poszczególnych fragmentów. Jeśli pięć pobranych fragmentów wyjaśnia mechanizm cofnięcia, ale żaden z nich nie zawiera wyjątku, pobieranie więcej tego samego tekstu nie rozwiązuje problemu.

Po pobraniu należy zidentyfikować nakładające się fragmenty z tego samego źródła i połączyć je lub usunąć duplikaty przed sformułowaniem zapytania. Należy zachować ich lokalizacje w źródle, aby cytaty były możliwe do odnalezienia.

Pobieraj w sposób selektywny i rozwijaj celowo

Niewielki fragment może stanowić dobry cel wyszukiwania, ponieważ koncentruje się na jednej idei. Otaczający go rozdział może być lepszym kontekstem generowania wyników, gdyż dostarcza definicji i uzupełniających informacji.

Jednym z rozwiązań jest przypisanie każdemu małemu fragmencowi identyfikatora rozdziału nadrzędnego. Najpierw wyszukuje się te mniejsze jednostki, a następnie wybrane wyniki rozszerza o odpowiednie informacje z ich rozdziałów nadrzędnych, gdy odpowiedź wymaga dodatkowego kontekstu. Takie rozszerzanie nadal wymaga określonych zasobów – ładowanie całego dokumentu dla każdego wyniku jedynie przesuwa pierwotny problem dalej.

W podręczniku implementacji wynik wyszukiwania może wskazać warunek odwrócenia zmian. Rozdział nadrzędny może wtedy dostarczyć informacje o wyjątkach oraz krokach przywracania stanu. Dzięki temu odpowiedź ma spójne wyjaśnienie, bez konieczności sortowania ogromnego fragmentu dokumentu przez mechanizm wyszukiwania.

Porównywanie konfiguracji z tymi samymi pytaniami

Stwórz pytania, które ujawniają granice: definicję, porównanie między akapitami, wyszukiwanie w tabeli oraz zasadę z wyjątkiem. Oznacz dowody, które wymaga każda odpowiedź.

Porównaj prostą wersję o stałej wielkości z wersją uwzględniającą strukturę tekstu. Zachowaj niezmieniony zbiór tekstów, pytania oraz limit kontekstu końcowego. Sprawdź, czy każda konfiguracja dostarcza wystarczająco dużo dowodów, ile powtarzeń wprowadza oraz które odpowiedzi pozostają niemożliwe do uzyskania na podstawie dostarczonego kontekstu.

Podczas ustalania limitów produkcji nie myl słów z tokenami modelu. Dzielnik na liczbę słów jest przydatny przy tworzeniu prototypu; ostateczne polecenie musi pasować do tokenizatora oraz ograniczeń modelu, który je przetwarza.

Gdy dane dowodowe są poprawne, hybrydowe odzyskiwanie informacji może pomóc użytkownikom znaleźć je za pomocą zarówno dokładnej terminologii, jak i języka potocznego. Lepsze odzyskiwanie informacji jest najbardziej przydatne, gdy zwrócone fragmenty są już warte przeczytania.