AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


《大模型模式认知到微调及评测》
发布日期:2024-05-27 07:35:11 浏览次数: 2882 来源:数科纵横


摘要:近年来,大模型在人工智能领域取得了显著的成果,为各种应用场景提供了强大的支持。本文旨在探讨大模型模式认知、微调及评测的方法和技巧,以帮助研究人员和开发者更好地利用大模型。

一、引言

大模型,也称为大规模预训练模型,是一种基于深度学习的人工智能模型。它通过在海量数据上进行预训练,学习到了丰富的知识表示,从而在各种下游任务中取得了显著的性能提升。大模型的出现,使得人工智能的应用范围得到了极大的拓展,例如自然语言处理、计算机视觉、语音识别等领域。

二、大模型模式认知

  1. 模型结构认知

  2. 大模型通常采用复杂的深度神经网络结构,如Transformer、CNN、RNN等。这些结构具有不同的特点和优势:

  3. Transformer:Transformer模型,特别是其自注意力机制,使得模型能够同时处理长距离依赖和并行计算,非常适合处理序列数据,如文本。BERT、GPT系列等模型都是基于Transformer架构。

  4. CNN:卷积神经网络在图像处理领域表现出色,能够有效地提取局部特征,对于计算机视觉任务至关重要。

  5. RNN:循环神经网络及其变体LSTM和GRU,能够处理序列数据,但相比Transformer,处理长距离依赖的能力较弱。

  6. 预训练任务认知

  7. 大模型的预训练任务设计对于模型能够学习到的知识表示至关重要。常见的预训练任务包括:

  8. 语言建模:给定一个文本序列,模型需要预测下一个单词或字符。这种任务使得模型能够学习到语言的统计特性和语义信息。

  9. 掩码语言建模:在这种任务中,输入文本的一部分被随机掩码,模型需要预测被掩码的部分。BERT模型就是基于这种预训练任务。

  10. 图像分类:对于视觉模型,预训练任务可能是对图像进行分类,使得模型能够学习到图像的基础特征。

  11. 知识迁移认知

  12. 大模型通过迁移学习将预训练阶段学到的知识应用到下游任务中。迁移学习方法包括:

  13. 微调(Fine-tuning):在微调过程中,模型的参数会被部分或全部调整以适应新的任务。这种方法的优点是模型可以快速适应新任务,但需要较多的标注数据。

  14. 特征提取(Feature Extraction):在这种方法中,模型的预训练参数被冻结,只使用模型的输出作为特征来训练一个新的分类器。这种方法适用于标注数据较少的情况。

  15. 多任务学习(Multi-task Learning):在这种设置下,模型同时在多个任务上进行训练,共享参数的同时也为每个任务学习特定的参数。这有助于模型在不同任务之间共享和转移知识。

  16. 表示能力认知

  17. 大模型的表示能力是指模型内部学习到的数据表示的质量。这包括:

  18. 层次表示:模型能够学习到数据的层次结构,如文本中的词、句子、段落层次。

  19. 泛化能力:模型在面对未见过的数据时仍能做出准确的预测。

  20. 鲁棒性:模型在面对噪声、干扰或对抗性攻击时仍能保持性能。

  21. 5. 注意力机制和可解释性

  22. 注意力机制在大模型中扮演着关键角色,它提供了模型如何分配注意力的可视化,增强了模型的可解释性。通过注意力权重,我们可以了解到模型在做出决策时关注的重要部分,这对于理解和改进模型至关重要。

  23.  模型压缩和优化

  24. 由于大模型通常具有大量的参数和计算资源需求,模型压缩和优化成为了一个重要的研究方向。这包括知识蒸馏、参数共享、模型剪枝等方法,旨在减少模型大小和提高推理速度,同时保持性能。

  25. 通过深入理解大模型的这些方面,研究人员和开发者可以更有效地设计和应用这些模型,推动人工智能技术的发展和应用。

综合以上我们如何快速理解大模型在实际应用中的模式呢?通过总结梳理出生成式AI的智能革命演化至今,从人机协同呈现了三种模式::Embedding、Copilot、Agent

  1. 模式:某个环嵌入(embedding):节里去调用大模型用户通过与AI进行语言交流,使用提示词来设定目标,然后AI协助用户完成这些目标。比如普通用户向生成式AI输入提示词创作小说、音乐作品、3D内容等,在这种模式下,A的作用相当于执行命令的工具,而人类担任决策者和指挥者的角色。


    方案实现:

    在LLM基础上,加领域语料,增量预训练、微调,融入领域知识,根据业务场景,增加特殊逻辑,这部分涉及两部分工作:

    基座大模型训练:各行各业都在训自己的大模型,金融、医疗、教育、数字人,甚至宗率

    业务场景落地:

    适配业务场景,升级或重松现有对话产品的局部

    各行各业都在训自己的大模型,金融、医疗、教育、数字人,甚至宗教。

