ToB企服应用市场:ToB评测及商务社交产业平台

标题: llama factory 增量预练习代码剖析 & .yaml文件传参和sh的差别 examples/tr [打印本页]

作者: 用户云卷云舒    时间: 2024-9-5 09:33
标题: llama factory 增量预练习代码剖析 & .yaml文件传参和sh的差别 examples/tr
新版本(2024年后)的llama factory,改用了.yaml文件传参的方式,叨教和原始的.sh传参方式有什么差别?


新版本的 llama factory 框架利用 .yaml 文件来传递参数,相较于原始的 .sh 脚本传参方式,有一些显著的差别和上风。以下是具体的对比和解释:
参数传递方式的差别

.sh 脚本传参方式

在 .sh 脚本中,参数是直接通过下令行传递的,如下所示:
bash
复制
  1. accelerate launch src/train_bash.py \
  2.     --model_name_or_path /data/vayu/train/etuning/LLaMA-Factory/models/xxxx-Base-10B-200k-Llama \
  3.     --do_train \
  4.     --stage pt
  5.     # ... 更多参数
复制代码
每个参数都需要以 --参数名 参数值 的形式显式地列出,这种方式虽然直观,但当参数较多时会显得冗长且难以管理。
.yaml 文件传参方式

在新的 .yaml 文件中,参数以键值对的形式组织在文件中,如下所示:
yaml
复制
  1. ### model
  2. model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
  3. ### method
  4. stage: pt
  5. do_train: true
  6. finetuning_type: lora
  7. lora_target: all
  8. # ... 更多参数
复制代码
这种方式将全部设置参数集中在一个文件中,结构更清晰,管理和修改都更加方便。
YAML 设置文件的上风

解释新版本 YAML 设置文件

yaml
复制
  1. ### model
  2. model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
复制代码

yaml
复制
  1. ### method
  2. stage: pt
  3. do_train: true
  4. finetuning_type: lora
  5. lora_target: all
复制代码

yaml
复制
  1. ### dataset
  2. dataset: c4_demo
  3. cutoff_len: 1024
  4. max_samples: 1000
  5. overwrite_cache: true
  6. preprocessing_num_workers: 16
复制代码

yaml
复制
  1. ### output
  2. output_dir: saves/llama3-8b/lora/sft
  3. logging_steps: 10
  4. save_steps: 500
  5. plot_loss: true
  6. overwrite_output_dir: true
复制代码

yaml
复制
  1. ### train
  2. per_device_train_batch_size: 1
  3. gradient_accumulation_steps: 8
  4. learning_rate: 1.0e-4
  5. num_train_epochs: 3.0
  6. lr_scheduler_type: cosine
  7. warmup_ratio: 0.1
  8. bf16: true
  9. ddp_timeout: 180000000
复制代码


请从你断掉的地方继续天生


GPT-4o
Poe

固然,继续解释 .yaml 文件中的 train 设置部分:
yaml
复制
  1. ### train
  2. per_device_train_batch_size: 1
  3. gradient_accumulation_steps: 8
  4. learning_rate: 1.0e-4
  5. num_train_epochs: 3.0
  6. lr_scheduler_type: cosine
  7. warmup_ratio: 0.1
  8. bf16: true
  9. ddp_timeout: 180000000
复制代码

yaml
复制
  1. ### eval
  2. val_size: 0.1
  3. per_device_eval_batch_size: 1
  4. eval_strategy: steps
  5. eval_steps: 500
复制代码

总结

通过 YAML 文件传参,设置项得到更清晰的分类和管理,使得整个练习流程的设置更加简洁明了。YAML 文件的条理结构使得设置文件易于阅读和维护,并且便于在差别练习任务之间复用。
相比之下,利用 .sh 脚本传参虽然直观,但在参数较多时容易变得紊乱且难以管理。YAML 文件更适合复杂设置的场景,特别是在需要频繁调整和复用设置的情况下。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4