带你从3方面解析CPM-Bee大模型
内容提要
华为云社区分享了CPM-Bee的技术公开课预告和知识回顾。CPM-Bee是一个开源的百亿参数中英文基座模型,采用Transformer的自回归架构,在超万亿高质量语料上进行预训练。CPM-Bee的模型结构采用统一编码器架构和Pre-LayerNorm结构。CPM-Bee的输入数据可以通过嵌套字典的方式指定,支持多任务的零样本能力。CPM-Bee的使用方法包括预训练、微调和推理。
延伸解读
统一编码器与Pre-LayerNorm的设计考量
CPM-Bee采用统一编码器架构,通过灵活的Attention Mask统一不同子任务,避免了为每个任务单独设计模型结构。同时使用Pre-LayerNorm而非传统的Post-LayerNorm,使训练过程更稳定。这种设计在百亿参数规模下尤为重要,能减少训练中的梯度问题,提升模型收敛性。
嵌套字典输入格式的实用价值
CPM-Bee的输入数据通过嵌套字典指定,不同任务可由字典的键值对灵活定义,形成树结构。这种格式便于支持多任务的零样本能力,开发者无需修改模型结构即可适配填空、多轮对话等任务。例如,填空任务中通过<mask>和<ans>字段明确预测目标,多轮对话则用<用户>和<AI>区分角色。
预训练与微调的数据处理要点
使用CPM-Bee时,预训练需进行数据清洗,每行一个文本并转义换行符,然后编写任务转换脚本将数据随机化格式以增强鲁棒性。微调则要求每行数据转换为含<ans>字段的CPM-Bee可读格式。两者均需配置对应的脚本参数,且微调时学习率需根据训练部署调整。
推理部署的两种路径
CPM-Bee支持基于官方仓库或Huggingface进行推理。前者适合直接使用官方提供的工具链,后者便于融入Huggingface生态,利用其丰富的接口和社区资源。开发者可根据自身技术栈和部署环境选择合适的方式,降低集成成本。
Q&A
CPM-Bee是什么?
CPM-Bee是一个完全开源、允许商用的百亿参数中英文基座模型,发布于2023年5月27日,采用Transformer的自回归架构,在超万亿高质量语料上进行预训练。
CPM-Bee的模型结构有什么特点?
CPM-Bee采用统一编码器架构,通过灵活的Attention Mask统一不同的子任务;并使用了Pre-LayerNorm结构,相比传统的Post-LayerNorm具有更稳定的训练过程。
CPM-Bee如何支持多任务零样本能力?
CPM-Bee通过嵌套字典的方式指定不同任务,字典中存在不同kv段,每个value可以是另一个字典,嵌套字典形成树结构,文本段之间bucket由树上关系决定,从而支持多任务的零样本能力。
CPM-Bee的预训练流程包括哪些步骤?
预训练流程包括:数据清洗(每个文本放置为一行,换行转义为\n)、数据处理(使用py获取二进制数据文件)、编写任务转换脚本(将导入数据转换为随机格式以增强鲁棒性)、便携数据集脚本(通过json进行训练权重分配)、编写预训练脚本并启动预训练(配置scripts/pretrain_cpm_bee.sh参数)。
如何对CPM-Bee进行微调?
微调过程包括:数据清洗(每行数据转换为含<ans>字段的CPM-Bee可读格式)、数据处理(调用py)、配置微调脚本并开启微调(配置scripts/finetune_cpm_bee.sh参数),注意CPM-Bee的learning rate根据训练部署进行调整。
CPM-Bee支持哪些推理方式?
CPM-Bee支持两种推理方式:基于CPM-Bee仓进行推理和基于Huggingface进行推理。