当前位置: 首页 > news >正文

【NLP】30. 深入理解 In-Context Learning 的核心机制与策略

In-Context Learning(ICL)详解:提示学习时代的语言理解


一、什么是 In-Context Learning(ICL)?

In-Context Learning 是指:

不改变模型参数,通过在输入中加入示例(demonstrations)或指令(instructions),引导语言模型完成任务。

这种学习方式依赖模型从已有示例中“类比”出目标输出,而非通过传统的微调来学习。


二、N-shot 提示学习范式

ICL 可以根据提供示例的数量分为:

  • Zero-shot:无示例,仅提供任务描述。
  • One-shot:一个示例 + 测试样本。
  • Few-shot(N-shot):多个示例 + 测试样本。

每种方式的效果依赖于提示结构与语言模型规模。


三、Prompt 工程:什么样的提示更好?

1. 模板(Prompt Templates)

  • 结构清晰的模板(如分类问题:“Text: … Label: …”)有助于模型理解任务。
  • Verbalizer 用于将类标映射为具体词汇(如 positive → great)。

2. Prompt 多样性与可变性

Gonen et al. (2022) 指出:

  • 即使是同一个任务,不同提示写法可能造成巨大性能差异。

四、影响 ICL 性能的因素(详解)

1. 示例顺序(Ordering)

Zhao et al. (2021) 实验表明:

  • 调整示例顺序会显著影响预测准确率,特别是在 early GPT 模型上。

⚠️ 顺序敏感是 ICL 的一大缺陷。RoBERTa 等 Encoder 不存在这个问题。

2. 示例数量(Number of Examples)

  • Liang et al. (2023):性能随示例数量提升,但存在 饱和点
  • 多个例子增加了样本多样性,有助于泛化。

3. 标签种类与命名(Label Semantics)

  • Min et al. (2022):将 label 改为无意义符号(如 A/B)会显著降低性能。
  1. 添加任何示例(即使标签是错的)都能帮助模型推理
    • 模型可能主要依赖输入形式、语言风格、格式等浅层模式。
    • 标签是否正确反而没那么关键(尤其在大型模型上)。
  2. 标签语义的重要性随模型规模而降低
    • GPT-3(175B)对“错误标签”具有鲁棒性,说明它可能已通过 pretrain 学习到标签分布。
    • 小模型(如 GPT-J)更依赖 gold labels,抗噪能力弱。
  3. ICL 并不等价于“真正理解标签语义”
    • 更像是“pattern matching”机制:模型模仿输入输出形式,而非推理逻辑。
  • Agarwal et al. (2024):Flipped label(颠倒正负)也会误导模型判断。

4. 输入多样性(Input Distribution)

  • 示例中呈现的 输入分布、格式、输出样式 都会影响模型对任务的学习效果。

五、Chain-of-Thought Prompting(CoT 提示)

引导模型输出中间推理过程,而非直接给出答案。

✅ 例子(Arithmetic Reasoning):

Q: If you have 3 cars and buy 2 more, how many do you have?
A: First, I start with 3 cars. Then I buy 2 more. So I have 5 cars.

📌 研究进展:

  • Ye & Durrett (2022):中间解释包含 factual consistency 是成功的关键。
  • Kojima et al. (2022):即使 zero-shot 情况下,加入 “Let’s think step by step” 也能提升模型推理能力。

六、CoT 与示例组合策略

Agarwal et al. (2024) 提出:

  • 同一个 prompt 示例,如果 rationale(解释)错误,即使输入对也可能导致错误输出。
  • 多个 rationale 之间的顺序也会影响最终表现。

七、ICL 本质:学习 vs 记忆?

模型是在“学习”任务结构,还是仅“回忆”相似的训练样本?

目前研究结论:

  • 模型倾向于通过 ICL 模仿提示中的输入输出分布,但这更像是 压缩的 pattern matching,而不是传统意义上的泛化学习。

八、提示构造建议(总结自47页)

