Система вопросов и ответов локальной базы знаний QAnything: на основе двухэтапного поиска расширенного генеративного приложения (RAG), поддержка больших объемов данных, вопросы и ответы на разных языках.
Система вопросов и ответов локальной базы знаний QAnything: на основе двухэтапного поиска расширенного генеративного приложения (RAG), поддержка больших объемов данных, вопросы и ответы на разных языках.

Система вопросов и ответов локальной базы знаний QAnything: на основе двухэтапного поиска расширенного генеративного приложения (RAG), поддержка больших объемов данных, вопросы и ответы на разных языках.

QAnything (Question and Answer based on Anything) Это локальная система вопросов и ответов базы знаний, предназначенная для поддержки файлов или баз данных в любом формате, которую можно установить и использовать в автономном режиме.

Вы можете загрузить в него свои локальные файлы в любом формате, чтобы получить точный, быстрый и надежный опыт вопросов и ответов.

В настоящее время поддерживаются форматы: PDF,Word(doc/docx),PPT,Markdown,Eml,TXT,Картинки (jpg, png и т. д.),Веб-ссылка,Больше форматов,Следите за обновлениями...

  • Функции
    • Безопасность данных, поддержка отключения сетевого кабеля во время установки и использования.
    • Он поддерживает вопросы и ответы на разных языках, и вы можете по желанию переключаться между вопросами и ответами на китайском и английском языках, независимо от языка файла.
    • Поддержка больших объемов данных, вопросы и ответы,Двухэтапная векторная сортировка,Решена проблема деградации крупномасштабного поиска данных.,Чем больше данных, тем лучше результаты。
    • Высокопроизводительная система производственного уровня, позволяющая напрямую развертывать корпоративные приложения.
    • Простота использования, отсутствие необходимости в громоздкой настройке, установка и развертывание в один клик, просто используйте.
    • Поддерживает выбор нескольких баз знаний для вопросов и ответов.
  • Архитектура

1. Преимущества двухэтапного поиска

Преимущества двух этапов очень очевидны в сценариях с большими объемами данных базы знаний.,Если вы используете только одноэтапное встраивание извлечения,По мере увеличения объема данных возникнет проблема ухудшения качества поиска.,Как показано зеленой линией на рисунке ниже.,Рерангирование на втором этапе позволяет добиться стабильного роста точности.,Прямо сейчасЧем больше данных, тем лучше результаты

BCEmbedding — это китайско-английская двуязычная и межъязыковая библиотека моделей алгоритмов семантического представления, разработанная NetEase Youdao, которая включает в себя две базовые модели: EmbeddingModel и RerankerModel. EmbeddingModel специально используется для генерации семантических векторов и играет ключевую роль в семантическом поиске, а также в вопросах и ответах, тогда как RerankerModel хорош для оптимизации результатов семантического поиска и уточнения семантически связанного порядка.

BCEmbedding является краеугольным камнем генеративных приложений с расширенными возможностями поиска (RAG) Youdao, особенно играющих важную роль в QAnything github. Будучи проектом NetEase Youdao с открытым исходным кодом, QAnything имеет хорошие практики применения во многих продуктах Youdao, таких как Youdao Speed ​​Reading и Youdao Translation.

QAnythingИспользуемый компонент поискаBCEmbeddingИметь очень сильные двуязычные и межъязыковые способности.,Может устранить различия между китайским и английским языками при семантическом поиске.,

Чтобы достичь:

  • Сильные возможности двуязычного и межъязыкового семантического представления.【<a href="https://github.com/netease-youdao/BCEmbedding/tree/master?tab=readme-ov-file#semantic-representation-evaluations-in-mteb" target="\_Self">на основеMTEBИндекс оценки семантического представления</a>】。
  • Оценка RAG на основе LlamaIndex,ПроизводительностьSOTA【<a href="https://github.com/netease-youdao/BCEmbedding/tree/master?tab=readme-ov-file#rag-evaluations-in-llamaindex" target="\_Self">Оценка RAG на основе LlamaIndexиндекс</a>】。
  • Двуязычные и межъязыковые преимущества
    • Существующие модели единого семантического представления часто плохо работают в двуязычных и межъязыковых сценариях, особенно в китайском, английском и их межъязыковых задачах. BCEmbedding в полной мере использует преимущества механизма перевода Youdao для достижения превосходной производительности в одноязычных, двуязычных и межъязыковых сценариях с помощью всего одной модели.

EmbeddingModel поддерживает китайский и английский языки (в будущем будет поддерживаться больше языков), RerankerModel поддерживает китайский, английский, японский и корейский.

