背景
上一篇文章,介绍了 in-context learning 的基本原理。本篇文章根据北大出品的 A survey for In-context Learning, 尝试来定义 ICL: ICL是一种通过给定的一些样本示例来学习解决任务的新型范式。同时文章嗨、还介绍几种目前常见的模型优化框架和目前前沿的研究思路,最后提出未来可能的优化方向,希望对大家能有所启发。
方法概述
目前in-context learning 方法分类如下图所示:
ICL 分train 和 inference 两个优化阶段;其中 train 阶段,目前大家优化的方法基本都是基于pretrained LLM,然后选择性的预热模型来增强和泛化ICL的能力。inference 阶段主要分为prompt 和 scoring function的设计。
train step: Model Warmup
-
有监督的 ICL 目前主流的方法是通过直接构造 ICL的 训练数据 以及多任务学习的方法来增强 ICL 能力,但是由于预训练的目标并不是为了 ICL 来优化的,预训练和 ICL 目标存在 gap。第一种解决方案十分简单粗暴:既然存在 gap,那我直接解决 gap 不就行了嘛,于是提出了 MetaICL[1], 就是直接把任务整合成了 ICL的形式,然后对模型做 finetuning。
-
半监督的 ICL 半监督的想法,主要是为了利用大量无监督的数据来做预热。做法就是把预料通过 mask token、prediction和分类任务转变为pair对。
Inference: Demonstration Designing
ICL 的表现强依赖于给出的示例的形式(示例的顺序、格式和示例本身),因此如何设计 demonstration 也是很重要的优化方法。
- 示例选择和排序: 如何从一堆的样本示例中,选择合适的示例组织顺序
- Unsupervised Method
- 选择相似度比较高的样本,相似度定义:
- 基于距离: L2 distance/cosine-similarity/ KATE which is based on k-nn
- low perplexity
- select diverse demonstartions
- human labeled
- LLM generated
- 交叉熵
- 选择相似度比较高的样本,相似度定义:
- Supervised Method
- Two-stage retrieval method: BM25等根据相似度筛选候选,然后用打分LM 选择得分高的;
- 利用强化学习,通过Q-learning 选择样本,reward 是标签选择的准确性;
- Unsupervised Method
- 示例组织
- 把跟输入意思相近的,排在靠近输入的位置
- 示例格式
- 常见格式是 pair 对形式: (x1,y1),....(xk,yk)
- instruction部分: 指令描述部分可以用LLM生成;
- reasoning format: 步骤也可以由 LLM 生成描述步骤
- 打分函数 目前主要三种方法: 直接计算答案的条件概率,但是答案需要在输入之后,第二种是过一遍lm计算 PPL;第三种就是用贝叶斯。
除了上面提到的,还有一些影响 ICL 表现的因素:
- train data 的多样性
- 模型的尺寸规模达到一定程度,可以达到和 ICL 一样的效果。
总结
-
ICL 本身的能力来源于训练数据本身包含任务模式、transformer注意力机制学习、 prompt 包含一些学习patten。未来可以看看如何将 ICL能力蒸馏到小模型上,增强LM能力,弥补预训练 和 icl的gap。
开启掘金成长之旅!这是我参与 「掘金日新计划 · 2 月更文挑战」的第 17 天,点击查看活动详情