Тонкая настройка

На основе возможностей DevPod мы предоставляем специализированные образы для тонкой настройки моделей, что упрощает процесс fine-tuning для пользователей.

Процесс создания задачи тонкой настройки в основном такой же, как у DevPod. Вы можете обратиться к процессу создания DevPod. Вот несколько отличий:

  1. На странице создания необходимо указать базовую модель для тонкой настройки, например: Qwen/Qwen3-8B.
  2. Если модель требует токен доступа, необходимо также заполнить токен Hugging Face (опционально).
  3. Введите идентификатор выбранного набора данных в поле Dataset, например: tatsu-lab/alpaca.

После выбора конфигурации ресурсов задачи, разверните pod и дождитесь, пока статус задачи изменится на "running". Нажмите Connect и выберите предпочтительный способ подключения:

  1. Jupyter Notebook: Браузерный интерфейс notebook (рекомендуется).
  2. Web Terminal: Браузерный терминал.
  3. SSH: Подключение через терминал локальной машины.

Примечание: Для использования SSH добавьте свой публичный SSH-ключ в настройках аккаунта. Система автоматически добавит ваш ключ в файл authorized_keys pod.

В настоящее время мы подготовили два специализированных образа инструментов, разработанных на основе Axolotl и Torchtune соответственно, для удобства пользователей при тонкой настройке моделей. Далее мы подробно рассмотрим процессы использования этих двух образов.

На основе Axolotl

Настройте окружение

Откройте Jupyter Notebook в браузере. Вы увидите три файла в рабочем каталоге:

  1. examples/: Примеры конфигураций и скриптов
  2. outputs/: Результаты обучения и выходные данные модели
  3. config.yaml: Параметры обучения для вашей модели Система генерирует начальный config.yaml на основе выбранной базовой модели и набора данных.

Просмотрите и измените конфигурацию

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

base_model: Qwen/Qwen3-32B
# Автоматическая загрузка checkpoint и финальной модели на HF
# hub_model_id: username/custom_model_name

plugins:
  - axolotl.integrations.cut_cross_entropy.CutCrossEntropyPlugin
strict: false

chat_template: qwen3
datasets:
  - path: mlabonne/FineTome-100k
    type: chat_template
    split: train[:20%]
    field_messages: conversations
    message_property_mappings:
      role: from
      content: value
val_set_size: 0.0
output_dir: ./outputs/out
dataset_prepared_path: last_run_prepared

sequence_len: 2048
sample_packing: true
eval_sample_packing: true
pad_to_sequence_len: true

load_in_4bit: true
adapter: qlora
lora_r: 16
lora_alpha: 32
lora_target_modules:
  - q_proj
  - k_proj
  - v_proj
  - o_proj
  - down_proj
  - up_proj
lora_mlp_kernel: true
lora_qkv_kernel: true
lora_o_kernel: true

wandb_project:
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:

gradient_accumulation_steps: 2
micro_batch_size: 1
num_epochs: 1
optimizer: adamw_torch_4bit
lr_scheduler: cosine
learning_rate: 0.0002

bf16: auto
tf32: true

gradient_checkpointing: offload
gradient_checkpointing_kwargs:
  use_reentrant: false
resume_from_checkpoint:
logging_steps: 1
flash_attention: true

warmup_steps: 10
evals_per_epoch: 4
saves_per_epoch: 1
weight_decay: 0.0
special_tokens:

Для дополнительных примеров конфигурации посетите репозиторий примеров Axolotl.

Запустите процесс тонкой настройки

Когда конфигурация готова, выполните следующие шаги:

  1. Запустите процесс обучения:
axolotl train config.yaml
  1. Отслеживайте прогресс обучения в терминале.

На основе Torchtune

Настройте окружение

Откройте Jupyter Notebook в браузере. Вы можете использовать tune ls для просмотра полного набора рецептов тонкой настройки, поддерживаемых torchtune.