2.副驾驶(Copilot)模式:每个环节2.都可以跟大模型进行交互

   在这种模式下,人类和AI更像是合作伙伴,共同参与到工作流程中,各自 发挥作用,AI介入到工作流程中,从提供建议到协助完成流程的各个阶段。比如,在软件开发中,AI可以为程序员编写代码、检测错误或优化性能提供帮助,人类和AI在这个过程中共同工作,互补彼此的能力,AI更像是一个知识丰富的合作伙伴,而非单纯的工具。


    实际上,2021年微软在GitHub首次引入了Copilot(副驾驶)的概念。GitHub Copilot是一个辅助开发人员编写代码的AI服务。2023年5月,微软在大模型的加持下,Copilot迎来全面升级,并提出“Copilot是一种全新的工作方式的理念工作如此生活也需要。

    在这种模式下,人类和AI更像是合作伙伴,共同参与到工作流程中,各自发挥作用,AI介入到工作流程中,从提供建议到协助完成流程的各个阶段。比如,在软件开发中,AI可以为程序员编写代码、检测错误或优化性能提供帮助,人类和AI在这个过程中共同工作,互补彼此的能力,AI更像是一个知识丰富的合作伙伴,而非单纯的工具。

    

方案实现:

以LLM为核心,end2end架构实现新版对话系统,用prompt engineering复现原有主要模块既然大模型这么厉害,下游任务只需调prompt,那就用prompt去完成对话功能,替换原有功能模块就好了:

角色模拟:system prompt中设置即可,大模型的强项

闲聊任务:满足,一次调用即可

简易问答:如果是通用领域知识,一次调用

以LLM为核心,end2end架构实现新版对话系统,用prompt engineering复现原有主要模块:既然大模型这么厉害,下游任务只需调prompt,那就用prompt去完成对话功能,替换原有功能模块就好了:

角色模拟:system prompt中设置即可,大模型的强项

闲聊任务:满足,一次调用即可

简易问答:如果是通用领域知识,一次调用即可,如果是垂直领域,需要额外融入知识(prompt中植入/微调),如果涉及实时查询、工具,还需要结合Plugin、FunctionCall,一般1-3次调用

多轮任务:prompt中设置对话逻辑(类似上一代有限状态机FSM),简单任务满足,功能接口借助Plugin、Function Call实现,同时增加记忆单元(如借助LangChain),但复杂任务不好办,如:任务状态处理逻辑复杂、场景嵌套、API较多等。即便是FSM场景也受限(如图),而订餐这类场景只是多轮对话中的一种简单形式,至于更复杂的循环、中断、嵌套、多阶就不用提了,如信用卡业务场景下,各种流程跳转,简易对话无能为力,只好用比FSM(图)更高级的方法,Frame(槽填充+树)、Goal(树+栈+字典),大模型用data-driven结合强化习更合适。

推荐型:边聊边推,设计推荐的prompt,-次调用,但依赖具体形态,聊天场景推荐对时延要求低,启用流式输出可以缓冲,而输入是输入提示这类场景,大模型的速度就堪忧了。

全部采用大模型后,以常规的对话系统为例一次对话过程可能涉及1~10次大模型调用,这用户体验可想而知。这种思路是把原来对话系统所有的功能都用生成式方法(自回归语言模型,GPT为代表)解决,实际上,生成式只是小部分,大部分任务是理解式任务(掩码语言模型,BERT为代表),如意图识别、槽位抽取、状态跟踪等输出空间有限,这时用生成式方法,天然就慢半拍。

实际落地时,新的问题出来了:

极度依赖prompt:提示语稍微变更下,加个空格,结果可能就相差十万八千里,每个场景都需要仔细调试prompt,换个模型又要重新开始。

速度慢:实在是慢,正常情况1-3s回复,如果句子长,要持续等待,直至流式输出结束。这对高并发、低时延要求的对话产品简直是“噩耗”

不可控:即便在prompt里明确要求不要超过30字,结果LLM当成耳边风,还是会超出字数。任务型对话里的业务处理逻辑往往要求准确无误了

幻觉:一本正经的胡说八道

黑盒:大模型到底是怎么执行对话策略的?不知道,充满了玄学意味,涌现到底是个啥?这对高度可控的场景十分致命。

对于速度问题,短期内只能依靠别的方法提速了,如:

各种模型加速推理技术

部分功能回退:如不适合生成式方法的NLU/DM

推进end2end方法:将多轮会话训入大型,延续之前的end2end思路

*智能体(Agent)模式:模型,大模型即可自行计划、分解和自动执行

人类设定目标和提供必要的资源(例如计算能力),然后AI独立地承担大部分工作,最后人类监督进程以及评估最终结果。

这种模式下,AI充分体现了智能体的互动性、自主性和适应性特征,接近于独立的行动者,而人类则更多地扮演监督者和评估者的角色

抛弃过往模块化思路,站在任务角度,通过Agent去执行对话任务:

