Розділіть документи навколо доказів, необхідних для відповіді
Виберіть межі частин, перевіривши, які факти повинні передаватися разом, а потім протестуйте їх відтворення за фіксованим обсягом контексту.
Уявіть собі, що ви запитуєте посібник з розгортання, коли слід відкотити сервіс. Пошук повертає інструкцію з відкату, але виняток описаний у наступному фрагменті: ця інструкція застосовується лише після того, як певна перевірка стану зазнає невдачі. Отриманий текст є релевантним, проте відповідь все одно може бути неправильною.
Це і є основна проблема фрагментування. Частина, яку легко індексувати, може відрізнятися від частини, яка достатня для пояснення чогось.
Перш ніж налаштовувати модель ембеддингів, перевірте, що саме ваші фрагменти дозволяють моделі бачити.
Почніть з тієї структури, яка у вас є
Для технічної статті розумним початком є заголовок та його абзаци. Приклад коду має супроводжуватися поясненням його припущень. Таблиця потребує достатньої кількості міток для інтерпретації значень. Виняток має знаходитися поруч із правилом, яке він модифікує.
Це залежить від відновлення надійного тексту джерела. Якщо ваш парсер вже перетворив таблицю на неоднозначну послідовність, менші фрагменти лише посилити цю неоднозначність.
Практичний підхід на початковому етапі — розділяти текст за межами розділів, групувати сусідні абзаци в межах встановленого обсягу та розділяти занадто великі розділи за межами речень. Блоки коду та таблиці вимагають особливого підходу, якщо вони перевищують цей обсяг; необхідно зберегти їхню структуру та повторити позначки, потрібні для інтерпретації кожної частини.
Це початковий варіант проектування, а не універсальний оптимум. Глосарії та звіти про інциденти організовують дані по-різному.
Використовуйте перекриття з конкретної причини
Перекриття може зберегти речення, яке інакше опинилося б за межею. Воно також спричиняє появу повторюваного тексту. При достатньому рівні перекриття кілька топових результатів можуть містити практично однаковий абзац, що споживає ресурси контексту без додавання нових доказів.
Вимірюйте як корисну охопленість, так і релевантність окремих фрагментів. Якщо п’ять отриманих фрагментів пояснюють механізм скасування, але жоден з них не містить винятку, отримання більшої кількості однакового тексту не вирішує проблеми.
Після отримання даних визначте перекриваючіся уривки з одного й того ж джерела та об’єднайте їх або усуньте дублікати перед створенням запиту. Зберігайте їхні місця походження, щоб цитати залишалися простежуваними.
Отримуйте дані обмежено та розширюйте їх усвідомлено
Невеликий уривок може бути хорошою метою пошуку, оскільки він зосереджений на одній ідеї. Навколишня частина може стати кращим контекстом для генерації відповідей, адже вона надає визначення та уточнення.
Один із підходів — надати кожному невеликому фрагменту ідентифікатор батьківської секції. Спочатку шукають менші одиниці, а потім розгортають обрані результати у відповідні батьківські секції, коли для відповіді потрібен додатковий контекст. Проте для розгортання все одно потрібні ресурси; завантаження всього документа для кожного результату лише відкладає початкову проблему на пізніший етап.
У посібнику з впровадження результати пошуку можуть вказувати умови скасування змін. Батьківська секція тоді може надати винятки та кроки для відновлення. Таким чином отримується послідовне пояснення, без необхідності для системи пошуку сортувати величезний фрагмент документа.
Порівняння конфігурацій із однаковими запитаннями
Створіть запитання, які виявляють межі: визначення, порівняння між абзацами, пошук у таблиці та правило з винятком. Позначте докази, які потрібні для кожної відповіді.
Порівняйте просту версію з фіксованим розміром із вашою версією, яка враховує структуру. Зберігайте корпус, запитання та обсяг кінцевого контексту незмінними. Перевірте, чи кожна конфігурація збирає достатньо доказів, скільки дублікацій вона створює та які відповіді залишаються неможливими на основі наданого контексту.
Під час встановлення бюджетів для продакшну не плутайте слова з токенами моделі. Розділювач кількості слів зручний для прототипу; кінцевий запит має відповідати токенайзеру та обмеженням моделі, яка його обробляє.
Як тільки одиниці даних є достовірними, гібридний пошук може допомогти користувачам знайти їх за допомогою як точної термінології, так і звичайної мови. Кращий пошук є найкориснішим тоді, коли отримані уривки вже варті прочитання.