-
Notifications
You must be signed in to change notification settings - Fork 1
Home
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