This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# 2 * 60GiB
|
||||
# This is just a demo for DiffusionGemma training.
|
||||
# Notes:
|
||||
# 1. Currently only --per_device_train_batch_size 1 is supported,
|
||||
# and the response length of a single sample must be less than config.canvas_length.
|
||||
# 2. --gradient_checkpointing false must be set. DiffusionGemma's encoder passes
|
||||
# KV to the decoder via DynamicCache, and gradient checkpointing causes errors
|
||||
# when recomputing the forward pass during backward.
|
||||
# 3. For customizing the specific training loss, refer to:
|
||||
# https://github.com/modelscope/ms-swift/blob/104048e374b954b4df6961f83f77392031f38fb0/swift/template/templates/gemma.py#L386-L428
|
||||
CUDA_VISIBLE_DEVICES=0,1 \
|
||||
NPROC_PER_NODE=2 \
|
||||
swift sft \
|
||||
--model google/diffusiongemma-26B-A4B-it \
|
||||
--dataset 'sapientinc/sudoku-extreme-1k' \
|
||||
--load_from_cache_file true \
|
||||
--split_dataset_ratio 0.01 \
|
||||
--tuner_type lora \
|
||||
--torch_dtype bfloat16 \
|
||||
--per_device_train_batch_size 1 \
|
||||
--per_device_eval_batch_size 1 \
|
||||
--learning_rate 1e-4 \
|
||||
--num_train_epochs 3 \
|
||||
--loss_scale ignore_empty_think \
|
||||
--gradient_checkpointing false \
|
||||
--lora_rank 8 \
|
||||
--lora_alpha 32 \
|
||||
--target_modules all-linear \
|
||||
--freeze_vit true \
|
||||
--freeze_aligner true \
|
||||
--gradient_accumulation_steps 4 \
|
||||
--eval_steps 100 \
|
||||
--save_steps 100 \
|
||||
--save_total_limit 2 \
|
||||
--logging_steps 5 \
|
||||
--max_length 4096 \
|
||||
--output_dir output \
|
||||
--warmup_ratio 0.05 \
|
||||
--dataset_num_proc 4 \
|
||||
--deepspeed zero2 \
|
||||
--dataloader_num_workers 4
|
||||
|
||||
CUDA_VISIBLE_DEVICES=0 \
|
||||
swift infer \
|
||||
--adapters output/vx-xxx/checkpoint-xxx \
|
||||
--load_data_args true \
|
||||
--enable_thinking false
|
||||
@@ -0,0 +1,49 @@
|
||||
# 4 * 65GiB
|
||||
# Due to the use of group_by_length, the data is not sufficiently shuffled,
|
||||
# which may cause fluctuations in the loss curve. Please adjust the parameters accordingly.
|
||||
PYTORCH_CUDA_ALLOC_CONF='expandable_segments:True' \
|
||||
NPROC_PER_NODE=4 \
|
||||
CUDA_VISIBLE_DEVICES=0,1,2,3 \
|
||||
megatron sft \
|
||||
--model google/gemma-4-12B-it \
|
||||
--save_safetensors true \
|
||||
--dataset 'AI-ModelScope/LaTeX_OCR:human_handwrite#2000' \
|
||||
--load_from_cache_file true \
|
||||
--add_non_thinking_prefix true \
|
||||
--loss_scale ignore_empty_think \
|
||||
--split_dataset_ratio 0.01 \
|
||||
--tuner_type full \
|
||||
--tensor_model_parallel_size 4 \
|
||||
--micro_batch_size 16 \
|
||||
--global_batch_size 16 \
|
||||
--recompute_granularity full \
|
||||
--recompute_method uniform \
|
||||
--recompute_num_layers 1 \
|
||||
--num_train_epochs 1 \
|
||||
--finetune true \
|
||||
--freeze_llm false \
|
||||
--freeze_vit true \
|
||||
--freeze_aligner true \
|
||||
--cross_entropy_loss_fusion true \
|
||||
--lr 1e-5 \
|
||||
--lr_warmup_fraction 0.05 \
|
||||
--min_lr 1e-6 \
|
||||
--output_dir megatron_output/gemma-4-12B-it \
|
||||
--eval_steps 500 \
|
||||
--save_steps 500 \
|
||||
--max_length 4096 \
|
||||
--dataloader_num_workers 8 \
|
||||
--dataset_num_proc 8 \
|
||||
--no_save_optim true \
|
||||
--no_save_rng true \
|
||||
--sequence_parallel true \
|
||||
--attention_backend unfused \
|
||||
--group_by_length true \
|
||||
--padding_free false
|
||||
|
||||
# CUDA_VISIBLE_DEVICES=0 swift infer \
|
||||
# --model megatron_output/gemma-4-12B-it/vx-xxx/checkpoint-xxx \
|
||||
# --stream true \
|
||||
# --enable_thinking false \
|
||||
# --load_data_args true \
|
||||
# --max_new_tokens 2048
|
||||
@@ -0,0 +1,60 @@
|
||||
# 8 * 80GiB
|
||||
# Due to the use of group_by_length, the data is not sufficiently shuffled,
|
||||
# which may cause fluctuations in the loss curve. Please adjust the parameters accordingly.
|
||||
PYTORCH_CUDA_ALLOC_CONF='expandable_segments:True' \
|
||||
NPROC_PER_NODE=8 \
|
||||
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
|
||||
megatron sft \
|
||||
--model google/gemma-4-26B-A4B-it \
|
||||
--save_safetensors true \
|
||||
--dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \
|
||||
'AI-ModelScope/alpaca-gpt4-data-en#500' \
|
||||
'swift/self-cognition#500' \
|
||||
'AI-ModelScope/LaTeX_OCR:human_handwrite#2000' \
|
||||
--load_from_cache_file true \
|
||||
--add_non_thinking_prefix true \
|
||||
--loss_scale ignore_empty_think \
|
||||
--split_dataset_ratio 0.01 \
|
||||
--tuner_type full \
|
||||
--tensor_model_parallel_size 2 \
|
||||
--expert_model_parallel_size 4 \
|
||||
--pipeline_model_parallel_size 2 \
|
||||
--moe_permute_fusion true \
|
||||
--moe_grouped_gemm true \
|
||||
--moe_shared_expert_overlap true \
|
||||
--moe_aux_loss_coeff 1e-6 \
|
||||
--micro_batch_size 8 \
|
||||
--global_batch_size 16 \
|
||||
--recompute_granularity full \
|
||||
--recompute_method uniform \
|
||||
--recompute_num_layers 1 \
|
||||
--num_train_epochs 1 \
|
||||
--finetune true \
|
||||
--freeze_llm false \
|
||||
--freeze_vit true \
|
||||
--freeze_aligner true \
|
||||
--cross_entropy_loss_fusion true \
|
||||
--lr 1e-5 \
|
||||
--lr_warmup_fraction 0.05 \
|
||||
--min_lr 1e-6 \
|
||||
--output_dir megatron_output/gemma-4-26B-A4B-it \
|
||||
--eval_steps 500 \
|
||||
--save_steps 500 \
|
||||
--max_length 4096 \
|
||||
--dataloader_num_workers 8 \
|
||||
--dataset_num_proc 8 \
|
||||
--no_save_optim true \
|
||||
--no_save_rng true \
|
||||
--sequence_parallel true \
|
||||
--attention_backend unfused \
|
||||
--group_by_length true \
|
||||
--padding_free false \
|
||||
--model_author swift \
|
||||
--model_name swift-robot
|
||||
|
||||
# CUDA_VISIBLE_DEVICES=0 swift infer \
|
||||
# --model megatron_output/gemma-4-26B-A4B-it/vx-xxx/checkpoint-xxx \
|
||||
# --stream true \
|
||||
# --enable_thinking false \
|
||||
# --load_data_args true \
|
||||
# --max_new_tokens 2048
|
||||
@@ -0,0 +1,35 @@
|
||||
NPROC_PER_NODE=2 \
|
||||
CUDA_VISIBLE_DEVICES=0,1 \
|
||||
swift sft \
|
||||
--model google/gemma-4-E2B-it \
|
||||
--dataset 'AI-ModelScope/LaTeX_OCR:human_handwrite#2000' \
|
||||
--load_from_cache_file true \
|
||||
--split_dataset_ratio 0.01 \
|
||||
--tuner_type lora \
|
||||
--torch_dtype bfloat16 \
|
||||
--num_train_epochs 1 \
|
||||
--per_device_train_batch_size 1 \
|
||||
--per_device_eval_batch_size 1 \
|
||||
--learning_rate 1e-4 \
|
||||
--lora_rank 8 \
|
||||
--lora_alpha 32 \
|
||||
--target_modules all-linear \
|
||||
--freeze_vit true \
|
||||
--freeze_aligner true \
|
||||
--gradient_accumulation_steps 16 \
|
||||
--eval_steps 50 \
|
||||
--save_steps 50 \
|
||||
--save_total_limit 2 \
|
||||
--logging_steps 5 \
|
||||
--max_length 4096 \
|
||||
--output_dir output \
|
||||
--warmup_ratio 0.05 \
|
||||
--deepspeed zero2 \
|
||||
--dataset_num_proc 4 \
|
||||
--dataloader_num_workers 4
|
||||
|
||||
# CUDA_VISIBLE_DEVICES=0 \
|
||||
# swift infer \
|
||||
# --adapters output/vx-xxx/checkpoint-xxx \
|
||||
# --stream true \
|
||||
# --load_data_args true
|
||||
Reference in New Issue
Block a user