Как улучшить/предварительно обработать текст (в особых случаях), чтобы встраивания и LLM имели лучший контекст?
Я работал над настройкой локальных документов для загрузки в векторную базу данных, а затем для использования (встраивания) в качестве контекста для LLM.
Проблема в том, что местные документы очень высокого уровня (более подробную информацию см. ниже). После того, как он разбит на части,
- При задании вопроса, связанного с заголовком, возвращаются первые несколько фрагментов текста (например: заголовок_1: список элементов --- при запросе векторной базы данных о заголовке_1 он возвращает только несколько фрагментов вложений, где находится заголовок_1).
- Некоторые вопросы содержат данные предыдущего пункта (утверждения/пункт списка), а также ответы на них (например: 1. элемент 1: бла-бла \n элемент 2: foo foo ---- и когда его спрашивают об элементе 2, векторная база данных возвращает элемент 1 "бла-бла" тоже)
В большинстве случаев частичные вложения возвращаются, а иногда вложения не возвращаются, хотя информация есть...
дополнительная информация -
Местные документы - очень на высоком уровне. В основном содержит маркированный или нумерованный список пунктов/обновлений/утверждений по теме. (Файлы PDF) Программа чтения PDF — PyMuPdf vecordb — Chroma LLM — GPT4ALL Преобразователь предложений — all-MiniLM-L6-v2(кстати, я инженер по данным и учусь, делая это...)
Я думаю, это из-за отсутствия контекста (модель не знает об этом, а также о встраиваниях). Поэтому я планировал добавить в документ больше контекста,
- Определите заголовок и список элементов и добавьте контекст, например «ниже/выше список элементов...»
- (просто идея) создать вложенный словарь неструктурированных данных (как - используя PyMuPdf, иметь доступ к размеру текста, поэтому использовать его для создания вложенного словаря, в то время как заголовок является ключом, а значение - содержимым или дочерним элементом)
- или просто разбить его по (заголовку, содержимому) и отправить как отдельный источник в векторную базу данных с некоторыми метаданными.
Будут ли эти подходы работать или есть лучшее решение? (модель обучения на данном этапе будет последним средством)
1 ответ
Задумывались ли вы о:
Увеличенный размер фрагмента, чтобы получить более целостный контекст?
Трансформеры из доктрана? Может быть, допрос может быть полезен в вашем случае?
Кроме того, довольно сложно ответить на ваш вопрос без хорошего примера документа.