KBLaM: усовершенствованный инструмент с открытым исходным кодом для встраивания внешних знаний в большие модели
Общее введение
KBLaM - это проект с открытым исходным кодом, разработанный компанией Microsoft, полное название - "Модель дополненного языка базы знаний" (Knowledge Base Augmented Language Model). Он преобразует внешние знания в векторы и встраивает их в слой внимания большой модели, так что модель может напрямую использовать эти знания для ответов на вопросы или рассуждений. По сравнению с традиционной генерацией, дополненной поиском (RAG), она не требует дополнительного модуля поиска, а по сравнению с контекстным обучением ее вычислительные затраты растут линейно с размером базы знаний, а не с квадратичным шагом. KBLaM имеет открытый исходный код на GitHub, ориентирован в первую очередь на исследователей и разработчиков и подходит для изучения того, как сделать большие модели более эффективными в обработке внешней информации. В настоящее время он поддерживает такие модели, как семейство Llama от Meta и Phi-3 от Microsoft.

Список функций
- Преобразование внешних баз знаний в пары ключ-значение-вектор для улучшения модели.
- Встраивание знаний в большие модели с помощью механизма прямоугольного внимания.
- Поддерживает динамическое обновление базы знаний без переобучения модели.
- Вычислительные затраты растут линейно с размером базы знаний и являются эффективными.
- Открытый исходный код, экспериментальные скрипты и наборы данных для содействия исследованиям и разработкам.
- Поддерживает такие задачи, как опрос и рассуждение, и может генерировать точные ответы на основе базы знаний.
- Возможности обработки текста базовой модели не изменяются, сохраняя первоначальную производительность.
Использование помощи
KBLaM - это исследовательский инструмент с открытым исходным кодом, код и документация которого доступны на GitHub. Ниже приведено подробное руководство по установке и использованию, которое поможет пользователям быстро начать работу.
Процесс установки
- Подготовка среды
Требуется Python 3.8 или выше и Git; рекомендуется Linux или Windows. Если вы работаете с крупными базами знаний, рекомендуется использовать графический процессор NVIDIA (например, A100 с 80 ГБ или более видеопамяти). - Скачать Хранилище
Откройте терминал и введите команду Clone KBLaM repository:
git clone https://github.com/microsoft/KBLaM.git
Перейдите в каталог проектов:
cd KBLaM
- Установка зависимостей
Выполните следующую команду для установки необходимых библиотек:
pip install -e .
Это позволит установить PyTorch, Transformers и другие зависимости. Если вам нужно использовать модель Llama, вам также потребуется установить инструмент Hugging Face и войти в систему:
pip install huggingface_hub
huggingface-cli login
Чтобы войти в систему, вам нужно сгенерировать токен от Hugging Face.
- Проверка установки
Запустите тестовый сценарий, чтобы убедиться, что со средой все в порядке:
python -m kblam.test
Если сообщений об ошибках нет, значит, установка прошла успешно.
Основные функции
1. Создание базы знаний
KBLaM необходимо преобразовать внешние знания в векторные пары.
- перейти::
- Подготовьте файл базы знаний (например, в формате JSON), пример:
{"entity": "AI", "description": "人工智能是模拟人类智能的技术"}
- Создайте векторы:
python dataset_generation/generate_kb_embeddings.py --input knowledge.json --output embeddings.npy
- Поддерживаются следующие модели встраивания
text-embedding-ada-002
ответить пениемall-MiniLM-L6-v2
. Выходные файлыembeddings.npy
это вектор знаний.
2. Встраивание знаний в модели
Встраивание векторов знаний в слой внимания большой модели.
- перейти::
- Загрузите поддерживаемые модели (например.
meta-llama/Meta-Llama-3-8B-Instruct
). - Запустите встроенный скрипт:
python src/kblam/integrate.py --model meta-llama/Meta-Llama-3-8B-Instruct --kb embeddings.npy --output enhanced_model
- Экспорт расширенного каталога моделей
enhanced_model
.
3. тестирование усовершенствованных моделей
Загрузите улучшенную модель и проверьте эффект.
- перейти::
- Запустите сценарий тестирования:
python src/kblam/evaluate.py --model enhanced_model --question "AI是什么?"
- Модель ответит: "ИИ - это технология, имитирующая человеческий интеллект".
Функциональное управление
Динамическое обновление базы знаний
KBLaM поддерживает обновление базы знаний в любое время без переобучения модели.
- перейти::
- Измените файл базы знаний, чтобы добавить новые записи:
{"entity": "KBLaM", "description": "微软开发的知识增强工具"}
- Создайте новый вектор:
python dataset_generation/generate_kb_embeddings.py --input updated_knowledge.json --output new_embeddings.npy
- Обновите модель:
python src/kblam/integrate.py --model enhanced_model --kb new_embeddings.npy --output updated_model
- Обновленная модель сразу же готова к использованию новых знаний.
Учебные адаптеры
Обучение адаптеров для оптимизации эффектов внедрения знаний.
- перейти::
- Обучение с использованием синтетических наборов данных:
python train.py --dataset synthetic_data --N 120000 --B 20 --total_steps 601 --encoder_spec OAI --use_oai_embd --key_embd_src key --use_data_aug
- Для создания синтетических данных требуются конечные точки Azure OpenAI, см.
dataset_generation/gen_synthetic_data.py
.
рекуррентный эксперимент
В репозитории представлены экспериментальные скрипты, воспроизводящие результаты статьи.
- перейти::
- Перейдите в каталог экспериментов:
cd experiments
- Запустите скрипт:
python run_synthetic_experiments.py
- Ключи Azure OpenAI должны быть настроены для создания синтетических наборов данных.
предостережение
- Поддержка модели: Текущая поддержка
Meta-Llama-3-8B-Instruct
, иLlama-3.2-1B-Instruct
ответить пениемPhi-3-mini-4k-instruct
. Необходимо модифицировать дополнительные моделиsrc/kblam/models
Код адаптера в - требования к оборудованию: Для обработки больших баз знаний требуются высокопроизводительные графические процессоры, в то время как небольшие эксперименты можно проводить на центральных процессорах.
- Вопрос Обратная связь: В случае возникновения проблем проверьте
SUPPORT.md
или отправьте проблему на GitHub.
сценарий применения
- исследовательский эксперимент
Исследователи могут использовать KBLaM для проверки того, как большие модели обрабатывают экспертные знания, например, встраивая базу знаний в области химии, чтобы повысить точность ответа модели. - Корпоративные вопросы и ответы
Разработчики могут превратить документы компании в базу знаний и создать интеллектуальных помощников, которые быстро ответят на вопросы сотрудников или клиентов. - Учебные пособия
Преподаватели могут внедрять материалы курса в KBLaM, чтобы создать инструмент, отвечающий на вопросы студентов и способствующий обучению.
QA
- Чем KBLaM отличается от традиционного тонкого тюнинга?
KBLaM не изменяет базовую модель и обучает только знаниям о встраивании адаптера. Традиционная тонкая настройка требует переобучения всей модели, что требует больших затрат. - Подходит ли он для производственной среды?
KBLaM - это исследовательский проект. Ответы могут быть неточными, если база знаний слишком отличается от обучающих данных. Официальная рекомендация - использовать его только для исследований. - Как оценить эффективность KBLaM?
Оценивается по точности (насколько правильно получены знания), проценту отказов (правильно ли определены вопросы, на которые нельзя ответить), точности и запоминанию ответов.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...