LLM诞生之初,大家对于其能力的边界还没有清晰的认知,以为有了LLM就可以直通AGI了,路线:LLM -> AGI

过了段时间,发现LLM的既有问题(幻觉问题、容量限制....),并不能直接到达AG1,于一是路线变成了:LLM ->Agent ->AGI

借助一个/多个Agent,构建一个新形态,继续实现通往AGI的道路。但这条路是否能走通,以及还面临着哪些问题,有待进一步验证。

抛弃过往模块化思路,站在任务角度,通过Agent去执行对话任务:

LLM诞生之初,大家对于其能力的边界还没有清晰的认知,以为有了LLM就可以直通AG了,路线: LLM ->AGI

过了段时间,发现LLM的既有问题(幻觉问题、容量限制.),并不能直接到达AGI,于是路线变成了:LLM ->Agent ->AG

借助一个/多个Agent,构建一个新形态,继续实现通往AGI的道路。但这条路是否能走通,以及还面临着哪些问题,有待进一步验证。

由于大模型的出现,AlAgents 衍生出了一种新的架构形式:《LLM Powered AutonomousAgents》

将最重要的「任务规划」部分或完全交由LLM,而做出这一设计的依据在于默认:LLM具有任务分解和反思的能力。

最直观的公式:

Agent = LLM Planning+ Feedback +Tool use

这种思路更加灵活,贴近AGI,想象空间巨大,成为继模型训练后又一个角斗场。

三、大模型微调

  1. 微调策略:微调是大模型应用于下游任务的关键步骤。根据任务需求和数据特点,选择合适的微调策略,如固定部分参数、调整学习率等,可以提高模型的性能。

  2. 数据增强:数据增强是一种提高模型泛化能力的方法。在大模型微调过程中,通过数据增强技术,如文本填充、图像旋转等,可以进一步提高模型的性能。

  3. 模型融合:通过集成多个大模型的预测结果,可以提高模型的鲁棒性和准确性。了解不同模型融合方法,如加权平均、堆叠等,有助于提高下游任务的性能。



大模型微调,从框架到技术细节:

通俗来讲:大模型微调指的是“喂“给模型更多信息,对模型的特定功能进行“调教”,即通过输入特定领域的数据集,让其学习这个领域的知识,从而让大模型能够更好的完成特定领域的NLP任务,例如情感分析、命名实体识别文本分类、对话聊天等

LLM大语言模型 一般训练过程

Step 1.预训练阶段

大模型首先在大量的无标签数据上进行训练,预训练的最终目的是让模型学习到语言的统计规律和一般知识。

在这个过程中模型能够学习到词语的语义、句子的语法结构、以及文本的一般知识和上下文信息。需要注意的是,预训练本质上是一个无监督学习过程得到预训练模型(Pretrained Model),也被称为基座模型(Base Model),模型具备通用的预测能力。如GLM-130B模 型、OpenAI的A、B、C、D四大模型,都是基座模型;

Step 2.微调阶段

预训练好的模型然后在特定任务的数据上进行进一步的训练。这个过程通常涉及对模型的权重进行微小的调整,以使其更好地适应特定的任务;得到最终能力各异的模型,例如 gpt code系列、gpt text系列、 ChatGLM-6B等模型;

大语言模型微调算法基本背景及核心概念介绍

微调并不是大模型领域独有的概念,而是伴随着深度学习技术发展,自然诞生的一个技术分支,旨在能够有针对性的调整深度学习模型的参数(或者模型结构),从而能够使得其更佳高效的执行某些特定任务,而不用重复训练模型伴随着大模型技术的蓬勃发展,微调技术一跃成为大模型工程师必须要掌握的核心技术。并且,伴随着大模型技术的蓬勃发展,越来越多的微调技术也在不断涌现;

微调数据:不同于大模型预训练过程可以代入无标签样本,深度学习模型微调过程 需要代入有标签的样本来进行训练,微调的本质是一个有监督学习过程;

微调的本质:相比海量数据在超大规模模型上进行预训练,微调只需要一部分有标 签数据、并对模型的部分参数进行修改即可使得模型获得某种特殊能力;因此,从所需数据量和算力消耗来看,相比于训练微调的门槛和成本都要低很多

例如:对于一个经过预训练的大模型,如果我们代入诸多标有“垃圾邮件“和“非垃圾 邮件”的标签文本进行训练,则可训练其具备垃圾邮件分类这一能力;

从模型本身角度而言:微调阶段相当于是进一步进行训练,该过程会修改型参数,并最终使模型“记住"了这些额外信息;让大模型永久记住信息的唯 一方法就是修改参数;

微调与高效微调

微调,Fine-Tuning,一般指全参数的微调(全量微调),指是一类较早诞生的微调方法,全参数微调需要消耗大量的算力,实际使用起来并不方便因此不久之后又诞生了只围绕部分参数进行微调的高效微调方法;

高效微调,State-of-the-art Parameter-Efficient Fine- Tuning(SOTAPEFT),特指部分参数的微调方法,这种方法算力功耗比更高,也是目前最为常见的微调方法

