Унифицированное рассмотрение различных моделей реранкинга RAG | Точная настройка полносвязной модели реранкинга RAG Результаты эксперимента |
RAG-Retrival обеспечивает полнофункциональную RAG-поиск кода для точной настройки (поезда), вывода (infer) и дистилляции (дистиллирования).
Присоединяйтесь к нашему групповому чату WeChat
21.10.2024: RAG-Retrival выпустила два разных метода выполнения задач Reranker на основе LLM, а также метод их дистилляции в bert. Каковы лучшие практики для LLM по задачам Reranker? Простой отчет об эксперименте (с кодом)
05.06.2024: Реализация модели внедрения RAG-Retrival при потере MRL. RAG-Извлечение: Сделайте потерю MRL стандартной конфигурацией моделей обучающего вектора (встраивания).
02.06.2024: RAG-Retrival реализует контролируемую точную настройку ретривера RAG на основе предпочтений LLM. RAG-Retieval реализует тонкую настройку RAG-ретривера на основе контроля предпочтений LLM.
05.05.2024: Выпуск облегченной библиотеки Python RAG-Retrival: ваше приложение RAG заслуживает лучшей структуры вывода сортировки.
18 марта 2024 г.: Выпуск RAG-Retrival RAG-Retrival Zhihu: введение
Модель ранжирования является важной частью любой поисковой архитектуры и важной частью RAG, но текущий статус-кво таков:
Поэтому компания RAG-Retrival разработала облегченную библиотеку rag-retriving на Python, которая обеспечивает унифицированный способ вызова любой другой модели сортировки RAG. Она имеет следующие характеристики.
Поддерживает несколько моделей сортировки: поддерживает распространенные модели сортировки с открытым исходным кодом (переранжирование перекрестного кодировщика, переранжирование LLM только для декодера).
Удобство для длинных документов: поддерживает две разные логики обработки длинных документов (усечение максимальной длины, сегментация и максимальная оценка).
Легко расширить: если существует новая модель ранжирования, пользователю нужно только наследовать basereranker и реализовать функции Rank и Compute_score.
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install rag-retrieval
Для реранкера Cross Encoder, если он использует AutoModelForSequenceClassification преобразователей, вы можете использовать Reranker rag_retrieval для рассуждений. Примеры следующие.
Модели перекрестных кодировщиков серии bge, такие как (BAAI/bge-reranker-base, BAAI/bge-reranker-large, BAAI/bge-reranker-v2-m3)
Например, модель перекрестного кодировщика bce (maidalun1020/bce-reranker-base_v1)
Что касается LLM Reranker, Reranker rag_retrival поддерживает множество мощных моделей ранжирования LLM. Он также поддерживает использование любой модели чата LLM для нулевой сортировки. Примеры следующие.
Модели LLM Reranker серии bge, такие как (BAAI/bge-reranker-v2-gemma, BAAI/bge-reranker-v2-minicpm-layerwise, BAAI/bge-reranker-v2-m3)
Он также поддерживает использование любой модели чата LLM для нулевой сортировки.
Подробную информацию об использовании и мерах предосторожности при использовании пакета для извлечения тряпок см. в Учебном руководстве.
Мы провели множество тестов, чтобы согласовать их с исходной структурой рассуждений ниже. Подробности см. в разделе «Тесты». Для их выполнения требуются разные модули, а rag_retrival использует унифицированный интерфейс.
Например, FlagReranker, FlagLLMReranker, LayerWiseFlagLLMReranker от FlagEmbedding.
Например, RerankerModel от BCEmbedding.
conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval
#为了避免自动安装的torch与本地的cuda不兼容,建议进行下一步之前先手动安装本地cuda版本兼容的torch。
pip install -r requirements.txt
Поддержка тонкой настройки любой модели внедрения с открытым исходным кодом (bge, m3e и т. д.).
Поддерживает тонкую настройку двух типов данных:
Точная настройка процесса внедрения модели. Подробные сведения о процессах см. в руководстве в каталоге модели.
cd ./rag_retrieval/train/embedding
bash train_embedding.sh
Точная настройка процесса модели Кольберта. Подробные сведения о процессах см. в учебном пособии в каталоге модели.
cd ./rag_retrieval/train/colbert
bash train_colbert.sh
Точная настройка процесса изменения рейтинга модели. Подробные сведения о процессах см. в руководстве в каталоге модели.
cd ./rag_retrieval/train/reranker
bash train_reranker.sh
Модель | Размер модели (ГБ) | T2Реранкинг | MMarcoРеранкинг | CMedQAv1 | CMedQAv2 | Среднее |
---|---|---|---|---|---|---|
bge-reranker-base | 1.11 | 67,28 | 35,46 | 81,27 | 84.10 | 67.03 |
bce-reranker-base_v1 | 1.11 | 70,25 | 34.13 | 79,64 | 81,31 | 66,33 |
тряпичное извлечение-переранжирование | 0,41 | 67,33 | 31,57 | 83,54 | 86.03 | 67,12 |
Среди них rag-retrival-reranker — это то, что мы используем код RAG-Retrival для обучения на модели hfl/chinese-roberta-wwm-ext, а данные обучения используют данные обучения модели bge-rerank.
Модель | Размер модели (ГБ) | Дим | T2Реранкинг | MMarcoРеранкинг | CMedQAv1 | CMedQAv2 | Среднее |
---|---|---|---|---|---|---|---|
bge-m3-кольбер | 2.24 | 1024 | 66,82 | 26.71 | 75,88 | 76,83 | 61,56 |
поиск тряпок-Кольбер | 0,41 | 1024 | 66,85 | 31.46 | 81.05 | 84,22 | 65,90 |
Среди них rag-retrival-colbert — это то, что мы используем код RAG-Retrival для обучения модели hfl/chinese-roberta-wwm-ext, а данные обучения используют данные обучения модели bge-rerank.
Модель | Т2рейтинг | |
---|---|---|
встраивание bge-v1.5 | 66,49 | |
тонкая настройка встраивания bge-v1.5 | 67,15 | +0,66 |
bge-m3-кольбер | 66,82 | |
тонкая настройка bge-m3-colbert | 67,22 | +0,40 |
bge-reranker-base | 67,28 | |
точная настройка bge-reranker-base | 67,57 | +0,29 |
Те, у кого есть точная настройка в конце, означают, что мы используем RAG-Retrival для продолжения точной настройки результатов на основе соответствующей модели с открытым исходным кодом. В обучающих данных используется обучающий набор T2-Reranking.
Стоит отметить, что три модели bge с открытым исходным кодом уже включают T2-Reranking в обучающий набор, и данные являются относительно общими, поэтому эффект повышения производительности от использования этих данных для продолжения тонкой настройки не является значительным. Если вы используете наборы данных вертикальной области для дальнейшей тонкой настройки модели с открытым исходным кодом, повышение производительности будет больше.
RAG-Retrival лицензируется по лицензии MIT.