
# NLP大模型训练流程与选择建议
#### NLP大模型训练流程介绍
NLP大模型的训练分为两个关键阶段：预训练和微调。
- **预训练阶段：** 在这一阶段，模型通过学习大规模通用数据集来掌握语言的基本模式和语义。这一过程为模型提供了处理各种语言任务的基础，如阅读理解、文本生成和情感分析，但它还未能针对特定任务进行优化。
  针对**预训练** **阶段** ，还可以继续进行训练，这一过程称为**增量预训练**。增量预训练是在已经完成的预训练的基础上继续训练模型。增量预训练旨在使模型能够适应新的领域或数据需求，保持其长期的有效性和准确性。
  
- **微调阶段：** 基于预训练的成果，微调阶段通过在特定领域的数据集上进一步训练，使模型能够更有效地应对具体的任务需求。这一阶段使模型能够精确执行如文案生成、代码生成和专业问答等特定场景中的任务。在微调过程中，通过设定训练指标来监控模型的表现，确保其达到预期的效果。完成微调后，将对用户模型进行评估并进行最终优化，以确保满足业务需求，然后将其部署和调用，用于实际应用。
  针对**微调阶段，** 微调后的模型可以直接部署，也可以继续进行**强化学习（DPO、RFT、GRPO）**训练，以进一步对齐任务场景下的用户偏好，例如模型回答的风格、模型的价值观等。
  图1NLP大模型训练方式与流程   
  ![](https://support.huaweicloud.com/usermanual-pangulm/zh-cn_image_0000002571206306.png) 
 
#### NLP大模型选择建议
选择合适的NLP大模型类型有助于提升训练任务的准确程度。您可以根据模型**可处理最大Token长度** ，选择合适的模型，从而提高模型的整体效果，详见[表1]。
此外，不同类型的NLP大模型在训练过程中，读取中文、英文内容时，字符长度转换为Token长度的转换比有所不同，详见[表2]。
 表1不同系列NLP大模型对处理文本的长度差异 
| 模型名称                                      | 推理可处理最大序列长度（输入+输出） |
|:---|:---|---|
| Pangu-NLP-N1-32K-3.2.36                   | 32K                |
| Pangu-NLP-N1-128K-3.2.36                  | 128K               |
| Pangu-NLP-N1-Reasoner-128K-3.0.1.1        | 128K               |
| Pangu-NLP-N2-32K-3.1.35                   | 32K                |
| Pangu-NLP-N2-32K-5.0.1.1                  | 32K                |
| Pangu-NLP-N2-32K-5.0.3.1                  | 32K                |
| Pangu-NLP-N2-32K-V5.0.3.2                 | 32K                |
| Pangu-NLP-N2-128K-5.0.1.1                 | 128K               |
| Pangu-NLP-N2-128K-V5.0.3.1                | 128K               |
| Pangu-NLP-N2-128K-V5.0.3.2                | 128K               |
| Pangu-NLP-N2-Reasoner-32K-3.0.1.1         | 32K                | 32K |
| Pangu-NLP-N2-Reasoner-32K-V3.0.0.1        | 32K                |
| Pangu-NLP-N2-Reasoner-128K-5.0.0.1        | 128K               |
| Pangu-NLP-N4-4K-3.2.36                    | 4K                 |
| Pangu-NLP-N4-32K-2.5.35                   | 32K                |
| Pangu-NLP-N4-Reasoner-32K-3.0.1.2         | 32K                |
| Pangu-NLP-N4-Reasoner-128K-3.0.1.2        | 128K               |
| Pangu-NKY-NLP-N2-128K V3.1.35.1           | 128K               |
| Pangu-NKY-NLP-N2-Reasoner-128K V3.0.1.1.1 | 128K               |
   
![](https://support.huaweicloud.com/usermanual-pangulm/public_sys-resources/note_3.0-zh-cn.png)
华为盘古NLP大模型支持快思考、慢思考以及快慢思考融合等不同类别的模型。以下是区分模型的规则：
1. 模型名称中带Reasoner字样的模型为慢思考模型。
2. 模型名称中不带Reasoner字样的模型且版本号在5.0.3.1（包含）之后的模型为快慢思考融合模型。版本号早于5.0.3.1之前的版本为快思考模型。
注意：快慢思考融合模型**默认** 为慢思考模式，在使用中会输出思考过程，增加推理耗时。请您在选用这类模型做推理时，务必考虑耗时影响。如果要设置这类模型为快思考模型，请在Prompt的最后添加"/no_think"标签。示例请参考[使用API调用NLP大模型](https://support.huaweicloud.com/usermanual-pangulm/pangulm_04_0181.html)。
 表2Token转换比 
| 模型规格 | Token比（Token/英文单词） | Token比（Token/汉字） |
|:---|:---|:---|
| N1   | 0.75               | 1.5              |
| N2   | 0.88               | 1.24             |
| N4   | 0.75               | 1.5              |
   
![](https://support.huaweicloud.com/usermanual-pangulm/public_sys-resources/note_3.0-zh-cn.png)
针对Token转换比，平台提供了**Token计算器**功能，可以根据您输入的文本计算Token数量，您可以通过以下方式使用该功能：
- 在左侧导航栏选择"体验中心"，单击"选择其他服务"，选择预置大模型或自己的大模型后，单击右上角"Token计算器"使用该功能。
- 使用API调用Token计算器，详见《API参考》"API \> Token计算器"。
 
#### NLP大模型训练类型选择建议
平台针对NLP大模型提供了三种训练类型，包括预训练、微调、强化学习（DPO/RFT/GRPO），三者区别详见[表3]。
 表3预训练、微调训练类型区别 
| 训练方式       | 训练目的                                                                                                                                                         | 训练数据                                                                                                                                                 | 模型效果                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 应用场景举例                                                             |
|:---|:---|:---|:---|:---|
| 预训练        | **关注通用性**：预训练旨在让模型学习广泛的通用知识，建立词汇、句法和语义的基础理解。通过大规模的通用数据训练，模型可以掌握丰富的语言模式，如语言结构、词义关系和常见的句型。                                                                     | **使用大规模通用数据**：通常使用海量的无监督数据（如文本语料库、百科文章），这些数据覆盖广泛的领域和语言表达方式，帮助模型掌握广泛的知识。                                                                              | **适合广泛应用**：经过预训练后，模型可以理解自然语言并具备通用任务的基础能力，但还没有针对特定的业务场景进行优化。预训练后的模型主要用于多个任务的底层支持。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 通过使用海量的互联网文本语料对模型进行预训练，使模型理解人类语言的基本结构。                             |
| 微调         | **关注专业性**：微调是对预训练模型的参数进行调整，使其在特定任务中达到更高的精度和效果。微调的核心在于利用少量的特定任务数据，使模型的表现从通用性向具体任务需求过渡。                                                                        | **使用小规模的特定任务数据**：微调通常需要小规模但高质量的标注数据，直接与目标任务相关。通过这些数据，模型可以学习到任务特定的特征和模式。                                                                              | **在特定任务上具有更高的准确性**：微调后的模型在具体任务中表现更优。相较于预训练阶段的通用能力，微调能使模型更好地解决细分任务的需求。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 在一个客户服务问答系统中，可以用特定领域（如电商、保险）的对话数据对预训练模型进行微调，使其更好地理解和回答与该领域相关的问题。   |
| 强化学习（DPO）  | **关注偏好性：**DPO（Direct Preference Optimization，直接偏好优化）通过利用偏好数据来提升模型的对话质量，增强其安全性、可控性，并且优化其输出的风格和语气。                                                             | **使用模型生成的多个回答的排序数据：**这些偏好数据通常来自于已有的高质量对话数据集。关键在于数据的质量，需要保证生成的偏好数据能够有效反映人类的实际偏好和期望。                                                                   | - **对话质量**：通过优化生成的回复，使其更自然、更符合语境，并减少不当或低质量的内容。  - **语气和风格调整**：可以根据需要调整模型的语气（如正式或亲和）和输出风格（如简洁或详细）。  - **安全性和可控性**：减少有害或偏见内容的生成，增强模型的可控性，能够避免生成不符合伦理或社会规范的回答。                                                                                                                                                                 | 在内容创作和写作辅助中，DPO能够帮助创作类工具生成更加符合用户风格和偏好的文本内容，支持个性化写作。                |
| 强化学习（RFT）  | **关注正确性：**RFT（Reinforcement Fine-Tuning，强化微调）是一种结合规则化奖励信号的强化学习方法。其训练目的是引导模型在具有明确"正确答案"的复杂任务中不断优化输出结果，使其逐步逼近最优解。RFT通过少量高质量反馈数据，使模型在特定领域实现高精度推理与决策能力。          | **使用规则化奖励函数对模型生成的回答打分**：RFT的训练数据通常包括输入问题与标准答案。由模型自动生成的多个候选回答，每个候选回答会通过一个预定义的规则化奖励函数进行评分。这些得分作为强化学习中的奖励信号，用于指导策略更新，使模型更倾向于生成"正确"或"有效"的输出。             | - **高精度推理能力**：RFT能显著提升模型在数学推理、代码生成、逻辑推导等任务上的准确率，使其接近甚至达到专家水平。  - **稳定性和一致性增强**：通过规则化反馈机制，模型在重复任务中表现更加稳定，减少随机性导致的错误。  - **可解释性提升**：由于依赖明确的规则奖励机制，RFT训练出的模型在输出路径上更具可追踪性和可解释性，便于调试和优化。  - **泛化能力有限但可控**：虽然RFT更聚焦于特定领域的性能优化，泛化能力相对较弱，但其输出更加可控，适合封闭式任务场景。   | 在数学问题求解中，RFT应用于解题系统，通过对答案是否正确进行反馈，让模型学会一步步推导出正确的解法。                |
| 强化学习（GRPO） | **关注相对性：**GRPO（Group Relative Policy Optimization，群组相对策略优化）是一种基于组间多个回复的相对优势水平进行训练的强化学习方法。其核心思想是根据模型多个采样回答的平均奖励计算奖励基线，并得到每个回答的相对优势值，进而用于迭代训练、不断优化提升模型的推理决策能力。 | **使用组内多个回答的平均奖励作为基准：**GRPO的训练数据包括输入问题与标准答案。同一个输入问题的多次采样回答作为一个群组。GRPO会通过预定义的规则化奖励函数对每个采样回答进行评分。评分会用于计算群组内的基准奖励值，进而可以计算出每个回答相对于基准的优势水平，优势值会用于指导模型训练迭代。 | - **复杂推理能力提升**：GRPO可以借助规则式奖励函数进行评分，显著提升模型在数学推理、逻辑问答等复杂任务中的表现。  - **计算资源降低**：GRPO的基准值计算机制替代了传统PPO算法中的价值模型，能有效减少内存和计算资源的使用。  - **稳定性增强**：GRPO通过KL约束机制防止新模型过度偏离参考模型，增强了模型的训练稳定性。                                                                                                                                        | GRPO应用于数学计算、逻辑推理等复杂问题的求解场景中，激发模型的高级推理行为，包括自我反思以及长链思维，能有效提升模型的解题能力。 |
   
此外，针对微调训练任务，平台提供了两种微调方式：
- **全量微调**：适合有充足数据并关注特定任务性能的场景。在全量微调中，模型的所有参数都会调整，以适应特定任务的需求。这种方式适合样本量较大、对推理效果要求较高的任务。例如，在特定领域（如金融、医疗）中，若拥有大量标注数据，且需要更高的特定任务推理精度，则全量微调是优先选择。
- **LoRA微调**：适用于数据量较小、侧重通用任务的情景。LoRA（Low-Rank Adaptation）微调方法通过调整模型的少量参数，以低资源实现较优结果，适合聚焦于领域通用任务或小样本数据情景。例如，在针对通用客服问答的场景中，样本量少且任务场景广泛，选择LoRA微调既能节省资源，又能获得较好的效果。
 
**微调方式选择建议**：
- 若项目中数据量有限或任务场景较为广泛，可以选择**LoRA微调**以快速部署并保持较高适用性。
- 若拥有充足数据且关注特定任务效果，选择**全量微调**有助于大幅提升在特定任务上的模型精度。
1. 创建训练任务页面默认资源配置为该模型支持的最小资源配置。
2. 在训练任务创建页面，如果单实例训练单元数可以配置为8，且实例数可以配置为大于1，则说明当前模型支持多机多卡训练。
   图2资源配置   
   ![](https://support.huaweicloud.com/usermanual-pangulm/zh-cn_image_0000002601725823.png) 
 
#### 盘古NLP大模型训练资源选择
NLP大模型针对预训练及微调需要的资源不一样，请根据[表4]选择需要使用的资源。
 表4NLP大模型不同训练方式使用的资源 
| 模型名称                                      | 预训练                 | 微调                                                                               | 强化学习                 |
|:---|:---|:---|:---|
| Pangu-NLP-N1-32K-3.2.36                   | -                   | 支持32K SFT，8个训练单元起训 支持32K LoRA，8个训练单元起训       | -                    |
| Pangu-NLP-N1-128K-3.2.36                  | -                   | -                                                                                | -                    |
| Pangu-NLP-N2-32K-5.0.3.2                  | 支持32K预训练，16个训练单元起训  | 支持32K SFT，16个训练单元起训 支持32K LoRA，4个训练单元起训       | 支持32K GRPO，32个训练单元起训 |
| Pangu-NLP-N2-32K-5.0.3.1                  | 支持32K预训练，16个训练单元起训  | 支持32K SFT，16个训练单元起训 支持32K LoRA，4个训练单元起训         | 支持32K GRPO，32个训练单元起训 |
| Pangu-NLP-N2-32K-5.0.1.1                  | 支持32K预训练，16个训练单元起训  | 支持32K SFT，16个训练单元起训 支持32K LoRA，4个训练单元起训          | -                    |
| Pangu-NLP-N2-32K-3.1.35                   | 支持32K预训练，32个训练单元起训  | 支持32K SFT，32个训练单元起训 支持32K LoRA，8个训练单元起训        | -                    |
| Pangu-NLP-N2-128K-5.0.3.2                 | -                   | -                                                                                | -                    |
| Pangu-NLP-N2-128K-5.0.3.1                 | 支持128K预训练，64个训练单元起训 | 支持128K SFT ，64个训练单元起训 支持128K LoRA ，16个训练单元起训    | -                    |
| Pangu-NLP-N2-128K-5.0.1.1                 | 支持128K预训练，64个训练单元起训 | 支持128K SFT，64个训练单元起训, 支持128K LoRA ，32个训练单元起训  | -                    |
| Pangu-NLP-N4-4K-3.2.36                    | 支持4K预训练，64个训练单元起训   | 支持4K SFT，64个训练单元起训, 支持4K LoRA ，8个训练单元起训          | -                    |
| Pangu-NLP-N4-32K-2.5.35                   | 支持32K预训练，96个训练单元起训  | 支持32K SFT，96个训练单元起训, 支持32K LoRA ，64个训练单元起训     | -                    |
| Pangu-NLP-N1-Reasoner-128K-3.0.1.1        | -                   | 支持，8个训练单元起训                                                                      | -                    |
| Pangu-NLP-N2-Reasoner-32K-3.0.0.1         | 支持32K预训练，16个训练单元起训  | 支持32K SFT，16个训练单元起训, 支持32K LoRA ，4个训练单元起训       | 支持，24个训练单元起训         |
| Pangu-NLP-N2-Reasoner-128K-5.0.0.1        | 支持128K预训练，64个训练单元起训 | 支持128K SFT，64个训练单元起训, 支持128K LoRA ，16个训练单元起训     | -                    |
| Pangu-NLP-N4-Reasoner-32K-3.0.1.2         | 支持32K预训练，64个训练单元起训  | 支持32K SFT，64个训练单元起训, 支持32K LoRA ，8个训练单元起训      | -                    |
| Pangu-NLP-N4-Reasoner-128K-3.0.1.2        | -                   | -                                                                                | -                    |
| Pangu-NKY-NLP-N2-128K V3.1.35.1           | 支持128K预训练，64个训练单元起训 | 支持128K SFT，64个训练单元起训, 支持128K LoRA ，16个训练单元起训 | -                    |
| Pangu-NKY-NLP-N2-Reasoner-128K V3.0.1.1.1 | 支持128K预训练，64个训练单元起训 | 支持128K SFT，64个训练单元起训, 支持128K LoRA ，16个训练单元起训    | -                    |
   
