Оценка тренера Трансформеров занимает вечность ⇐ Python
Оценка тренера Трансформеров занимает вечность
Я пытаюсь создать личный пилотный код на основе этого блога с набором данных C#, который имеет около 40 тысяч строк файлов (всего около 7 миллиардов строк кода) с той же структурой, что и smangrul/hug_stack, и это репо для кода. Модель, которую я использую, — Codellama 7B, и параметры для поезда такие же, как и в run_peft.sh на машине с NixOS с двумя NVIDIA RTX A5000 24 ГБ, поэтому в необработанных данных все должно работать нормально, но когда придет время для оценки , это занимает буквально много времени и практически никогда не заканчивается. Когда я попытался запустить его всего на 100 строках, все сработало «отлично». Первая итерация заняла около 1 минуты, а оценка — около 20. Есть ли способ ускорить процесс оценки или есть что-то еще, что я мог бы сделать, чтобы иметь возможность обучать модель (другой подход, другое репо, лучшее ускорение на нескольких графических процессорах и т. д.)?
мой файл конфигурации:
WANDB_PROJECT=personal-copilot python train_acc.py \ --имя_модели_или_путь "codellama/CodeLlama-7b-hf" \ --dataset_name "rreit/c-sharp-dataset" \ --split "поезд" \ --max_seq_len 2048 \ --max_steps 2000 \ --save_steps 50 \ --eval_steps 100 \ --logging_steps 5 \ --log_level "информация" \ --logging_strategy "шаги" \ --evaluation_strategy "шаги" \ --save_strategy "шаги" \ --push_to_hub \ --hub_private_repo Правда \ --hub_strategy "каждое_сохранение" \ --bf16 Правда \ --learning_rate 5e-4 \ --lr_scheduler_type "косинус" \ --weight_decay 0.1 \ --warmup_ratio 0.1 \ --max_grad_norm 1.0 \ --output_dir "hug_stack-StaproCoder" \ --per_device_train_batch_size 8 \ --per_device_eval_batch_size 8 \ --gradient_accumulation_steps 4 \ --gradient_checkpointing Истина \ --use_reentrant Истина \ --dataset_text_field "текст" \ --test_size 0,1 \ --fim_rate 0,5 \ --fim_spm_rate 0,5 \ --use_peft_lora Правда \ --lora_r 32 \ --lora_alpha 64 \ --lora_dropout 0.1 \ --lora_target_modules "полностью линейный" \ --use_4bit_quantization True \ --use_nested_quant True \ --bnb_4bit_compute_dtype "bfloat16" \ --use_flash_attn Верно Наверное, это глупый вопрос, потому что обучение LLM должно занять много времени, но когда я попробовал его с полным набором данных, на выполнение 100 итераций ушло около 1 часа, затем более 2 часов на оценку, и вот тогда на сервере истек срок выполнения сценария.
Я пытаюсь создать личный пилотный код на основе этого блога с набором данных C#, который имеет около 40 тысяч строк файлов (всего около 7 миллиардов строк кода) с той же структурой, что и smangrul/hug_stack, и это репо для кода. Модель, которую я использую, — Codellama 7B, и параметры для поезда такие же, как и в run_peft.sh на машине с NixOS с двумя NVIDIA RTX A5000 24 ГБ, поэтому в необработанных данных все должно работать нормально, но когда придет время для оценки , это занимает буквально много времени и практически никогда не заканчивается. Когда я попытался запустить его всего на 100 строках, все сработало «отлично». Первая итерация заняла около 1 минуты, а оценка — около 20. Есть ли способ ускорить процесс оценки или есть что-то еще, что я мог бы сделать, чтобы иметь возможность обучать модель (другой подход, другое репо, лучшее ускорение на нескольких графических процессорах и т. д.)?
мой файл конфигурации:
WANDB_PROJECT=personal-copilot python train_acc.py \ --имя_модели_или_путь "codellama/CodeLlama-7b-hf" \ --dataset_name "rreit/c-sharp-dataset" \ --split "поезд" \ --max_seq_len 2048 \ --max_steps 2000 \ --save_steps 50 \ --eval_steps 100 \ --logging_steps 5 \ --log_level "информация" \ --logging_strategy "шаги" \ --evaluation_strategy "шаги" \ --save_strategy "шаги" \ --push_to_hub \ --hub_private_repo Правда \ --hub_strategy "каждое_сохранение" \ --bf16 Правда \ --learning_rate 5e-4 \ --lr_scheduler_type "косинус" \ --weight_decay 0.1 \ --warmup_ratio 0.1 \ --max_grad_norm 1.0 \ --output_dir "hug_stack-StaproCoder" \ --per_device_train_batch_size 8 \ --per_device_eval_batch_size 8 \ --gradient_accumulation_steps 4 \ --gradient_checkpointing Истина \ --use_reentrant Истина \ --dataset_text_field "текст" \ --test_size 0,1 \ --fim_rate 0,5 \ --fim_spm_rate 0,5 \ --use_peft_lora Правда \ --lora_r 32 \ --lora_alpha 64 \ --lora_dropout 0.1 \ --lora_target_modules "полностью линейный" \ --use_4bit_quantization True \ --use_nested_quant True \ --bnb_4bit_compute_dtype "bfloat16" \ --use_flash_attn Верно Наверное, это глупый вопрос, потому что обучение LLM должно занять много времени, но когда я попробовал его с полным набором данных, на выполнение 100 итераций ушло около 1 часа, затем более 2 часов на оценку, и вот тогда на сервере истек срок выполнения сценария.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как отключить обратный вызов Нептуна при запуске тренера трансформеров?
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как отключить обратный вызов Нептуна при запуске тренера трансформеров?
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-