RECIPE                                   CONFIG
full_finetune_single_device              llama2/7B_full_low_memory
                                         code_llama2/7B_full_low_memory
                                         llama3/8B_full_single_device
                                         llama3_1/8B_full_single_device
                                         llama3_2/1B_full_single_device
                                         llama3_2/3B_full_single_device
                                         mistral/7B_full_low_memory
                                         phi3/mini_full_low_memory
                                         phi4/14B_full_low_memory
                                         qwen2/7B_full_single_device
                                         qwen2/0.5B_full_single_device
                                         qwen2/1.5B_full_single_device
                                         qwen2_5/0.5B_full_single_device
                                         qwen2_5/1.5B_full_single_device
                                         qwen2_5/3B_full_single_device
                                         qwen2_5/7B_full_single_device
                                         llama3_2_vision/11B_full_single_device
full_finetune_distributed                llama2/7B_full
                                         llama2/13B_full
                                         llama3/8B_full
                                         llama3_1/8B_full
                                         llama3_2/1B_full
                                         llama3_2/3B_full
                                         llama3/70B_full
                                         llama3_1/70B_full
                                         llama3_3/70B_full
                                         llama3_3/70B_full_multinode
                                         mistral/7B_full
                                         gemma/2B_full
                                         gemma/7B_full
                                         gemma2/2B_full
                                         gemma2/9B_full
                                         gemma2/27B_full
                                         phi3/mini_full
                                         phi4/14B_full
                                         qwen2/7B_full
                                         qwen2/0.5B_full
                                         qwen2/1.5B_full
                                         qwen2_5/0.5B_full
                                         qwen2_5/1.5B_full
                                         qwen2_5/3B_full
                                         qwen2_5/7B_full
                                         llama3_2_vision/11B_full
                                         llama3_2_vision/90B_full
lora_finetune_single_device              llama2/7B_lora_single_device
                                         llama2/7B_qlora_single_device
                                         code_llama2/7B_lora_single_device
                                         code_llama2/7B_qlora_single_device
                                         llama3/8B_lora_single_device
                                         llama3_1/8B_lora_single_device
                                         llama3/8B_qlora_single_device
                                         llama3_2/1B_lora_single_device
                                         llama3_2/3B_lora_single_device
                                         llama3/8B_dora_single_device
                                         llama3/8B_qdora_single_device
                                         llama3_1/8B_qlora_single_device
                                         llama3_2/1B_qlora_single_device
                                         llama3_2/3B_qlora_single_device
                                         llama2/13B_qlora_single_device
                                         mistral/7B_lora_single_device
                                         mistral/7B_qlora_single_device
                                         gemma/2B_lora_single_device
                                         gemma/2B_qlora_single_device
                                         gemma/7B_lora_single_device
                                         gemma/7B_qlora_single_device
                                         gemma2/2B_lora_single_device
                                         gemma2/2B_qlora_single_device
                                         gemma2/9B_lora_single_device
                                         gemma2/9B_qlora_single_device
                                         gemma2/27B_lora_single_device
                                         gemma2/27B_qlora_single_device
                                         phi3/mini_lora_single_device
                                         phi3/mini_qlora_single_device
                                         phi4/14B_lora_single_device
                                         phi4/14B_qlora_single_device
                                         qwen2/7B_lora_single_device
                                         qwen2/0.5B_lora_single_device
                                         qwen2/1.5B_lora_single_device
                                         qwen2_5/0.5B_lora_single_device
                                         qwen2_5/1.5B_lora_single_device
                                         qwen2_5/3B_lora_single_device
                                         qwen2_5/7B_lora_single_device
                                         qwen2_5/14B_lora_single_device
                                         llama3_2_vision/11B_lora_single_device
                                         llama3_2_vision/11B_qlora_single_device
lora_dpo_single_device                   llama2/7B_lora_dpo_single_device
                                         llama3_1/8B_lora_dpo_single_device
