【昇思MindSpore技术公开课】RWKV1-4课程预告与CPM-Bee知识点回顾
昇思MindSpore技术公开课大模型专题第二期课程火爆来袭!未报名的小伙伴抓紧时间扫描下方二维码参与课程,并同步加入课程群,有免费丰富的课程资源在等着你。课程同步赋能华为ICT大赛2023-2024,助力各位选手取得理想成绩!
报名链接:https://xihe.mindspore.cn/course/foundation-model-v2/introduction
【下节课程预告】
考虑到春节假期,昇思MindSpore技术公开课第九讲与第十讲的授课时间做出如下调整,请大家悉知:
- 昇思MindSpore技术公开课第九讲:RWKV1-4调整为2024年2月4日(周日)14:00-15:30
- 昇思MindSpore技术公开课第十讲:MoE调整为 2024年2月24日(周六)14:00-15:30
本周日(2月4日)将为大家带来RWKV1-4的解析,我们将一同见证RNN的兴衰发展与Transformers的迅猛崛起,畅聊Transformers的哪些优劣势有待我们发掘,看新RNN——RWKV能否“击败”Transformer再续往日“辉煌”。游历大模型发展历程,开阔大模型技术视野,一切尽在本周日下午14点 昇思MindSpore技术公开课——第九讲 RWKV1-4,敬请期待!
【课程回顾】
CPM-Bee发布于2023年5月27日,是一个完全开源、允许商用的百亿参数中英文基座模型,也是CPM-Live的第二个里程碑。CPM-Bee采用Transformer的自回归架构(auto-regressive),在超万亿(trillion)高质量语料上进行预训练,拥有强大的基础能力。开发者和研究者可以在CPM-Bee基座模型的基础上在各类场景进行适配来以创建特定领域的应用模型。
在1月20日的课程中,我们有幸邀请到了OpenBMB开源社区技术负责人、CPM-Bee开源大模型项目主要维护者龚柏涛老师,从模型结构、数据格式、MindSpore+CPM-Bee这三方面解析CPM-Bee大模型。下面我们对本期公开课内容进行简单的总结,迎接下一节的深入:
· CPM-Bee模型结构
- CPM-Bee采用了统一编码器架构,通过灵活的Attention Mask统一不同的子任务;并使用了Pre-LayerNorm结构,相比传统的Post-LayerNorm具有更稳定的训练过程
2. Attention Mask通过位置编码和输入数据的格式进行设置,CPM-Bee的位置编码分为两个阶段
a)第一阶段为segment之间统一bucket(即图中、)
b) 第二阶段为segment内部的相对距离,随着相对距离增加进行衰减,弱化远举例token之间的相互影响
c) 如此设计的位置编码可以保持段内位置,同时使段间token的位置关系依赖于段本身,支持更复杂的文本训练
· CPM-Bee输入数据
1.不同任务可由嵌套字典的方式指定,便于支持多任务的零样本能力
a) 字典中存在不同kv段,每个value可以是另一个字典
b) 嵌套字典形成树结构,文本段之间bucket由树上关系决定
2.训练任务与输入数据示例,以填空任务为例
a) 最外层的key为任务类型描述
b) input对应输入内容,其中包含特殊字符<mask>,指定需要预测的位置
c) <ans>对应模型回复,在本示例中,嵌套了<mask>位置的预测内容
3.通过将复杂的多轮对话信息统一在input中,实现多轮对话,其中<用户>和<AI>为特殊符号
a) <用户>对应多轮对话中用户的输入
b) <AI>对应多轮对话中模型的输出
· CPM-Bee使用方法
1.预训练
a) 数据清洗:每个文本放置为一行,换行进行转义变为\n
b) 数据处理:使用py获取二进制数据文件
c) 编写任务转换脚本:为增强格式的鲁棒性,让模型更好地理解文本本身的内容,将导入数据转换为随机的格式,如:input → document, <question> → <query>等,或打乱格式,如将input和question内容拼接等;
d) 便携数据集脚本:通过json来进行训练权重分配
e) 编写预训练脚本并启动预训练:配置scripts/pretrain_cpm_bee.sh参数,启动预训练
2.微调
a) 数据清洗:每行数据转换为含<ans>字段的CPM-Bee可读格式
b) 数据处理:调用py
c) 配置微调脚本并开启微调:配置scripts/finetune_cpm_bee.sh参数,启动微调
d) 注:CPM-Bee的learning rate根据训练部署进行调整
3.推理
a) 基于CPM-Bee仓进行推理
b) 基于Huggingface进行推理
- 点赞
- 收藏
- 关注作者
评论(0)