SWIFT 后训练 Deepseek-VL2 参数
flyfish
[INFO:swift] args: TrainArguments(
_n_gpu=-1,
acc_steps=1,
acc_strategy=token,
accelerator_config={'dispatch_batches': False},
adafactor=False,
adalora_beta1=0.85,
adalora_beta2=0.85,
adalora_deltaT=1,
adalora_init_r=12,
adalora_orth_reg_weight=0.5,
adalora_target_r=8,
adalora_tfinal=0,
adalora_tinit=0,
adam_beta1=0.9,
adam_beta2=0.999,
adam_epsilon=1e-08,
adapter_act=gelu,
adapter_length=128,
adapters=[],
add_version=True,
attn_impl=None,
auto_find_batch_size=False,
average_tokens_across_devices=False,
batch_eval_metrics=False,
bf16=True,
bf16_full_eval=False,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_quant_storage=None,
bnb_4bit_quant_type=nf4,
bnb_4bit_use_double_quant=True,
boft_block_num=0,
boft_block_size=4,
boft_dropout=0.0,
boft_n_butterfly_factor=1,
check_model=True,
ckpt_dir=None,
columns={},
create_checkpoint_symlink=False,
custom_dataset_info=[],
custom_register_path=[],
data_seed=42,
dataloader_drop_last=False,
dataloader_num_workers=0,
dataloader_persistent_workers=False,
dataloader_pin_memory=True,
dataloader_prefetch_factor=None,
dataset=['coco-en-mini'],
dataset_num_proc=1,
ddp_backend=None,
ddp_broadcast_buffers=None,
ddp_bucket_cap_mb=None,
ddp_find_unused_parameters=None,
ddp_timeout=1800,
debug=None,
deepspeed=None,
device_map=None,
disable_tqdm=None,
dispatch_batches=None,
do_eval=False,
do_predict=False,
do_train=False,
download_mode=reuse_dataset_if_exists,
enable_cache=False,
eval_accumulation_steps=None,
eval_delay=0,
eval_do_concat_batches=True,
eval_on_start=False,
eval_steps=500,
eval_strategy=steps,
eval_use_gather_object=False,
evaluation_strategy=steps,
fourier_n_frequency=2000,
fourier_scaling=300.0,
fp16=False,
fp16_backend=auto,
fp16_full_eval=False,
fp16_opt_level=O1,
freeze_aligner=True,
freeze_llm=False,
freeze_parameters=['vision', 'projector'],
freeze_parameters_ratio=0.0,
freeze_vit=True,
fsdp=,
fsdp_config=None,
fsdp_min_num_params=0,
fsdp_num=1,
fsdp_transformer_layer_cls_to_wrap=None,
full_determinism=False,
galore_cos_threshold=0.4,
galore_gamma_proj=2,
galore_optim_per_parameter=False,
galore_proj_bits=4,
galore_proj_group_size=256,
galore_proj_quant=False,
galore_proj_type=std,
galore_quantization=False,
galore_queue_size=5,
galore_rank=128,
galore_scale=1.0,
galore_target_modules=None,
galore_update_proj_gap=50,
galore_with_embedding=False,
generation_config=None,
generation_max_length=None,
generation_num_beams=None,
gradient_accumulation_steps=1,
gradient_checkpointing=True,
gradient_checkpointing_kwargs=None,
greater_is_better=False,
group_by_length=False,
half_precision_backend=auto,
hqq_axis=None,
hub_always_push=False,
hub_model_id=None,
hub_private_repo=None,
hub_strategy=every_save,
hub_token=<HUB_TOKEN>,
ignore_args_error=False,
ignore_data_skip=False,
include_for_metrics=[],
include_inputs_for_metrics=False,
include_num_input_tokens_seen=False,
include_tokens_per_second=False,
init_weights=True,
jit_mode_eval=False,
label_names=None,
label_smoothing_factor=0.0,
lazy_tokenize=True,
learning_rate=0.0001,
length_column_name=length,
lisa_activated_layers=0,
lisa_step_interval=20,
llamapro_num_groups=None,
llamapro_num_new_blocks=4,
load_args=True,
load_best_model_at_end=False,
load_data_args=False,
load_dataset_config=None,
local_rank=-1,
local_repo_path=None,
log_level=passive,
log_level_replica=warning,
log_on_each_node=True,
logging_dir=/home/sss/ms-swift/output/deepseek-vl2-tiny/v0-20250210-160420/runs,
logging_first_step=True,
logging_nan_inf_filter=True,
logging_steps=5,
logging_strategy=steps,
logprobs=False,
lora_alpha=32,
lora_bias=none,
lora_dropout=0.05,
lora_dtype=None,
lora_ga_batch_size=2,
lora_ga_direction=ArB2r,
lora_ga_iters=2,
lora_ga_max_length=1024,
lora_ga_scale=stable,
lora_ga_stable_gamma=16,
lora_modules=[],
lora_rank=8,
lorap_lr_ratio=None,
loss_scale=default,
loss_type=None,
lr_scheduler_kwargs=None,
lr_scheduler_type=cosine,
max_grad_norm=1.0,
max_length=None,
max_new_tokens=64,
max_pixels=None,
max_steps=-1,
metric=None,
metric_for_best_model=loss,
metric_warmup_step=0,
model=deepseek-ai/deepseek-vl2-tiny,
model_author=[None, None],
model_kwargs={},
model_layer_cls_name=None,
model_name=[None, None],
model_revision=None,
model_type=deepseek_vl2,
modules_to_save=[],
mp_parameters=,
neftune_noise_alpha=None,
no_cuda=False,
norm_bbox=None,
num_beams=1,
num_labels=None,
num_train_epochs=3.0,
optim=adamw_torch,
optim_args=None,
optim_target_modules=None,
optimizer=None,
output_dir=/home/sss/ms-swift/output/deepseek-vl2-tiny/v0-20250210-160420,
overwrite_output_dir=False,
packing=False,
padding_side=right,
past_index=-1,
per_device_eval_batch_size=1,
per_device_train_batch_size=1,
predict_with_generate=False,
prediction_loss_only=False,
push_to_hub=False,
push_to_hub_model_id=None,
push_to_hub_organization=None,
push_to_hub_token=<PUSH_TO_HUB_TOKEN>,
quant_bits=None,
quant_method=None,
ray_scope=last,
reft_args=None,
reft_intervention_type=LoreftIntervention,
reft_layer_key=None,
reft_layers=None,
reft_rank=4,
remove_unused_columns=False,
repetition_penalty=None,
report_to=['tensorboard'],
restore_callback_states_from_checkpoint=False,
resume_from_checkpoint=None,
resume_only_model=False,
rope_scaling=None,
run_name=None,
save_on_each_node=False,
save_only_model=False,
save_safetensors=True,
save_steps=500,
save_strategy=steps,
save_total_limit=None,
seed=42,
sequence_parallel_size=1,
skip_memory_metrics=True,
sortish_sampler=False,
split_batches=None,
split_dataset_ratio=0.01,
stop_words=[],
stream=False,
streaming=False,
strict=False,
system=None,
target_modules=['all-linear'],
target_regex=None,
task_type=causal_lm,
temperature=0.0,
template=deepseek_vl2,
template_backend=swift,
tf32=None,
tools_prompt=react_en,
top_k=None,
top_logprobs=None,
top_p=None,
torch_compile=False,
torch_compile_backend=None,
torch_compile_mode=None,
torch_dtype=torch.bfloat16,
torch_empty_cache_steps=None,
torchdynamo=None,
tpu_metrics_debug=False,
tpu_num_cores=None,
train_type=lora,
trainable_parameters=[],
truncation_strategy=delete,
tuner_backend=peft,
use_chat_template=True,
use_cpu=False,
use_dora=False,
use_galore=False,
use_hf=False,
use_ipex=False,
use_legacy_prediction_loop=False,
use_liger=False,
use_liger_kernel=False,
use_mps_device=False,
use_rslora=False,
use_swift_lora=False,
val_dataset=[],
vera_d_initial=0.1,
vera_dropout=0.0,
vera_projection_prng_key=0,
vera_rank=256,
warmup_ratio=0.0,
warmup_steps=0,
weight_decay=0.1,
)
TrainArguments
类的实例化对象,包含了训练过程中的各种参数配置
通用训练配置
-
_n_gpu
:可用 GPU 的数量,-1
可能表示自动检测。 -
acc_steps
:梯度累积步数,即多少个小批量(mini-batch)的梯度累积后进行一次参数更新,这里设置为 1 表示每个小批量都进行更新。 -
acc_strategy
:累积策略,token
可能表示基于令牌(token)的累积策略。 -
accelerator_config
:加速器配置,{'dispatch_batches': False}
表示不进行批量分发。 -
adafactor
:是否使用 Adafactor 优化器,False
表示不使用。 -
adam_beta1
和adam_beta2
:Adam 优化器的指数移动平均的衰减率,分别设置为 0.9 和 0.999。 -
adam_epsilon
:Adam 优化器中的一个小常数,用于数值稳定性,设置为1e-08
。 -
bf16
:是否使用 BFloat16 混合精度训练,True
表示使用。 -
bf16_full_eval
:在评估时是否使用全 BFloat16 精度,False
表示不使用。 -
do_eval
:是否进行评估,False
表示不进行。 -
do_predict
:是否进行预测,False
表示不进行。 -
do_train
:是否进行训练,False
表示不进行。 -
eval_steps
:评估的间隔步数,每 500 步进行一次评估。 -
eval_strategy
:评估策略,steps
表示按步数进行评估。 -
gradient_accumulation_steps
:同acc_steps
,梯度累积步数。 -
gradient_checkpointing
:是否启用梯度检查点以节省内存,True
表示启用。 -
learning_rate
:学习率,设置为0.0001
。 -
lr_scheduler_type
:学习率调度器类型,cosine
表示使用余弦退火调度器。 -
max_grad_norm
:梯度裁剪的最大范数,设置为 1.0。 -
max_steps
:最大训练步数,-1
可能表示不限制步数,按num_train_epochs
进行训练。 -
metric_for_best_model
:用于选择最佳模型的指标,这里使用loss
(损失)。 -
num_train_epochs
:训练的轮数,设置为 3.0 轮。 -
optim
:优化器类型,adamw_torch
表示使用 PyTorch 实现的 AdamW 优化器。 -
output_dir
:训练输出的目录,指定为/home/sss/ms-swift/output/deepseek-vl2-tiny/v0-20250210-160420
。 -
per_device_eval_batch_size
:每个设备上的评估批量大小,设置为 1。 -
per_device_train_batch_size
:每个设备上的训练批量大小,设置为 1。 -
save_steps
:保存模型的间隔步数,每 500 步保存一次。 -
save_strategy
:保存策略,steps
表示按步数保存。 -
seed
:随机种子,设置为 42,用于保证实验的可重复性。 -
weight_decay
:权重衰减系数,设置为 0.1。
模型相关配置
-
model
:使用的模型名称或路径,这里是deepseek-ai/deepseek-vl2-tiny
。 -
model_type
:模型类型,deepseek_vl2
表示使用 DeepSeek-VL2 模型。 -
target_modules
:需要进行微调的目标模块,['all-linear']
表示所有线性层。 -
train_type
:训练类型,lora
表示使用 LoRA(Low-Rank Adaptation)方法进行训练。
数据集相关配置
-
dataset
:使用的数据集名称,['coco-en-mini']
表示使用coco-en-mini
数据集。 -
split_dataset_ratio
:数据集分割比例,设置为 0.01。
日志和监控相关配置
-
logging_dir
:日志记录的目录,指定为/home/sss/ms-swift/output/deepseek-vl2-tiny/v0-20250210-160420/runs
。 -
logging_steps
:日志记录的间隔步数,每 5 步记录一次。 -
logging_strategy
:日志记录策略,steps
表示按步数记录。 -
report_to
:报告的目标,['tensorboard']
表示使用 TensorBoard 进行可视化。
其他配置
-
adapter_act
:适配器的激活函数,gelu
表示使用 GELU 激活函数。 -
bnb_4bit_quant_type
:4 位量化类型,nf4
表示使用 NF4 量化。 -
custom_dataset_info
:自定义数据集信息,为空列表表示没有自定义信息。 -
device_map
:设备映射,None
表示自动分配设备。 -
freeze_parameters
:需要冻结的参数列表,['vision', 'projector']
表示冻结vision
和projector
模块的参数。 -
hub_token
:Hugging Face Hub 的令牌。 -
lora_alpha
:LoRA 的缩放因子,设置为 32。 -
lora_dropout
:LoRA 的丢弃率,设置为 0.05。 -
lora_rank
:LoRA 的低秩矩阵的秩,设置为 8。 -
rope_scaling
:RoPE(Rotary Position Embedding)的缩放策略,None
表示不使用缩放。 -
template
:使用的模板名称,deepseek_vl2
表示使用 DeepSeek-VL2 模板。