除此之外,Fine-Tuning可以代指全部微调方法,同时0penAl中模型微调AP1的名称也是Fine-Tuning,需要注意的是,OpenAl提供的在线微调方法也是-种高效微调方法,并不是全量微调;

微调的方法有哪些?

第一类方法: 借助OpenAI提供的在线微调工具进行微调

第二类方法: 借助开源微调框架进行微调;

借助OpenAI提供的在线微调工具进行微调

*OpenAI提供了GPT在线大模型的微调API: Fine-tuning,用于在线微调在线大模型;

*目前支持A、B、C、D四大模型在线微调;根据格式要求在线提交数据集并支付算力费用,即可在线进行模型微调;

*微调后会生成单独模型的API供使用;一个模型可以多次微调,□ OpenAI在线微调是黑箱算法;

OpenAI提供的了“傻瓜式“微调流程,用户只需要

按照格式要求,准备并上传数据集

排队、支付费用并等待微调模 型训练完成;

赋予微调模型API单独编号,调用API即可使用;

借助开源微调框架进行微调(以下均属于借助开源微调框架进行微调)

基于强化学习的进阶微调方法RLHF

RLHF: Reinforcement Learning from Human Feedback, 即基于人工反馈机制的强化学习。最早与2022年4月,由0penAI研究团队系统总结并提出,并在GPT模型的对话类任务微调中大放异彩,被称为 ChatGPT“背后的功臣”; RLHF也是目前为止常用的、最为复杂的基于强化学 习的大语言模型微调方法,目前最好的端到端RLHF 实现是DeepSpeedChat库,由微软开源并维护;

RLHF训练流程

步骤1: 监督微调(SFT)使用精选的人类回答来微调预训练的语言模型--以应对各种查询;

步骤2: 奖励模型微调 -- 使用一个包含人类对同一査询的多个答案打分的数据集来训练一个独 立的(通常比 SFT 小的)奖励模型(RW);步骤3: RLHF 训练 -- 利用 Proximal Policy Optimization(PPO)算法,根据RW 模型的奖励 反馈进一步微调 SFT 模型。

RLHF是实现难度最大的微调方法,不太支持windows系统,最好使用linux系统。

以下是五个高效微调方式列举:

1、LORA

简介

自然语言处理目前存在一个重要范式:一般领域数据的大规模预训练,对特定任务或领域的适应(finetune)。

但是随着预训练语言模型越来越大,这个范式存在以下问题:

1.当我们 finetune 大模型时,由于训练成本太高,不太可能重新训练所有模型参数

2.以前的方法都或多或少有其它性能问题,如 adapter 增加了模型层数,引入了额外的推理延迟;prefix-tuning 比较难训练,效果不如直接 finetune

基于上述背景,得益于前人的一些关于内在维度(intrinsic dimension)的发现:

模型是过参数化的,它们有更小的内在维度,模型主要依赖于这个低的内在维度(low intrinsic dimension)去做任务适配。假设模型在任务适配过程中权重的改变量是低秩(low rank)的,由此提出低秩自适应(LoRA)方法,LORA 允许我们通过优化适应过程中密集层变化的秩分解矩阵来间接训练神经网络中的一些密集层,同时保持预先训练的权重不变。

方法:

LoRA 的实现思想很简单

如下图所示,就是冻结一个预训练模型的矩阵参数,并选择用 A和 8矩阵来替代,在下游任务时只更新 A 和 B。

结合图片来看,LORA 的实现流程如下:

1.在原始预训练语言模型(PLM)旁边增加一个旁路,做一个降维再升维的操作,来模拟所谓的内在秩。

2.训练的时候固定 PLM 的参数,只训练降维矩阵 A 与升维矩阵 B.

3.模型的输入输出维度不变,输出时将 BA 与 PLM 的参数叠加。

4.用随机高斯分布初始化 A,用0矩阵初始化 B,保证训练的开始此旁路矩阵依然是 0 矩阵。

实现

接下来从公式上解释 LoRA 的实现。

假设要在下游任务微调一个预训练语言模型(如 GPT3),则需要更新预训练模型参数,公式表示如下:

W0 是预训练模型初始化的参数,AW 就是需要更新的参数。如果是全参数微调,则它的参数量=W0 参数量(如果是 GPT3,则AW≈175B)。从这可以看出要全参数微调大语言型,小家小户是不可能的。

由于前人的工作发现预训练的语言模型具有较低的“内部维度(intrinsic dimension)",在任务适配过程中,即使随机投影到较小的子空间,仍然可以有效地学习。因此,LoRA 做的就是增加小参数模块去学习改变量 AW。

在训练过程中,w8 是固定不变的,只有A和B包含训练参数,是变化的。

而在推理的过程中,只需要把改变量放回原模型,就不会有任何延迟。如果想切换任务,只需要切换任务的过程中,减去 BA,然后换上用其它任务训练好的 B'A' 就可以了。

