在人工智能领域,大语言模型(Large Language Models, LLMs)已经成为推动技术进步的关键力量,垂直化训练技术逐渐成为研究的热点,它使得大模型能够更精准地服务于特定行业和应用场景。本文结合达观数据的分享,探讨大语言模型的垂直化训练技术及其在不同领域的应用实践。
大语言模型的垂直化训练:定义与重要性
垂直化训练技术指的是针对特定行业或应用场景,对大语言模型进行定制化训练,使其能够更好地理解和生成特定领域的内容。这种训练方式的重要性在于,它能够提高模型在特定任务上的表现,同时减少对通用数据的依赖。
垂直领域AIGC应用的关键点
对现有的GPT模型进一步挖掘潜力,生成更有性价比的垂直大模型方案
对优质训练数据的蒸馏加工,更好的体现垂直化、专业化的应用
为toB客户量身打造好的大模型方案,探索更好的效果和高价值应用场景
针对垂直应用场景,值得探索prompt等产品创新和功能增强
垂直化训练的难点
- 数据专业性:需要获取和处理大量高质量的专业领域数据。
- 模型泛化能力:在提升特定领域能力的同时,保持模型在通用任务上的表现。
- 资源投入:相较于通用模型训练,垂直化训练可能需要更多的领域专家参与和更精细的数据处理。
大语言模型的垂直化训练技术
参数规模与数据规模的探索
- Scaling Laws:研究表明,模型的效果与参数量、数据量、计算量呈幂次关系,即模型参数量和训练数据量的增加可以显著提升模型性能。
- Compute-Optimal:研究提出,训练数据大小应与模型参数量等比放大,以达到最优的计算效率。
- Open and Efficient:例如,Meta推出的LLaMA模型显示,即使在百亿参数规模,经过大量数据训练后,模型性能仍有显著提升。
研究给出了三种最优计算方式,并且比较了如GPT-3(175B)等千亿模型并没有达到该理论的计算最优点。意味着GPT-3仍未被充分训练(下图)
换言之,当下的干亿参数模型,可能只发挥到了百亿模型的理论效果,一些参数可能被浪费了。
同时可以看到在训练过程中,无论是65B、33B、17B,甚至7B的小模型,在训练数据接近和超过万亿Token之后,下游任务的效果仍在提升(下图)。故此可推测,百亿模型的潜力仍有待深入挖掘,尤其在算力资源受限的情况下存在性价比更高的优化空间
垂直领域预训练路线
垂直领域大模型预训练的三种思路
自适应预训练
路线1:先大规模通用语料预训练,再用小规模领域语料预训练。在大规模通用语料预训练的基础上,使用小规模领域语料进行二次训练,以提升模型在特定领域的表现。
代表模型 GPT3-Codex、Yuyuan-GPT2-3.5B、金融领域FinBERT、生物医学领域BiOBERT等
领域自适应预训练(Domain-Adaptive Pre-Training,DAPT):在模型预训练权重上喂领域语料继续预训练
任务自适应预训练(Task-Adaptive Pre-Traininq,TAPT):在领域任务数据集上继续预训练
OpenAI 探索:当涉及与Code领域无关的文本生成时,Codex的生成和GPT-3的生成差异不大,体现在两者有很多共现的词,区别在于GPT3表述的多样性。
有可能是小规模领域语料预训练后的大模型在自身领域内相比通用大模型增强,而在通用生成上表现与通用大模型相当
直接大规模领域语料预训练
路线2:直接进行大规模领域语料预训练
代表模型:医学领域PubMedGPT2.7B、金融领域BBT-FinT5
数据规模百亿~干亿tokens
模型规模1B~10B
垂直领域大模型在领域上的各任务上通用性 >>小模型
垂直领域大模型在领域任务上效果 >相同规模的通用大模型再finetune
垂直领域大模型所用资源<<通用大模型(数据规模和模型规模),就能达到和超大规模模型在领域上接近的效果
领域语料混合训练
路线3:通用语料比例混合领域语料同时预训练,尚无明确的此类模型。
微调技术探索
增量微调(Delta-tuning)
只更新模型中的少量参数,以降低微调成本,同时保持模型性能。
目标:降低大模型微调成本。由于模型规模的增大,传统微调的方法变得难以实现。更高效率的微调方式,因而称之为增量微调(Delta-tuning)的方法被提出。
方法:Delta tuning只更新少量参数,同时冻结其余占绝大多数的参数。这些年来的研究中,以下几种方法较有代表性:
- Adapter tuning:在PLM的层之间插入适配器模块,并且只有这些插入的模块在微调期间得到更新。
- Prefix tuning:通过更新预先插入的参数来调整PLM
- Prompt tuning:更新任务特定的可训练参数
- BitFit:只更新PLM中的偏差项,同时冻结PLM其余参数。
- LORA:将注意力权重梯度分解为低秩矩阵,以减少可训练参数的数量。
结果显示,delta tuniq和fine tuning之间的差距并非不可逾越,这证明了参数有效自适应的大规模应用的潜力。
多任务提示/指令微调
目标:提升语言模型在多任务中的零样本推理能力。
方法:在多任务数据集上进行微调。微调后的语言模型具有很强的零任务概括能力。
多任务微调也是很多大模型的常用手段。
COT(Chain-of-Thought)微调
目标:使小语言模型获得思维链能力。
大模型的思维链能力,指的是一步一步地展示推理过程能力。但是,研究者发现,小语言模型(通常小于100B)几乎很难获得这种能力。
为了使小模型也拥有思维链的能力,多个研究使用大模型GPT3,PaIM作为教师模型进行训练,使学生模型T5和fanT5获得了一定的思维链能力。
方法:
1.将文本(questions + prompt)输入给大模型
2.用大模型输出含有思维链且正确的文本作为label
3.用上述数据组成的数据对(右图Reasoning samples),直接对小模型进行微调
提示工程和垂直优化
提示工程( Prompt Engineering):在文本上附加额外的提示(Prompt)信息作为输入,将下游的预测等任务转化为语言模型(Language Model)任务,并将语言模型的预测结果转化为原本下游任务的预测结果,挖掘模型的潜力
垂直领域的提示工程:要让模型完成垂直领域的指定任务,必须能在提示中给模型提出明确的要求,垂直领域的专业任务往往有并把期望的表现阐述清楚,提示工程就是使得模型尽可能按照期望输出的过程
提示生成的产品化:复杂的垂直领域任务可能需要极为丰富的prompt信息,包括各类事实、数据、要求等,并存在层层递进的多步骤任务,因此值得探索产品化方案来生成prompt
产品化思路
基于垂直领域的人类专家,针对每项垂直任务,来设计用于生成prompt的产品
1.由垂直领域的人类专家编写大量不同的Prompt
2.评估并选择模型输出效果好的Prompt
3.将固定和变动的prompt片段进行区分,并形成prompt产品,用于后续使用
4.对多层递进的AIGC任务,形成若干prompt产品
自动化思路
通过借过外部工具,或通过自动化的流程方法和训练方式,对Prompt进行自动优化
1.Prompt优化工具、引擎
2.让LLM模型自己提问、优化
3. Automatic Prompt Engineer(APE)
4. Directional Stimulus Prompting (DSP)
模型训练加速思路
-
分布式并行:通过数据并行、模型并行、流水线并行等技术提高模型训练速度。
-
显存优化:采用混合精度训练、Activation Checkpointing、ZeRO方案等技术降低显存占用。
结语
通过针对性的训练和优化,大模型能够在特定领域展现更强大的能力,重塑行业工作流程。如它们自动化生成专业文档,智能提取关键信息,优化搜索结果,并在日常办公任务中提供支持,显著提升效率和生产力等。大语言模型的垂直化训练技术是人工智能领域值得关注的方向。