我们都知道,大语言模型(LLM)能够以一种无需模型微调的方式从少量示例中学习,这种方式被称为「上下文学习」(In-context Learning)。这种上下文学习现象目前只能在大模型上观察到。比如 GPT-4、Llama 等大模型在非常多的领域中都表现出了杰出的性能,但还是有很多场景受限于资源或者实时性要求较高,无法使用大模型。
那么,常规大小的模型是否具备这种能力呢?为了探索小模型的上下文学习能力,字节和华东师大的研究团队在场景文本识别任务上进行了研究。
目前,在实际应用场景中,场景文本识别面临着多种挑战:不同的场景、文字排版、形变、光照变化、字迹模糊、字体多样性等,因此很难训练一个能应对所有场景的统一的文本识别模型。
一个直接的解决办法是收集相应的数据,然后在具体场景下对模型进行微调。但是这一过程需要重新训练模型,计算量很大,而且需要针对不同场景需要保存多个模型权重。如果文本识别模型也能具备上下文学习能力,面对新的场景,只需要少量标注数据作为提示,就能提升在新场景上的性能,那么上面的问题就迎刃而解。不过,场景文本识别是一个资源敏感型任务,将大模型当作文本识别器非常耗费资源,通过初步的实验,研究人员得到的观察是传统的大模型训练方法在场景文本识别任务上并不适用。
为了解决这个问题,来自字节跳动和华东师大的研究团队提出了自进化文本识别器,E2STR(Ego-Evolving Scene Text Recognizer),一个融合了上下文学习能力的常规大小的文本识别器,无需微调即可快速适应不同的文本识别场景。
E2STR 配备了一种上下文训练和上下文推理模式,不仅在常规数据集上达到了 SOTA 的水平,而且可以使用单一模型提升在各个场景中的识别性能,实现对新场景的快速适应,甚至超过了经过微调后专用模型的识别性能。E2STR 证明,常规大小的模型足以在文本识别任务中实现有效的上下文学习能力。
方法
图 1 介绍了 E2STR 的训练和推理流程。
- 基础文本识别训练
基础文本识别训练阶段采用自回归框架训练视觉编码器和语言解码器,目的为了获取文本识别能力:
- 上下文训练
上下文训练阶段 E2STR 将根据文中提出的上下文训练范式进行进一步训练。在这一阶段,E2STR 会学习理解不同样本之间的联系,从而从上下文提示中获取推理能力。
如图 2 所示,这篇文章提出 ST 策略,在场景文本数据中进行随机的分割和转换,从而生成一组 "子样本"。子样本在视觉和语言方面都是内在联系的。这些内在联系的样本被拼接成一个序列,模型从这些语义丰富的序列中学习上下文知识,从而获取上下文学习的能力。这一阶段同样采用自回归框架进行训练:
- 上下文推理
针对一个测试样本,该框架会从上下文提示池中选择 N 个样本,这些样本在视觉隐空间与测试样本具有最高的相似度。具体来说,这篇文章通过对视觉 token 序列做平均池化,计算出图像 embedding I 。然后,从上下文池中选择图像嵌入与 I 的余弦相似度最高的前 N 个样本,从而形成上下文提示。
上下文提示和测试样本拼接在一起送入模型,E2STR 便会以一种无训练的方式从上下文提示中学得新知识,提升测试样本的识别准确率。值得注意的是,上下文提示池只保留了视觉编码器输出的 token,使得上下文提示的选择过程非常高效。此外,由于上下文提示池很小,而且 E2STR 不需要训练就能直接进行推理,因此额外的消耗也降到了最低限度。
实验
实验从三个角度进行:分别是传统文本识别集、跨域场景识别、困难样本修正。
- 传统数据集
从训练集中随机抽取很少的样本(1000 个,训练集 0.025% 的样本数量)组成上下文提示池,在 12 个常见的场景文本识别测试集中进行的测试,结果如下:
可以发现 E2STR 在识别性能差不多已经饱和的传统数据集上依然有所提升,超越了 SOTA 模型的表现。
- 跨域场景
跨域场景下每个测试集仅提供 100 个域内训练样本,无训练和微调对比结果如下,E2STR 甚至超过了 SOTA 方法的微调结果。
- 困难样本修正
研究人员收集了一批困难样本,对这些样本提供了 10%~20% 的标注,对比 E2STR 的无需训练的上下文学习方法和 SOTA 方法的微调学习方法,结果如下:
可以发现,相比于微调方法,E2STR-ICL 大大降低了困难样本的错误率。
未来展望
E2STR 证明了使用合适的训练和推理策略,小模型也可以拥有和 LLM 类似的 In-context Learning 的能力。在一些实时性要求比较强的任务中,使用小模型也可以对新场景进行快速的适应。更重要的是,这种使用单一模型来实现对新场景快速适应的方法使得构建统一高效的小模型更近了一步。