X-R1: недорогое обучение моделей 0,5B на распространенных устройствах

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

X-R1 - это фреймворк для обучения с подкреплением, открытый на GitHub командой dhcode-cpp, цель которого - предоставить разработчикам недорогой и эффективный инструмент для обучения моделей на основе сквозного обучения с подкреплением. Проект поддерживается DeepSeek-R1 Вдохновленный X-R1 и open-r1, X-R1 фокусируется на создании обучающей среды, с которой легко начать работу и которая не требует больших ресурсов. Основной продукт X-R1 - R1-Zero, модель с ковариацией 0,5B, которая, как утверждается, может эффективно обучаться на обычном оборудовании. Она поддерживает несколько базовых моделей (0,5B, 1,5B, 3B) и улучшает вывод модели и соответствие формату с помощью обучения с подкреплением. Проект разработан на C++ и сочетает в себе vLLM Системы выводов и GRPO Алгоритмы для математических рассуждений, обработки китайских задач и других сценариев. Независимо от того, являетесь ли вы индивидуальным разработчиком или исследователем, X-R1 представляет собой вариант с открытым исходным кодом, который стоит попробовать.

X-R1:在普通设备中低成本训练0.5B模型

 

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

  • Недорогое обучение моделей: Поддержка обучения моделей R1-Zero с параметрами 0.5B на обычном оборудовании (например, 4 графических процессора 3090).
  • Оптимизация обучения: Повышение способности к выводу и точности формата вывода моделей с помощью сквозного обучения с подкреплением (RL).
  • Поддержка нескольких моделейСовместим с 0,5B, 1,5B, 3B и другими базовыми моделями, гибко адаптируется к различным требованиям задачи.
  • Выборка с ускорением на GPU: Интеграция vLLM в качестве онлайнового механизма вывода для быстрой выборки данных GRPO.
  • Китайское математическое мышление: Поддерживает задачи математического мышления в китайской языковой среде, генерируя четкие ответы.
  • Оценка бенчмаркинга: Предоставляет скрипты benchmark.py для оценки точности и возможностей вывода формата модели.
  • Конфигурация с открытым исходным кодом: Предоставьте подробный конфигурационный файл (например, zero3.yaml) для заданных пользователем параметров обучения.

 

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

X-R1 - это проект с открытым исходным кодом, основанный на GitHub. Для его установки и использования пользователям необходимы основы программирования и аппаратное окружение. Ниже представлено подробное руководство по установке и использованию, которое поможет вам быстро начать работу.

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

  1. Подготовка к защите окружающей среды
    • требования к оборудованию: Не менее 1 графического процессора NVIDIA (например, 3090), для оптимальной производительности рекомендуется 4; процессор поддерживает набор инструкций AVX/AVX2; не менее 16 ГБ оперативной памяти.
    • операционная система: Linux (например, Ubuntu 20.04+), Windows (требуется поддержка WSL2) или macOS.
    • Зависимые инструменты: Установите Git, Python 3.8+, CUDA Toolkit (соответствующий GPU, например, 11.8), компилятор C++ (например, g++).
      sudo apt update
      sudo apt install git python3 python3-pip build-essential
      
    • Драйвер графического процессора: Убедитесь, что драйвер NVIDIA установлен и соответствует версии CUDA, запустив программу nvidia-smi Проверьте.
  2. проект клонирования
    Выполните следующую команду в терминале, чтобы загрузить репозиторий X-R1 локально:

    git clone https://github.com/dhcode-cpp/X-R1.git
    cd X-R1
    
  3. Установка зависимостей
    • Установите зависимости Python:
      pip install -r requirements.txt
      
    • Установите Accelerate (для распределенного обучения):
      pip install accelerate
      
  4. Конфигурационная среда
    • Отредактируйте профиль в соответствии с количеством графических процессоров (например. recipes/zero3.yaml), установить num_processes(например, 3, что означает, что 3 из 4 графических процессоров используются для обучения и 1 для вычисления vLLM).
    • Пример конфигурации:
      num_processes: 3
      per_device_train_batch_size: 1
      num_generations: 3
      
  5. Проверка установки
    Выполните следующую команду, чтобы проверить, правильно ли настроена среда:

    accelerate config
    

    Следуйте подсказкам, чтобы выбрать оборудование и параметры распространения.

Основные функции

1. Обучение модели

  • обучение грунтовке: Обучите модель R1-Zero с помощью алгоритма GRPO. Выполните следующую команду:
    ACCELERATE_LOG_LEVEL=info accelerate launch \
    --config_file recipes/zero3.yaml \
    --num_processes=3 \
    src/x_r1/grpo.py \
    --config recipes/X_R1_zero_0dot5B_config.yaml \
    > ./output/x_r1_0dot5B_sampling.log 2>&1
    
  • Функциональное описание: Эта команда запускает обучение модели 0.5B, и журналы сохраняются в файле output Папка. В процессе обучения будет использоваться обучение с подкреплением, чтобы оптимизировать способность модели к рассуждениям.
  • предостережение: Убедитесь, что размер глобальной партии (num_processes * per_device_train_batch_size) может быть num_generations Интегрировать, иначе будет сообщено об ошибке.

2. китайские математические рассуждения

  • Настройка заданий по математике: Используйте файл конфигурации, предназначенный для китайского языка:
    ACCELERATE_LOG_LEVEL=info accelerate launch \
    --config_file recipes/zero3.yaml \
    --num_processes=3 \
    src/x_r1/grpo.py \
    --config recipes/examples/mathcn_zero_3B_config.yaml \
    > ./output/mathcn_3B_sampling.log 2>&1
    
  • рабочий процесс::
    1. Подготовьте набор данных по китайским математическим задачам (например, в формате JSON).
    2. Измените путь к набору данных в файле конфигурации.
    3. Выполните приведенную выше команду, и модель сгенерирует процесс вывода и выведет его в журнал.
  • Основные функции: Поддержка генерации подробных шагов ответа на китайском языке, подходящих для образовательных сценариев.

3. бенчмаркинг

  • Оперативная оценка: Использование benchmark.py Проверьте работоспособность модели:
    CUDA_VISIBLE_DEVICES=0,1 python ./src/x_r1/benchmark.py \
    --model_name='xiaodongguaAIGC/X-R1-0.5B' \
    --dataset_name='HuggingFaceH4/MATH-500' \
    --output_name='./output/result_benchmark_math500' \
    --max_output_tokens=1024 \
    --num_gpus=2
    
  • Интерпретация результатов: Сценарий выводит метрику точности и метрику формата и сохраняет результаты в виде JSON-файла.
  • Сценарии использования: Проверка эффективности модели в математических задачах и оптимизация параметров обучения.

навык работы

  • Просмотр журнала: После завершения обучения или тестирования проверьте файл журнала (например, файл x_r1_0dot5B_sampling.log), чтобы отладить проблему.
  • Оптимизация работы нескольких графических процессоров: Если доступно больше графических процессоров, вы можете настроить num_processes ответить пением num_gpus параметры для повышения эффективности параллельной работы.
  • обнаружение ошибок: Если возникла ошибка размера партии, отрегулируйте per_device_train_batch_size ответить пением num_generations Сделайте его подходящим.

Рекомендации по использованию

  • Для начального использования рекомендуется начать с модели небольшого масштаба (например, 0,5B), а затем, когда вы освоитесь с процессом, перейти к модели 3B.
  • Регулярно проверяйте свой репозиторий GitHub на наличие обновлений, новых функций и исправлений.
  • За поддержкой обращайтесь к разработчику по адресу dhcode95@gmail.com.

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

© заявление об авторских правах

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

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

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