Skip to content

ai-forever/moe-lora-tuning

Repository files navigation

LoRA tuning для Mix-of-Experts моделей

Обучение

Обучаем LoRA адаптер для MoE LLM модели на наших данных. Сохраняем полученный адаптер в output_dir. Для запуска скрипта представлено описание минимального набора аргументов. Описание всех аргументов можно найти в файле train.py.

  1. Установите зависимости в отдельную виртуальную среду:
python3 -m venv train_moe_env
. ./train_moe_env/bin/activate
pip install -r train_requirements.txt
  1. Запуск обучения:
python train.py 
  --data_path "train_data.json" 
  --output_dir ./results

Объединение LoRA адаптера с LLM

Для inference модели необходимо предварительно объединить основную LLM с обученным LoRA адаптером. Объединённая модель записывается внутрь папки с адаптером в новую директорию merged_model.

Скрипт следует запускать в той же виртуальной среде, что и обучение. Для запуска скрипта представлено описание минимального набора аргументов. Описание всех аргументов можно найти в файле merge_lora.py.

python merge_lora.py \
  --base path_to_base_model \ # Название базовой модели или путь до базовой модели
  --adapter path_to_lora_adapter \ # Путь до чекпоинта LoRA адаптера, полученного на шаге обучения
  --prompt "Докажи теорему о неподвижной точке" \ # Текст который пойдет в качестве входного в уже смерженную модель для проверки правильности мержа
  --trust-remote-code \ # Флаг необходимый для корректной загрузки hf-checkpoint

Запуск inference

В результате запуска модели по каждому контексту (диалогу) будет получена ответная реплика модели на консоли.

Для запуска скрипта представлено описание минимального набора аргументов. Описание всех аргументов можно найти в файле inference.py.

  1. Установите зависимости в отдельную виртуальную среду:
python3 -m venv inference_moe_env
. ./inference_moe_env/bin/activate
pip install -r inf_requirements.txt
  1. Запуск inference:
python inference.py \
  --model_name path_to_merged_model \ # Путь до смерженной модели
  --tokenizer_path path_to_tokenizer \ # Путь до токенизатора 
  --data_path test_data.json # Путь до данных на которых мы хотим получить предсказания реплики

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages