大规模预训练模型的呈现,为自然语言解决工作带来了新的求解范式,也显著地晋升了各类NLP工作的基准成果。自2020年,OPPO小布助手团队开始对预训练模型进行摸索和落地利用,从“可大规模工业化”的角度登程,先后自研了一亿、三亿和十亿参数量的预训练模型OBERT。
近期,OPPO小布助手团队和机器学习部联结实现了十亿参数模型“OBERT”的预训练,该模型通过5种mask机制从TB级语料中学习语言常识,在业务上获得了4%以上的晋升;在行业比照评测中,OBERT跃居中文语言了解测评基准CLUE1.1总榜第五名、大规模常识图谱问答KgCLUE1.0排行榜第一名,在十亿级模型上进入第一梯队,多项子工作得分与排前3名的百亿参数模型成果十分靠近,而参数量仅为后者的十分之一,更有利于大规模工业化利用。
图1 CLUE1.1总榜,共9个子工作
图2 KgCLUE1.0,常识图谱问答榜
背景
随着NLP畛域预训练技术的疾速倒退,“预训练+微调”逐步成为解决用意辨认等问题的新范式,通过小布助手团队后期的摸索和尝试,在百科技能分类、闲聊语义匹配、浏览了解答案抽取、FAQ精排等场景曾经上线了自研一亿级模型并获得了显著的收益,并仍有晋升的空间,验证了进一步自研十亿级模型并推广落地的必要性。
小布助手场景波及用意了解、多轮聊天、文本匹配等NLP工作,联合工作[6,14]的教训,小布助手团队预训练到业务落地会按图3所示的形式进行,包含Pretraining、Futher-Pretraing、Fine-tuning&Deployment等阶段。次要有四个特点:
一是表征解耦,对立表征器适配不同上游工作,能够同时满足上游了解类工作和多轮聊天生成工作,更好地满足小布助手丰盛的利用场景;
二是检索加强,检索对象包含常识图谱,以及指标工作相干的通用文本片段等;
三是多阶段,从数据、工作的维度逐渐适应指标场景进行训练,均衡自监督训练和上游成果,定向获取指标场景相干的无监督、弱监督语料数据,进行进一步预训练调优;
四是模型量级以一亿、三亿、十亿级为主,更敌对地反对大规模利用落地。
图3 预训练模型开发&利用计划
OBERT预训练模型
预训练语料
从开源工作[1]试验后果来看,语料的数量和内容多样性越大,上游工作成果会进一步晋升。基于此,小布助手团队收集并荡涤出1.6TB语料,内容蕴含百科、社区问答、新闻等。预处理过程如图4所示。在此特别感谢浪潮共享了源1.0的局部预训练语料,为OBERT模型的训练补充了更充沛的数据资源。
图4 大规模语料预处理流程
预训练任务
得益于数据获取的低成本性和语言模型弱小的迁徙能力,目前NLP预训练支流的工作还是基于分布式假如的语言模型,在单向生成式语言模型(LM),前缀-单向生成式语言模型(Prefix-LM)和双向掩码语言模型(MLM)的抉择上,受工作[2,3]的启发,抉择了MLM作为预训练任务,因为其在上游自然语言了解类(NLU)工作上有更好的成果。
图5 OBERT预训练应用的mask策略示意
一是全词、实体、关键词、短语、短句等词句掩码,能够从不同粒度学习文本表征,是比拟罕用的做法。须要阐明的是,mask局部与应用的上下文图片Context/w 来自同一段落,指标如式(1)。
P (w | Context/w ) (1)
二是思考内部常识加强的表征学习,与REALM[4]、内存加强[5]、ERNIE3.0[6]的做法相似,冀望通过检索与输出相干的天然文本/常识图谱三元组,作为输出的扩大信息,以更好地学习文本表征。对于目前常识加强的预训练范式,次要差别点在知识库k的设置,以及常识检索形式。在OBERT的常识掩码策略中,设置了百科词条(含摘要、关键词等字段)作为知识库,相当于常识图谱中的(Entity,Description,Content)三元组信息,实体链接作为常识检索形式,具体地,给定初始文本,将文本中的实体链接到百度百科等知识库,并将其摘要文本作为上下文的补充,更充沛地学习文本表征,指标如式(2)。
P (w | Context/w , kw ) (2)
小布助手团队首先在一亿级模型上验证了上述mask策略的有效性,其Zero-shot效果显著优于开源base级模型,上游利用时也获得了收益,随后将其利用到十亿级模型训练中。
图6 ZeroCLUE榜单
预训练策略
次要采纳了课程学习,由易到难地晋升训练难度,从而进步训练稳定性[7]。一方面,seqence length从64逐步增大到512,batch size从64减少到5120;另一方面,训练初期mask策略以字词粒度为主(masked span长度小,学习难度低),逐步增大到短语、短句粒度。
训练减速
为了减速OBERT模型的预训练,在分布式训练框架上面临两项挑战:
显存挑战:大模型训练须要存储模型参数、梯度、优化器状态等参数,同时有训练过程产生的两头后果Activation等开销,十/百亿规模参数规模下远超常规GPU显存(V100-32GB);
计算效率挑战:随着训练节点规模的减少,如何联合节点/网络拓扑构造和模型混合并行形式,更大程度施展出节点的算力,放弃训练吞吐量的线性/超线性拓展。
面对上述挑战,基于开源AI训练框架,OPPO StarFire机器学习平台团队研发并利用了以下计划:
1、混合并行:数据并行 + 模型并行 + Zero Redundancy Optimizer (ZeRO)[8];
2、基于节点拓扑感知通信优化;
3、梯度累积。
通过以上优化办法,相比基线训练计划获得29%+的训练吞吐量晋升,能够更疾速地进行OBERT模型的训练迭代,同时也使得百亿甚至更大规模参数模型的预训练变得可行与高效。
微调策略
CLUE1.1工作
小布助手团队围绕预训练模型开发了微调框架,蕴含了FGM[9]、PGD[10]、R-Drop[11]、Noise-tune[12]、Multi-Sample Dropout[13]等晋升微调鲁棒性的形式,也蕴含为上游主工作减少词法辅助工作的配置,应用该框架,只需批改配置文件即可在文本分类、类似度、提槽等不同上游工作中应用上述优化形式,疾速拿到不同优化形式的后果。
KgCLUE1.0工作
小布助手团队复用语音助手的常识问答计划,利用到KgCLUE的常识图谱问答评测工作上;在计划上,基于具备内部常识加强的OBERT大模型,交融ner+similar的pipeline办法和基于生成的计划,获得了第一名的问题。更加难能可贵的是,小布助手仅仅应用单模型而未应用集成就达到了上述问题。
落地计划
在预训练落地实际上,小布助手应用多个NLU(如常识问答NLU、零碎设置NLU、闲聊NLU)来解决各种畛域的问答工作,多个NLU都须要独自应用预训练做上游工作的微调,会带来微小的GPU计算压力。
为了解决上述问题,小布助手提出对立表征计划,如下图7。该计划包含下述三个步骤:
1、预训练
2、多任务微调:实际发现,为了升高全局的计算量,能够固定BERT模型的topM层transformer,只针对工作微调后N层,成果仅比全微调的最优解相差1%以内
3、多任务合并:推理时,在调用NLU前,先进行一次骨干网络的推理后,由各个NLU应用对应的骨干网络层作为上游工作的输出,再进行单任务的推理。
在小布助手的实际落地表明,当上游NLU为10、上游工作均匀微调层数N=3时,对立表征计划下的全局计算量约为全微调计划的27%。
图7 对立表征计划
将来方向
小布助手团队会联合智能助手场景特点继续优化预训练技术,包含利用检索加强范式优化短文本表征、开掘和利用反馈信息构建无监督预训练任务、以及摸索模型轻量化技术减速大模型的落地等。
团队简介
OPPO小布助手团队以小布助手为AI技术落地的要害载体,致力于提供多场景、智慧有度的用户体验。小布助手是OPPO智能手机和IoT设施上内置的智能助手,蕴含语音、倡议、指令、识屏和扫一扫五大能力模块。作为多终端、多模态、对话式的智能助手,小布助手的技术笼罩语音辨认、语义了解、对话生成、常识问答零碎、凋谢域聊天、举荐算法、数字人、多模态等多个外围畛域,为用户提供更敌对天然的人机交互体验。小布助手的技术实力在技术创新及利用上始终保持当先,以后已在多个自然语言解决、语音辨认相干的行业权威赛事及榜单中取得亮眼问题。
OPPO机器学习团队致力于利用ML技术构建一体化平台,晋升AI工程师的全链路开发体验。面向OPPO开发者,提供轻量化、规范的、全栈式的人工智能开发服务平台,在数据处理、模型构建、模型训练、模型部署、模型治理的全链路AI开发环节提供托管式服务及AI工具,笼罩个性化举荐、广告算法、手机影像优化、语音助手举荐、图学习风控、搜寻NLP等几十种落地场景,帮忙用户疾速创立和部署 AI 利用,治理全周期 AI 解决方案,从而助力减速数字化转型并促成 AI 工程化建设。
参考文献
[1] Cloze-driven Pretraining of Self-attention Networks
[2] Pre-trained Models for Natural Language Processing: A Survey
[3] YUAN 1.0: LARGE-SCALE PRE-TRAINED LANGUAGE MODEL IN ZERO-SHOT AND FEW-SHOT LEARNING
[4] REALM: Retrieval-Augmented Language Model Pre-Training
[5] Training Language Models with Memory Augmentation
[6] ERNIE 3.0: LARGE-SCALE KNOWLEDGE ENHANCED PRE-TRAINING FOR LANGUAGE UNDERSTANDING AND GENERATION
[7] Curriculum Learning: A Regularization Method for Efficient and Stable Billion-Scale GPT Model Pre-Training
[8] ZeRO: Memory Optimizations Toward Training Trillion Parameter Models
[9] FGM: Adversarial Training Methods for Semi-Supervised Text Classification
[10] Towards Deep Learning Models Resistant to Adversarial Attacks
[11] R-Drop: Regularized Dropout for Neural Networks
[12] NoisyTune: A Little Noise Can Help You Finetune Pretrained Language Models Better
[13] Multi-Sample Dropout for Accelerated Training and Better Generalization
[14] Mengzi: Towards Lightweight yet Ingenious Pre-trained Models for Chinese