如何构建有效提示,提升 ICL 效果?

建议原因
使用 多个示例提供更广的输入分布,有助于模型捕捉任务结构
使用 任务原始标签(不要抽象化为 A/B)保持语义连贯,避免误导模型
避免 示例顺序模式化减少模型因顺序 bias 产生的错误归纳
明确示例 格式与输出结构提高模型对输出格式的适应性与一致性
增加 中间推理步骤(CoT)有助于逻辑型任务的准确性,特别是数学与推理问题

九、代表研究论文与贡献(回顾)

研究贡献
Zhao et al., 2021顺序敏感性实验,发现 ICL 性能不稳定
Min et al., 2022标签语义对提示有效性有重大影响
Kojima et al., 2022“Let’s think step by step” 提升 zero-shot 表现
Ye & Durrett, 2022推理质量对最终答案起关键作用
Agarwal et al., 2024结合 CoT 与 example ordering 的系统实验

🔚 总结

In-Context Learning 是当前大语言模型的重要能力路径,尽管它绕过了参数更新,但对提示结构与输入形式极度敏感。未来研究仍需解决:

  • 如何构建更稳健的提示?
  • 如何结合检索机制提升泛化性?
  • 如何判断模型是否真正“学会”任务,而非“记住”数据?

相关文章:

【NLP】30. 深入理解 In-Context Learning 的核心机制与策略

