Обучаем LoRA адаптер для MoE LLM модели на наших данных. Сохраняем полученный адаптер в output_dir. Для запуска скрипта представлено описание минимального набора аргументов. Описание всех аргументов можно найти в файле train.py.
- Установите зависимости в отдельную виртуальную среду:
python3 -m venv train_moe_env
. ./train_moe_env/bin/activate
pip install -r train_requirements.txt- Запуск обучения:
python train.py
--data_path "train_data.json"
--output_dir ./resultsДля 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.py.
- Установите зависимости в отдельную виртуальную среду:
python3 -m venv inference_moe_env
. ./inference_moe_env/bin/activate
pip install -r inf_requirements.txt- Запуск inference:
python inference.py \
--model_name path_to_merged_model \ # Путь до смерженной модели
--tokenizer_path path_to_tokenizer \ # Путь до токенизатора
--data_path test_data.json # Путь до данных на которых мы хотим получить предсказания реплики