1.1 Одноэтапный поиск (встраивание)

Название модели

Retrieval

STS

PairClassification

Classification

Reranking

Clustering

средний

bge-base-en-v1.5

37.14

55.06

75.45

59.73

43.05

37.74

47.20

bge-base-zh-v1.5

47.60

63.72

77.40

63.38

54.85

32.56

53.60

bge-large-en-v1.5

37.15

54.09

75.00

59.24

42.68

37.32

46.82

bge-large-zh-v1.5

47.54

64.73

79.14

64.19

55.88

33.26

54.21

jina-embeddings-v2-base-en

31.58

54.28

74.84

58.42

41.16

34.67

44.29

m3e-base

46.29

63.93

71.84

64.08

52.38

37.84

53.54

m3e-large

34.85

59.74

67.69

60.07

48.99

31.62

46.78

bce-embedding-base_v1

57.60

65.73

74.96

69.00

57.29

38.95

59.43

1.2 Двухэтапное восстановление (повторное ранжирование)

Название модели

Reranking

средний

bge-reranker-base

57.78

57.78

bge-reranker-large

59.69

59.69

bce-reranker-base_v1

60.06

60.06

1.3 Оценка RAG на основе LlamaIndex (встраивание и переранжирование)

NOTE:

  • В столбце WithoutReranker наша модель bce-embedding-base_v1 превосходит все другие модели внедрения.
  • Благодаря фиксированной модели внедрения наша модель bce-reranker-base_v1 достигает наилучшей производительности.
  • Комбинация bce-embedding-base_v1 и bce-reranker-base_v1 — это SOTA.
  • Если вы хотите использовать его отдельноembeddingиrerankВидеть:BCEmbedding

2.LLM

Большая модель версии с открытым исходным кодом QAnything основана на Tongyi Qianwen и настроена на большое количество профессиональных наборов данных вопросов и ответов на основе Qianwen, возможности вопросов и ответов были значительно расширены;

Если вам необходимо коммерческое использование, следуйте лицензии Qianwen.,具体Видеть:Тонги Цяньвэнь

2.1 Быстрый старт

необходимые условия

  • For Linux |System| Required item | Minimum Requirement | Note | |---------------------------|--------------------------|---------------------------|-------------------------------------------------------------------------| |Linux | Single NVIDIA GPU Memoryundefined or Double NVIDIA GPU Memory | >= 16GB = 11GB + 5G | NVIDIA 3090 x 1 recommended NVIDIA 2080TI × 2 recommended | | | NVIDIA Driver Version | >= 525.105.17 | | | | CUDA Version | >= 12.0 | | | | Docker version | >= 20.10.5 | Docker install | | | docker compose version | >= 2.23.3 | docker compose install |
  • For Winodws 11 with WSL 2 |System| Required item | Minimum Requirement | Note | |---------------------------|--------------------------|---------------------------|-----------------------------------------------------------------------------------------------| |Windows 11 with WSL 2| Single NVIDIA GPU Memory or Double NVIDIA GPU Memory | >= 16GB = 11GB + 5G | NVIDIA 3090 NVIDIA 2080TI × 2 | | | | GEFORCE EXPERIENCE | >= 546.33 |GEFORCE EXPERIENCE download | | | | Docker Desktop | >= 4.26.1(131620) | Docker Desktop for Windows |

Загрузите и установите

  • step1: Загрузите этот проект git clone https://github.com/netease-youdao/QAnything.gitcd QAnything bash run.sh # По умолчанию запускается на графическом процессоре № 0.
  • Шаг 2. Введите корневой каталог проекта для выполнения сценария запуска. Если вы используете систему Windows, сначала войдите в среду wsl.
  • Укажите запуск одного графического процессора
Язык кода:shell
копировать
cd QAnything
bash run.sh 0  # Для запуска укажите графический процессор № 0. Номера графических процессоров начинаются с 0 Компьютеры с ОС Windows обычно имеют только одну карту, поэтому можно указать только графический процессор № 0.
  • Укажите запуск с несколькими графическими процессорами
Язык кода:shell
копировать
cd QAnything
bash run.sh 0,1 # указано ГПУ №0,1 запускается,Пожалуйста, подтвердите, что доступно несколько графических процессоров.,Поддерживает до двух карт для запуска

Начните испытывать

  • Главная страница После успешного запуска вы можете ввести следующий адрес в браузере, чтобы испытать его.
  • Фронтальный адрес: http://your_host:5052/qanything/
  • API Если вы хотите получить доступ к интерфейсу API, перейдите по следующему адресу:
  • API address: http://your_host:8777/api/
  • Подробную документацию по API см. в разделе QAnything API документ.
  • Закрыть сервис bash close.sh

3. демонстрационный дисплей

Ссылка на видео:https://blog.csdn.net/sinat_39620217/article/details/135743659

извлечение информации

Веб-вопросы и ответы

Сборная солянка из файлов

4. Часто задаваемые вопросы

  • При выполнении команды docker-compose в Windows при запуске возникает ошибка: /bin/bash^M: плохой интерпретатор: нет такого файла или каталога# Используйте команду, чтобы проверить, находится ли файл сценария в формате dos или unix. Конец строки файла формата dos — ^M$ , строка файла, заканчивающаяся в формате unix, — $: cat -A scripts/run_for_local.sh # Проверка формата файла sed -i "s/\r//" скрипты/run_for_local.sh sed -i "s/^M//" скрипты/run_for_local.sh cat -A scripts/run_for_local.sh # Проверка формата файла - Причина: сценарий оболочки, созданный и редактируемый в Windows, имеет формат DOS, но Linux может выполнять сценарии только в формате Unix, поэтому файлы, редактируемые в Windows, обычно находятся в среде после выполнения wsl в Windows. Также Linux) сообщит об ошибке, когда казнен. — Решение: замените возврат каретки пустыми строками.
  • После ввода вопроса на главной странице результат возвращается с ошибкой: Triton Inference Error (error_code: 4)
    • Причина: Недостаточно видеопамяти. В настоящее время в процессе вопросов и ответов видеопамять, занимаемая большими моделями и Paddleocr, постепенно увеличивается и не освобождается, что может привести к нехватке видеопамяти.
    • Решение: Перезапустить службу и оптимизировать видеопамять уже запланировано.
    • Причина 2. Если вы обнаружите, что видеопамяти достаточно, это связано с тем, что новая модель несовместима с некоторыми моделями видеокарт.
    • Решение: выберите совместимую модель и изображение, вручную загрузите файл модели, распакуйте его и замените каталог моделей, а затем перезапустите службу.
      • Измените freeren/qanyxxx:v1.0.9 в docker-compose-xxx.yaml на freeren/qanyxxx:v1.0.8.
      • git clone https://www.wisemodel.cn/Netease_Youdao/qanything.git
      • cd qanything
      • git reset --hard 79b3da3bbb35406f0b2da3acfcdb4c96c2837faf
      • unzip models.zip
      • Заменить существующий каталог моделей
      • echo "v2.1.0" > models/version.txt # Вручную обойти проверку версии
  • После ввода вопроса на главной странице возвращаемый результат похож на следующий искаженный код: omiteatures.scrollHeight㎜eaturesodo Curse.streaming pulumiпещераIDI贶椤贶.scrollHeight崴崴崶eaturesголоволомка.scrollHeightона
    • Причина: модель видеокарты не поддерживается, например V100. Используйте видеокарты 3080, 3090, 4080, 4090 и другие. Объем графической памяти должен быть больше 16 ГБ.
  • При запуске службы сообщается об ошибке, которая отображается в api.log: mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on 'mysql-container-local:3306' (111)
    • Причина: после удаления предыдущего кода QAnything.,копировать отправил копию кода на другой адрес,Один из томов является локальным томом данных по умолчанию для mivlus и mysql.,копирование может вызвать конфликт томов данных MySQL,В результате MySQL не может быть запущен.
    • Решение. Удалите конфликтующие тома данных и перезапустите службу.
  • Ошибка запуска службы: ОШИБКА: for qanything-container-local Cannot start service qanything_local: could not select device driver "nvidia" with capabilities: gpu
    • Причина: Проверьте, соответствует ли версия драйвера видеокарты NVIDIA требованиям. Рекомендуется также выполнить обновление до последней версии под Windows; Container Toolkit, Необходимо войти в среду wsl2 под Windows,Ссылка еще разlinuxСпособ установки:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
  • Ошибка запуска службы: nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overlay2/xxxxxx/libnvidia-ml.s0.1: file exists: unknown
    • Причина: Начните использовать docker-compose-linux.yaml в системе Windows.
    • Решение. Начните использовать docker-compose-windows.yaml.

Справочные ссылки:

https://github.com/netease-youdao/QAnything/blob/master

Для получения дополнительной информации обратите внимание на:

Для получения более качественного контента обратите внимание на официальный аккаунт: Ting, Искусственный интеллект; некоторые сопутствующие ресурсы и качественные статьи будут предоставлены для бесплатного чтения.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.