MiniMind: 2 часа обучения с нуля 26M параметрам GPT с открытым исходным кодом
Общее введение
MiniMind - это проект с открытым исходным кодом, созданный разработчиком jingyaogong. Основная цель проекта - дать возможность обычным людям быстро обучать собственные модели искусственного интеллекта. Главная особенность MiniMind заключается в том, что обучение 26-мегапараметрической GPT-модели с нуля на одной видеокарте NVIDIA 3090 занимает 2 часа и стоит всего около 3 юаней. Проект предоставляет полнопоточный код от предварительного обучения до тонкой настройки, включая очистку набора данных, предварительное обучение, тонкую настройку команд, LoRA, DPO и дистилляцию модели, а также поддержку визуального мультимодального расширения MiniMind-V. Весь код был рефакторин с нуля на основе PyTorch, без зависимости от сторонних интерфейсов абстракции. По состоянию на февраль 2025 года MiniMind был выпущен в нескольких версиях, с минимальным размером модели 25,8 М параметров, и получил ошеломляющий отклик от сообщества.

Список функций
- Поддержка обучения 26-мегапараметрических моделей GPT с нуля менее чем за 2 часа на одной видеокарте 3090.
- Предоставляет полнопоточный код для предварительного обучения, тонкой настройки инструкций, LoRA, DPO и дистилляции моделей.
- Включает визуальное мультимодальное расширение MiniMind-V для обработки изображений и текста.
- Поддерживает обучение с одной или несколькими картами, совместим с визуализацией DeepSpeed и wandb.
- Предоставьте сервер протокола OpenAI API для легкого доступа к сторонним чат-интерфейсам.
- Высококачественные наборы данных и весовые коэффициенты моделей с открытым исходным кодом для прямой загрузки или вторичной разработки.
- Поддержка обучения токенизаторов и пользовательских списков слов для гибкой настройки структуры модели.
Использование помощи
Использование MiniMind делится на три этапа: установка, обучение и обоснование. Ниже приведено подробное руководство, которое поможет пользователям быстро начать работу.
Процесс установки
- Подготовка к защите окружающей среды
- Требуется Python 3.10 или более поздняя версия.
- Проверьте, что видеокарта поддерживает CUDA, выполнив следующий код:
import torch print(torch.cuda.is_available())
Если возврат
True
В противном случае вам придется установить соответствующую версию PyTorch. - Установите Git для клонирования кода.
- проект клонирования
Введите его в терминал:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
- Установка зависимостей
Ускоренная установка с помощью зеркал Tsinghua:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Если у вас возникнут проблемы, вы можете установить его вручную torch
возможно flash_attn
.
- Скачать набор данных
- Загрузите набор данных на GitHub README или https://www.modelscope.cn/datasets/gongjy/minimind_dataset/files.
- создать
./dataset
распакуйте файлы в этот каталог. - Рекомендуемые загрузки
pretrain_hq.jsonl
(1,6 Гб) иsft_mini_512.jsonl
(1,2 ГБ).
Модели обучения
- предтренировочный курс
- Запустите сценарий, чтобы начать предварительное обучение:
python train_pretrain.py
- Использование по умолчанию
pretrain_hq.jsonl
Выходные веса сохраняются в видеpretrain_*.pth
. - Ускорение работы с несколькими картами:
torchrun --nproc_per_node 2 train_pretrain.py
- тонкая настройка команд
- Запустите скрипт тонкой настройки:
python train_full_sft.py
- Использование по умолчанию
sft_mini_512.jsonl
Выходные веса сохраняются в видеfull_sft_*.pth
. - То же самое касается поддержки нескольких карт памяти.
- Тонкая настройка LoRA
- Подготовьте данные о домене (например.
lora_medical.jsonl
), бегите:python train_lora.py
- Выходные веса сохраняются в виде
lora_xxx_*.pth
.
- DPO Расширенное обучение
- пользоваться
dpo.jsonl
Данные, бег:python train_dpo.py
- Выходные веса сохраняются в виде
rlhf_*.pth
.
- Обучение визуализации
- Добавить параметры
--use_wandb
В ролях:python train_pretrain.py --use_wandb
- Ознакомьтесь с кривыми обучения на официальном сайте wandb.
Рассуждения с помощью моделей
- рассуждения из командной строки
- Загрузите модель весов (например, MiniMind2):
git clone https://huggingface.co/jingyaogong/MiniMind2
- Бегущие рассуждения:
python eval_model.py --load 1 --model_mode 2
- Описание параметра:
--load 1
В формате трансформаторов--model_mode 2
С помощью MiniMind2.
- веб-чат
- Установите Streamlit:
pip install streamlit
- Интерфейс запуска:
cd scripts streamlit run web_demo.py
- Доступ в браузере
localhost:8501
Вы можете вести диалог.
- Услуги API
- Запустите сервер:
python serve_openai_api.py
- Протестируйте интерфейс:
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "MiniMind2", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 512}'
Функциональное управление
- Визуальная мультимодальность (MiniMind-V)
- Загрузите модель MiniMind-V:
git clone https://huggingface.co/jingyaogong/MiniMind2-V
- Загрузите модель визуализации CLIP, чтобы
./model/vision_model
::
git clone https://huggingface.co/openai/clip-vit-base-patch16
- Бег:
python eval_vlm.py --load 1
- Введите текст и изображения, и модель сгенерирует описание.
- Индивидуальное обучение
- Организуйте данные следующим образом
.jsonl
в формате./dataset
. - модификации
./model/LMConfig.py
параметры (например.d_model
возможноn_layers
). - Тренируйтесь, выполняя описанные выше действия.
предостережение
- Если видеопамяти недостаточно, отрегулируйте
batch_size
или увеличитьaccumulation_steps
. - Если наборы данных велики, обрабатывайте их партиями, чтобы избежать переполнения памяти.
- Сверхдлинные контексты поддерживают настройку параметров RoPE до 2048.
сценарий применения
- Обучение искусственному интеллекту
MiniMind предоставляет полный набор кода и данных для новичков, чтобы изучить процесс обучения большой модели. - Настройка домена
Обучайте модели на частных данных, таких как медицинские вопросы и ответы или диалоги в службе поддержки. - Недорогое развертывание
Параметрическая модель 26M подходит для встраиваемых устройств, таких как "умные дома". - Учебная демонстрация
Преподаватели могут использовать его для демонстрации процесса обучения ИИ, а студенты - для практики.
QA
- Какое оборудование необходимо MiniMind?
Для обучения достаточно одной видеокарты NVIDIA 3090, процессор может работать с ней, но медленно. - Надежны ли 2 часа обучения?
Да, на основе теста с одной картой 3090 параметрическая модель 26M требует всего около 2 часов на обучение с нуля. - Есть ли он в продаже?
Да, проект лицензирован под лицензией Apache 2.0, которая разрешает свободное использование и модификацию. - Как увеличить длину контекста?
Настройте параметры RoPE или выполните тонкую настройку с помощью более длинных данных для поддержки до 2048.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...