CollieConfig¶
- class CollieConfig(seed=42, pp_size=1, tp_size=1, dp_size=1, pp_partition_method='parameters', train_epochs=100, eval_per_n_steps=0, eval_per_n_epochs=0, train_micro_batch_size=1, gradient_accumulation_steps=1, eval_batch_size=1, checkpointing=True, use_flash=True, dropout=0.0, init_method=<factory>, low_cpu_mem_usage=True, dataloader_num_workers=0, ds_config=<factory>, model_config=<factory>, peft_config=<factory>, quantization_config=<factory>)[源代码]¶
CoLLiE 的配置类。
- 参数:
seed (
int, default:42) -- 随机数种子。pp_size (
int, default:1) -- 流水线并行的大小。tp_size (
int, default:1) -- 张量并行大小。dp_size (
int, default:1) -- 数据并行大小。pp_partition_method (
str, default:'parameters') --流水线的切分策略,包括以下几种取值:
'parameters'- 默认情况下的取值。根据可训练的参数数量进行切分,保证所 有 rank 上的计算时间是接近的。'uniform'- 根据模型的层数进行切分,保证每个 rank 上的模型层数是接近 的。'type:[regex]'- 根据指定的 layer 进行切分,保证与[regex]名称 正则匹配的 layer 在每个 rank 上的数目是接近的。比如type:transformer会使得每个 rank 上 Transformer 层的数目接近。该正则匹配不分大小写。
train_epochs (
int, default:100) -- 训练时的迭代次数。eval_per_n_steps (
int, default:0) -- 训练的一个 epoch 中,每隔多少 step 进行一次验证。eval_per_n_epochs (
int, default:0) -- 训练过程中每隔多少次迭代进行一次验证。train_micro_batch_size (
int, default:1) -- 每个 gpu 上的 batch_size,与 deepspeed 设置中 的train_micro_batch_size_per_gpu作用相同。如果ds_config中没 有指定train_micro_batch_size_per_gpu,则会将CollieConfig的train_micro_batch_size作为train_micro_batch_size_per_gpu的值。在流水线并行中,该项代表一个 micro batch 的大小。gradient_accumulation_steps (
int, default:1) -- 梯度累积的 step 数目。与 deepspeed 设置中 的gradient_accumulation_steps作用相同。如果ds_config中没有指 定gradient_accumulation_steps,则会将CollieConfig`的 ``gradient_accumulation_steps`作为gradient_accumulation_steps的 值。在流水线并行中,该项代表流水线的 micro batch 的数目。eval_batch_size (
int, default:1) -- 验证时的 batch 大小。在流水线中代表验证时一个 micro batch 的大小。checkpointing (
bool, default:True) -- 是否使用梯度检查点,该设置可以节省显存。use_flash (
bool, default:True) -- 是否使用 FlashAttention 。 仅对部分模型有效。dropout (
float, default:0.0) --Dropout的概率。仅对部分模型有效。init_method (
dict, default:<factory>) -- 初始化方法。必须是一个接收一个torch.Tensor并返回一个torch.Tensor的可调用对象。low_cpu_mem_usage (
bool, default:True) -- 是否在初始化模型时尝试减少 CPU 占用ds_config (
Union[str,dict], default:<factory>) -- DeepSpeed 的配置文件。可以是一个路径或字典。model_config (
PretrainedConfig, default:<factory>) -- 模型设置。一般情况下无需手动设置,而是通过from_pretrained()获取,peft_config (
PeftConfig, default:<factory>) -- Peft 的配置。quantization_config (
BitsAndBytesConfig, default:<factory>) -- 模型的量化配置
-
seed:
int= 42¶
-
pp_size:
int= 1¶
-
tp_size:
int= 1¶
-
dp_size:
int= 1¶
-
pp_partition_method:
str= 'parameters'¶
-
train_epochs:
int= 100¶
-
eval_per_n_steps:
int= 0¶
-
eval_per_n_epochs:
int= 0¶
-
train_micro_batch_size:
int= 1¶
-
gradient_accumulation_steps:
int= 1¶
-
eval_batch_size:
int= 1¶
-
checkpointing:
bool= True¶
-
use_flash:
bool= True¶
-
dropout:
float= 0.0¶
-
init_method:
dict¶
-
low_cpu_mem_usage:
bool= True¶
-
dataloader_num_workers:
int= 0¶
-
ds_config:
Union[str,dict]¶
-
model_config:
PretrainedConfig¶
-
peft_config:
PeftConfig¶
-
quantization_config:
BitsAndBytesConfig¶