已合并
docs: fix text pretraining configuration guide #2974
docs: fix text pretraining configuration guide #2974
已合并
yeqm创建于 7 天前
1 个文件变更+28-17
Mdocs/zh/features/pretrain.md+28-17
@@ -1,5 +1,9 @@
1# 纯文本预训练1# 纯文本预训练
犀牛
犀牛犀牛7 天前

可以按模板在前面增加适用后端章节进行说明

likedislike
yeqm
7 天前 评论:
2 2 
3+## 适用后端
4+ 
5+纯文本预训练适用于纯 FSDP2 后端和含 Megatron 后端。两种后端选择预训练数据处理流程的配置项不同,请按照下文对应后端的示例进行配置。
6+ 
3## 使用场景7## 使用场景
4 8 
5预训练(Pretraining)是语言模型发展的核心步骤,目标是让模型通过大规模无标签语料学习语言规律与世界知识。预训练过程更关注语言建模本身,而非具体任务执行。以GPT类模型为例,它是一种典型的自回归语言模型,其核心思想是基于历史上下文预测下一个标记。预训练的过程就是通过反复优化这种预测能力,模型逐渐学会如何理解语境、保持句子连贯性,并掌握更高层次的语言结构,为多种下游任务提供通用的语言表示能力。 9预训练(Pretraining)是语言模型发展的核心步骤,目标是让模型通过大规模无标签语料学习语言规律与世界知识。预训练过程更关注语言建模本身,而非具体任务执行。以GPT类模型为例,它是一种典型的自回归语言模型,其核心思想是基于历史上下文预测下一个标记。预训练的过程就是通过反复优化这种预测能力,模型逐渐学会如何理解语境、保持句子连贯性,并掌握更高层次的语言结构,为多种下游任务提供通用的语言表示能力。
@@ -13,8 +17,9 @@
13 17 
14## 使用方法18## 使用方法
15 19 
16-1.fsdp2后端20+### FSDP2 后端
17-在xx_config.yaml文件中,配置预训练相关的参数21+ 
22+`xx_config.yaml` 文件中配置预训练相关参数:
18 23 
19```yaml24```yaml
20### 数据相关配置25### 数据相关配置
@@ -23,18 +28,23 @@ data:
23 ...28 ...
24 attr:29 attr:
25 formatting: alpaca30 formatting: alpaca
26- pretrain: true
27 prompt: text31 prompt: text
28 basic_parameters:32 basic_parameters:
33+ stage: pretrain
29 template: default34 template: default
30 dataloader_param:35 dataloader_param:
31 collate_param:36 collate_param:
32- model_name: llm_pretrain37+ collator_id: llm_pretrain
yaoyaoxu
yaoyaoxuyaoyaoxu7 天前

这个是不是改不改都一样啊?

likedislike
yeqm
7 天前 评论:
33 ...38 ...
34```39```
35 40 
36-2.含megatron后端41+> [!NOTE]
37-在data.json文件中,配置预训练相关的参数42+>
43+> FSDP2 后端通过 `basic_parameters.stage: pretrain` 选择预训练数据处理流程。切换到预训练时,请将 `attr` 下原有的配置(如 SFT 场景的列映射配置)注释或移除,按上述示例仅保留 `formatting` 和 `prompt` 配置,避免残留配置导致数据对齐失败。
44+ 
45+### 含 Megatron 后端
46+ 
47+`data.json` 文件中配置预训练相关参数:
38 48 
39```json49```json
40{50{
@@ -68,19 +78,20 @@ data:
68 78 
69### 参数说明79### 参数说明
70 80 
71-1.`attr`和`collate_param`下的参数需要全部替换成上述示例的内容,其他参数的值做对应修改81+FSDP2 后端需要按照上述示例配置 `basic_parameters.stage`、`attr` `collate_param`;含 Megatron 后端需要按照上述示例配置 `attr` 和 `collate_param`。其他参数请根据实际训练任务修改
72-2.`basic_parameters/packing`支持配置,对于纯文本大规模预训练,框架将`packing`默认设为true,以充分利用显存、提升训练效率。如果样本不拼接,则按如下方式进行配置:
73 82 
74-- **`basic_parameters/packing`**83+- **`basic_parameters.packing`**
75- - 描述:多个短文本样本拼接成一个符合模型最大长度cutoff_len的长序列84+ - 描述:多个短文本样本拼接成符合模型最大长度 `cutoff_len` 的长序列。对于纯文本大规模预训练,该参数默认为 `true`,以充分利用显存并提升训练效率。
76 - 取值:85 - 取值:
77- - `true`:默认值,可以不配置该参数86+ - `true`:开启样本拼接,默认值,可以不配置该参数
78- - `false`:手动指定87+ - `false`:关闭样本拼接。
88+ 
89+- **`cutoff_len`**
90+ - 描述:训练序列的最大长度。
91+ - 配置位置:
92+ - 纯 FSDP2 后端:对应 `xx_config.yaml` 中的 `cutoff_len`
93+ - 含 Megatron 后端:对应 `finetune_xx.sh` 中的 `SEQ_LEN`
79 94 
80## 注意事项95## 注意事项
81 96 
82-1.packing开启(默认)的场景下,需要保证`max_samples`文本拼接成长序列的总长度不小于cutoff_len,否则会报错97+packing 开启(默认)的场景下,数据预处理会在每个批次内拼接文本,并按 `cutoff_len` 切分为定长序列。需要保证预处理批次中有效文本的 token 不小于 `cutoff_len`,否则该批次无法生成训练样本。可通过增大 `preprocessing_batch_size`、增加样本长度或减小 `cutoff_len` 解决。
83- 
84-- **`cutoff_len`**
85- - 纯fsdp2后端:对应xx_config.yaml中的`cutoff_len`
86- - 含megatron后端:对应finetune_xx.sh中的`SEQ_LEN`