Shortcuts

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,则会将 CollieConfigtrain_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
classmethod from_pretrained(name_or_path, **kwargs)[源代码]

加载预训练模型的设置。

参数:
  • name_or_path (str) – 预训练模型设置的路径,支持本地路径或 huggingface 上的仓库 名称。

  • kwargs – 其它的设置。可以通过该参数设置 pp_sizedp_size 等 训练参数和 vocab_size 等关于模型的参数。

save_pretrained(path, **kwargs)[源代码]

保存预训练模型的设置。