总结
总的来说,基于大模型的内在低秩特性,增加旁路矩阵来模拟 fullfinetuning,LoRA 是一个能达成 lightweight finetuning 的简单有效的方案。目前该技术已经广泛应用于大模型的微调,如 Alpacastable diffusion+LoRA,而且能和其它参数高效微调方法有效结合例如State-of-the-art Parameter-Efficient Fine-Tuning (PEFT)

2、Adapter

简介:2019 年,Houlsby N 等人将 Adapter 引入 NLP 领域,作为全模型微调的一种替代方案。Adapter 主体架构下图所示。

在预训练模型每一层(或某些层)中添加 Adapter 模块(如上图左侧结构所示),微调时冻结预训练模型主体,由 Adapter 模块学习特定下游任务的知识。

每个 Adapter 模块由两个前馈子层组成,第一个前馈子层将 Transformer 块的输出作为输入,将原始输入维度 d投影到 m,通过控制 m 的大小来限制Adapter 模块的参数量,通常情况下 m<<d.

在输出阶段,通过第二个前馈子层还原输入维度,将m 重新投影到 d,作为 Adapter 模块的输出(如上图右侧结构)。

通过添加 Adapter 模块来产生一个易于扩展的下游模型,每当出现新的下游任务,通过添加 Adapter 模块来避免全模型微调与灾难性遗忘的问题。

Adapter 方法不需要微调预训练模型的全部参数,通过引入少量针对特定任务的参数,来存储有关该任务的知识,降低对模型微调的算力要求。

Adapter 算法改进

2020 年,Pfeiffer]等人对 Adapter 进行改进,「提出 AdapterFusion 算法,用以实现多个 Adapter 模块间的最大化任务迁移」(其模型结构如下图所示)。

AdapterFusion 将学习过程分为两个阶段:

1.「知识提取阶段」:训练 Adapter 模块学习下游任务的特定知识,将知识封装在 Adapter 模块参数中。

