通过多样本学习加速LLM应用开发 原创

发布于 2024-6-20 08:57
浏览
0收藏

本文通过将持续样本ICL与RAG比较,讨论了具有长上下文LLM的ICL,如何帮助产品团队创建原型和完整应用,而无需其他资源密集型且耗时的技术。

在这短短几年内,大语言模型(LLM)已经从处理几千个token的水平发展到了能够驾驭数百万个token。其近乎无限的上下文窗口,正在为人类解锁更多新的应用,并以更简单方法实现各项自定义任务。

根据卡内基梅隆大学(Carnegie Mellon University)和特拉维夫大学(Tel Aviv University)研究人员最近的一项研究(https://arxiv.org/abs/2405.00200),使用长上下文模型的上下文学习(In-context Learning,ICL)可以达到与微调模型(Fine-tuned Models)相当、甚至超过微调模型的性能水平,尤其是在处理那些大型数据集的时候。

同时,该研究结果表明,具有长上下文LLM的ICL,可以帮助产品团队创建各种原型和完整的应用程序,而无需使用那些资源密集型且耗时的技术。

少样本(Few-shot)和多样本(Many-shot)的上下文学习

为了在不重新训练或微调LLM的情况下,使之执行新的任务,您可以充分利用其上下文的学习能力。例如,当您在提示中插入“问题-解决方案”对的示例时,模型将能够找到解决方案的模式,并据此去解决类似的问题。

通常,一个模型所支持的ICL示例数量,取决于其上下文窗口的长度。例如,由于早期版本的GPT-3仅支持大约2,000个token,因此它只能允许一小部分ICL示例。当然,早期的研究认为,您完全可以让模型使用少量的ICL,来完成大量新的任务。

不过,现如今GPT-4已经能够支持多达128,000个token,谷歌的Gemini 1.5 Pro也将支持2万个token。这些模型不但支持持续样本(Long-shot)ICL,而且在提示中带有数百、甚至数千个示例。

谷歌最近的一项研究探讨了持续样本ICL在教授LLM新的任务,或改变其学习偏见方面的强大能力。当然,由于该研究仅针对Gemini Pro,因此很难将它与其他基线进行比较。

持续样本ICL与检索和微调

在他们的新研究中,卡内基梅隆大学和特拉维夫大学的研究人员对各种开放式模型进行了实验。他们使用了不同版本的Llama-2 7B,其中包括:上下文窗口最多为80,000个token和Mistral-7B的32k版本。

他们的实验包括了多种分类的数据集,其目标是了解用户可以在多大程度上使用ICL,来提高模型对于不可见示例进行分类的能力。他们将持续样本ICL与检索增强生成(Retrieval-augmented Generation,RAG)和低秩适应(Low-rank Adaptation,LoRA)进行了比较。这里的LoRA是一种LLM微调方法,可降低内存和计算的各项需求。

他们的研究结果表明,将ICL扩展到许多示例上时,会产生强大的结果。如下图所示,当他们将ICL示例从10个增加到1,000个时,就能够获得高达50.8点的收益。

通过多样本学习加速LLM应用开发-AI.x社区

不同分类基准上的持续样本ICL与RAG

而当您的ICL示例比较少时,RAG的性能则会优于随机抽样。然而,随着您添加更多的示例,其选择策略的重要性便会降低。这就可以帮助用户测试各种概念验证(Proof-of-concepts),而无需设置RAG管道。

同时,当您只有一小部分的示例时,ICL通常会优于LoRA微调。研究人员发现,当标签空间较大时,与ICL相比,微调的性能会下降。他们解释到:“这可能是因为它们属于更开放的分类问题,需要更多的数据来训练分类器。”与此同时,微调模型的推理成本则会比ICL小得多。

他们另一个有趣的观察结果是:随着示例数量的增加,标签分类开始对性能产生巨大的影响。也就是说,当您有许多ICL示例时,与随机排序相比,按标签对它们进行排序会降低模型的性能。对此,研究人员认为:“这表明,具有不同标签的示例的上下文环境对于性能而言是非常重要的。并且,这种环境仅在上下文窗口中,相对较短的距离内,能够有效地发生。”

这对LLM应用意味着什么?

持续样本ICL对于开发LLM应用具有重要的意义。毕竟,LLM迭代的总体趋势就是要减少机器学习应用的创建障碍。例如,您以前需要一个机器学习专家团队、以及数周的培训和测试时间,来创建情绪分析模型。如今,您只需要在预训练的LLM上,通过简单的提示工程,就能做到这一点。

同时,持续样本ICL进一步降低了创建机器学习应用的障碍。例如,如果您有一个应用程序,而模型无法通过零样本(Zero-shot)提示来“开箱即用”地完成,那么您通常需要微调模型、或设置RAG管道,来为其提供必要的上下文信息。

如今,得益于多样本ICL,您只需将所有的文档或演示转存到上下文窗口中,然后构建好提示即可。可见,它不但有助于节省创建原型和概念验证的时间,也将使得那些没有大量机器学习经验及编程技能的产品经理,能够轻松创建和迭代自己的原型。

当然,一旦达到了产品市场契合度,并需要优化自己的LLM应用以扩大规模时,您仍然需要尽一切努力降低成本,并提高速度。也就是说,如果您是按token付费的话,那么持续样本ICL会比较昂贵。同时,如果您采取的是模型托管机制的话,它不但会减慢推理速度,而且会增加内存需求。对此,其他技术可以按需进行弥补。例如,一个简单的RAG管道可以大幅减少token的消耗。而微调能够让您的模型实现零样本的问与答,而无需提供额外的上下文token。比如,Adapt-LLM等微调技术就能够使模型,根据其对于主题的置信度,在RAG和内存中(In-memory)知识之间进行选择。当然,您最终也可以凭借诸如:自定义双向编码器等更高级的技术,更有效地去执行分类等新的任务,而无需那些内存密集型LLM。

小结

上文提到的各种工具和技术实际上都能够以不同的方式为您服务并完成各项任务。可以说,随着多样本ICL等技术的进步,LLM应用的入门只会变得越来越简单。

原文标题:Boost LLM application development with many-shot learning,作者: Ben Dickson

链接:https://bdtechtalks.com/2024/05/20/long-context-llm-applications/。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