直播回顾 |“生成式大语言模型技术分享”系列之《指令微调与上下文学习》

生成式大语言模型系列直播第六期报告在7月13日成功举办,本期非常荣幸地邀请到了来自东北大学自然语言处理实验室的阿卜杜热西提·热合曼博士作为嘉宾,为广大关注大语言模型的朋友们带来了备受期待的《指令微调与上下文学习》主题报告。

在本期报告中,阿卜杜热西提·热合曼博士主要围绕如何对大语言模型进行微调、如何高效地使用大语言模型展开。阿卜杜热西提·热合曼博士首先介绍指令微调相关内容,包括为什么指令微调、指令微调的特点以及如何进行指令微调的具体细节,包括基座模型、数据准备以及微调步骤,并对“指令微调学习了什么”进行了更深层次的思考。然后介绍了上下文学习方法,包括定义、few-shot learning以及一些有趣的发现。最后分享了思维链等大语言模型受益的最新技术,包括CoT、SC-CoT、ToT。
在报告分享后的Q&A环节,阿卜杜热西提·热合曼博士与各平台的网友就指令微调与上下文学习相关技术提问进行了广泛讨论,以下是本环节的问题和解答:
Q1:指令微调与常规微调的区别是什么?
A1:指令微调,它针对的是多个任务,就是利用多个任务数据集对于一个模型去训练,微调后得到的也是一个模型。这一个模型可以解决很多不同种任务。过去的预训练加微调的方式的话,我们利用现有的预训练模型,针对某一个任务做微调。这样的话,它只能对这个特定任务去推理,不能在别的任务上推理。也就是每一中下游任务我们会微调一个模型,一个任务一个模型这样的。但是指令微调的话,它就只用一个模型就能解决众多的任务。
Q2:上下文学习在大语言模型中的作用是什么?
A2:其实在大语言模型中,不管是预训练的时候,还是指令微调的时候,不可能对人类的所有的需求都会有训练,肯定会遗漏很多种不同的人类需求。而且,指令微调过后,它仍然不一定能以zero-shot的方式解决一些人类复杂的需求。这个时候,只要给它提供一些对于这个特定任务的一些示例的话,模型能够很好地从这个示例当中总结规律,总结规律以后,它就能做出比较好的一个解答。
Q3:LoRA的微调方式为什么是有效的,其中低秩矩阵的作用是什么?
A3:这是非常好的一个问题,我当时学习LoRA的时候也是一度非常困惑的。就是说低秩矩阵,为什么它可以模拟这种全量微调的这种方式?我们可以看到这个两个低秩矩阵的乘积的话,能够得到一个跟原来的矩阵一样的形状的一个矩阵。但是微调的时候,只需要微调这个低秩矩阵的参数,效果依然能跟全量微调一样。我们在这里稍微提一下这个低秩是什么意思?关于矩阵的秩,我们在过去学习这个线性代数的时候就学过矩阵的秩。
比如说有一个方程,x+y=1,2x+2y=2,3x+3y=3。对于这样的三个方程的话,其实它的信息量是只有一个向量,因为它们是有成倍的关系。虽然这个方程的参数矩阵的话,11,22,33这样三行的矩阵,但是它真正有效的部分只有一个向量。也就是说这个秩就是1,只有这1个向量是有效的,别的向量是对我解决这个特定的任务是无效的。这样的话,我们回到大语言模型。在预训练的时候,因为是在海量的数据上训练,所以它已经具备了通用知识的能力,它只是不知道如何回答,也就是如何根据人类的意图回答问题。为了做这样的一个事情,我们没有必要对模型的所有参数矩阵微调,或者是为了解决这样的一个任务,大语言模型很多的参数是多余的。就像我刚才说的一样,它可能是只有少量的部分更新的话,就能得到理解人类问题的这样的需求的效果。所以说低秩矩阵在这里就是很好地去模拟了这样的全量微调的过程。
Q4:思维链提示需要多大的语言模型?
A4:思维链能力的话,根据经验,是从6B、7Billion这么大的参数量的时候,就展现了涌现能力。涌现能力就带来了大语言模型的很多能力,比如思维链能力,上下文学习能力之类的,这些都是涌现能力出现以后才有的。所以说我们根据这个可以判断大概是6、7个Billion这样的参数的时候,就会有这种思维链的能力。当然这也不能说绝对,就是如果基座模型训练的时,训练数据的高质量数据的话,也有可能会进一步降低这个门槛。
Q5:大模型预训练和微调的区别是什么?
A5:预训练和微调的话,首先,是它们的训练目标是不一样的。预训练的训练目标是根据前文生成下一个单词,微调的目标是根据这个任务描述还有示例作为输入,然后让它去预测输出。也就是从训练的目标函数来说,它们是不一样的。另外一点是预训练是在海量的无标注的数据集上训练。可以说大语言模型98%的数据或者能力,都来自于预训练过程。然后指令微调的话,有标签的指令数据集上训练,它的目标就是如何根据人类指令去回答问题。
Q6:大模型的应用主要集中在哪些领域?
A6:那就很多了,大语言模型出来以后,我们现在主要用对话的这种方式解决我们的一些实际问题。其实大语言模型的成功,给人工智能别的领域给了一个参考,只要我的模型足够大、数据量足够多,模型就可以涌现。涌现以后大模型的性能就会有质的突破。那么这样的话,像现在的自动驾驶,或者是智能医疗,教育等行业,利用本行业的相关的海量数据去训练自己的大模型的话,大模型能改变那些行业。
Q7:除了指令微调、上下文学习和思维链技术,还有哪些方法可以提高大型语言模型的效率和性能?
A7:其实语言模型的训练的过程中,我们还差了一步,就是基于人类反馈的强化学习。这一步其实是对大语言模型行为的一个约束,就是不要让它生成一些有害的答案。除了上面我们所说的几种方法之外,这个强化学习的方式,也是大语言模型训练当中的非常重要的一步。
Q8:预训练模型的准确度有多高?
A8:预训练模型的准确度的话,关于预训练的大语言模型我们最早可以追溯到GPT-3。那个时候GPT-3已经有了比较强的生成能力。当时的做法都是prompt learning的方式去使用GPT-3。所以说在当时看来,只需要设计一个比较好的模板,GPT-3依然能够很好地解决实际问题。所以说虽然没有很客观、很准确的一个数字去描述它的准确度,GPT-3的性能已经是非常好了。它只是不太能够这个理解人类指令、如何根据人类指令去回答问题。
Q9:如何微调一个神经网络的模型?
A9:微调神经网络的话,它的步骤跟我们的指令微调还是大同小异,首先还是有预训练模型,然后我们还得有针对特定任务的数据集,然后利用这个标注数据集去训练。其实它的训练过程就是微调过程,只不过不是从零开始训练。这过程需要精心地调整学习率等那些超参数,使得微调过后的模型能够在下游任务有更好的表现。
Q10:为什么现在的LLM都是Decoder only 的架构?
A10: 我们为什么使用Decoder only架构的话,这个主要还是因为效率。Encoder-decoder架构需要训练encoder和decoder两个模块,而decoder-only架构只需要decoder。另一方面,transformer的decoder本身具备一个语言模型的作用,也就是根据前文生成下一个单词。这刚好是大预言模型在训练时想要的能力。

以上就是直播问答环节的全部内容,下期报告《基于人类反馈的强化学习》将于7月27日18:30与您相见。更多关于报告的详细内容以及观看直播回放可于小牛翻译云平台视频号或机器翻译学堂获取。NiuTrans Talk,每期将邀请到不同领域的机器翻译专家进行讲解,分享行业干货知识,带你走进机器翻译的世界。更多精彩内容尽在小牛翻译直播间,想了解更多有关机器翻译的内容,请关注机器翻译学堂或小牛翻译官方账号,与小牛翻译一起探讨机器翻译技术。
关于我们
专注于机器翻译技术基础研究50年,拥有百余人的机器翻译产学研团队,自主研发以中文为核心的NiuTrans机器翻译系统,支持388种语言随心互译。通过丰富的应用与功能,为用户提供机器翻译服务全栈式解决方案,致力于为机器翻译产业化应用提供基础平台,帮助企业级用户在国际业务中消除语言障碍。

精彩回顾


