首页
/ 开源项目最佳实践教程:PygmalionAI训练代码

开源项目最佳实践教程:PygmalionAI训练代码

2025-05-19 01:05:05作者:滑思眉Philip

1. 项目介绍

PygmalionAI训练代码是一个用于监督或无监督微调因果语言模型的代码库。该项目基于HuggingFace的Trainer类,并包含一些额外的特性,如可选的xFormers和LoRA训练。这个项目可以帮助开发者更容易地进行模型训练,优化模型性能。

2. 项目快速启动

以下步骤将帮助您快速启动并运行PygmalionAI训练代码。

首先,您需要安装必要的依赖项。可以从requirements.txt文件中获取依赖列表,并使用以下命令安装:

pip install -r requirements.txt

对于一些可选的包,您可以运行:

pip install -r requirements-recommended.txt

接下来,准备您的训练数据。数据应该是一个JSONL(jsonlines)文件,每行是一个包含promptgeneration键的JSON对象。您可以按照以下格式准备数据:

{
  "prompt": "这是一个提示。",
  "generation": "这是预期的生成文本。"
}

然后,使用以下脚本对数据进行分词:

python3 ./preparation/tokenize_data_sft.py \
  --input-file '/path/to/your/data.jsonl' \
  --output-file '/path/to/your/output.pythia.arrow' \
  --tokenizer-path 'EleutherAI/pythia-410m-deduped' \
  --max-length 2048

最后,开始训练。您可以使用以下命令启动训练过程:

accelerate launch ./training/hf_trainer.py \
  --model_name_or_path 'EleutherAI/pythia-410m-deduped' \
  --train_file '/path/to/your/train.pythia.arrow' \
  --eval_file '/path/to/your/eval.pythia.arrow' \
  --output_dir '/path/to/your/checkpoints' \
  --report_to 'wandb' \
  --do_train --do_eval \
  --ddp_find_unused_parameters false \
  --optim 'adamw_torch_fused' \
  --seed 42 --data_seed 42 \
  --logging_first_step true --logging_steps 1 \
  --dataloader_num_workers 1 \
  --per_device_train_batch_size 8 \
  --per_device_eval_batch_size 8 \
  --fp16 true \
  --low_cpu_mem_usage true \
  --evaluation_strategy 'steps' --eval_steps 128 \
  --save_strategy 'steps' --save_steps 128 --save_total_limit 2 \
  --gradient_accumulation_steps 8 \
  --learning_rate 1.0e-5 \
  --lr_scheduler_type 'cosine' \
  --warmup_steps 64 \
  --num_train_epochs 1

3. 应用案例和最佳实践

在应用PygmalionAI训练代码时,以下是一些最佳实践:

  • 确保您的数据集足够大且多样化,以便模型能够学习到不同的模式和结构。
  • 使用适当的分词器对数据进行分词,以匹配您选择的模型。
  • 考虑使用LoRA或xFormers等技术来提高训练效率或减少内存消耗。
  • 在训练过程中定期监控模型的性能,以便在必要时调整超参数。
  • 使用云服务或分布式训练来加速训练过程,尤其是对于大型模型。

4. 典型生态项目

PygmalionAI训练代码是一个开源项目,它与其他开源项目一起构成了一个生态系统。以下是一些与PygmalionAI训练代码相互补充的典型生态项目:

  • HuggingFace Transformers:用于自然语言处理的开源库,提供了广泛的预训练模型和工具。
  • xFormers:一个由Facebook AI Research开发的库,提供了内存效率注意力机制的实现。
  • LoRA:一种低秩适应技术,用于在微调大型语言模型时减少参数数量。

通过利用这些生态项目,开发者可以构建更加强大和高效的自然语言处理应用。

登录后查看全文
热门项目推荐