【ICL】上下文学习

随着模型参数规模与训练数据量的持续增长,大语言模型涌现出上下文学习(In-Context Learning,ICL)能力。该能力,使语言模型无需再针对某个任务特定训练一个模型或者在预训练模型上微调,而是通过上下文,快速适应下游任务。
这种通过页面或者 API 能够及其快速适应下游任务的模式,也被称为“语言模型即服务(LLM as Service)”。

定义

上下文学习(ICL),是一种通过构造特定的 Prompt,使得语言模型理解并学习下游任务的范式。

这个特定的 Prompt,一般包含三部分内容:任务目标、相关演示实例与输出格式,而上下文学习的关键点,也就自然落在了:“如何设计有效的 Prompt,以快速准确的引导模型理解下游任务并生成符合要求的输出”。

可以说,基于以上优点,上下文学习成为提示词工程(Prompt Engineering)中最重要的一环之一,且广泛应用于大模型的各垂类任务中。


分类

在上下文学习中,一个重要的部分就是相关演示实例。如下示例所示 (图3.5 上下文学习示例),通过将示例、目标和格式的结合,形成提示词(Prompt)输入给大模型。
请添加图片描述

  • (a)示例中,使用模型通过情感分析进行分类任务
  • (b)示例中,通过数学运算能力,提供示例使用模型进行生成任务

演示实例这个维度中,按照实例的数量,可以将上下文学习分为多种形式:零样本(Zero-Shot)、**单样本(One-Shot) 以及少样本(Few-Shot)**上下文学习。

零样本上下文学习

又称 Zero-Shot,在该形式中,仅需在提示词中提供 “任务目标”“输出格式”,无需提供任何 “相关示例”。零样本学习完全依赖于大语言模型能力,但经验来看,在处理复杂任务时一般效果不理想。

请添加图片描述

单样本上下文学习

又称 One-Shot,在该形式中,示例中仅需提供一个 “相关示例”,贴合举一反三的人类学习模式,结合 “任务目标”“输出格式”,构成提示词,引导模型生成内容。但单样本学习强依赖于示例相对于任务的代表性,带有主观偏见。

请添加图片描述

少样本上下文学习

又称 Few-Shot,在该形式中,提供少量的 “相关示例”(通常几个到几十个),结合 “任务目标”“输出格式”,显著提升模型在特定任务上的表现。但是,随着示例内容的增加,tokens 的增大,会显著增大大语言模型推理成本,示例的代表性与多样性也会影响最终的生成效果。

请添加图片描述

可以说,上下文学习技术(ICL)的分类,主要依据提供的 “相关示例” 数量。


原因

上下文学习(ICL)技术为何奏效?

斯坦福大学团队于ICLR 2022发表的研究《An Explanation of In-context Learning as Implicit Bayesian Inference》提出了一种上下文学习(ICL)核心机制的想法:该技术本质是通过隐式贝叶斯推理实现的概率建模过程。其有效性源于大语言模型在预训练阶段已从海量文本中内化了丰富的潜在概念,当提供包含示例的上下文提示时,模型能够通过示例间的统计关联快速锚定与当前任务最相关的知识结构,从而将预训练阶段习得的抽象概念转化为具体推理能力,最终实现对目标问题的概率预测与内容生成。

e . g . e.g. e.g. 举例来说,图 3.5 (a) 之所以可以根据内容进行情感分析并完成分类任务,是因为模型在预训练时已接触到充足的情感内容、抽象出了情感概念。而当模型推理时,借助提供的提示词,锚定了情感的相关概念,并基于这些概念,生成问题答案。


选择

那么,如果我们要使用上下文学习方法,提供 “演示示例” 作为提示词内容部分之一,怎样有效提升引导模型的质量,规避示例的主观性带来的偏向以及多样性缺乏带来的影响?

总结来说,“演示示例” 的选择,主要依靠相似性和多样化。

相似性

相似性指挑选出与待解决问题最相关的示例。相似可以从多个维度与层面度量,比如语言层面(关键词匹配、语义相似度),结构的相似性等等。通过选取相似的示例,提供最佳参照,引导模型更精准生成内容。

多样化

多样化要求模型所选示例尽量涵盖广泛的内容以及结果的所有可能。多样化的示例能够帮助模型从不同的角度理解任务,增强模型对某领域的广泛认知,增强解决多种类别结果的能力。

相似性和多样性就类似准确率和查全率,一个要求垂类关联性强,另一个要求覆盖领域内容广。


方案

示例选择的具体方案,有如下三个方案供参考:

  1. 直接检索
  2. 聚类检索
  3. 迭代检索

直接检索

直接检索依据候选示例与待解决问题间的相似性对候选示例进行排序,然后选取排名靠前的 K 个示例。直接检索的代表性方法如 KATE,其主要步骤如下:

  1. 利用 RoBERTa 对待解决问题和候选示例进行编码
  2. 然后通过计算待解决问题编码和候选示例编码间的余弦相似度计算二者相似度
  3. 基于评分选择最高的 K 个示例作为上下文学习的演示实例

