鹏程.盘古增强版(PanGu-Alpha-Evolution)
简介
盘古增强版,更强的任务理解与处理能力,更加擅长遵循您的任务说明。
目前盘古增强版2.6B GPU版本的模型推理阶段显存占用控制在7G以内,8G显存的机器即可推理。
相关原理和方法,请参见[项目主页]。
要点:
- 创新应用了多任务学习、任务统一格式、提示微调和持续学习技术,对基本版模型进行了能力扩展和增强,性能得到大幅提升。
- 提供了基于盘古大模型进行提示微调和持续学习的性能优化新范式,更好的识别用户的任务说明,同时做到尽量保持模型的原始生成能力。
- 盘古增强版,参数量2.6B,在中英翻译、开放域知识问答、文本分类、摘要生成等能力提升显著,在一张V100 GPU卡上可以完成多路并行推理。
使用方法
环境搭建
目前仅支持pytorch,环境信息:请参考项目主页。
数据准备
如果基于鹏程.盘古增强版做微调或者基于鹏程.盘古直接训练,请参考如下的所有数据准备过程。如果基于鹏程.盘古增强版做推理预测,则只需要参考step1即可。
- step1, 基于统一任务格式将任务数据转换成文本生成形式,也可以直接下载我们提供的已处理好的样本数据做调试实验。
示例:
NLI任务,转换后样例:"推理关系判断:\n前提:新的权利已经足够好了\n假设:每个人都很喜欢最新的福利\n选项:矛盾,蕴含,中立\n答案:中立"
分类任务,转换后样例:"文本分类:\n基本上可以说是诈骗\n选项:积极,消极\n答案:消极"
QA任务,转换后样例:"问题:\n郑州是那个省的\n答案:河南"
翻译任务,转换后样例:"翻译成英文:\n不过他承认,美国与欧洲关系密切。\nHe admitted that the United States was relatively friendly with Europe."
- step2,生成txt文本数据,便于step3程序的处理。
每段完整的内容作为一个数据样本。
样本间用两个换行符\n\n隔开
- step3,数值化,将文本数据转换成能直接输入模型的数值数据。
pytorch
from pcl_pangu.context import set_context
from pcl_pangu.dataset import txt2bin
set_context(backend="pytorch")
txt2bin(input_glob='YOUR_DATASET_TXT_DIR/*', output_prefix='Your_Saving_DIR/text_document')
训练
如果你想利用鹏程.盘古增强版的技术对预训练语言模型如鹏程.盘古做增强训练,可以参考如下实现过程。
首先需要在模型下载页面下载对应的鹏程.盘古基本版
模型,并且解压。
from pcl_pangu.context import set_context
from pcl_pangu.dataset import txt2bin
from pcl_pangu.model import evolution
set_context(backend="pytorch")
data_path = 'path/of/training/dataset'
txt2bin(input_glob='your/txt/path/*.txt', output_prefix=data_path)
config = evolution.model_config_gpu(model='350M', save='path/to/save/ckpt', data_path=data_path)
evolution.train(config)
微调
如果你想基于鹏程.盘古增强版对你的任务数据做进一步的增量训练,可以参考如下实现过程。
首先需要在模型下载页面下载对应的鹏程.盘古增强版
模型,并且解压。
模型微调流程基本和训练的流程一致,只需要更改为调用 model.fine_tune()
。
from pcl_pangu.context import set_context
from pcl_pangu.dataset import txt2bin
from pcl_pangu.model import evolution
set_context(backend="pytorch")
data_path = 'path/of/training/dataset'
txt2bin(input_glob='your/txt/path/*.txt', output_prefix=data_path)
config = evolution.model_config_gpu(model='2B6', save='path/of/your/existing/ckpt', data_path=data_path)
evolution.fine_tune(config)
预测
如果你想利用鹏程.盘古增强版直接用于下游任务的推理,可以参考如下实现过程。
首先需要在模型下载页面下载对应的鹏程.盘古增强版
模型,并且解压。
from pcl_pangu.context import set_context
from pcl_pangu.model import evolution
set_context(backend='pytorch')
config = evolution.model_config_gpu(model='2B6', load='2B6/mode/path')
evolution.inference(config, input="文本分类:\n基本上可以说是诈骗\n选项:积极,消极\n答案:")