antywzorzec
Chunking po 512 znakach bez overlapu
Domyślne ustawienie z tutoriala, które na produkcji gubi połowę odpowiedzi.
RAGchunking
Co się dzieje
Bierzesz RecursiveCharacterTextSplitter z domyślnymi ustawieniami, puszczasz na
dokumentację i idziesz dalej. Na dziesięciu pytaniach testowych działa. Na produkcji
użytkownicy zgłaszają, że model „nie widzi" rzeczy, które w dokumentach są.
Dlaczego to nie działa
Granica fragmentu trafia w środek zdania, definicji albo tabeli. Fragment przed granicą i fragment za nią osobno nie znaczą nic. Embedding takiego kawałka jest bliski wszystkiemu i niczemu, więc retrieval go nie wyciąga — albo wyciąga do losowych pytań.
Jak poznać, że masz ten problem
- odpowiedzi „nie znalazłem informacji" przy pytaniach, na które dokumenty odpowiadają,
- te same fragmenty wracają do niepowiązanych pytań,
- skuteczność spada wyraźnie na dłuższych dokumentach.
Co zrobić zamiast
Patrz: chunking z overlapem i nagłówkiem sekcji.