In-Context Learning:大模型上下文学习介绍

文章目录

一句话定义

In-Context Learning(ICL)是指大语言模型在推理阶段无需更新任何参数,仅通过在输入提示(prompt)中提供少量任务示例,就能理解并执行新任务的能力。

起源与发展

首次提出:在2020年GPT-3论文《Language Models are Few-Shot Learners》中首次提出。

关键发现:随着模型参数规模增大(如从1.5B到175B),模型的ICL能力呈现"涌现"特性,显著提升。

本质机制:模型通过预训练积累的广泛知识,在推理时基于示例隐含的任务规律进行条件概率估计,实现对新输入的泛化。

与传统方法的区别

方法 是否需要参数更新 示例数量 核心特点
Fine-tuning 需要 大量标注数据 针对特定任务优化模型参数
Prompt Learning 可选 少量 设计模板引导模型输出
In-Context Learning 不需要 0~数十个 仅通过prompt中的示例动态学习

工作机制

基本流程

python 复制代码
[任务示例1] 输入 → 输出
[任务示例2] 输入 → 输出
...
[任务示例K] 输入 → 输出
[测试输入] ? → 模型预测输出

构建演示上下文 :选择与目标任务相关的输入-输出对作为示例
拼接测试输入 :将待预测的查询与示例按特定格式组合成prompt
前向推理预测:模型基于注意力机制隐式"学习"示例中的模式,直接生成答案

三种典型设置

Zero-shot :仅提供任务描述,无示例
One-shot :提供1个示例 + 任务描述
Few-shot:提供多个(通常1~16个)示例 + 任务描述

优化策略

1、推理阶段优化

  • Prompt设计
    • 示例选择:
      无监督:基于语义相似度、互信息等检索最相关示例
      有监督:训练检索器或使用强化学习优化示例选择
    • 示例排序:将语义相近的示例放在靠近测试输入的位置,或基于信息熵优化顺序
    • 格式设计:
      添加明确的任务指令(Instruction)
      引入思维链(Chain-of-Thought)提升复杂推理能力
  • 打分函数设计
方法 原理 适用场景
Direct 直接计算 P(y|x) 答案格式固定、标签在词表中
Perplexity 计算完整序列困惑度 答案长度可变,消除位置限制
Channel 计算 P(x|y) 贝叶斯推理 类别不平衡任务

2、预训练/预热阶段优化

  • 有监督ICL训练:如MetaICL在52个数据集上以ICL格式微调,提升通用泛化能力
  • 指令微调(Instruction Tuning):如FLAN、LaMDA-PT,通过高质量任务描述增强模型理解力
  • 自监督预训练:将原始语料转换为input-output对,用掩码、分类等目标进行ICL风格训练

示例:用ICL实现情感分析(伪代码)

python 复制代码
prompt = """
任务:判断评论情感(正面/负面)

示例1:
评论:这部电影太精彩了,演员演技炸裂!
情感:正面

示例2:
评论:剧情拖沓,完全浪费时间。
情感:负面

待预测:
评论:{user_input}
情感:"""

# 调用大模型,直接获取预测结果
result = llm.generate(prompt)
相关推荐
xiaotao1318 小时前
02-机器学习基础: 监督学习——线性回归
学习·机器学习·线性回归
墨黎芜9 小时前
ArcGIS从入门到精通——地图符号、注记的初步使用
学习·arcgis·信息可视化
小李云雾9 小时前
FastAPI重要知识点---中间件(Middleware)
学习·程序人生·中间件·fastapi·middleware
小夏子_riotous9 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
STLearner10 小时前
WSDM 2026 | 时间序列(Time Series)论文总结【预测,表示学习,因果】
大数据·论文阅读·人工智能·深度学习·学习·机器学习·数据挖掘
redaijufeng10 小时前
网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。
爬虫·学习·selenium
腾科IT教育10 小时前
零基础快速上岸HCIP,高效学习思路分享
学习·华为认证·hcip·hcip考试·hcip认证
234710212710 小时前
4.14 学习笔记
笔记·python·学习
醇氧10 小时前
【学习】软件过程模型全解析:从瀑布到敏捷的演进之路
学习·log4j
邪修king11 小时前
UE5 零基础入门第三弹: 碰撞与触发交互,解锁场景机关与蓝图封装(高娱乐性学习)
学习·ue5·交互