Skip to content
github-actions[bot] edited this page Jan 9, 2025 · 9 revisions

Набор скриптов и конфигураций для самостоятельного обучения Больших Языковых Моделей (БЯМ) или же на английском Large Language Models (LLM).

Вдохновлён проектами: saiga, torchtune, nanoGPT.

Обладает следующими возможностями:

  • Единая конфигурация для подготовки датасетов, запуска обучения и инференса в формате YAML
    • Возможно указать отдельно токенизатор и модель
    • При необходимости можно описать конфигурацию модели from scratch
  • Гибкая система подготовки датасетов, позволяющая скомбинировать несколько датасетов, каждый из них индивидуально нарезать и преобразовать, после чего выполнить слияние и дедупликацию
    • Можно использовать датасеты типа instruct или chat произвольного формата, система преобразует их в OpenAI-подобный chat типа messages
    • Можно обучать function call модели с ролями function_call и function_response
  • Предусмотрены возможности обучения моделей с нуля (from scratch), full-train дообучения и LoRA/Peft дообучения
  • В отличие от иных реализаций использует классы из пакета transformers, однако, можно указать путь до любого другого класса описывающего модель и/или токенизатор и impruver будет использовать уже их
  • Поддерживает возможность распределённого обучения при помощи accelerate

Рекомендованные системные требования

  • Python 3.12
  • Python Virtual Environment
  • Nvidia GPU с 24Гб VRAM (на видеокартах с меньшим объёмом VRAM можно уменьшить размер per_device_*_batch_size и/или gradient_accumulation_steps)
  • Драйвера Nvidia и CUDA

Доступные конфигурации

В директории configs имеется набор готовых конфигураций, каждый из них оптимизирован для обучения модели на одной видеокарте, память которой равна 24Гб, хотя маленькие модели можно обучать и на меньших объёмах памяти просто уменьшая размер per_device_*_batch_size и/или gradient_accumulation_steps.

Модель Тип модели Конфигурации
ruGPT3.5-13B Saiga 2 lora
ruGPT3.5-13B function call lora
nanoGPT (обучение с нуля) Alpaca full-train
rugpt3large Saiga 2 full-train, lora
rugpt3large function call full-train, lora
rugpt3medium Saiga 2 full-train
rugpt3medium function call full-train
rugpt3small Saiga 2 full-train
rugpt3small function call full-train
zephyr-7b-beta zephyr-python-ru analog lora

Полный список рецептов обучения и конфигураций можно посмотреть выполнив:

impruver ls

Вы можете скопировать конфигурацию локально:

impruver cp ruGPT-3.5/13B_lora_saiga2 ./ruGPT-3.5_13B_lora_saiga2.yaml