
# 创建模型微调任务
模型微调是指调整大型语言模型的参数以适应特定任务的过程，适用于需要个性化定制模型或者在特定任务上追求更高性能表现的场景。这是通过在与任务相关的微调数据集上训练模型来实现的，所需的微调量取决于任务的复杂性和数据集的大小。在深度学习中，微调用于改进预训练模型的性能。
支持将自创建的模型、平台资产中心的部分模型作为微调前基础模型，也支持选择微调后的新模型作为基础模型再次进行微调。
#### 前提条件
- 已订购大模型微调服务API在线调用-SFT局部调优，订购方法请参见[购买AI原生应用引擎按需计费资源](https://support.huaweicloud.com/usermanual-appstage/appstage_04_0005.html)。
- 已具备格式为"对话文本"的微调数据集，具体请参考[创建微调数据集](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0604.html)或[收藏微调数据集](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0851.html)。
- 需要具备AI原生应用引擎管理员或开发者权限，权限申请操作请参考[AppStage组织成员申请权限](https://support.huaweicloud.com/usermanual-appstage/appstage_04_0009.html)。
 
#### 创建微调任务
1. [进入AI原生应用引擎](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0638.html#appstage_04_0638__section439520293419)。
2. 在AI原生应用引擎的左侧导航栏选择"模型中心 \> 模型微调流水线"，单击"创建微调任务"。 
   如果选择资产中心的模型作为基础模型，您也可以在左侧导航栏单击"资产中心"，选择"大模型"页签，将鼠标移至目标模型卡片并单击"微调"，进入任务创建页面。
   
   
3. 选择"通用能力增强微调"。 
   通用能力增强微调：广泛应用于各个领域，针对特定任务或行业需求，通过领域微调数据集增强模型领域能力。
   
   
4. 在创建微调任务页面，参照[表1]配置基础信息、模型及数据。
   
    表1创建微调任务参数说明 
   | 参数名称                                                                               || 参数说明                                                                                                                                                                            |
   |:---|---|:---|
   | 基础信息                                                                     | 任务名称     | 自定义任务名称。支持英文、数字、中划线（-）、下划线（_），长度1-64个字符，仅支持字母或下划线开头。                                                                                                                            |
   | 基础信息                                                                     | 任务描述(可选) | 自定义任务相关的描述。                                                                                                                                                                     |
   | 模型配置                                                                     | 微调前模型    | 在下拉列表中选择微调的模型、创建的模型或平台的模型。                                                                                                                                                      |
   | 模型配置                                                                     | 训练模式     | 默认为"LoRA"。 LoRA（Low-Rank Adaptation）是一种轻量级大模型微调技术，通过低秩矩阵分解技术显著减少了微调所需的参数，降低了微调过程中所需的存储和计算资源，可灵活地运用于不同的预训练模型和任务。 |
   | 模型配置                                                                     | 微调后名称    | 自定义模型微调后的新名称。支持英文、数字、中划线（-）、下划线（_），长度1-64个字符，仅支持字母或下划线开头。                                                                                                                       |
   | 数据配置  | 选择微调数据集  | 单击"选择微调数据集"，选择"我创建的"或"我收藏的"数据集。                                                                                                                                                 |
   | 任务配置                                                                     | 资源池      | 选择执行任务的资源池，在下拉列表可以看到各资源池的可用卡数，根据实际情况选择。                                                                                                                                         |
      
   
   
5. 单击"下一步"，分别参照[表2]和[表3]配置基础参数、LoRA参数。
   
    表2基础参数配置说明 
   | 参数英文名            | 参数中文名           | 参数说明                                          |
   |:---|:---|:---|
   | global_bs        | 各设备batch size总和 | 表示多个设备上使用的总样本数量。                              |
   | num_train_epochs | 训练epoch数        | 优化算法在完整训练数据集上的工作轮数。                           |
   | learning_rate    | 学习率             | 学习率是每一次迭代中梯度向损失函数最优解移动的步长。                    |
   | weight_decay     | 权重衰减因子          | 对模型参数进行正则化的一种因子，可以缓解模型过拟合现象。                  |
   | warmup_ratio     | 学习率热启动比例        | 学习率热启动参数，一开始以较小的学习率去更新参数，然后再使用预设学习率，有效避免模型震荡。 |
      
    表3LoRA参数配置说明 
   | 参数英文名          | 参数中文名   | 参数说明                                                                                                                                                                                                      |
   |:---|:---|:---|
   | lora_rank      | 秩       | LoRA微调中的秩。                                                                                                                                                                                                |
   | lora_alpha     | 缩放系数    | LoRA微调中的缩放系数。                                                                                                                                                                                             |
   | target_modules | LoRA微调层 | LoRA微调的layer名关键字。 baichuan系列：down_proj、gate_proj、up_proj、W_pack、o_proj chatglm系列：dense_4h_to_h、dense_h_to_4h、dense、query_key_value |
      
   
   
6. 单击"创建"。 
   新创建的微调任务显示在任务列表中，任务状态为"待启动"，请参考[表4]启用任务。
   
   
 
#### 更多操作
创建微调任务完成后，可执行如[表4]所示的操作。
 表4更多操作 
| 操作       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|
| 启用任务     | 1. 在模型微调流水线任务列表中，单击操作列的"启用"，启动微调任务。当任务拥塞时，状态显示为"等待中"，待任务状态变为"运行中"时，表示正在执行微调任务。  2. 当任务状态变为"已完成"时，表示微调任务已执行完成。如果任务失败，任务状态显示为"运行失败"，您可以检查配置后重新启用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 停用任务     | 1. 在模型微调流水线任务列表中，单击操作列的"停用"，停用微调任务。当任务拥塞时，状态显示为"等待中"，待任务状态变为"停止中"时，表示正在停止微调任务。  2. 当任务状态变为"已停止"时，表示微调任务已停止执行。如果停止失败，任务状态显示为"运行失败"，您可以检查配置后重新停用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 发布微调后的模型 | 微调任务执行完成后，可以发布微调后的模型，发布的模型可以进行部署和再次微调。 在模型微调流水线任务列表中，单击操作列的"发布"，当任务状态显示为"已发布"，表示微调模型发布成功，进入"模型中心 \> 我的模型服务"页面，选择"我的模型"页签，在"我微调的"列表中可以查看微调后的新模型。 如果发布失败，任务状态显示为"运行失败"，您可以检查配置后重新发布。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 查看微调后的模型 | 1. 在AI原生应用引擎的左侧导航栏选择"模型中心 \> 我的模型服务"。  2. 在模型服务页面，选择"我的模型"页签，选择"我微调的"子页签。  3. 在"我微调的"列表中查看微调后的新模型，并且可以执行如下操作： - 查看模型信息：单击列表中的模型名称，查看模型信息。  - 查看关联服务：单击列表操作列的"查看关联服务"，查看基于该模型部署的模型服务。  - 删除模型：单击列表操作列的"删除"，删除模型。 如果当前模型已关联模型服务，删除模型会影响模型服务的正常运作，请谨慎操作。      |
| 查看任务详情   | 在模型微调流水线任务列表中，单击任务名称，查看任务的基础信息、参数信息、运行日志以及Loss曲线等详情，并支持对模型之间的关系进行溯源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 重新创建任务   | 1. 在模型微调流水线任务列表中，选择操作列"更多 \> 重新创建"。  2. 在修改微调任务页面，参照[3]\~[4]进行配置。                                                                                                                                                                                                                                                                                                                                   |
| 删除任务     | 如果任务状态为"已发布"，需要先取消发布，才能删除。 1. 在模型微调流水线任务列表中，选择操作列的"更多 \> 删除"。  2. 单击"确认"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