2.[知识组合阶段」:将预训练模型参数与特定于任务的 Adapter参数固定,引入新参数学习组合多个 Adapter 中的知识,提高模型在目标任务中的表现。

其中首先,对于 N 的不同的下游任务训练 N 个 Adapter 模块。然后使用 AdapterFusion 组合 N 个适配器中的知识,将预训练参数 日 和全部的 Adapter 参数 Φ 固定,引入新的参数 Ψ,使用 N 个下游任务的数据集训练,让 AdapterFusion 学习如何组合 N 个适配器解决特定任务。参数 Ψ 在每一层中包含 Key、Value 和 Query (上图右侧架构所示)。

在 Transformer 每一层中将前馈网络子层的输出作为 Query,Value 和 Key的输入是各自适配器的输出,将 Query 和 Key 做点积传入 SoftMax 函数中根据上下文学习对适配器进行加权。

在给定的上下文中,AdapterFusion 学习经过训练的适配器的参数混合,根据给定的输入识别和激活最有用的适配器。

Adapter Fusion 在 Adapter 的基础上进行优化,通过将学习过程分为两阶段来提升下游任务表现。对全模型微调(Ful)、Adapter、AdapterFusion 三种方法在各个数据集上进行和对比试验。AdapterFusion 在大多数情况下性能优于全模型微调和 Adapter,特别在 MRPC(相似性和释义任务数据集)与 RTE(识别文本蕴含数据集)中性能显著优于另外两种方法。

3、Prefix-tuning

简介:前缀微调(prefix-tunning),用于生成任务的轻量微调。前缀微调将一个连续的特定于任务的向量序列添加到输入,称之为前缀,如下图中的红色块所示。与提示(prompt)不同的是,前缀完全由自由参数组成,与真正的 token 不对应。

相比于传统的微调,前缀微调只优化了前缀。因此,我们只需要存储一个大型 Transformer 和已知任务特定前缀的副本,对每个额外任务产生非常小的开销。

方法:考虑两个生成任务:table-to-text 和摘要任务。

关于前缀/提示的设计,可以给模型若干的字词作为提示,比如我们想让模型生成“Obama”,那可以在其常见的搭配前加上上下文(例如,Barack),那么LM 就会把更高的可能性分配给想要的单词。

但是对于很多生成任务来说,找到合适的离散的前缀进行优化是非常困难的,尽管它的效果是不错的,

因此本文将指令优化为连续的单词嵌入,而不是通过离散的 token 进行优化,其效果将向上传播到所有 Transformer 激活层,并向右传播到后续的token。严格来说,这比离散提示符更具表达性,后者需要匹配嵌入的真实单同。

目标函数依旧是公式(2),但是语言型的参数是固定的,只更新前缀参数。除此之外,直接更新前缀参数会出现不稳定的情况,甚至模型表现还有轻微的下降,因此对前缀参数矩阵进行重参数化:

4、p-tuning

P-tuning 是稍晚些的工作,主要针对 NLU 任务。对于 BERT 类双向语言模型采用模版(P1,x,P2,[MASK],P3),对于单向语言模型采用(P1,x,P2,[MASK]):

同时加了两个改动:

1.考虑到预训练模型本身的 embedding 就比较离散了(随机初始化+梯度传回来小,最后只是小范围优化),同时 prompt 本身也是互相关联的,所以作者先用 LSTM 对 prompt 进行编码;

2.在输入上加入了 anchor,比如对于 RTE 任务,加上一个问号变成[PRE][prompt tokens][HYP]?[prompt tokens][mask]后效果会更好。p-tuning 的效果很好,之前的 Prompt 模型都是主打小样本效果,而 P-tuning 终于在整个数据集上超越了精调的效果:

5、prompt-tuning

Prompt-tuning 给每个任务定义了自己的 Prompt,拼接到数据上作为输入同时 freeze 预训练模型进行训练,在没有加额外层的情况下,可以看到随着模型体积增大效果越来越好,最终追上了精调的效果:

同时,Prompt-tuning 还提出了 Prompt-ensembling,也就是在一个 batch 里同时训练同一个任务的不同 prompt,这样相当于训练了不同「模型」,比模型集成的成本小多了。

四、大模型评测

  1. 评价指标:根据下游任务的性质,选择合适的评价指标,如准确率、召回率、F1值等,可以全面评估模型的性能。

  2. 模型分析:通过对大模型进行误差分析、注意力可视化等,可以深入了解模型的决策过程,为进一步优化模型提供依据。

  3. 鲁棒性测试:通过对模型进行对抗攻击、噪声干扰等测试,可以评估模型的鲁棒性,为实际应用场景提供保障。



总体思路:

1.验证集性能评估(ValidationSet Performance Evaluation)

-说明:将数据集分割出来的一部分作为验证集,来测试模型的性能(即输出效果)这些数据没有在训练过程中被使用过,这样能判断模型是否在新数据上输出好的结果,-例子:这就像在菜看大赛之前做一次彩排,用一些未公开过的菜品(如宫爆鹅丁)测试厨师的烹饪技能,确保在正式比赛中表现出色。

2.交叉验证(Cross-validation)

说明:通过将数据划分为多个小的子集轮流使用其中一个子集作为验证集而其余子集用作训练集,来评估模型的泛化能力。-例子:就像做了几道不同的菜,然后分别在不同的顾客群体中进行试吃,以确保每一道菜都能得到广泛的认可。

3.测试集性能评估(Test SetPerformance Evaluation,

说明:将数据集分割出来的一部分作为测试集,来评估模型的最终性能,这是对模型的最终考验。

-例子:类似于在烹饪比赛的决赛中,裁判们会品尝厨师的菜品来做出最后的评价和打分。

4.指标计算(Metric

Calculation)

-说明:根据模型要做的任务不同,使用多种评估指标评估模型的性能。包括:精确度、召回率、F1分数、BLEU分数(对于翻译任务)等。

-例子:在菜着大赛中,评委会根据味道外观、创意等多个维度给菜肴打分

5.错误分析(Error Analysis)

-说明:对模型做出的错误预测进行分析,以识别模型性能不佳的根本原因,

-例子:如果某道菜在比赛中评分不高,厨师会仔细分析哪个环节出了问题,是口味,装饰还是原料处理不当。

6.对抗样本测试(AdversarialExample Testing)

-说明:用特别设计的测试样本挑战模型这些样本通常包含故意的“陷阱”,用来测试模型的鲁棒性。

例子:在美食节上,可能会有顾客请求特制菜品,比如说素食版的传统肉菜,以测试厨师的调整能力。

7.鲁棒性(Robustness)

-说明:这个概念很常见,是指模型在面对各种不同、未知的输入数据时仍然能够保持其正常性能且可用。

-例子:你是一个厨师,你的特长是制作美味的汤。鲁棒性在这里类似于你作为厨师能够在各种条件下都做出好汤。比如在厨房里忙乱时、使用不熟悉的炊具时,你依然能够呈现给顾客美味的汤。

8.AB测试(A/B Testing)

-说明:同时运行两个或多个模型版本,将用户随机分配给不同的模型版本,比较不同模型在实际应用中的性能。

-例子:餐厅可能会同时提供两种不同风味的汤品,看看哪种更受顾客欢迎

9.长期监控(Long-term

Monitoring)

-说明:即使模型已经部署,也需要持续监控它的性能,确保随着时间的推移,它仍然按预期运行。

-例子:就像餐厅需要持续监控顾客反馈和菜品质量一样,确保服务始终保持最高标准。

评测工具汇总:

MMLU

全称 Massive Multitask Language

Understanding,是一种针对大模型的语言理解能力的测评,是目前最著名的大模型语义理解测评之一,由 UC Berkeley 大学的研究人员在 2020 年9月推出。该测试涵盖 57 项任务包括初等数学、美国历史、计算机科学、法律等。任务涵盖的知识很广泛,语言是英文,用以评测大模型基本的知识覆盖范围和理解能

力。

论文地址:https:/arxiv.org/abs/2009.03300

官方网

站:https://paperswithcode.com/dataset/mmlu

大模型排行

榜:https://paperswithcode.com/sota/multi-task-anguage-understanding-on-mmlu

C-EvalC-Eyal 是一个全面的中文基础模型评估套件由上海交通大学、清华大学和爱丁堡大学研究人员在2023年5月份联合推出,它包含了13948 个多项选择题,涵盖了52个不同的学科和四个难度级别,用以评测大模型中文理解能力。论文地址:https://arxiv.org/abs/2305.08322项目地址: https://github.com/SJTU-LIT/ceva官方网站:https://cevalbenchmark.com/

SuperCLUE

中文通用大模型综合性评测基准,从三个不同的维度评价模型的能力:基础能力、专业能力和中文特性能力。

其中基础能力能力包括: 语义理解、对话、逻辑推理、角色模拟、代码、生成与创作等 10项能力。

专业能力包括:包括了中学、大学与专业考试涵盖了从数学、物理、地理到社会科学等 50多项能力。

中文特性能力:针对有中文特点的任务,包括了中文成语、诗歌、文学、字形等 10 项多种能力。项目地址:

https://github.com/CLUEbenchmark/SuperC

LUE

官方网站: https://www.cluebenchmarks.com/SuperCLUE 琅琊榜

中文通用大模型匿名对战评价基准,与ChatbotArena 相同以众包方式让不同的大模型产品进行匿名、随机的对抗测评,结果基于Elo 评级系统。

项目地址:

https://github.com/CLUEbenchmark/SuperC

LUEIyb

Chatbot Arena

ChatbotArena 是一个大型语言模型(LLM)

的基准平台,该项目方 LMSYS Org 是由加州大学伯克利分校、加州大学圣地亚哥分校和卡内基梅隆大学合作创立的研究组织。

以众包方式进行匿名随机对战的 LLM 基准平台。通过 demo 体验地址进入对战平台。输入自己感兴趣的问题,提交问题后,匿名模型会两两对战,分别生成相关答案,需要用户对答案做出评判,从4个评判选项中选择一个:模型 A 更好、模型 B 更好、平手、都很差。支持多轮对话。最终使用 Elo 评分系统对大模型的能力进行综合评估。(可以自己指定模型看效果,但不计入最终排名情况)。

项目地址:

https://github.com/lm-sys/FastChat

官方网站:https://chat.lmsys.org/

FlagEval

FlagEval(天秤)由智源研究院将联合多个高校团队打造,是一种采用“能力一任务一指标”三维评测框架的大模型评测平台,旨在提供全面、细致的评测结果。该平台已提供了 30 多种能力、5 种任务和 4 大类指标,共 600 多个维度的全面评测,任务维度包括 22个主客观评测数据集和 84433 道题日。FlagEval(天秤)第一期已推出大语言模型评测体系、开源多语言文图大模型评测工具mCLIP-Eyal 和开源文图生成评测工具

ImageEval。天秤平台还将继续探索语言大模

型评测与心理学、教育学、伦理学等社会学科的交叉研究,以期更加科学、全面地评价语言大模型。FlagEval针对大模型开发者和使用者,旨在帮助各个开发团队了解自身模型的薄弱之处,并推动技术创新。项目地址:

https://github.com/FlagOpen/FlagEval官方网站:https://flageval.baai.ac.cn/

OpenCompass2023年8月,上海人工智能实验室(上海AI实验室)正式推出 OpenCompass 大模型开放评测体系,通过完整开源可复现的评测框架,支持大语言模型、多模态模型各类模型的一站式评测,并定期公布评测结果榜单。官方网站:https:/opencompass.org.cn/项目地址:

https://github.com/open-compass/opencompass

JioNLP考察 LLM 模型对人类用户的帮助效果、辅助能力,可否达到一个“智能助手”的水平题型选择题来源于中国大陆国内各种专业性考试。重点在于考察模型对客观知识的覆盖面,占比32%;主观题来源于日常总结,主要考察用户对 LLM 常用功能的效果。项目地

址:https://github.com/dongrixinyu/ioNLP/wki/LLI 评测数据集

清华安全大模型测评清华收集的一个评测集,涵盖了仇恨言论、偏见歧视言论、犯罪违法、隐私、伦理道德等八大类别,包括细粒度划分的 40 余个二级安全类别。

地址:http://115.182.62.166:18000LLMEval-3

由复旦大学 NLP 实验室推出,聚焦于专业知识能力评测,涵盖哲学、经济学、法学、教育学、文学、历史学、理学、工学、农学、医学军事学、管理学、艺术学等教育部划定的 13个学科门类、50 余个二级学科,共计约20W道标准生成式问答题目。为了防止刷榜现象的发生发生,LLMEval-3 评测采用了一种新颖的评测模式,即“题库考试”模式。地址:http://llmeval.com/

GAOKA0-BenchGAOKAO-bench 是一个以中国高考题目为数据集,测评大模型语言理解能力、逻辑推理能力的测评框架。项目地

址:https://github.com/OpenLMLab/GAOKAO-Bench

PandaLM其是直接训练了一个自动化打分模型,0.1.2三分制用模型对两个候选模型进行打分。项目地址:

https://github.com/e0penML/PandaLM

BIG-bench

google 推出的一个评测集,BIG-bench 由204 项任务组成,任务主题涉及语言学、儿童发展、数学、常识推理、生物学物理学、社会偏见、软件开发等等领域的问题。项目地

址:https://github.com/google/BlG-bench

MMCU甲骨易 AI研究院提出一种衡量中文大模型处理多任务准确度的测试,数据集的测试内容涵盖四大领域:医疗、法律、心理学和教育。题目的数量达到1万+,其中包括医疗领域2819 道题,法律领域 3695 道题,心理学领域2001 道,教育领域 3331道。项目地

址:https://github.com/Felixgithub2017/MMC

AGI Eyal

微软发布的大模型基础能力评测基准,在2023年4月推出,主要评测大模型在人类认知和解决问题的一般能力,涵盖全球 20 种面向普通人类考生的官方、公共和高标准录取和资格考试,包含中英文数据。因此,该测试更加倾向于人类考试结果,涵盖了中英文。

论文地址:https://arxiv.org/abs/2304.06364

GSM8K

OpenAl 发布的大模型数学推理能力评测基准涵盖了 8500 个中学水平的高质量数学题数据集。数据集比之前的数学文字题数据集规模更大,语言更具多样性,题目也更具挑战性。项测试在 2021 年 10 月份发布,至今仍然是非常困难的一种测试基准。论文地址:https://arxiv.org/abs/2110.14168

HELMHELM 评测方法主要包括场景、适配、指标三个模块,每次评测的运行都需要指定一个场景个适配模型的提示,以及一个或多个指标。它评测主要覆盖的是英语,有7个指标,包括准确率、不确定性/校准、鲁棒性、公平性、偏差、毒性、推断效率;任务包括问答、信息检索、摘要、文本分类等。

论文地

址:https://arxiv.org/pdf/2211.09110.pdf

项目地

址:https://github.com/stanford-crfm/helm

Chinese-LLalA-Alpaca

它的打分就是相对值,优先使用 gpt4,部分使用 chatgpt3 .

项目地址:

https://github.com/ymcui/Chinese-LLalA-Alpaca/tree/main

MT-bench

评估大模型的多轮对话和指令追随能力。数据集包括 80 个(8category*10question)高质量且多轮对话的问题,每个问题由6个知名大模型( GPT-4.GPT-3.5.Claud-v1.Vicuna-13BAlpaca-13B,and LLaMA-13B)回答,人工排序得到 3.3K pair 对。

论文地址:Judging LLM-as-a-judge with

MT-Bench and Chatbot Arena.github 项目地址:

https://github.com/m-sys/FastChat/tree/mai

n/fastchat/llm judge

数据下载地址:

https://huggingface.co/datasets/lmsys/mt_bench_human_judgments

评测模式:

通过上述评测工具发现,目前常见的大模型评测模式可以大致总结为四种:

1.做题打分。主要是收集各种各样的评测数据集,然后把数据集分为不同的维度能力。通过设计一些 prompt 让大模型去做这些数据集的任务,与标准答案进行对照计算分数。典型的如OpenCompass, huggingface 的openLLMleaderboard 等。

2.让 GPT-4 做裁判。收集评测用的数据集(些不是公开开源的、不带标准答案的数据集也会包含在内),然后让 GPT-4 给大模型的生成结果进行评判。此评判过程又有两种打分方式,一是直接打分,一是设计一些维度,例如事实性、准确性、安全合规性等,然后更细粒度地进行评测。

3.竞技场模式。类似于竞技游戏里面的竞技场每次拉两个大模型选手 PK,由用户(有时候也会用 GPT-4)来评测哪个模型更好,赢的大模型有加分,输的大模型有减分。当执行了足够多的 PK轮次后,就会有一个大模型的得分排行榜,这个榜单相对来说还是比较公正的,能够较为客观得体现模型的能力强弱。典型的例子如 UC 伯克利发布的 Chatbot Arenaeaderboard

4.针对单项能力的评测。例如针对数学能力、代码能力、推理能力等,评测这些能力既可以判断一个大模型是否真的具备类似人类的思考能力,其评测结果也能够直接帮助在特定领域场合中选择大模型(例如代码助手)。



五、总结

大模型作为人工智能领域的重要突破,为各种应用场景提供了强大的支持。通过深入了解大模型模式认知、微调及评测的方法和技巧,研究人员和开发者可以更好地利用大模型,为人类社会带来更多福祉。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询