MiniMind: 2 часа обучения с нуля 26M параметрам GPT с открытым исходным кодом

Общее введение

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

MiniMind:2小时从零训练26M参数GPT的开源工具

 

Список функций

  • Поддержка обучения 26-мегапараметрических моделей GPT с нуля менее чем за 2 часа на одной видеокарте 3090.
  • Предоставляет полнопоточный код для предварительного обучения, тонкой настройки инструкций, LoRA, DPO и дистилляции моделей.
  • Включает визуальное мультимодальное расширение MiniMind-V для обработки изображений и текста.
  • Поддерживает обучение с одной или несколькими картами, совместим с визуализацией DeepSpeed и wandb.
  • Предоставьте сервер протокола OpenAI API для легкого доступа к сторонним чат-интерфейсам.
  • Высококачественные наборы данных и весовые коэффициенты моделей с открытым исходным кодом для прямой загрузки или вторичной разработки.
  • Поддержка обучения токенизаторов и пользовательских списков слов для гибкой настройки структуры модели.

 

Использование помощи

Использование MiniMind делится на три этапа: установка, обучение и обоснование. Ниже приведено подробное руководство, которое поможет пользователям быстро начать работу.

Процесс установки

  1. Подготовка к защите окружающей среды
    • Требуется Python 3.10 или более поздняя версия.
    • Проверьте, что видеокарта поддерживает CUDA, выполнив следующий код:
      import torch
      print(torch.cuda.is_available())
      

      Если возврат TrueВ противном случае вам придется установить соответствующую версию PyTorch.

    • Установите Git для клонирования кода.
  2. проект клонирования
    Введите его в терминал:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
  1. Установка зависимостей
    Ускоренная установка с помощью зеркал Tsinghua:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

Если у вас возникнут проблемы, вы можете установить его вручную torch возможно flash_attn.

  1. Скачать набор данных
  • Загрузите набор данных на GitHub README или https://www.modelscope.cn/datasets/gongjy/minimind_dataset/files.
  • создать ./dataset распакуйте файлы в этот каталог.
  • Рекомендуемые загрузки pretrain_hq.jsonl(1,6 Гб) и sft_mini_512.jsonl(1,2 ГБ).

Модели обучения

  1. предтренировочный курс
  • Запустите сценарий, чтобы начать предварительное обучение:
    python train_pretrain.py
    
  • Использование по умолчанию pretrain_hq.jsonlВыходные веса сохраняются в виде pretrain_*.pth.
  • Ускорение работы с несколькими картами:
    torchrun --nproc_per_node 2 train_pretrain.py
    
  1. тонкая настройка команд
  • Запустите скрипт тонкой настройки:
    python train_full_sft.py
    
  • Использование по умолчанию sft_mini_512.jsonlВыходные веса сохраняются в виде full_sft_*.pth.
  • То же самое касается поддержки нескольких карт памяти.
  1. Тонкая настройка LoRA
  • Подготовьте данные о домене (например. lora_medical.jsonl), бегите:
    python train_lora.py
    
  • Выходные веса сохраняются в виде lora_xxx_*.pth.
  1. DPO Расширенное обучение
  • пользоваться dpo.jsonl Данные, бег:
    python train_dpo.py
    
  • Выходные веса сохраняются в виде rlhf_*.pth.
  1. Обучение визуализации
  • Добавить параметры --use_wandbВ ролях:
    python train_pretrain.py --use_wandb
    
  • Ознакомьтесь с кривыми обучения на официальном сайте wandb.

Рассуждения с помощью моделей

  1. рассуждения из командной строки
  • Загрузите модель весов (например, MiniMind2):
    git clone https://huggingface.co/jingyaogong/MiniMind2
    
  • Бегущие рассуждения:
    python eval_model.py --load 1 --model_mode 2
    
  • Описание параметра:--load 1 В формате трансформаторов--model_mode 2 С помощью MiniMind2.
  1. веб-чат
  • Установите Streamlit:
    pip install streamlit
    
  • Интерфейс запуска:
    cd scripts
    streamlit run web_demo.py
    
  • Доступ в браузере localhost:8501Вы можете вести диалог.
  1. Услуги 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.

 

сценарий применения

  1. Обучение искусственному интеллекту
    MiniMind предоставляет полный набор кода и данных для новичков, чтобы изучить процесс обучения большой модели.
  2. Настройка домена
    Обучайте модели на частных данных, таких как медицинские вопросы и ответы или диалоги в службе поддержки.
  3. Недорогое развертывание
    Параметрическая модель 26M подходит для встраиваемых устройств, таких как "умные дома".
  4. Учебная демонстрация
    Преподаватели могут использовать его для демонстрации процесса обучения ИИ, а студенты - для практики.

 

QA

  1. Какое оборудование необходимо MiniMind?
    Для обучения достаточно одной видеокарты NVIDIA 3090, процессор может работать с ней, но медленно.
  2. Надежны ли 2 часа обучения?
    Да, на основе теста с одной картой 3090 параметрическая модель 26M требует всего около 2 часов на обучение с нуля.
  3. Есть ли он в продаже?
    Да, проект лицензирован под лицензией Apache 2.0, которая разрешает свободное использование и модификацию.
  4. Как увеличить длину контекста?
    Настройте параметры RoPE или выполните тонкую настройку с помощью более длинных данных для поддержки до 2048.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...