Больше фрагментов RAG не означает лучшие ответы на вопросы LLM Работая с поисково-дополненной генерацией (RAG) и моделями большого языка (LLM), я начал задумываться над, казалось бы, простым вопросом: Если получение дополнительной информации дает LLM больше...
Больше фрагментов RAG не означает лучшие ответы на вопросы LLM
Работая с поисково-дополненной генерацией (RAG) и моделями большого языка (LLM), я начал задумываться над, казалось бы, простым вопросом:
Если получение дополнительной информации дает LLM больше контекста, не должно ли это давать более качественные ответы?
Моя первоначальная интуиция заключалась в том, что более релевантные фрагменты дадут модели больше доказательств для работы. Но чем больше я исследовал конвейеры RAG, тем яснее становилось, что получение информации и ее эффективное использование — это две разные проблемы.
Система RAG может получить нужный документ и все равно дать плохой ответ.
Почему?
Потому что то, что вы получаете, имеет значение, но не менее важно и то, что вы помещаете в контекст LLM.
Давайте разберем это.
1. Как LLM обрабатывает фрагменты RAG?
Во-первых, давайте посмотрим на типичный конвейер RAG.
Вопрос пользователя
|
в
Встраивание/обработка запросов
|
в
Векторный поиск / Поиск по ключевым словам
|
в
Получить фрагменты Top-K
|
в
Создание приглашения с полученным контекстом
|
в
LLM генерирует ответ
Предположим, пользователь спрашивает:
Как я могу сбросить пароль своей учетной записи?
Ваша база знаний содержит следующие фрагменты:
Чанк 1
Чтобы сбросить пароль, откройте «Настройки учетной записи»,
выберите Безопасность и c