请添加图片描述

直接检索方法优点在于简单易操作,但是其未对示例的多样性进行考虑,选择出的示例趋向同质化缺乏多样性。

聚类检索

聚类检索方法通过先聚类后检索的整体方案,来缓解直接检索存在的 “缺乏多样性” 的问题。具体步骤首先会把所有候选示例划分为 K 个簇,然后从每个簇中选取最相似的一个示例。Self-Prompting 是其中的代表性方法,其具体步骤如下:

  1. 首先将候选示例和待解决问题编码成向量形式
  2. 运用 K-Means 算法把示例集合聚为 K 个簇
  3. 依照问题与示例之间的余弦相似度,从每个簇中选取与问题最相似的示例,由此得到 K 个示例

请添加图片描述

聚类检索方法大大改善了直接检索方法存在的缺乏多样性的问题,但势必有一些簇与问题并不相似,由此会侧面影响模型生成内容的准确性。

迭代检索

直接检索和聚类检索在相似性和多样性之间往往顾此失彼。所以为了兼容直接检索的专一和聚类检索的多样,迭代检索应运而生。迭代检索首先挑选与问题高度相似的示例,随后在迭代过程中,结合当前问题和已选示例,动态选择下一个示例,从而确保所选示例的相似性和多样性。RetICL 是迭代检索的代表性方法,具体步骤如下:

  1. RetICL首先根据当前问题初始化基于 LSTM 检索器的内部状态
