kcl2 2a73344847 | 1 year ago | |
---|---|---|
.. | ||
.idea | 1 year ago | |
Docs | 1 year ago | |
dataset | 1 year ago | |
pangu_alpha | 1 year ago | |
README.md | 1 year ago | |
ma-pre-start.sh | 1 year ago | |
pangu_alpha.rar | 1 year ago | |
pangu_alpha_.rar | 1 year ago | |
pangu_alpha_TrainWithTnewsData.rar | 1 year ago |
训练语料对一个强大的、可扩展的预训练模型至关重要。一方面,数据量应该足以满足一个预训练大模型的需求。另一方面,数据应是高质量和多样性的,以确保预训练语言模型的通用性。为了覆盖广泛而多样的中文语料库,鹏城实验室大模型团队从Common Crawl、电子书、百科全书、新闻等广泛的资源中收集了大量的原始数据。在此基础上,对数据进行多重过滤和清洗,确保处理后的数据具有高质量和多样性。经过复杂的预处理,得到超大规模高质量中文语料数据集(盘古数据-1.1TB高质量中文语料数据、一带一路多语言数据-1TB高质量多语言语料数据),这些语料数据集经过预处理后具有重要数据价值,但由于很难保证其中没有涉及敏感或安全隐私的数据内容,直接开放具有较大风险。通过AI靶场,研究人员可安全使用这些语料数据,但无法带走数据,实现数据不流出,充分发挥语料数据价值,助推自然语言处理等基础研究的协作快速发展。
您可以参考此案例,基于靶场环境预训练您的大模型,用于以下丰富的场景应用,如知识问答、知识检索、知识推理、阅读理解等文本生成领域。
首先,您可以先打开靶场环境 https://datai.pcl.ac.cn/#/home ,进行注册登录
1. 上传数据集并下载
第一种:若您的数据集大小小于20G,则可以利用靶场云盘的功能上传到数据集
上传完后点击“云盘”,将鼠标放置如下图的位置,显示如下:
## 下载数据集
import wfio
wfio.download_from_cloud_disk('path://8c62d058ce4d47249b961e2a2f8b9712', './data_136.zip')
#进行解压到指定目录,如需改变目录名称请自行修改
!unzip -d ./USER_DATA ./data_136.zip
第二种:若您的数据集大小大于20G,需要联系靶场运营人员开通专属账号进行上传管理。
2. 基于靶场导入盘古数据
点击“数据”,将鼠标放置如下位置,显示如下:
#导入数据集 鹏程PanGu-200G中文语料数据
#测试数据集将下载到当前目录下的"./SAMPLE_DATA"文件夹下,如需改变目录名称请自行修改
import wfio
_INPUT = '{"type":25,"uri":"sample_data/2116/"}'
wfio.load_files(_INPUT, dir_name='./SAMPLE_DATA')
3. 分别对用户上传的数据或盘古数据进行采样
若需要对上传的数据或盘古的数据进行采样,请使用dataset_sample.py,若不需要采样,使用全量数据,请忽略这一步:
举例:对盘古数据进行采样,显示如下:
其中 --file_path 指的是输入的数据集目录
--output_path 存放采样后的数据集目录
--sample_size 提取容量,按MB计算
--save_size 保存单文件size, 单位MB
!python ./dataset/dataset_sample.py --sample_size=30 --save_file_size=0.3 --data_path='./SAMPLE_DATA/data/' --output_path './SAMPLE_DATA/OUTPUT/'
最后将采样的文件都保存在./SAMPLE_DATA/OUTPUT/这个文件夹下
4. 将数据转化为mindrecord文件
请使用脚本pre_process_bc.py:
其中 --data_path 指的是数据集根目录
--num_process 生成mindrecord文件个数
--output_file 保存生成的mindrecord文件目录
运行此脚本,显示如下:
!python ./dataset/pre_process_bc.py --num_process=50 --data_path='./SAMPLE_DATA/OUTPUT/*.txt' --output_file='./output_file/md'
调用靶场API,记录模型训练过程指标等:
打开./pangu_alpha/src/callbacks.py
from wf_analyse.analyse import wflogger
wflogger.log_metrics(metrics={"step": cb_params.cur_step_num + int(self.has_trained_step), "loss":float(loss_value), "scale":int(cb_params.net_outputs[2].asnumpy())}, step=int(epoch_num))
单机单卡运行脚本
设置环境
!bash ./ma-pre-start.sh
import os
from davincirunsdk import start_distributed_train, wait_distributed_train
!python ./pangu_alpha/train.py --data_url=./output_file --distribute=false --run_type=train
或
cmd = ['python', './pangu_alpha/train.py', '--distribute=false',
'--device_num=1',
'--data_url=./output_file',
'--run_type=train',
'--mode=350M',
'--per_batch_size=4']
manager = start_distributed_train(cmd, output_notebook=True)
wait_distributed_train(manager)
单机8卡运行脚本
!pip install davincirunsdk
import os
from davincirunsdk import start_distributed_train, wait_distributed_train
cmd = ['python', './pangu_alpha/train.py', '--distribute=true',
'--device_num=8',
'--data_url=./output_file',
'--run_type=train',
'--parallel_mode=semi_auto_parallel',
'--mode=350M',
'--per_batch_size=4']
manager = start_distributed_train(cmd, output_notebook=True)
wait_distributed_train(manager)
运行此脚本,显示如下:
若完成代码编辑并在样本数据上运行成功后,则可以点击全量运行,如下图所示:
算力:8NPU
数据:采样数据2.5G
总的step数:60000
下载数据(200G)耗时:560s
采样&转mindrecord文件耗时:2900s
本案例以PanGu-350M模型为例在靶场上进行训练。
靶场环境(mindspore 1.7版本) | modelarts(mindspore 1.7版本) | 案例参考 | |
---|---|---|---|
单机单卡 | 支持 | 支持 | 本案例 |
单机8卡 | 支持 | 支持 | 本案例 |
No Description
Text Python Jupyter Notebook Shell other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》