MiniMind-V: 1 час обучения визуальной модели языка с 26 миллионами параметров
Общее введение
MiniMind-V - это проект с открытым исходным кодом, размещенный на GitHub, призванный помочь пользователям обучить легкую визуальную языковую модель (VLM) с 26 миллионами параметров менее чем за час. Он основан на языковой модели MiniMind, новом визуальном кодере и модуле проекции признаков, поддержке совместной обработки изображений и текста. Проект предоставляет полный код от очистки набора данных до вывода модели, при этом стоимость обучения составляет всего ~RMB1.3 для одного GPU (например, NVIDIA 3090). MiniMind-V подчеркивает простоту и легкость использования, с менее чем 50 строками изменений кода, что делает его подходящим инструментом для разработчиков, чтобы экспериментировать и изучать процесс построения визуальной языковой модели.

Список функций
- Предоставляет полный код обучения для визуальных языковых моделей с 26 миллионами параметров, поддерживая быстрое обучение на одном GPU.
- С помощью визуального кодера CLIP изображение размером 224x224 пикселя было обработано для создания 196 визуальных лексем.
- Поддерживает ввод одного или нескольких изображений в сочетании с текстом для диалога, описания изображения или вопросов и ответов.
- Содержит полные технологические скрипты для очистки набора данных, предварительного обучения и тонкой настройки под наблюдением (SFT).
- Обеспечивает нативную реализацию PyTorch, поддерживает ускорение на нескольких картах и обладает высокой совместимостью.
- Включает загрузку весов моделей и поддерживает платформы Hugging Face и ModelScope.
- Предоставляет веб-интерфейс и командную строку для простого тестирования эффектов модели.
- Поддержка инструмента wandb для регистрации потерь и производительности во время тренировок.
Использование помощи
Процесс использования MiniMind-V включает в себя настройку среды, подготовку данных, обучение модели и тестирование эффекта. Каждый этап подробно описан ниже, чтобы помочь пользователям быстро приступить к работе.
Конфигурация среды
Для работы MiniMind-V требуется среда Python и поддержка GPU. Вот шаги по установке:
- Клонирование кода
Выполните следующую команду в терминале, чтобы загрузить код проекта:git clone https://github.com/jingyaogong/minimind-v cd minimind-v
- Установка зависимостей
Проектные предложенияrequirements.txt
файл, содержащий необходимые библиотеки. Выполните следующую команду:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Рекомендуется Python 3.9 или выше. Убедитесь, что PyTorch поддерживает CUDA (если у вас есть GPU). Это можно проверить, выполнив следующий код:
import torch print(torch.cuda.is_available())
экспорт
True
Указывает, что графический процессор доступен. - Скачать модели CLIP
MiniMind-V использует модель CLIP (clip-vit-base-patch16
) в качестве визуального кодировщика. Выполните следующую команду, чтобы загрузить и разместить файл./model/vision_model
::git clone https://huggingface.co/openai/clip-vit-base-patch16 ./model/vision_model
Также можно загрузить с сайта ModelScope:
git clone https://www.modelscope.cn/models/openai-mirror/clip-vit-base-patch16 ./model/vision_model
- Загрузите весовые коэффициенты базовой языковой модели
MiniMind-V основан на языковой модели MiniMind, что требует загрузки весов языковой модели в./out
Каталог. Пример:wget https://huggingface.co/jingyaogong/MiniMind2-V-PyTorch/blob/main/lm_512.pth -P ./out
или скачать
lm_768.pth
в зависимости от конфигурации модели.
Подготовка данных
MiniMind-V использует около 570 000 изображений для предварительного обучения и 300 000 данных для тонкой настройки команд, занимая около 5 Гб памяти:
- Создание каталога наборов данных
В корневом каталоге проекта создайте файл./dataset
Папка:mkdir dataset
- Скачать набор данных
Загрузите набор данных с сайта Hugging Face или ModelScope, содержащий*.jsonl
Данные в вопросах и ответах и*images
Изобразительные данные:- Обнимающееся лицо: https://huggingface.co/datasets/jingyaogong/minimind-v_dataset
- ModelScope: https://www.modelscope.cn/datasets/gongjy/minimind-v_dataset
Загрузите и разархивируйте данные изображения в./dataset
::
unzip pretrain_images.zip -d ./dataset unzip sft_images.zip -d ./dataset
- Валидационный набор данных
безопасный./dataset
Содержит следующие файлы:pretrain_vlm_data.jsonl
: Данные предварительного обучения, около 570 000 записей.sft_vlm_data.jsonl
: Данные о точной настройке одной фигуры, около 300 000 записей.sft_vlm_data_multi.jsonl
: Данные тонкой настройки мультикарты, около 13 600 записей.- Папка с изображениями: содержит файлы изображений для предварительного обучения и тонкой настройки.
обучение модели
Обучение MiniMind-V делится на предварительное обучение и контролируемую тонкую настройку и поддерживает ускорение одной или нескольких карт.
- Параметры конфигурации
компилятор./model/LMConfig.py
, задайте параметры модели. Пример:- Миниатюры:
dim=512
,n_layers=8
- Средняя модель:
dim=768
,n_layers=16
Эти параметры определяют размер и производительность модели.
- Миниатюры:
- предтренировочный курс
Запустите сценарии предварительного обучения, чтобы узнать возможности описания изображений:python train_pretrain_vlm.py --epochs 4
Выходные веса сохраняются в виде
./out/pretrain_vlm_512.pth
(или768.pth
Модель CLIP заморожена). На выполнение одной эпохи у одного NVIDIA 3090 уходит около 1 часа. замораживает модель CLIP и обучает только проекционный слой и последний слой языковой модели. - Контролируемая тонкая настройка (SFT)
Тонкая настройка с использованием предварительно обученных весов для оптимизации возможностей диалога:python train_sft_vlm.py --epochs 4
Выходные веса сохраняются в виде
./out/sft_vlm_512.pth
. На этом этапе происходит обучение проекционного слоя и языковой модели со всеми параметрами. - Обучение доке (по желанию)
Если у вас N видеокарт, используйте следующую команду для ускорения:torchrun --nproc_per_node N train_pretrain_vlm.py --epochs 4
взаимозаменяемость
train_pretrain_vlm.py
Для других обучающих сценариев (например.train_sft_vlm.py
). - Мониторинг обучения
Потери при обучении можно записать с помощью wandb:python train_pretrain_vlm.py --epochs 4 --use_wandb
Просматривайте данные в режиме реального времени на официальном сайте wandb.
Тест на эффективность
После завершения обучения модель можно проверить на способность вести диалог с изображением.
- рассуждения из командной строки
Выполните следующую команду, чтобы загрузить модель:python eval_vlm.py --load 1 --model_mode 1
--load 1
: Загрузите модель формата трансформаторов из Hugging Face.--load 0
: Из./out
Загрузите грузы PyTorch.--model_mode 1
: Тестирование моделей с точной настройкой;0
Тестирование предварительно обученных моделей.
- Тестирование веб-интерфейса
Запустите веб-интерфейс:python web_demo_vlm.py
интервью
http://localhost:8000
Загрузите изображение и введите текст для проверки. - формат ввода
MiniMind-V использует 196@@@
Заголовки представляют собой изображения. Пример:@@@...@@@\n这张图片是什么内容?
Пример ввода нескольких изображений:
@@@...@@@\n第一张图是什么?\n@@@...@@@\n第二张图是什么?
- Загрузите предтренировочные веса
Если вы не тренируетесь, вы можете скачать официальные веса напрямую:- Формат PyTorch:https://huggingface.co/jingyaogong/MiniMind2-V-PyTorch
- Формат трансформеров:https://huggingface.co/collections/jingyaogong/minimind-v-67000833fb60b3a2e1f3597d
предостережение
- Рекомендуемая видеопамять 24 ГБ (например, RTX 3090). Если видеопамяти недостаточно, уменьшите размер партии (
batch_size
). - Убедитесь, что путь к набору данных указан правильно.
*.jsonl
и файлы изображений должны быть помещены в папку./dataset
. - Замораживание моделей CLIP во время обучения снижает требования к арифметике.
- Диалоги с несколькими изображениями имеют ограниченную эффективность, поэтому рекомендуется в первую очередь тестировать сценарии с одним изображением.
сценарий применения
- Алгоритмическое обучение ИИ
MiniMind-V предоставляет краткий код моделирования на визуальном языке, подходящий для студентов, чтобы понять принципы кросс-модального моделирования. Пользователи могут модифицировать код, чтобы экспериментировать с различными параметрами или наборами данных. - Быстрое прототипирование
Разработчики могут создавать прототипы приложений для работы с диалогами изображений на основе MiniMind-V. Он легкий и эффективный и подходит для устройств с низким энергопотреблением, таких как ПК или встраиваемые системы. Легкий и эффективный, он подходит для устройств с низким энергопотреблением, таких как ПК или встраиваемые системы. - Средства обучения и тренировки
Колледжи и университеты могут использовать MiniMind-V в курсах по искусственному интеллекту, чтобы показать весь процесс обучения модели. Код четко прокомментирован и подходит для практики в классе. - Недорогие эксперименты
Стоимость обучения в проекте невысока, что подходит командам с ограниченным бюджетом для тестирования эффекта мультимодальных моделей без необходимости использования высокопроизводительных серверов.
QA
- Изображения какого размера поддерживает MiniMind-V?
По умолчанию обрабатываются изображения размером 224x224 пикселя, ограниченные моделью CLIP. Для экономии места изображения наборов данных могут быть сжаты до 128x128. В будущем могут быть опробованы модели CLIP с более высоким разрешением. - Сколько времени займет обучение?
На одном NVIDIA 3090 1 эпоха предварительного обучения занимает около 1 часа, при этом тонкая настройка выполняется немного быстрее. Точное время зависит от аппаратного обеспечения и объема данных. - Могу ли я просто настроить его без предварительной подготовки?
Можно. Загрузите официальные предтренировочные веса прямо и бегитеtrain_sft_vlm.py
Тонкая настройка. - Какие языки поддерживаются?
В основном поддерживает китайский и английский языки, эффект зависит от набора данных. Пользователи могут расширить другие языки путем тонкой настройки. - Насколько хорошо работает диалог с несколькими изображениями?
Текущие возможности диалога с несколькими изображениями ограничены, поэтому рекомендуется использовать сценарии с одним изображением. В будущем можно будет усовершенствовать систему, используя более крупные модели и наборы данных.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...