SWIFT 后训练 Deepseek-VL2 参数

时间:2025-02-11 11:12:32

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_beta1adam_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'] 表示冻结 visionprojector 模块的参数。
  • 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 模板。