AIGC 研究报告
这份报告可以被划分为两大部分。
第一部分集中于ChatGPT的发展和运作原理,为了增强理解,我们将先探讨自然语言处理的历史发展。 第二部分主要聚焦于由大模型引领的新的研究领域,并深入介绍在每个领域中可以进行的具体研究工作及思路。同时,将讨论作为一个学生,如何基于这些新领域快速产出高质量的论文成果。一、chatgpt实现思路
chatgpt任务类型:自回归的文字接龙游戏
设想一下,如果你想训练一个可以和你对话的语言模型,你会分成哪几步?
“开卷有益”阶段:让ChatGPT对海量互联网文本做单字接龙,以扩充模型的词汇量、语言知识、世界的信息与知识。使ChatGPT从“哑巴婴儿”变成“脑容量超级大的语言强者”。
“模板规范”阶段:让ChatGPT对优质对话范例做单字接龙,以规范回答的对话模式和对话内容。使ChatGPT变成“懂规矩的博学语言强者”。
“创意引导”阶段:让ChatGPT根据人类对它生成答案的好坏评分来调节模型。以引导它生成人类认可的创意回答。使ChatGPT变成“既懂规矩又会试探的博学强者”
chatgpt第一步:开卷有益
人类几十年的探索:如何让机器理解理解自然语言(如何用向量的方式来更好的表达自然语言呢?)
想要知道如何教会模型怎么说话的,我们需要了解下自然语言理解的发展历程。自然语言理解(Natural Language Understanding, NLU)的发展历程可以追溯到计算机科学的早期阶段,跨越了几十年的时间,其中发生了许多关键的技术转折和模型创新。以下是该领域发展的一些主要阶段:
1. 符号主义和规则系统(1950s-1980s):
自然语言理解最早是作为人工智能(AI)的一个子领域而存在的。在那个时期,自然语言处理(NLP)主要依赖于手工制定的规则和符号逻辑。这些规则可以使计算机“理解”语句的语法和语义,但是对于复杂、模糊或者语境相关的语言,这些系统往往不能很好地处理。
2. 统计方法和机器学习(1990s-2000s):
在这个阶段,随着计算能力的提升和大规模文本数据集的出现,NLP开始转向统计方法和机器学习。这种方法通过对大规模语料库的统计分析,预测单词、短语或句子的概率分布,使得自然语言处理的性能得到了显著提高。比如隐马尔科夫模型(HMM)、最大熵模型、条件随机场(CRF)等在词性标注、命名实体识别、句法分析等任务中得到了广泛应用。
3. 深度学习和词嵌入(2010s):
2010年代初,随着深度学习技术的崛起,自然语言处理领域出现了显著的变革。词嵌入模型如Word2Vec和GloVe的提出,实现了词汇语义的向量化表示,极大地推动了NLP领域的发展。另外,循环神经网络(RNN)和长短期记忆网络(LSTM)等模型的出现,使得模型可以处理序列数据,从而可以捕捉语言中的长距离依赖关系。
4. 预训练语言模型(2018s-现在):
自2018年起,预训练语言模型(Pretrained Language Models, PLMs)引领了NLP领域的新一轮革新。如OpenAI的GPT系列模型,Google的BERT、T5等模型,通过在大规模语料库上预训练,学习到丰富的语言知识,并通过迁移学习应用到各种下游任务,显著提升了NLP的性能。此外,Transformer架构也由于其高效的并行计算和自注意力(Self-Attention)机制,成为了预训练模型的核心组件。
从技术角度分析,我们可以将深度学习和大模型的发展历程分为探索阶段、历史转折、预训练阶段这三个阶段。
1.探索阶段
1.1 one-hot编码
我爱西电啦啦啦
计算词表:
编码:
我:[1,0,0,0,0]
爱:[0,1,0,0,0]
西:[0,0,1,0,0]
电:[0,0,0,1,0]
啦:[0,0,0,0,1]
啦:[0,0,0,0,1]
啦:[0,0,0,0,1]
存在问题:
语义关系无法表示
稀疏表示,对于词表大的,代价极大
1.2神经网络的编码方式
2010年代初,为了解决One-Hot编码的问题,研究人员提出了Word2Vec。
问题:
无法处理单词的多义性
缺乏对词序的处理
无法处理未出现过的单词(OOV问题)
需要大量的计算资源
1.3 RNN
为了表示词与词之间的序列关系。
问题:
长期依赖问题
梯度消失和梯度爆炸
无法并行计算
2.历史转折点:Transformer(语言大模型的基础)
2017年,Google推出Transformer,利用Attention完全替代过往深度学习中的循环网络和卷积网络结构,直白地展现出了“大一统模型”的野心,"Attention is ALL you need"也成了一个玩不烂的梗。
如何解决上面问题的:在Transformer模型中,embeding首先通过嵌入层得到词嵌入,然后通过位置编码添加位置信息,得到模型的输入表示。然后,这个输入表示被复制三份,分别通过三个不同的线性层得到查询、键和值。
这个公式的主要目的是进行缩放(Scaling)。这是因为当维度dk较大时,点积的结果可能会变得非常大,这样经过softmax函数后,得到的概率分布可能会非常陡峭,即大部分的概率集中在一个或几个元素上,这会导致梯度变小,影响模型的训练。而除以dk的平方根可以使点积的结果落在一个相对稳定的区域,使得概率分布更加平滑,有利于模型的训练。
3.预训练阶段:Encoder 、Decoder、Encoder-Decoder:Bert、GPT、T5
3.1 时间线
3.2 GPT1
(1)GPT1的设计思想
在CV里,pre-training + fine-tune的方式盛行已久:先用海量有标注的数据集,通过有监督的训练生成一个预训练模型,然后通过下游任务,在这个模型上做微调。但是在NLP中,这个方式一直很难做起来,原因是:
缺乏大量标注好的文本数据集 比起图像信息,文字的信息更难被模型理解Transformer出世后,模型对文字上下文的理解能力得到显著增强,在这一铺垫下,GPT1诞生了,它的整体设计思路如下:
阶段一、首先,用无标注的数据(可以理解为一段普通的文字)训练一个预训练模型。在这个环节里,我们培养模型文字接龙的能力,也就是给定前k个词,模型能预测出第k+1个词。(pre-training)。 阶段二、然后,在模型能够理解文字含义的基础上,用有标注的数据训练模型去定向做一些下游任务。例如文本分类,文本相似性比较等。有标注的数据集是远小于无标注数据集的,在这个环节,我们只是对模型做了一些微小的调整。(fine-tuning)。(2)GPT1:Pre-training
确定好了总体设计思想,接下来就是详细的技术实践了。GPT1的预训练模型基本遵循Transformer Decode部分的结构,去除掉和Encoder做cross-attention的部分,如下图:
观察Decoder和Encoder部分的Attention,可以发现:
(3)GPT1:Fine-tune
有了一个预训练模型,我们就可以做fine-tune了。在这里,我们让模型做4种有监督的学习:
分类(Classification):对本文进行分类。比如给定一段文字,判断表达了积极/消极情感。 文本蕴含(Entailment):给定premise,判断这个premise是否支持一个hypothesis。例如:premise为“我在周六早上被闹钟闹醒,然后打开了电脑”,是否能够推出“一个打工人在周末起早来打工”? 相似性(Similarity):给定两段文本,判断它们表示的意思是否相似。 多选题(Multiple Choice):给定一段文本和若干个答案,判断正确答案。前文说过,在fine-tune阶段,我们希望能够尽量减少模型架构的改动,因此,论文中采用了如下方法,对这四种监督任务的输入输出做了统一:
(4)Bert VS GPT1
GPT 使用的是 Transformer 的解码器结构,它是单向的,也就是说,每个词只能看到它之前的词。
BERT 使用的是 Transformer 的编码器结构,它是双向的,也就是说,每个词能够同时看到它前面和后面的词。
GPT 的预训练目标是语言建模,即预测下一个词是什么。
BERT 的预训练目标包括遮蔽语言建模(Masked Language Model, MLM)和下一句预测(Next Sentence Prediction, NSP)。MLM 任务是随机遮蔽输入中的一些词,然后预测这些被遮蔽的词。NSP 任务是预测给定的两个句子是否是连续的。
GPT 的优点是预训练和微调阶段的目标一致,都是语言建模,这使得预训练阶段学习的知识可以更好地迁移到下游任务。但它的缺点是由于只能使用左侧的上下文,因此对于一些需要理解全局上下文的任务,如问答、语义角色标注等,可能性能较差。
BERT 的优点是由于使用了双向的上下文,因此可以更好地理解语义和捕捉长距离依赖,对于各种任务都有很好的性能。但它的缺点是预训练和微调阶段的目标不一致,预训练阶段是预测被遮蔽的词,而微调阶段的任务通常不涉及这种预测,这可能会导致预训练阶段学习的知识不能完全迁移到下游任务。
GPT1的模型参数为L=12,H=768,A=12,这个设置和后来Bert-Base一模一样,但后者的效果要好上很多。原因之一是,GPT采用Masked-Attention,对模型和训练数据的要求会更高,因为模型能读到的信息只有上文。而采用普通Attention的Bert在训练阶段就能同时读到上下文。这个性质决定了GPT模型越来越大的趋势。但是,长远来看,Masked-Attention是push模型更好理解文字的重要手段,毕竟在现实中,我们更希望培养模型知上文补下文,而不是单纯地做完形填空。
3.3 zero-shot:GPT2(通用模型的开端)
Encoder VS Decoder,Bert VS GPT1,战火已经拉开,但是此时GPT1仍处在劣势。前面说过,基于Decoder的模型,模型和数据量越大,效果越好。但如果只做到这一点,从技术上来说又太逊色了,性价比也不高。因此,openAI从训练数据上进行改进,引入了zero-shot这一创新点,GPT2就诞生了。
GPT2的核心思想是:只要我的数据够多够好,只要我的模型够大够强。我可以直接去掉fine-tune,训练出一个通用的模型。
要了解这一点,我们先来看Zero-shot,One-shot和Few-shot的区别:
Zero-shot:在这种情况下,我们只给出任务描述和任务提示,不提供任何样例。例如:
任务描述:回答问题。 任务提示:“谁是美国的第一任总统?”One-shot:在这种情况下,我们给出任务描述,一个样例,和任务提示。例如:
任务描述:回答问题。 样例:问:“谁是美国的第一任总统?” 答:“乔治·华盛顿。” 任务提示:问:“谁写了《哈姆雷特》?”Few-shot:在这种情况下,我们给出任务描述,若干个样例,和任务提示。例如:
任务描述:回答问题。 样例1:问:“谁是美国的第一任总统?” 答:"乔治·华盛顿。 " 样例2:问:“谁写了《哈姆雷特》?” 答:“莎士比亚。” 样例3:问:“谁发现了引力定律?” 答:“艾萨克·牛顿。” 任务提示:问:“谁提出了相对论?”GPT2希望通过喂给模型Zero-shot类型的样本,不告诉模型“做什么”,“怎么做”,让模型自己去体会。但是,你总不能让所有的数据都长成图例里Zero-shot那样吧,那和去标注数据有什么区别?所以,这时候,语言的魅力就来了。一段普通的文字里,可能已经蕴含了“任务描述”、“任务提示”和“答案”这些关键信息。比如,我想做英法文翻译这件事,那么我从网上爬取的资料里可能有这样的内容:
如果我把这样的文本喂给GPT,它是不是就能在学习文字接龙的过程里,领悟到英法互译这一点?如果我的数据集又多又棒,那GPT自主揣摩的能力是不是就能更强?
所以,GPT2在训练数据上,玩出了花样。它从著名的在线社区Reddit上爬取训练数据(数据具有一定的问答特性),并按社区用户的投票结果筛选出优质的内容。在这个方式下,训练出了1.5B的GPT2,效果基本与Bert差不多。从实用性的角度上,GPT2并没有带来突破,但是,zero-shot的训练方式,却有效证明了NLP领域训练出一个完全通用模型的可行性,这一刻开始,LLM走AIGC的路初见萌芽,因为整个训练流程看起来就像是模型自主学习知识。
3.3 大力出奇迹的奇迹:GPT3
Zero-shot的方式被GPT2认证可行后,openAI就不得不开始考虑模型是否能真正做到强大了,毕竟现在只是和Bert持平而已。这一刻openAI开始悟过来,既然LLM要一路走到底,既然模型之大避免不了,那不如来得更彻底一些。GPT3沿用了去除fine-tune,只做通用模型的思路,同时技术上小做替换(sparse Transformer),然后在训练数据中引入Few-shot(毕竟完全不给模型任何显性提示,效果确实没达到预期),最终生成了一个大小高达175B的庞然大物,当然效果也是一骑绝尘的。
简单总结:
1、GPT的核心思想是:在NLP领域做pre-traning + fine-tune的框架,解决现实中缺乏文本标注的问题。
2、GPT基于Tranformer Decoder,Bert基于Transformer Encoder。在训练阶段,GPT只能看见上文,Bert可以看见上下文。这也注定了GPT需要把模型做大,训练数据做丰富,才能达到超越Bert的效果。
3、从GPT2到GPT3,Zero-shot和Few-shot的方式被证明可以使得模型能够去除fine-tune部分,训练一个通用的语言模型。
chatgpt第二步:引导模型按照人类的意图(intention)说话(模板规范)
GPT3模型的有效性也自此让openAI在LLM实现AGI(Artificial General Intelligence)的方向坚定不移。GPT3是一个“词语接龙”类模型,即给定上文,它能写出make sense的下文,当然也能用来做各类问答。
此时,模型学会了说话。但它的回答可能并不令你满意,即没有对齐你的意图(aligin to your intention)。
例如:
你希望是“今天天气真不错,我在家里睡懒觉。”
你老板希望是“今天天气真不错,大家一起来加班。”
你老妈希望是“今天天气真不错,我娃必须去擦地。”
为了让模型对齐人类意图,人类将模型这三句话重新送入模型,做有监督的微调。
也就是利用高质量数据对模型再次训练
GPT3.5, 与GPT3原理基本一致,在训练数据上,引入codex数据集在GPT3上做微调,所以在chatGPT中,也能发现其具备对代码的解析能力。
GPT-SFT(Supervised Fine-Tuning on GPT), 基于GPT的有监督微调,则是这里要讲述的重点。回顾第一章,GPT3.5已经是一个文字接龙好手了,并且由于看过足够多的资料,它能保证基本的回答质量。但它仍不够惊艳,因为它只是按照所学回答问题,而在贴合人类意图上还有所欠缺,也就是,还不够“类人”。
解决这个问题的想法,暴力又简单,那就是标数据,让self-supervised模式训练出来的GPT,也经过supervised的微调,直接了当的告诉它,人类想要什么回答。openAI雇佣了40名标注人员,在SFT阶段共标注13k的(prompt, completion)对问答数据,其中prompt包含如下类型:
Plain:让标注人员不受约束,随意写一些问题 Few-shot: 让标注人员按照Instruction: (prompt, completion)的方式进行标注。例如:请做翻译:(薯条->French) User-based:让标注人员从openAI
API的请求列表用例中,找一些问题进行标注。例如Generation类-请对下文做总结,Branstorming类-请列出保持职业热情的5种方法等。
有了标注数据,我们就可以对GPT进行微调,在论文中,一组(prompt, completion)也被称为demonstration。
chatgpt第三步:基于人类反馈的强化学习(RLHF)(创意引导)
对于同一个问题,不同人类的回答是不一样的。为了让模型得到一个让大部分人都满意的答案,我们再邀请一批人类,来对不同的回答进行排序/打分。然后,我们再训练一个“打分模型”,来学习人类的打分标准。
当GPT大概能朝着人类意图的方向走时,我们需要给他更量化的指标,让它知道同一个prompt下,不同回答在人类那里的排序。所以,我们要训练一个奖励模型(RM,Reward Model)。
奖励模型也不是chatGPT的首创,它借鉴于Stiennon et.al (2020)的研究结果。在这一阶段,标注人员需要对同一prompt的不同回答进行排序,一共有33k的标注数据被用于训练。
在标注阶段,标注人员被要求对每一个prompt下的不同回答进行偏号排序。如图,某个prompt下有ABC三个回答,标注人员认为A>B>C。
模型学会了怎么说话,同时我们又训练出了一个独立的奖励模型,这时候,我们就要把两者结合起来,让模型能够更好的对齐人类意图了。在这里,chatGPT使用改良版本的PPO(Schulman et al, 2017)对GPT进行再次训练,改良后的训练算法被称为PPO-ptx。为了更好回顾,我们再贴出第一部分的缩略版架构图:
不了解强化学习也没关系,我们直接从损失函数上来说明这一步到底是怎么做的:
总结
1、chatGPT的训练过程:
教模型说话,由上文产生下文(初始GPT3/GPT3.5) 引导模型感知人类的意图,根据人类的意图说话(Supervised Fine-Tuning on GPT3/GPT3.5) 对经过引导的模型的回答进行打分(Reward Model) 将打分结果返回给模型,让模型根据打分结果不断进行循环迭代(Reinforcement Learning from HumanFeedback)
2、chatGPT是组装模型,从这一点上来说,它不是创新的。
3、精心设计的人工标注、雄厚财力支撑起来的训练资源、耐心地打磨等待和技术搬运、社会对非盈利组织的宽容等等不那么AI技术的原因,才是chatGPT从效果到口碑都起飞的主要原因。
大模型LLM领域,有哪些可以作为学术研究方向?
方向一:大模型的基础理论问题
大模型学习内容的可解释性:虽然大模型表现出了强大的学习能力,但是它们学到了什么,这些知识是如何在模型中组织的,仍然是一个开放的问题。研究者可以探索构建新的工具和技术,以帮助理解模型学习到的知识。 .涌现现象的进一步探索:研究大模型中的涌现现象,探讨哪些能力或者模式是随着模型规模的增大而出现的,有哪些能力是大模型独有的。 模型性能与规模的理论研究:进一步深入探讨模型性能随规模增长的边际递减情况,寻找理论依据和解决策略,从而找到更加有效、高效的模型设计和训练策略。之前别人研究过图像相关的,说数据集和模型参数想匹配时,模型参数和性能是呈现指数关系趋势。那么语言上也是值得研究的 数据选择和组合:什么样的训练数据才是真正有效的呢?探索更有效的数据选择和组合策略。例如,研究如何使用迁移学习或者元学习来减少大模型的训练数据需求。(推荐指数:4星) 训练策略:探索新的训练策略,特别是针对大模型的策略。例如,研究如何使用新的适合大模型的优化算法,或者探索模型的初始化和预训练策略。方向二:大模型的网络架构问题
非欧空间Manifold网络框架:你可以进一步探索这个方向,研究如何将更复杂的几何先验知识整合到模型中,或者研究如何设计更高效的非欧空间Manifold网络结构。 工程和物理学启发的模型:基于工程和物理学的启发,如State Space Model,动态系统,研究新的模型结构或者学习算法。例如,你可以研究如何将动态系统的理论应用到深度学习模型的设计中。 神经科学启发的模型:从神经科学的角度出发,探索新的网络架构,例如Spiking Neural Network。你可以探索如何优化这类网络的性能,或者研究如何将这类网络应用到特定的任务中。 超越Transformer的新型网络结构:你也可以直接从Transformer出发,研究新的改进策略或者替代模型。例如,你可以研究如何通过改进Transformer的注意力机制,或者设计新的网络层,来提高模型的性能。可以看看论文:fast-transfoemer,RWVK,结合了RNN,效果表现也不错,推理速度也更快。(推荐指数:3星)方向三:大模型的高效计算问题
大模型如GPT-3、LAMMA等经常拥有高达数千亿的参数,这使得训练和部署这些模型需要巨大的计算和存储资源。chatgpt光训练消耗1200万美元,用了10000张 V100训练了数个月。
训练:优化训练算法:流水线并行策略、数据并行策略、张量并行策略。对这些进行组合调优,是非常有意义的,参考论文:DeepSpeed、Megatron-LM、OneFlow、fastSpeed等,它们都可以帮助提升模型的训练效率。fastSpeed甚至节省了上千倍的显存,速度也提升了上千倍。(推荐指数:2星) 推理:提高推理效率:对于已经训练好的模型,我们需要在保持性能的同时进行模型压缩,如模型剪枝、知识蒸馏、参数量化等。近期研究发现,利用大模型的稀疏激活现象可以有效提升模型推理效率。参考论文:BMCook,它可以融合多种压缩技术,极大提高压缩比例。如何根据大模型特性自动实现压缩方法的组合,也是一个重要的研究方向。稀疏激活的利用:稀疏激活现象可以用来提高模型推理效率,基本思想是对神经元进行聚类分组,每次输入只调用少量神经元模块即可完成计算。这种方法叫做MoEfication。实验发现仅使用10%的前馈网络计算量,即可达到原模型约97%的效果。(刚刚出来的Scince文章,非常有意义,但是不推荐) 微调:节约资源消耗:为了让大型模型更好地适应特定的下游任务,通常需要进行微调。然而,大型模型的微调往往需要大量的计算资源和存储空间,以处理庞大的参数量,这对于一般用户来说难以实现。但是,随着诸如lora和Qlora这样的技术的出现,我们现在能够在普通用户的计算机上进行大模型的微调训练,就像处理Bert模型那样。这一技术进步为大模型的微调开辟了新的可能,也构成了一个非常有意义的研究方向。**(推荐指数:3星)**参考论文:lora和Qlora,当基础模型规模增长到一定程度,不同参数高效微调方法的性能差距缩小,且性能与全参数微调基本相当。方向四:大模型的高效适配问题(推荐)
提示学习(Prompt Learning):这是一种通过在输入中添加提示(Prompts)[1,2,3] 来将各种下游任务转化为预训练中的语言模型任务的方法。这种方法可以有效地统一各类下游任务和预训练-下游任务之间的形式,从而提高模型适配的效率。实际上,现在广泛使用的指令微调(InstructionTuning)就是运用提示学习思想的一个具体实例。此外,关于如何设计问题以使模型得到更好的回答,一种可能的探索方向是引用auto-gpt的思想,让模型自我提问和回答,以找到改善性能的规律,这可能能够写个不错的文章。(推荐指数:4星) 参数高效微调:目前,参数高效微调还没有获得像提示微调那样广泛的关注,而实际上参数高效微调更反映大模型独有特性。自己做个特定领域的大模型,换个名字就可以发论文了,如现在出来的面向法律领域的大模型、面向数学领域的大模型、面向医学领域的大模型等,真的是一天出好几个这样的,还有许多结合多模态进行微调的。(推荐指数:5颗星)
方向五:大模型的可控生成问题
现在学生能研究的其实也就提升学习、参数微调、思维链,更底层的研究参考如下(不推荐):
更精细的控制:目前的控制精度主要在句子级别,比如通过改变输入的提示来改变生成的内容。但是,对于词语级别甚至语义级别的控制,例如,生成特定情感的文本、特定语境的对话等,还需要进一步研究。 控制和生成的平衡:在实际应用中,我们希望模型能根据给定的控制信号生成符合预期的输出,同时保持生成的自然性和流畅性。然而,如何在控制精度和生成质量之间找到最佳平衡,是一个值得研究的问题。 理解和控制模型的隐层表征:理解和控制模型的内部表征是另一个重要研究方向。通过对模型的中间层进行干预,可以实现更细粒度的控制。但这也涉及到对模型内部表征的理解,这是一个非常有挑战性的问题。 评估方法:为了衡量不同控制策略的效果,我们需要一个科学有效的评估方法。但是,目前在可控生成领域,还缺乏一个通用且全面的评估框架。如何设计这样的评估方法,是一个值得研究的问题。 不确定性的管理:在生成的过程中,模型可能会面临多种可能的输出。如何处理这种不确定性,例如,是否允许模型提出多个可能的输出,或者如何引导模型选择最符合预期的输出,也是一个研究方向。方向六:大模型的安全伦理问题
建立对抗攻击和防御机制:可以研究新的对抗攻击方法,并为大模型设计更有效的防御机制,包括如何在训练时加入鲁棒性约束,或是在推理时如何进行对抗样本检测和过滤 深入理解和防止后门攻击:研究如何在大模型中检测和避免后门攻击。例如,可以研究如何发现模型中的异常行为,如何清除被植入的后门,或是如何在训练时避免后门的植入。 伦理和道德对齐:如何确保模型的输出与人类的伦理道德相一致,例如,如何在模型中实现公平性和去偏见,或是如何保证模型的输出不会对特定群体产生伤害。 研究模型的透明度和可解释性:为了让人们更好地理解模型的决策过程,可以研究如何提高模型的透明度和可解释性,例如,设计新的可解释性指标,或是开发可解释性的训练和推理方法。 开发新的模型监管和评估框架:鉴于大模型可能存在的各种潜在问题,可以研究如何构建一个有效的模型监管和评估框架,以实现模型的可持续和可控使用。 模型使用的社会影响:对于模型的实际使用,可以深入研究其对社会的影响,例如,模型是否可能加剧信息不对称,是否可能被用于不正当用途,以及如何制定相关的法律和政策来规范模型的使用。 黑盒模型的下游适配:面对仅提供推理API的大模型,如何在保证模型安全和知识产权的同时,进行有效的下游适配,能否开发出新的适配方法,这是一个重要的研究方向。方向七:大模型的认知学习问题
(未来十年,这个课题方向将会很火,很有意义,新工业革命的开始)
工具学习与工具使用:研究大模型如何学习使用各种专业工具,如何把这些工具融合到模型的解决方案中,以及如何设计工具使得它们能够与大模型更好地互动。参考:chatgpt的插件 (推荐指数:4颗星) 多模型交互:如何设计和实现多个大模型之间的交互,这些模型可以相互协作、相互竞争,或者以其他方式相互影响。这涉及到模型之间如何通信,如何分配任务,以及如何进行协同决策等问题。参考:auto-gpt (推荐指数:4颗星) 模型与环境的交互:研究大模型如何理解和操控它们所处的环境,例如虚拟环境或物理环境。这包括模型如何获取环境信息,如何对环境进行操作,以及如何处理环境的反馈等问题。(推荐指数:3颗星) 模型的自主性与创新能力:研究大模型如何在解决任务时展现更多的自主性和创新能力,例如,如何设计新的训练方法和目标函数使模型能够更好地进行探索和创新,或者如何在模型中引入新的推理和学习机制。(推荐指数:3颗星) 复杂任务的拆解与解决:研究大模型如何理解复杂任务,并将其拆解为一系列更简单的子任务。这涉及到任务理解,任务规划,子任务调度,以及子任务间的依赖关系处理等问题。 模型的社会属性:如您所述,模型扮演的角色在虚拟环境中展现出一定的社会属性,这会涉及到模型的社会交互能力、群体决策能力、以及对社会规则和文化习俗的理解等问题。 模型助理团队的构建与协调:研究如何构建一个由多个大模型组成的助理团队,以及如何协调这些模型以有效地解决复杂问题。方向八:大模型的创新应用问题
跨领域的预训练模型:在已有领域(如法律、生物医学)之外,可以尝试在其他专业领域(如金融、物理、建筑设计等)进行领域特定的预训练,制造出能够理解该领域复杂问题的专业模型。预训练数据集的构建和领域知识的注入将是重要的步骤。(推荐指数:5颗星) 数字生命和虚拟现实(VR):借助于大模型,可以设计更自然、更智能的虚拟人物或者虚拟助手,为用户提供更加沉浸式的体验。(推荐指数:4颗星) 生物医学:在生物医学领域,已有的预训练模型如KV-PLM已经表现出了很好的效果。未来,我们可以探索的方向包括用预训练模型来理解更复杂的生物过程,如细胞信号传导、遗传网络等。或者更进一步,模型可以在分子层面预测药物与靶点的互动,以帮助药物设计和开发。(推荐指数:4颗星) 基于知识库或互联网的智能检索:读取知识库、拆分段落、生成嵌入向量、存储嵌入向量、相似度匹配、提取知识、生成回答。每一个步骤都值得深入研究。(推荐指数:5星) 大模型记忆研究:BufferMemory:这是一种最直接的方式,将之前的对话完整存储下来。在每一轮新的对话中,都会将原来的所有对话传递给LLM。BufferWindowMemory:这种方式会将最近的K组对话存储下来,在每一轮新的对话中将这K组对话传递给LLM。VectorStore-backed Memory:这种方式会将所有之前的对话通过向量的方式存储到VectorDB(向量数据库)中,在每一轮新的对话中,会根据用户的输入信息,匹配向量数据库中最相似的K组对话。ConversionMemory:这种方式是在对话进行时对对话信息进行摘要,并将当前摘要存储在内存中。然后在新一轮对话中,可以将此摘要作为短期记忆传递给LLM。这种方式对于较长的对话非常有用,因为它是相当于压缩了历史的对话信息。(推荐指数:5颗星) 上面的这四种远远满足不了需求,需要加快研究步伐了。方向九:大模型的数据和评估问题
评估指标研究:这在ChatGPT出现前就已经是重要的命题,像GLUE、SuperGLUE等评价集合都深远地影响了预训练模型的发展。通过逐层汇集模型在不同指标、数据集、任务和能力上的得分系统地评估模型在不同方面的表现。这种基于自动匹配答案评测的方式是大模型和生成式AI兴起前自然语言处理领域主要的评测方式,优点在于评价标准固定、评测速度快。而对于生成式AI,模型倾向于生成发散性强、长度较长的内容,使用自动化评测指标很难对生成内容的多样性、创造力进行评估,于是带来了新的挑战与研究机会。评价方法的研究:
自动评价法:很多研究者提出了新的自动化评估方式,譬如通过选择题的形式[5],收集人类从小学到大学的考试题以及金融、法律等专业考试题目,让大模型直接阅读选项给出回答从而能够自动评测,这种方式比较适合评测大模型在知识储备、逻辑推理、语义理解等维度的能力。
模型评价法:也有研究者提出使用更加强大的大模型来做裁判[6]。譬如直接给GPT4等模型原始问题和两个模型的回答,通过编写提示词让GPT4扮演打分裁判,给两个模型的回答进行打分。这种方式会存在一些问题,譬如效果受限于裁判模型的能力,裁判模型会偏向于给某个位置的模型打高分等,但优势在于能够自动执行,不需要评测人员,对于模型能力的评判可以提供一定程度的参考。
人工评价法:人工评测是目前来看更加可信的方法,然而因为生成内容的多样性,如何设计合理的评价体系、对齐不同知识水平的标注人员的认知也成为了新的问题。目前国内外研究机构都推出了大模型能力的“竞技场”,要求用户对于相同问题不同模型的回答给出盲评。这里面也有很多有意思的问题,譬如在评测过程中,是否可以设计自动化的指标给标注人员提供辅助?一个问题的回答是否可以从不同的维度给出打分?如何从网络众测员中选出相对比较靠谱的答案?这些问题都值得实践与探索。
大模型的开源几乎天天都在进行,总有一天人人都能在自己电脑部署一个类似chatgpt4性能的大模型
方向十:大模型的易用性问题
构建易用性的大模型生态:让大模型飞入千家万户”的目标形成一套覆盖训练、微调、压缩、推理、应用的全流程高效计算工具体系。目前包括 高效训练工具 BMTrain、高效压缩工具 BMCook、低成本推理工具 BMInf、工具学习引擎 BMTools,等等。大模型不仅要自身性能好,还要有强大工具体系让它好用。如Wenda、Deepspeed、 OpenBMB。(开发人员必须要研究的)参考
微信公众号:大猿板砖简记(感谢大佬写的那么详细)
刘知远教授:大模型LLM领域,有哪些可以作为学术研究方向?