In-Context Learning(ICL)详解:提示学习时代的语言理解 一、什么是 In-Context Learning(ICL)? In-Context Learning 是指: 不改变模型参数,通过在输入中加入示例(demon…...

数字化工厂中央控制室驾驶舱系统 - Windows 部署笔记

数字化工厂中央控制室驾驶舱系统 - Windows 部署笔记 环境准备 这篇笔记记录了我在 Windows 10/11 上部署数字化工厂中央控制室驾驶舱系统的全过程,包括各种常见问题的解决方法。部署过程中使用了国内镜像源来加快下载速度。 前置需求 Python:3.8 到…...

数据库的原子事务

原子事务 11.1 全有或全无效应 二级索引需要原子性的多键更新,这不仅对数据库内部一致性至关重要,也对应用数据的一致性非常有用(例如考虑账户余额和账户交易)。 我们将放弃get-set-del接口,并添加一个新的接口来允…...

基于51单片机的红外人体感应报警器

基于51单片机的人体监测报警 (仿真+程序+原理图+PCB) 功能介绍 具体功能: 1.按下报警按钮会发生红LED蜂鸣器声光报警; 2.若检测到人,黄LED打开; 3.按下布防按键&…...

从Excel到高级工具:数据分析进阶指南

从Excel到高级工具:数据分析进阶指南 在数据分析的世界里,Excel曾经是众多人的第一站。它简单、直观、功能强大,从普通用户到专业人士,无不对其依赖。然而,随着数据规模增长、分析需求升级,Excel渐渐显得力…...

Excel VBA 自定义函数

一、VBA 函数基础概念 在 Excel VBA 中,函数主要分为两种类型: Sub 过程:执行操作但不返回值Function 函数:执行操作并返回结果 基本语法示例 1. Function 函数示例 定义一个返回字符串的公共函数 Public Function GetGreetin…...

004-nlohmann/json 快速认识-C++开源库108杰

了解 nlohmann/json 的特点;理解编程中 “数据战场”划分的概念;迅速上手多种方式构建一个JSON对象; 1 特点与安装 nlohmann/json 是一个在 github 长期霸占 “JSON” 热搜版第1的CJSON处理库。它的最大优点是与 C 标准库的容器数据&#xf…...

【Quest开发】接入语音转文字

参考官方文档:https://developers.meta.com/horizon/documentation/unity/voice-sdk-tutorials-overview 软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72 硬件:Meta Quest3 注意:需全程科学上网 Meta提供了一…...

Vim 命令从头学习记录

学习链接:eleon-vim基础教程 Vim - 基础翻屏操作 光标移动:hjkl 20j 向下移动20行,w 向后移动一个字符,b 向前移动一个字符。 Ctrl u 向上翻半页 UP Ctrl d 向下翻半页 Down Ctrl f 向下翻整页 Forward Ctrl b 向上翻整页 …...

[Linux]物理地址到虚拟地址的转化

[Linux]物理地址到虚拟地址的转化 水墨不写bug 文章目录 一、再次认识地址空间二、页表1、页表的结构设计2、页表节省了空间,省在哪里?3、页表的物理实现 一、再次认识地址空间 OS和磁盘交互的内存基本单位是4KB,这4KB通常被称为内存块。OS对…...

js获取明天日期、Vue3大菠萝 Pinia的使用

直接上代码 const today new Date(2019, 2, 28) const finalDate new Date(today) finalDate.setDate(today.getDate() 3)console.log(finalDate) // 31 March 2019 安装 yarn add pinia # or with npm npm install pinia创建第一个store仓库 1、在src目录下创建store目录…...

矩阵置零(中等)

可以用两个标记数组分别记录每一行和每一列是否有零出现。 首先遍历该数组一次,如果某个元素为 0,那么就将该元素所在的行和列所对应标记数组的位置置为 true。然后再次遍历该数组,用标记数组更新原数组。 class Solution {public void set…...

GZ人博会自然资源系统(测绘)备考笔记

本文为备考 GZ人才博览会自然资源系统(测绘) 的笔记,包括若干 知识点整理 及 近两年考核(面试)真题 (文末附《GZ人博会自然资源系统(测绘)备考笔记》1 的下载链接)。 目录…...

《进制转换的终极指南:原理、方法与编程应用》

🚀个人主页:BabyZZの秘密日记 📖收入专栏:C语言 🌍文章目入 一、进制转换的基本原理二、进制转换方法总结(一)使用权重法的转换1. 二进制 → 十进制2. 八进制 → 十进制3. 十六进制 → 十进制 &…...

2025系统架构师---论软件的设计模式论文

2023 年,我所在的公司承担了某部网络靶场的研发任务。我作为公司的技 术总监,希望能打造基于网络靶场的系列产品,参与到项目的设计中,以期开发 扩展性和可维护性良好的网络靶场,为以后的产品开发打下基础。网络靶场是网 络安全技术研究的基础支撑平台,它利用虚拟的和实物…...

嵌入式Linux驱动学习

Ubuntu18 下载链接 https://releases.ubuntu.com/bionic/ Ubuntu配置静态IP 更新Ubuntu18的镜像源 以清华大学镜像源举例 网站:https://mirrors.tuna.tsinghua.edu.cn/ 第一步点开网站搜索ubuntu然后点击问号 第二步选择自己的Ubuntu版本 第三步在Ubuntu中复制…...

基于大模型的子宫腺肌病全流程预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、子宫腺肌病概述 2.1 疾病定义与病理机制 2.2 流行病学特征 2.3 现有诊断与治疗方法综述 三、大模型技术原理与应用基础 3.1 大模型简介 3.2 在医疗领域的应用现状 3.3 适用于子宫腺肌病预测的可行性分析…...

Notebook.ai 开源程序是一套工具,供作家、游戏设计师和角色扮演者创建宏伟的宇宙 - 以及其中的一切

​一、软件介绍 文末提供程序和源码下载 Notebook.ai 开源程序是一套工具,供作家、游戏设计师和角色扮演者创建宏伟的宇宙 - 以及其中的一切。 二、软件特点 Notebook 是作家的规划工具,用于创建从宇宙到角色、情节到单个项目的任何内容。通过浏览器、…...

关于 dex2oat 以及 vdex、cdex、dex 格式转换

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ dex2oat dex2oat 是 Android 系统中的一个核心工具,负责将应用中的 .dex(Dalvik Executable)字节码编译为本地机器代码&am…...

Java---Object和内部类

Object类和内部类 前言:一、Object类1.object类初识2.Object的方法2.(1).获取对象的信息--toString方法2.(2).对象比较equals方法2.(3).hashCode方法 二、内部类1.内部类初识:2.内部类的分类:2.(1).实例内部类2.(2).静态内部类2.(3).匿名内部…...

【OSPF协议深度解析】从原理到企业级网络部署

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心配置实现案例1:单区域基础配置案例2:多区域配置案例3:安全认证配置 运行…...

linux tar命令详解。压缩格式对比

1.压缩格式对比 压缩格式命令选项文件扩展名压缩率速度无压缩-cvf.tar无最快gzip-czvf.tar.gz中等较快bzip2-cjvf.tar.bz2较高较慢xz-cJvf.tar.xz最高最慢 9. 更多参考 【Linux基础】文件压缩tar命令指南tar压缩方式对比...

C++和Lua混和调用

为什么要C/C 流行的语言,学习人员多高性能,对于嵌入式设备则是省电大量的第三方库 为什么要Lua C缺点:编译慢,调试难,学习难度大Lua优点: 最快的脚本语言可以编译调试与C/C结合容易Lua是对性能有要求的必…...

Cadence高速系统设计流程及工具使用

上一章已经谈到,在Cadence的高速设计流程中,有两个重要的工具SigXP和Constrain Manager(CM约束管理器)。SigXP是仿真分析工具和约束生成工具,我们就是使用这个工具对关键信号进行仿真的。SI工程师通过对仿真结果的分析…...

Unity:AddTorque()(增加旋转力矩)

目录 什么是 AddTorque()? 第一性原理出发:什么是 Torque(力矩)? Torque 公式 Unity 中 AddTorque 的工作原理 参数属性 🔍 Linear Drag(线性阻力) 线性阻力模拟的现实情况&…...

嵌入式硬件设计全解析:从架构到实战

一、嵌入式硬件设计核心架构与系统组成​ 1. 处理器选型与架构设计​ (1)处理器类型与应用场景​ 处理器类型​ 代表架构 / 型号​ 典型应用场景​ 核心优势​ 微控制器(MCU)​ ARM Cortex-M3/M4、STM32F 系列​ 低功耗控制、小型设备​ 集成外设、低功耗、低成本​ 微处…...

R7打卡——糖尿病预测模型优化探索

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 1.检查GPU import torch.nn as nn import torch.nn.functional as F import torchvision,torch# 设置硬件设备,如果有GPU则使用,没有…...

win10开了移动热点,手机无法连接,解决办法(chatgpt版)

提问: win10连着网线上网,有无线网卡intel Wireless-AC 9560网卡 可以用电脑开移动热点给手机连接吗?如何设置?我现在可以开热点,但是手机连不上,显示正在获取ip地址后就连不上了 chatgpt回答&#xff1a…...

下载core5compat 模块时,被禁止,显示 - servese replied: Forbbidden. -->换镜像源

怎么解决? --->换镜像源 方法 1:使用命令行参数指定镜像源 在运行 Qt 安装器时,通过 --mirror 参数指定镜像源: # Windows qt-unified-windows-x64-online.exe --mirror https://mirrors.ustc.edu.cn/qtproject# Linux/macO…...

《MATLAB实战训练营:从入门到工业级应用》高阶挑战篇-《用无人机仿真玩转PID控制:MATLAB四旋翼仿真建模全攻略》

《MATLAB实战训练营:从入门到工业级应用》高阶挑战篇-✈️ 用无人机仿真玩转PID控制:MATLAB四旋翼仿真建模全攻略 🚁 欢迎来到这篇超级详细的MATLAB四旋翼无人机仿真教程!无论你是控制理论爱好者、无人机发烧友,还是M…...

GESP2024年3月认证C++八级( 第二部分判断题(1-5))

孙子定理参考程序&#xff1a; #include <iostream> #include <vector> using namespace std;// 扩展欧几里得算法&#xff1a;用于求逆元 int extendedGCD(int a, int b, int &x, int &y) {if (b 0) {x 1; y 0;return a;}int x1, y1;int gcd extende…...

PHP的现代复兴:从脚本语言到企业级服务端引擎的演进之路-优雅草卓伊凡

PHP的现代复兴&#xff1a;从脚本语言到企业级服务端引擎的演进之路-优雅草卓伊凡 一、PHP的历史误解与现实真相 1.1 被固化的陈旧认知 当卓伊凡浏览知乎上关于PHP的讨论时&#xff0c;发现大量回答仍然停留在十年前的刻板印象中。这些误解包括但不限于&#xff1a; “PHP只…...

手表功能RunModeTasks

RunModeTasks 功能解释 “RunModeTasks 执行特定于当前模式的功能 根据模式控制作行为”这句话是指 OV-Watch 智能手表项目中的一组任务&#xff0c;这些任务负责管理设备的运行模式并根据不同模式控制设备的行为。 主要组成部分 RunModeTasks 主要由以下三个部分组成&#…...

Qt6.8中进行PDF文件读取和编辑

1.环境配置 在 .pro 文件中添加 PDF 模块依赖&#xff1a; QT core gui pdf # 添加 pdf 模块 注意&#xff1a;独立 pdf 模块的起始版本是Qt 5.15&#xff0c;建议需要 PDF 功能的开发者优先选择此版本或更高版本 2.读取PDF 文件 核心类&#xff1a;QPdfDocument&#xf…...

Barrett Reduction算法优化:更紧的界限消除冗余的减法

1. 引言 Barrett Reduction 是一种被广泛使用的模 m m m 运算算法。在zkSecurity 受NEAR团队所委托的&#xff08;针对RustCrypto: NIST P-256 (secp256r1) elliptic curve——https://github.com/RustCrypto/elliptic-curves/tree/master/p256&#xff09;进行的 Rust p256 …...

Node.js 是什么?

Node.js 是什么? Node.js 是一个基于 Chrome V8 JavaScript 引擎 的 跨平台 JavaScript 运行时环境,用于在服务器端运行 JavaScript 代码。它使开发者能够使用 JavaScript 编写后端(服务端)程序,而不仅仅局限于浏览器端(前端)。 1. Node.js 的核心特点 (1) 基于 Chrom…...

数据结构中 数组、链表、图的概念

数据结构是计算机存储、组织数据的方式&#xff0c;数组、链表和图是三种常见的数据结构&#xff0c;下面为你详细介绍它们的概念&#xff1a; 数组 数组是一种线性数据结构&#xff0c;它由一组相同类型的元素组成&#xff0c;这些元素存储在连续的内存位置上。每个元素都可…...

基于PPO的自动驾驶小车绕圈任务

1.任务介绍 任务来源: DQN: Deep Q Learning &#xff5c;自动驾驶入门&#xff08;&#xff1f;&#xff09; &#xff5c;算法与实现 任务原始代码: self-driving car 在上一篇使用了DDPG算法完成自动驾驶小车绕圈任务之后&#xff0c;继续学习了PPO算法&…...

Three.js + React 实战系列 - 客户评价区细解教程 Clients 组件✨(回答式评价 + 评分星级)

对个人主页设计和实现感兴趣的朋友可以订阅我的专栏哦&#xff01;&#xff01;谢谢大家&#xff01;&#xff01;&#xff01; 在这篇博客中&#xff0c;我们将实现一个简洁的 Hear from My Clients 客户评价区域。这个区块在个人主页中可以突显用户体验和专业度&#xff0c;帮…...

2048游戏(含Python源码)

前言 相关参考游戏&#xff1a; 像素飞机大战&#xff08;含Python源码&#xff09;-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/147693018?spm1001.2014.3001.5501使用DeepSeek定制Python小游戏——以“俄罗斯方块”为例-CSDN博客https://blog.csdn.n…...

百度golang开发一面

讲一下数据库的事务机制&#xff1f;acid特性是靠什么实现的&#xff1f; 持久性 redo log 原子性 undo log 隔离性 MVCC或next-lock锁 四个隔离级别是什么&#xff0c;分别解决什么问题&#xff1f; 可串行化实现原理 mysql锁机制&#xff1f;介绍锁的类型&#xff0c;以及原理…...

【Springboot知识】Springboot计划任务Schedule详解

文章目录 Spring Boot 定时任务从原理到实现详解一、核心原理分析1. 架构分层2. 核心组件3. 线程模型 二、基础实现步骤1. 添加依赖2. 主类配置3. 定时任务类 三、高级配置技巧1. 自定义线程池2. 动态配置参数3. 分布式锁集成&#xff08;Redis示例&#xff09; 四、异常处理机…...

大模型推理--从零搭建大模型推理服务器:硬件选购、Ubuntu双系统安装与环境配置

自从大模型火了之后就一直想自己组装一台机器去深入研究一下大模型&#xff0c;奈何囊中羞涩&#xff0c;迟迟也没有行动。在下了很大的勇气之后&#xff0c;终于花了接近4万块钱组装了一台台式机&#xff0c;下面给大家详细介绍一下我的装机过程。 1.硬件配置 研究了一周&am…...

如何使用QWidgets设计一个类似于Web Toast的控件?

如何使用QWidgets设计一个类似于Web Toast的控件&#xff1f; 前言 ​ 笔者这段时间沉迷于给我的下位机I.MX6ULL做桌面&#xff0c;这里抽空更新一下QT的东西。这篇文章是跟随CCMoveWidget一样的文章&#xff0c;尝试分享自己如何书写这份代码的思考的过程&#xff0c;和笔者…...

博图V20编译报错:备不受支持,无法编译。请更改为受支持的设备。

使用高版本博图打开低版本博图的工程文件时&#xff0c;hmi编译报错不通过&#xff0c;报错提示&#xff1a;备不受支持&#xff0c;无法编译。请更改为受支持的设备。 原因&#xff1a;当前版本的博图软件没有或不支持该组态设备的固件版本。 解决办法&#xff1a;1、安装报错…...

凸性(Convexity)

凸性&#xff08;Convexity&#xff09;是一个跨学科的重要概念&#xff0c;广泛应用于数学、优化理论、金融等领域。其核心含义是描述某种结构&#xff08;如函数、集合&#xff09;在特定条件下的“无凹陷”性质。 1. 数学中的凸性 1.1 凸函数与凹函数 在数学分析中&#…...

Vuex使用指南:状态管理

一、什么是状态管理&#xff1f;为什么需要 Vuex&#xff1f; 1. 状态管理的基本概念 在 Vue 应用中&#xff0c;状态指的是应用中的数据。例如&#xff1a; 用户登录状态购物车中的商品文章列表的分页信息 状态管理就是对这些数据的创建、读取、更新和删除进行有效管理。 …...

kotlin中枚举带参数和不带参数的区别

一 ✅ 代码对比总结 第一段&#xff08;带参数 工具方法&#xff09; enum class SeatPosition(val position: Int) {DRIVER_LEFT(0),DRIVER_RIGHT(1),SECOND_LEFT(2),SECOND_RIGHT(3);companion object {fun fromPosition(position: Int): SeatPosition? {return SeatPosi…...

【Python】Python好玩的第三方库之二维码生成,操作xlsx文件,以及音频控制器

前言 &#x1f31f;&#x1f31f;本期讲解关于python的三种第三方库的使用介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么…...

VTK 交互类介绍

基本概念 交互器(Interactor): 处理用户输入事件的基础类 交互样式(InteractorStyle): 定义具体的交互行为 Widgets: 可交互的UI组件,如滑块、按钮等 Picker: 用于选择场景中的对象 常用交互类 类名功能描述vtkRenderWindowInteractor渲染窗口交互器vtkInteractorStyle交互样式…...