Ключевые технические термины, которые вы должны знать о RAG, объяснены
Доброе утро всем! Я Луи-Франсуа, соучредитель и технический директор Towards AI, и сегодня мы рассмотрим, вероятно, лучший стек Retrieval-Augmented Generation (RAG), доступный на сегодняшний день - благодаря замечательному исследованию Wang et al. (2024). Это исследование дает прекрасную возможность построить оптимальный RAG Система дает ценные сведения, и я здесь, чтобы раскрыть все тайны.
Что же делает систему RAG по-настоящему первоклассной? Конечно же, ее компоненты! Давайте рассмотрим эти лучшие компоненты и то, как они работают, чтобы вы тоже смогли построить первоклассную RAG-систему с мультимодальным яйцом в конце.
Классификация запросов
Классификация запросов
Давайте начнем с Классификация запросов Начало. Не все запросы нужно извлекать - ведь большая языковая модель иногда уже знает ответ. Например, если вы спросите "Кто такой Лионель Месси?" большая языковая модель уже сможет ответить вам, и вам не придется извлекать ответ!
Ванг и др. создали 15 категорий задач, чтобы определить, достаточно ли информации в запросе и нужно ли ее извлекать. Они обучили бинарный классификатор для различения задач: задачи, помеченные как "достаточные", не нуждаются в поиске, а задачи, помеченные как "недостаточные", нуждаются в поиске. На этом изображении желтый цвет означает, что поиск не требуется, а красный - что некоторые документы должны быть найдены!
измельчение
Chunking
Следующий. измельчение. Задача состоит в том, чтобы найти оптимальный размер куска для ваших данных. Слишком длинный? Вы добавите ненужный шум и расходы. Слишком короткий? Вы упустите контекстную информацию.
Ванг и др. обнаружили, что размеры кусков от 256 до 512 жетон Между работает лучше всего. Но помните, что все зависит от типа данных - поэтому обязательно проведите свою оценку! PRO TIP: Используйте маленький2большой(начните с маленького блока при поиске, затем используйте больший блок при генерации), или попробуйте раздвижное окно чтобы перекрывать лексемы между фрагментами.
Метаданные и гибридный поиск
Метаданные и гибридный поиск
Используйте свои метаданные! Добавьте заголовки, ключевые слова и даже гипотетические вопросы. Затем работайте с Гибридный поисккоторая сочетает векторный поиск (для семантического соответствия) с классическим BM25 поиск по ключевым словам, ваша система будет работать блестяще.
HyDE (генерация псевдодокументов для улучшения поиска) - это здорово и дает лучшие результаты, но он крайне неэффективен. Пока остановитесь на гибридном поиске - он лучше сбалансирован по производительности и особенно хорош для создания прототипов.
Модели встраивания
Модель встраивания
Выбор правильного Модели встраивания Это как подобрать правильную пару обуви. Вы же не станете надевать футбольные бутсы, чтобы играть в теннис.FlagEmbedding LLM-Embedder Лучшая посадка в этом исследовании - хороший баланс между производительностью и размером. Не слишком большой и не слишком маленький - в самый раз.
Обратите внимание, что они тестировали только модель с открытым исходным кодом, поэтому Cohere и модели OpenAI не рассматриваются. В остальном Cohere, вероятно, лучший выбор.
векторная база данных
Векторная база данных
Теперь перейдем к базе данных. Для долгосрочного использованияМилвус это их база данных векторов. Она имеет открытый исходный код, надежна и отлично подходит для обеспечения бесперебойной работы вашей системы поиска. Я также привел ссылки в описании ниже.
Преобразование запросов
Трансформация запросов
Прежде чем приступить к извлечению, необходимо конверсии запрос пользователя! Либо через Переработка запросов для повышения четкости или Декомпозиция запросов Разбиение сложных проблем на более мелкие и поиск каждой подпроблемы, или даже генерация псевдодокументов (например. HyDE и использовать их в процессе извлечения - этот шаг очень важен для повышения точности. Имейте в виду, что увеличение числа преобразований приведет к увеличению задержки, особенно в HyDE.
перестройка
Рерайтинг
А теперь давайте поговорим. перестройка. После получения документов необходимо убедиться, что наиболее важные из них находятся наверху, и здесь на помощь приходит переупорядочивание.
В данном исследовании.моноТ5 это лучший вариант по соотношению производительности и эффективности. Он точно настраивает модель T5, упорядочивая документы в зависимости от их релевантности запросу, обеспечивая, чтобы лучшие совпадения были на первом месте.РангЛама Лучшая общая производительность, но TILDEv2 Самая высокая скорость. Если вам интересно, в газете есть дополнительная информация об этом.
Переупаковка документов
Переупаковка документов
После переупорядочивания вам нужно сделать несколько Переупаковка документов Ванг и др. рекомендуют использовать "обратный" метод, т. е. располагать документы в порядке возрастания релевантности. Лю и др. (2024) Было обнаружено, что такой подход к размещению релевантной информации в начале или в конце повышает производительность. Переупаковка оптимизирует способ представления информации большой языковой модели после процесса переупорядочивания, чтобы помочь модели лучше понять порядок предоставления информации, а не просто основываться на теоретическом порядке релевантности.
резюме
Подведение итогов
Затем, перед вызовом большой языковой модели, вам нужно передать резюме для удаления избыточной информации. Длинные подсказки, отправляемые большим языковым моделям, стоят дорого и часто не нужны. Резюмирование может помочь удалить избыточную или ненужную информацию и тем самым сократить расходы.
Вы можете использовать что-то вроде Recomp Подобные инструменты выполняют экстрактивное сжатие для отбора полезных предложений или генеративное сжатие для объединения информации из нескольких документов. Однако если для вас приоритетом является скорость, вы можете пропустить этот шаг.
Генератор точной настройки
Тонкая настройка генератора
Наконец, уместно ли предоставить список имен, которые вы используете для создание Тонкая настройка Большой языковой модели? Безусловно, стоит! Тонкая настройка с использованием смеси коррелированных и случайных данных о документах улучшает способность генератора обрабатывать нерелевантную информацию. Это делает модель более надежной и помогает получить более качественные ответы. Хотя точное соотношение в статье не приводится, результаты довольно очевидны: тонкая настройка стоит того! Конечно, это также зависит от конкретной области.
мультимодальный
Мультимодальности
При обработке изображений? Реализация мультимодальный Извлечение. В задачах "текст - картинка" запрос к базе данных на наличие похожих картинок может ускорить процесс. В задачах "изображение - текст" сопоставление похожих изображений позволяет получить точные, уже существующие описания. Главное - это реальная и проверенная информация.
вынести вердикт
Одним словом, эта статья Ванга и др. дает нам надежный план для создания эффективной системы RAG. Однако следует помнить, что это всего лишь одна работа, и она не охватывает все аспекты конвейера RAG. Например, в статье не рассматривается совместное обучение ретриверов и генераторов, которое может раскрыть больший потенциал. Кроме того, в статье не рассматриваются методы разбиения на части, которые не были изучены из-за проблем со стоимостью, но это направление стоит изучить.
Я настоятельно рекомендую ознакомиться с полным текстом статьи, чтобы получить больше информации.
Как всегда, спасибо за чтение. Если вы нашли этот разбор полезным или у вас есть какие-либо замечания, дайте мне знать в разделе комментариев, и мы увидимся с вами в следующий раз!
библиография
Создание LLM для производства. https://amzn.to/4bqYU9b
Ван и др., 2024 (Ссылка на диссертацию). https://arxiv.org/abs/2407.01219
LLM-Embedder (Модели встраивания). https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_embedder
Милвус (векторная база данных): https://milvus.io/
Лю и др., 2024 (переупаковка документов). https://arxiv.org/abs/2307.03172
Recomp (инструмент для подведения итогов). https://github.com/carriex/recomp
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...