### 基于Unity3D的ACT游戏的设计与实现 #### 摘要与关键词解析 本项目聚焦于使用Unity3D引擎开发一款2D动作类游戏(ACT),旨在为玩家提供沉浸式的游戏体验以及成就感。游戏开发过程中,作者不仅关注游戏的核心玩法,还深入探讨了如何利用Unity内置的各种工具和技术来提升游戏性能、改善用户体验。 **关键词**: - **Unity**:一个跨平台的综合游戏开发引擎,支持2D和3D游戏开发。 - **ScriptableObject**:Unity中的一种特殊脚本类型,用于存储数据和配置信息,方便在多个场景间共享。 - **游戏开发**:涵盖了游戏设计、编程、美术创作等多个方面的工作。 - **2D游戏**:指采用二维画面的游戏,相比3D游戏,具有更简洁的视觉风格和较低的技术门槛。 - **状态机**:一种常用的编程模式,用于管理游戏对象的状态转换,如角色的动作变化等。 - **Cinemachine**:Unity的一个插件,提供了高级的相机控制系统,能够创建出电影级的摄像机动画效果。 #### 第1章:绪论 在本章中,作者首先阐述了游戏开发的背景及意义。随着科技的进步,数字娱乐已经成为人们生活中不可或缺的一部分,而游戏作为其中的一种形式,更是受到了广泛的关注。游戏不仅能够提供娱乐,还能培养玩家的逻辑思维能力和解决问题的能力。因此,开发高质量的游戏产品显得尤为重要。 随后,作者介绍了本项目的起源和发展过程,包括为何选择Unity作为开发工具,以及项目的目标和预期成果。此外,作者还提到了Unity引擎的特点及其在游戏开发中的优势,比如跨平台兼容性、丰富的资源库、强大的社区支持等。 #### 技术选型与实现细节 1. **C#语言**:Unity主要使用的编程语言是C#,它是一种面向对象的语言,具有良好的可读性和扩展性。在本项目中,C#被用来编写游戏逻辑、实现用户交互等功能。 2. **UGUI和Text Mesh Pro**:UGUI是Unity提供的用户界面系统,可以轻松地创建各种界面元素,如按钮、滑块等。Text Mesh Pro则是一款高级文本渲染插件,能够提高文本的渲染质量和性能,使得游戏中的文字更加清晰易读。 3. **有限状态机**:状态机是一种常见的游戏开发模式,用于管理和控制游戏对象的不同状态。在本项目中,状态机被用来处理游戏角色的动作变化,例如攻击、跳跃、行走等。通过这种方式,可以更加高效地组织代码,提高游戏逻辑的清晰度和可维护性。 4. **ScriptableObject**:这是一种特殊的脚本类型,在Unity中主要用于存储数据和配置信息。通过ScriptableObject,开发者可以在编辑器中直接编辑这些数据,而无需重启游戏。这种机制极大地提高了开发效率,并且使得多人协作变得更加容易。 5. **物理系统**:Unity内置的物理引擎能够模拟真实的物理行为,如重力、碰撞等。在本项目中,物理系统被用来处理角色和环境之间的互动,确保游戏中的物理效果逼真可靠。 #### 测试与优化 为了确保游戏的质量,作者进行了多轮的测试,包括功能测试、性能测试以及玩家体验测试。通过不断地调整和优化,最终实现了游戏在低配置设备上的流畅运行。 **总结**: 通过上述分析可以看出,《基于Unity3D的ACT游戏的设计与实现》项目不仅关注游戏本身的玩法设计,还深入探讨了如何利用先进的技术和工具来提高游戏的品质。从技术选型到具体实现,再到后期的测试与优化,每一个环节都体现了作者的专业水平和对游戏开发的热情。对于想要进入游戏开发领域的初学者来说,该项目提供了一个非常好的学习案例。
<think>好的,我现在需要处理用户关于上下文学习(In-Context Learning, ICL)实际应用案例或教程的查询。首先,我得回顾用户提供的引用内容,确保回答准确并正确引用。 用户提到了四个引用,其中引用[1]、[2]、[3]和[4]。我需要从中提取相关信息,尤其是关于应用场景和案例的部分。例如,引用[1]提到ICL依赖于预训练的知识和上下文理解,应用场景可能包括文本生成等。引用[2]详细说明了ICL的工作流程,包括示例演示和提示构建,这可能对应到具体的案例步骤。引用[3]则强调了ICL与预训练和微调的关系,这可能帮助解释为什么ICL有效。引用[4]提到了Transformer的上下文学习能力,可能涉及模型结构方面的信息,但用户更关注应用案例,这部分可能用处不大。 接下来,我需要组织这些信息,形成结构清晰的回答。用户要求实际应用案例或教程,所以应该分点列出不同的应用场景,每个场景下给出具体例子和实现步骤,可能还需要代码示例。例如,文本分类、代码生成、翻译、问答系统等都是常见的应用领域。 在撰写每个案例时,需要确保遵循系统级指令,如使用正确的LaTeX格式,独立公式用$$...$$,行内公式用$...$,并且正确引用。例如,在文本分类案例中,可以提到使用准确率$Accuracy = \frac{TP+TN}{TP+TN+FP+FN}$,并用引用[2]说明演示上下文的构建。 同时,用户需要生成相关问题,我需要根据内容提出三个相关的问题,如性能优化、评估指标、与传统方法的比较等。 最后,检查所有LaTeX语法是否正确,引用是否恰当,结构是否清晰,确保回答符合用户的要求。</think>### 上下文学习(In-Context Learning)实战案例与应用示例 #### 1. **文本分类任务** **案例:情感分析** 通过提供少量带标签的示例,模型可快速学习情感分类任务。例如: ``` 输入示例: 评论:这部电影太棒了! → 标签:正面 评论:服务非常差 → 标签:负面 待分类评论:画面精美但剧情拖沓 → 标签:? ``` 模型根据上下文推断输出“中性”[^2]。 **实现步骤**: - 构建演示上下文:选择3-5个典型样本 - 设计自然语言模板:“评论:{文本} → 标签:{情感}” - 将提示输入大语言模型(如GPT-3)生成预测 数学指标示例: $$Accuracy = \frac{TP+TN}{TP+TN+FP+FN}$$ 其中$TP$为真正例,$FP$为假正例等[^1]。 --- #### 2. **代码生成应用** **案例:Python函数生成** 通过示例演示输入-输出的映射关系: ```python # 示例1:输入"计算圆的面积",输出: def circle_area(r): return 3.14 * r ** 2 # 示例2:输入"反转字符串",输出: def reverse_str(s): return s[::-1] # 问题:输入"计算阶乘",输出:? ``` 模型可生成: ```python def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) ``` 该过程体现了模型对编程逻辑的上下文学习能力[^2]。 --- #### 3. **跨语言翻译** **案例:少样本翻译** 当训练数据稀缺时,通过上下文提示实现: ``` 英文:The cat is on the mat → 中文:猫在垫子上 英文:She enjoys reading books → 中文:她喜欢读书 英文:Artificial intelligence → 中文:? ``` 模型基于类比输出“人工智能”[^3]。此方法在低资源语言场景中尤为重要。 --- #### 4. **智能问答系统** **案例:医疗领域QA** 结合领域知识构建上下文提示: ``` 问:发烧应该吃什么药? 答:建议服用布洛芬,但需遵医嘱 问:糖尿病患者饮食注意事项? 答:控制碳水化合物摄入,避免高糖食物 问:头痛伴有呕吐可能是什么原因? 答:? ``` 模型通过分析前序问答模式,输出“可能为偏头痛或脑部疾病,建议立即就医”。 --- ### 实现关键要素 1. **示例选择策略** - 多样性:覆盖不同场景(如情感分析需包含各类情感词汇) - 相关性:与目标任务强相关(如代码生成选择相同编程语言案例) 2. **提示工程技巧** - 使用分隔符清晰划分上下文:`## 示例 ##`、`---` - 添加元指令:“请根据以下示例回答问题” 3. **模型调优** - 温度参数(Temperature):低值(0.2)提高确定性,高值(0.7)增强创造性 - 最大生成长度:根据任务需求限制输出范围 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脚踏实地的大梦想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值