深度学习中几个关键术语的关系、异同辨析

几个 tuning  相关术语的关系、异同辨析:

  • (一)现在流行的 LLM(Large Language Model,大模型) 范式是:Pre-train —— Prompt —— Predict,市面上也有大量的文章在讲 Prompt 怎么写,怎么 engineering,那么里面具体是怎么个内涵呢?🤔

  • (二)pre-train、fine-tuning、prompt-tuning、prompt、in-context learning 这几个常常听到的词汇,具体它们之间又有什么关系呢?🤔

尝试解答下

be9e0446087eaa1d0d7ba675697dc14e.png

从流程上讲,一个大模型要给 C 端用户使用,最起码要经历三个阶段:

  • (一)预训练,Pre-train。一般是采用无监督的训练,海量的语料,通过这个阶段,得到一个通用的 LLM(比如:GPT、BERT,等)。一般认为,这个 LLM 已经有很多的知识和能力。打个不一定恰当的比方,是一个基础扎实、博闻强识的大学生

  • (二)(针对下游任务做)微调,tuning。即针对性地让这位大学生去掌握一些技能、知识,以更好地完成更加具体的任务。这个 tuning 其实仍然是在一个模型的开发阶段。微调这个词,有广义和狭义之分。

  • 5b5048af4dd624a56e3b592e000c7776.png

    • 狭义地讲,就是特指 fine-tuning 这个微调方式,即:通过投喂具体的下游任务训练样本,重新调整 LLM 本身的模型参数。这个方式代价是比较大的,因为要去改变 LLM 本身的参数,训练量大,而且当我有多种下游任务时,就不得不 copy 多个 LLM 副本出来,造成浪费。这种 tuning方式就是所谓的 LLM 迁就下游任务的 tuning 方式。

    • 广义地讲,微调是指以相对从头训练 LLM 以较小的代价调整一个模型执行具体任务的能力。由于在新的范式下 prompt 本身的优化就能够极大影响模型执行任务的效果,所以其实这里就存在另外一种 tuning 即:prompt-tuning。需要特别注意的是:prompt 可以分 2 种,一种是 C 端用户直接对着模型输入的提问(!@#¥%……&*),一种则是提前训练好的、机器可读而人一般不可读的 prompt。在这里,我们做 tuning 其实就是去 tuning 这个机器可读的 prompt。如图所示,左边浅黄部分就是 prompt,而且是针对 LLM 的每层都有对应的 prompt,右边浅蓝部分则是 LLM 本身,两者一起发挥 predict 作用。在这种模式下,LLM 本身是不用做任何变化的,被 tuning 的只是 prompt 这部分的参数,复用性大大提高,训练成本大大降低。这种模式也就是所谓的下游任务迁就 LLM 的 tuning 方式。在这里其实就是拿 prompt 做为下游任务和 LLM 之间的适配层,应了那句老话:没有什么问题是加一层中间层解决不了的。

    • 不管怎么样,如论是重塑 LLM 参数的 fine-tuning,还是额外加适配的 prompt-tuning,它们都是一个训练过程,都会产生新的模型参数(新的 checkpoint 文件)。还是用大学生的例子,今天我想让他成为一名职业律师,那么就要给他针对性地做法律培训,得上课。如果是 fine-tunig,那就是从幼儿园开始学,如果是 prompt-tuning 就是从大学开始学。从目前的文献看,基本上 prompt-tuning 的效果几乎赶上 fine-tunig 了,而同时随着 LLM 体积的增加针对具体下游任务做 fine-tuning 的代价只会越来越大甚至到不可接受的地步

  • (三)最后就是真正 C 端用户提问阶段了,这里就是真正我们目前一般所说的 prompt 阶段了。在这个阶段,用户以 prompt 的形式向 LLM 提问,并获得 LLM 的预测结果。这里有一种特殊的 prompt,叫 few-shot-prompt,也就是提问的时候带上一些样本 case 提供给 LLM 作为回答的参考,这种模式,在有些地方也叫 in-context-learning,就好像 LLM 从这个上下文里面直接 learning 到了一些知识用于回答问题。这里还是举大学生的例子,今天我想让他写一些诗歌,一种方法,自然是单独、专门上课(tuning),这种方法代价大一点,但是效果(可能好一些),另外一种方法就是我直接在 prompt 里面给他附上 N 首我喜欢的诗歌,然后说你给我照着样子写,这种方法代价几乎为 0,效果么(可能)差一些。理论上,当一个预训练的大模型越强,这个大学生越厉害,后一种方法的 roi 就越高。这种方式的一个实际的应用就是 ChatPDF:只要你上传一个文件就给分配一个可以基于这个 PDF 和你聊天的 bot,显然它这里是不可能做 tuning 的,其实只是用了 in-context-learning 的方式,把 pdf 的内容附加到用户的 prompt 里面去。ChatPDF.ai | Analyze PDF with AI, ChatGPT for PDF.chat。这里再将 in-context-learning 与第二步的 tuning 做个比较:

    • 两个都是 learning,in-context-learning 从单次对话中学习,tunig 则在训练过程中学习

    • in-context-learning 是短时间的,过了记忆期之后就消散了,tuning 的结果则是固化在模型参数里面

    • in-context-learning 能够塞进去的内容受单次 prompt token 容量限制,tuning 则没有这个限制

    • 假设一个 LLM 单次 prompt token 很大(几十、几百 K)同时记忆时间也更长,in-context-learning 和 tuning 之间的界限可能就更模糊了。一个具体的业务需求过来了,还得 case by case 看采用那种模式来实现

参考文献:

  1. 《P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks》

  2. 《GPT Understands, Too》

  3. 《The Power of Scale for Parameter-Efficient Prompt Tuning》

  4. 《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值