lora_dpo_distributed                     llama2/7B_lora_dpo
                                         llama3_1/8B_lora_dpo
full_dpo_distributed                     llama3_1/8B_full_dpo
ppo_full_finetune_single_device          mistral/7B_full_ppo_low_memory
lora_finetune_distributed                llama2/7B_lora
                                         llama2/13B_lora
                                         llama2/70B_lora
                                         llama2/7B_qlora
                                         llama2/70B_qlora
                                         llama3/8B_dora
                                         llama3/70B_lora
                                         llama3_1/70B_lora
                                         llama3_3/70B_lora
                                         llama3_3/70B_qlora
                                         llama3/8B_lora
                                         llama3_1/8B_lora
                                         llama3_2/1B_lora
                                         llama3_2/3B_lora
                                         llama3_1/405B_qlora
                                         mistral/7B_lora
                                         gemma/2B_lora
                                         gemma/7B_lora
                                         gemma2/2B_lora
                                         gemma2/9B_lora
                                         gemma2/27B_lora
                                         phi3/mini_lora
                                         phi4/14B_lora
                                         qwen2/7B_lora
                                         qwen2/0.5B_lora
                                         qwen2/1.5B_lora
                                         qwen2_5/0.5B_lora
                                         qwen2_5/1.5B_lora
                                         qwen2_5/3B_lora
                                         qwen2_5/7B_lora
                                         qwen2_5/32B_lora
                                         qwen2_5/72B_lora
                                         llama3_2_vision/11B_lora
                                         llama3_2_vision/11B_qlora
                                         llama3_2_vision/90B_lora
                                         llama3_2_vision/90B_qlora
dev/lora_finetune_distributed_multi_dataset dev/11B_lora_multi_dataset
generate                                 generation
dev/generate_v2                          llama2/generation_v2
                                         llama3_2_vision/11B_generation_v2
dev/generate_v2_distributed              llama3/70B_generation_distributed
                                         llama3_1/70B_generation_distributed
                                         llama3_3/70B_generation_distributed
dev/early_exit_finetune_distributed      llama2/7B_full_early_exit
eleuther_eval                            eleuther_evaluation
                                         llama3_2_vision/11B_evaluation
                                         qwen2/evaluation
                                         qwen2_5/evaluation
                                         gemma/evaluation
                                         phi4/evaluation
                                         phi3/evaluation
                                         mistral/evaluation
                                         llama3_2/evaluation
                                         code_llama2/evaluation
quantize                                 quantization
qat_distributed                          llama2/7B_qat_full
                                         llama3/8B_qat_full
qat_lora_finetune_distributed            llama3/8B_qat_lora
                                         llama3_1/8B_qat_lora
                                         llama3_2/1B_qat_lora
                                         llama3_2/3B_qat_lora
knowledge_distillation_single_device     qwen2/1.5_to_0.5B_KD_lora_single_device
                                         llama3_2/8B_to_1B_KD_lora_single_device
knowledge_distillation_distributed       qwen2/1.5_to_0.5B_KD_lora_distributed
                                         llama3_2/8B_to_1B_KD_lora_distributed

Просмотрите и измените конфигурацию

  1. Скопируйте конфигурационный файл на локальное устройство. Например:
tune cp qwen2_5/3B_lora_single_device config.yaml
  1. Измените, просмотрите и настройте параметры в соответствии с вашим конкретным случаем использования.

Запустите процесс тонкой настройки

Когда конфигурация готова, выполните следующие шаги:

  1. Запустите процесс обучения:
tune run lora_finetune_single_device --config config.yaml
  1. Отслеживайте прогресс обучения в терминале.

Связанные документы

Для получения дополнительной информации о тонкой настройке с Axolotl, см.:

Для получения дополнительной информации о тонкой настройке с Torchtune, см.:

Для получения дополнительной информации о более свободных и гибких курсах по тонкой настройке, см.: