
# 使用数据工程构建三方大模型数据集
#### 构建三方大模型数据集流程
在ModelArts Studio平台中，使用数据工程构建三方大模型数据集流程见[表1]。
 表1三方大模型数据集构建流程 
| 流程        | 子流程      | 说明                                                                                                 | 操作指导                                                                                 |
|:---|:---|:---|:---|
| 导入数据至盘古平台 | 创建导入任务   | 将存储在OBS服务或本地的数据导入至平台统一管理，用于后续加工或发布操作。 **说明：**执行导入操作时，数据集类型选择"其他"。 | [导入数据至盘古平台](https://support.huaweicloud.com/usermanual-pangulm/pangulm_04_0025.html) |
| 加工其他类数据集  | 加工其他类数据集 | 通过自定义加工算子对数据进行预处理，确保数据符合模型训练的标准和业务需求。                                                              | [加工其他类数据集](https://support.huaweicloud.com/usermanual-pangulm/pangulm_04_0292.html)  |
| 发布其他类数据集  | 发布其他类数据集 | 数据发布是将单个数据集发布为特定格式的"发布数据集"，用于后续模型训练等操作。                                                            | [发布其他类数据集](https://support.huaweicloud.com/usermanual-pangulm/pangulm_04_0067.html)  |
   
#### 三方大模型支持接入的数据集类型
三方大模型支持预训练和微调（SFT/LoRA）训练，数据集可支持alpaca数据格式和sharegpt数据格式，如需自定义数据集，可参照这两种格式进行构建。请在公网环境中下载如下示例数据集。
注：sharegpt格式训练数据支持system prompt配置。
LLaMA-Factory Alpaca指令微调数据：数据集包含有以下字段：
- instruction：描述模型应执行的任务。指令中的每一条都是唯一的。
- input：任务的可选上下文或输入。instruction对应的内容会与input对应的内容拼接后作为指令，即指令为instruction\\ninput。
- output：生成的指令的答案。
- system：系统提示词，用来为整个对话设定场景或提供指导原则。
- history： 一个列表，包含之前轮次的对话记录，每一对都是用户消息和模型回复。这有助于保持对话的一致性和连贯性。
```
[
    {
        "instruction": "人类指令（必填）",
        "input": "人类输入（选填）",
        "output": "模型回答（必填）",
        "system": "系统提示词（选填）",
        "history": [
            ["第一轮指令（选填）", "第一轮回答（选填）"],
            ["第二轮指令（选填）", "第二轮回答（选填）"]
        ]
    }
]
```
LLaMA-Factory ShareGPT指令微调数据：ShareGPT格式来源于通过记录ChatGPT与用户对话的数据集，主要用于对话系统的训练。它更侧重于多轮对话数据的收集和组织，模拟用户与AI之间的交互。数据集包含有以下字段：
- conversations：包含一系列对话对象，每个对象都由发言者(from)和发言内容(value)组成。
- from：表示对话的角色，可以是"human"（人类）或"gpt"（机器），表示是谁说的这句话。
- value：具体的对话内容。
- system：系统提示词，用来为整个对话设定场景或提供指导原则。
- tools：描述可用的外部工具或功能的信息，这些工具可能被模型用来执行某些任务或获取更多信息。
```
[
    {
        "conversations": [
            {
                "from": "human",
                "value": "人类指令"
            },
            {
                "from": "function_call",
                "value": "工具参数"
            },
            {
                "from": "observation",
                "value": "工具结果"
            },
            {
                "from": "gpt",
                "value": "模型回答"
            }
            ],
        "system": "系统提示词（选填）",
        "tools": "工具描述（选填）"
    }
]
```
表2数据集文件 
| 数据集用处                                                      | 数据集获取地址                                                                |
|:---|:---|
| 预训练                                                        | <https://www.modelscope.cn/datasets/wanghh2000/pretrain/files>         |
| SFT/LoRA （alpaca 数据格式）  | <https://www.modelscope.cn/datasets/llamafactory/alpaca_gpt4_zh/files> |
| SFT/LoRA (sharegpt 数据格式） | <https://www.modelscope.cn/datasets/thomas/MT-SFT-ShareGPT/files>      |
   
#### 构建三方大模型数据集步骤
在ModelArts Studio大模型开发平台中，使用数据工程构建三方大模型数据集流程可参考[表1]。
创建导入任务
创建导入任务前，请先按照上述要求提前准备数据。
平台支持使用OBS服务导入数据，请详见[通过控制台快速使用OBS](https://support.huaweicloud.com/zh-cn/qs-obs/obs_qs_0001.html)。
创建导入任务步骤如下：
1. 登录ModelArts Studio大模型开发平台，在"我的空间"模块，单击空间名称进入操作空间。
   图1我的空间   
   ![](https://support.huaweicloud.com/usermanual-pangulm/zh-cn_image_0000002571207242.png) 
2. 在左侧导航栏中选择"数据工程 \> 数据获取 \> 导入任务"，单击界面右上角"创建导入任务"。
3. 选择"其他"类型的数据集，并选择训练数据所在的OBS存储位置。（微调作业需具体到文件，预训练作业需选到数据集所在的文件夹）。
4. 单击"立即创建"创建数据集。
5. 在左侧导航栏中选择"数据工程 \> 数据发布 \> 发布任务"，单击界面右上角"创建发布任务"。
6. 选择"其他"类型的数据集，并勾选创建的数据集。单击"下一步"。设置数据用途、数据集可见性，填写数据集名称、描述，设置扩展信息后（可选），单击"确定"进行数据集发布操作。
 
