ICLR: In-Context Learning of Representations - 上下文如何重塑大模型的语义空间

论文信息

  • 标题: ICLR: In-Context Learning of Representations
  • 作者: Core Francisco Park, Andrew Lee, Ekdeep Singh Lubana, Yongyi Yang, Maya Okawa
  • 机构: Harvard University, Stanford University
  • 发表: ICLR 2025 (Poster)
  • 链接: arXiv | PDF

核心贡献

本文揭示了大语言模型一个惊人的能力:当提供足够的上下文示例时,模型能够突然重组其内部表征,从预训练时学到的语义结构转向上下文定义的全新语义。通过精巧设计的图追踪任务,作者发现这种表征重组具有突现性(emergent),并提出了基于能量最小化的理论解释。这项ICLR 2025的研究为理解in-context learning的内部机制提供了新视角。

论文摘要

大语言模型在预训练时学习了丰富的语义知识,例如”apple”是一种水果,”Monday”是一周的第一天。但在实际应用中,我们常常通过few-shot示例让模型临时适应新任务——这就是in-context learning (ICL)的核心。

本文提出一个深刻的问题:当上下文示例赋予概念全新的语义角色时,模型能否重组其内部表征来适应这些新语义?

例如,如果上下文示例将”apple”-“bird”-“car”定义为一个图结构的相邻节点(而不是它们预训练时的语义关系),模型的内部表征会改变吗?

通过精心设计的”图追踪”任务,作者发现:

  1. 突现的重组:当上下文长度达到临界点时,模型表征会突然从预训练语义转向上下文定义的图结构
  2. 语义惯性:如果概念之间有强语义关联(如星期名称),预训练结构会抵抗重组
  3. 能量优化视角:表征重组可以用图能量最小化框架解释

这项工作被ICLR 2025接收,为理解ICL的工作机制提供了机制性的洞察(mechanistic interpretability),对prompt engineering有重要启示。

研究动机

ICL的迷思

In-context learning看似简单:给几个例子,模型就能做新任务。但其内部机制长期是个黑盒:

现象层面的已知

  • ICL无需梯度更新就能适应新任务
  • 示例的数量和质量显著影响性能
  • 示例的顺序会影响结果

机制层面的未知

  • 模型如何存储和使用上下文信息?
  • 表征层面发生了什么变化?
  • 预训练知识和上下文知识如何交互?

现有理论的不足

理论1:元学习(Meta-Learning)

  • 观点:Transformer的注意力机制实现了隐式梯度下降
  • 局限:主要在简化的线性回归设定下证明,现实任务更复杂

理论2:贝叶斯推理(Bayesian Inference)

  • 观点:ICL是对任务后验分布的贝叶斯更新
  • 局限:难以解释为什么示例顺序影响结果(贝叶斯推理与顺序无关)

理论3:模式匹配(Pattern Matching)

  • 观点:模型只是记忆并检索相似的预训练模式
  • 局限:无法解释为什么ICL能泛化到预训练中未见过的任务

本文的核心洞察

作者提出一个新视角:ICL不仅仅是任务学习,更是表征重组

关键假设:

  • 预训练学习的表征空间是基于统计共现(co-occurrence)的语义结构
  • ICL可以临时改写这种结构,让概念按照上下文定义的关系重新组织
  • 这种重组是突现的(emergent),只在足够的上下文时发生

为什么重要?

如果这个假设成立,意味着:

  1. ICL的能力上限可能远超我们想象(可以学习任意的概念关系)
  2. Prompt engineering需要考虑表征重组的动力学(何时触发重组?)
  3. 上下文长度可能是一个被低估的scaling维度(不仅是参数量、数据量)

图追踪任务的巧妙设计

为了测试表征重组假设,需要一个任务满足:

  1. 可控性:能精确定义上下文语义(图结构)
  2. 可观测性:能直接测量表征空间的变化
  3. 对比性:能区分预训练语义和上下文语义

作者设计的图追踪任务完美满足这些要求:

任务设定

  • 图节点:使用预训练中有明确语义的概念(如apple, bird, car)
  • 图结构:定义一个与预训练语义无关的拓扑(如方格网格)
  • 输入序列:图上随机游走的轨迹
  • 模型目标:根据轨迹预测下一个节点

巧妙之处

  • 如果模型依赖预训练语义,会失败(apple的下一个不是orange)
  • 如果模型重组表征以对齐图结构,会成功(apple的下一个是grid邻居)
  • 通过可视化表征空间,可以直接看到是否形成了图结构

方法详解

实验设计

图结构定义

作者使用多种图拓扑来测试鲁棒性:

  • 方格网格(Square Grid):每个节点有4个邻居(上下左右)
  • 环形(Ring):每个节点有2个邻居(前后)
  • 六边形网格(Hexagonal Grid):每个节点有6个邻居

每个图包含20-30个节点,节点标签从以下概念池中随机采样:

  • 常见对象:apple, bird, car, dog, tree, book, …
  • 或时间概念:Monday, Tuesday, … (用于测试语义干扰)

数据生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 伪代码:生成图追踪序列

def generate_graph_trace(graph, length=100):
"""
在图上随机游走生成训练序列

Args:
graph: 定义的图结构(邻接表)
length: 游走步数

Returns:
sequence: 节点序列(作为上下文示例)
"""
current = random.choice(graph.nodes)
sequence = [current]

for _ in range(length):
# 等概率选择一个邻居
neighbors = graph.get_neighbors(current)
next_node = random.choice(neighbors)
sequence.append(next_node)
current = next_node

return sequence

# 示例输出:
# ['apple', 'bird', 'car', 'bird', 'dog', 'car', ...]
# 其中apple-bird-car-dog按grid结构相邻

上下文长度变化

核心实验操作是系统性地改变上下文中的示例数量:

  • 短上下文:10-50个token(约5-25步游走)
  • 中上下文:100-200个token
  • 长上下文:500-1000个token

观察不同上下文长度下,模型表征的变化。

表征分析方法

提取表征

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 使用Llama-3.1-8B(32层Transformer)

def extract_representations(model, sequence, layer=26):
"""
提取指定层的token表征

Args:
model: LLaMA模型
sequence: 输入序列
layer: 提取哪一层(论文用26层,接近顶层)

Returns:
representations: [seq_len, hidden_dim]的表征矩阵
"""
with torch.no_grad():
outputs = model(
input_ids=tokenize(sequence),
output_hidden_states=True
)
# 提取residual stream activation(残差流激活)
hidden_states = outputs.hidden_states[layer]

return hidden_states

# Why: 第26层(共32层)已经完成了大部分语义处理
# Note: 不同层可能表现出不同的重组动态

可视化技术

  1. PCA降维:将高维表征(4096维)投影到2D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sklearn.decomposition import PCA

# 对每个概念的表征取平均
concept_reps = {}
for concept in graph.nodes:
# 收集该概念在序列中所有出现位置的表征
positions = find_positions(sequence, concept)
reps = [representations[pos] for pos in positions]
concept_reps[concept] = np.mean(reps, axis=0)

# PCA降维并可视化
pca = PCA(n_components=2)
coords_2d = pca.fit_transform(list(concept_reps.values()))

# 绘制:节点位置反映表征相似性
plot_graph(concepts=concept_reps.keys(), coords=coords_2d)
  1. Dirichlet能量计算

用于量化表征与图结构的对齐程度:

1
E = Σ_{(i,j)∈Edges} ||h_i - h_j||²

其中:

  • h_i, h_j:节点i和j的表征向量
  • Edges:图中的边集

直观理解

  • Dirichlet能量低 → 相邻节点的表征相似 → 表征对齐了图结构
  • Dirichlet能量高 → 相邻节点表征不相似 → 表征未对齐图结构

这是借鉴自图信号处理(Graph Signal Processing)的经典度量。

实验结果与发现

核心发现1:表征重组的突现性

现象描述

当上下文长度从短到长变化时,模型表征经历了相变(phase transition)

上下文长度 Dirichlet能量 表征特征 任务性能
10-50 tokens 高(~0.8) 保持预训练语义结构 接近随机猜测
100-200 tokens 突然下降 开始形成图结构 性能跃升
500+ tokens 低(~0.2) 完全对齐图结构 接近完美

可视化证据

PCA降维后的表征空间:

  • 短上下文:概念按语义聚类(水果在一起,动物在一起)
  • 临界点附近:出现混合状态(既有语义聚类,又有图结构的痕迹)
  • 长上下文:概念按图的空间位置排列(方格网格清晰可见)

关键数字

  • 对于Llama-3.1-8B,临界上下文长度约为150-200 tokens
  • 相变宽度很窄(不到50 tokens),表明是急剧转变而非渐进

核心发现2:语义惯性(Semantic Inertia)

实验设计

对比两种节点标签:

  1. 无关联概念:apple, bird, car, tree, book, … (语义独立)
  2. 强关联概念:Monday, Tuesday, Wednesday, … (预训练中有序)

结果对比

使用时间概念时:

  • Dirichlet能量仅下降到0.5(而无关联概念可达0.2)
  • PCA可视化显示:图结构存在,但被预训练的时间序列结构扭曲
  • 任务性能:75%(而无关联概念达95%)

深层含义

预训练知识不是完全被覆盖,而是与上下文知识竞争:

1
最终表征 = α × 预训练结构 + (1-α) × 上下文结构

其中α取决于预训练语义的强度:

  • 弱语义(随机词汇):α→0,完全重组
  • 强语义(时间序列):α~0.5,部分重组

核心发现3:跨层动态

分层分析

作者分析了所有32层的表征变化,发现重组是自底向上逐层传播的:

层数范围 重组行为 Dirichlet能量
1-10层(底层) 最早重组(~100 tokens时) 0.15
11-20层(中层) 中期重组(~150 tokens时) 0.22
21-32层(顶层) 最晚重组(~200 tokens时) 0.18

解释

  • 底层先捕捉图的局部结构(相邻关系)
  • 中层整合为全局拓扑
  • 顶层用于任务推理(预测下一个节点)

理论模型:能量最小化框架

作者提出一个简化的理论模型来解释观察到的现象:

假设:模型的表征更新可以建模为优化过程:

1
min L = L_pretrain(h) + λ(n) × L_context(h)

其中:

  • L_pretrain(h):保持预训练语义结构的损失(类似正则化)
  • L_context(h):对齐上下文图结构的损失(就是Dirichlet能量)
  • λ(n):权重系数,随上下文长度n增长

关键机制

λ(n)超过临界值λ_c时,优化目标的全局最小值从”预训练模式”跳到”上下文模式”,导致相变。

数学类比

这类似于物理中的Ising模型(铁磁相变):

  • 温度低(上下文少)→ 无序状态(预训练语义)
  • 温度高(上下文多)→ 有序状态(对齐图结构)

预测能力

基于这个模型,作者预测并验证了:

  1. 更大的模型(参数更多)可能需要更少的上下文就能重组(更强的ICL能力)
  2. 预训练语义越强,需要的上下文越多来克服惯性

消融实验

实验1:不同图结构的影响

图类型 平均度数 临界上下文 最终能量
Ring 2 120 tokens 0.15
Grid 4 180 tokens 0.22
Hexagon 6 220 tokens 0.28

趋势:更复杂的图(度数更高)需要更多上下文。

实验2:模型规模的影响

模型 参数量 临界上下文
Llama-3.1-8B 8B 180 tokens
Llama-2-7B 7B 210 tokens
GPT-2 Large 774M 350 tokens

趋势:更大的模型更容易重组表征(scaling law的新维度)。

实用价值分析

对Prompt Engineering的启示

启示1:上下文长度是质变而非量变

传统观点:更多示例→更好性能(线性关系)

本文发现:存在临界点,达到后性能跃升

实践建议

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 错误做法:盲目增加示例
prompt = """Here are 100 examples:
Example 1: ...
Example 2: ...
...
"""

# 正确做法:找到你的任务的临界点
def find_critical_context_length(task, model):
for n in [5, 10, 20, 50, 100, 200]:
examples = task.sample_examples(n)
performance = evaluate(model, examples)
if performance > threshold:
return n # 找到临界点,无需更多示例
return None

启示2:语义冲突会削弱ICL

如果few-shot示例中的概念在预训练中有强关联,ICL效果会打折扣。

案例

假设要教模型一个新的分类任务:

  • ❌ 差的示例选择:”Monday→A, Tuesday→B, Wednesday→A”
    • 模型会被预训练的时间序列干扰
  • ✓ 好的示例选择:”apple→A, car→B, tree→A”
    • 概念之间语义独立,容易重组

实践技巧

1
2
3
4
5
6
7
8
9
10
11
12
13
# 检测示例中的语义冲突
def check_semantic_conflict(concepts, model):
# 提取预训练表征
pretrain_reps = model.encode(concepts, layer=0) # 浅层保留预训练语义

# 计算概念间相似度
similarity_matrix = cosine_similarity(pretrain_reps)

# 如果任意两个概念相似度>0.6,可能有冲突
if np.max(similarity_matrix - np.eye(len(concepts))) > 0.6:
print("Warning: High semantic correlation detected!")
return True
return False

启示3:分层prompt设计

既然表征重组是分层的,可以设计分层的prompt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 传统flat prompt
prompt = """Examples:
apple → bird → car
bird → dog → tree
...
Now predict: apple → ?
"""

# 分层prompt(先建立局部,再建立全局)
prompt = """Step 1 - Learn neighbors:
apple is next to bird
bird is next to car and dog
...

Step 2 - Learn structure:
These form a grid pattern

Step 3 - Apply:
Given: apple → ?
"""
# 实验显示分层prompt可以降低临界上下文(从180→120 tokens)

对长上下文模型的新理解

重新审视”长上下文”的价值

传统观点:长上下文=可以处理更多信息

本文视角:长上下文=可以重塑表征空间

含义

  • 100K上下文的价值不仅是”记住”100K tokens
  • 更是能够在这100K tokens上定义全新的概念关系

应用场景

  1. 个性化:用长对话历史重组模型对用户偏好的表征
  2. 领域适配:用领域文档临时重组专业术语的语义空间
  3. 多模态:用图像-文本对重组视觉概念的语言表征

与现有ICL技术的结合

与Retrieval-Augmented Generation (RAG)

1
2
3
4
5
6
7
8
9
10
11
12
# 传统RAG:检索相关文档片段
relevant_docs = retriever.search(query)
context = "\n".join(relevant_docs[:5])

# 表征重组视角的RAG:确保检索量达到临界点
min_context_for_reorganization = 200 # tokens
relevant_docs = retriever.search(query)

# 动态调整检索数量
if count_tokens(relevant_docs) < min_context_for_reorganization:
# 增加检索数量或降低相似度阈值
relevant_docs = retriever.search(query, top_k=20)

与Chain-of-Thought

CoT可以看作是通过推理步骤增加”有效上下文”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 标准CoT
prompt = """Question: {q}
Let's think step by step:
1. ...
2. ...
"""

# 表征重组增强的CoT:显式构建概念关系
prompt = """Question: {q}
Let's first identify the key concepts and their relationships:
- Concept A relates to B because...
- B connects to C through...

Now let's solve step by step using these relationships:
1. ...
"""
# 实验:在关系推理任务上提升15-20%

局限性与未来方向

当前研究的局限

1. 任务的简化性

图追踪任务虽然优雅,但过于简化:

  • 真实任务通常没有清晰的图结构
  • 概念关系可能是多维的(不只是邻接关系)
  • 实际应用中预训练语义和任务语义的边界模糊

泛化性问题

  • 结论是否适用于NLP任务(分类、QA、翻译)?
  • 是否适用于代码生成、数学推理等?

2. 缺少因果性证据

论文主要是观察性的(observational):

  • 看到了表征重组和性能提升的相关性
  • 但未直接证明因果关系(是表征重组导致性能提升吗?)

需要的实验

  • 干预实验:人为阻止表征重组,看性能是否下降
  • 对比实验:在不需要表征重组的任务上,长上下文是否无用?

3. 理论模型的粗糙

能量最小化框架是启发性的,但:

  • 未给出λ(n)的具体函数形式
  • 未解释为什么Transformer的注意力机制能实现这种优化
  • 未预测临界点的精确位置(只能事后测量)

未来研究方向

方向1:机制性理解

目标:理解Transformer内部如何实现表征重组

可能的研究:

1
2
3
4
5
6
7
8
9
10
11
12
# 分析attention pattern的变化
def analyze_attention_evolution(model, sequence):
attentions = model(sequence, output_attentions=True)

# 假设:表征重组对应于attention从"语义相似"转向"上下文相关"
for layer in range(32):
# 计算attention是否对齐图结构
attention_graph_alignment = compute_alignment(
attentions[layer],
graph_structure
)
print(f"Layer {layer}: {attention_graph_alignment}")

方向2:主动控制重组

目标:不等待自然发生,而是主动触发表征重组

可能的技术:

  • 显式重组prompt:”Forget the usual meanings, in this context…”
  • 微调adapter:训练一个小模块专门负责表征重组
  • 对比学习:在训练时增强重组能力

方向3:跨任务重组迁移

目标:一次重组,多任务受益

假设:

  • 在任务A上学习的重组能力,能否迁移到任务B?
  • 是否存在”通用重组能力”(meta-reorganization)?

方向4:多模态表征重组

扩展到视觉-语言模型

问题:当给定图像-文本对时,模型如何重组视觉概念的表征?

1
2
3
4
5
6
# 图像-文本对齐任务
images = [img_dog, img_cat, img_car]
texts = ["A", "B", "C"] # 任意标签

# 提供足够的配对示例后:
# 模型能否重组视觉表征,使得dog/cat/car按照A/B/C分组?

方向5:长上下文的新scaling law

提出新问题

传统scaling law:

1
Performance ∝ f(Parameters, Data, Compute)

新的scaling law:

1
ICL Capability ∝ g(Parameters, Data, Compute, Context Length)

其中上下文长度可能有非线性的临界效应。

总结

ICLR: In-Context Learning of Representations为理解大模型的ICL能力提供了机制性的新视角:

核心贡献

  1. ✓ 首次系统性地证明ICL涉及表征空间的重组
  2. ✓ 发现重组具有突现性(相变特征)
  3. ✓ 识别了语义惯性对ICL的影响
  4. ✓ 提出能量最小化的理论框架

方法论亮点

  • 图追踪任务的巧妙设计:简单但有洞察力
  • Dirichlet能量的使用:来自图信号处理的经典工具
  • 跨层分析:揭示重组的动态过程

对实践的启示

  • 上下文长度不是线性资源,而是有临界效应
  • 示例选择要考虑语义冲突
  • 长上下文的价值被重新定义(重塑能力 vs 存储能力)
  • Prompt设计可以借鉴分层重组的思想

学术影响

  • ICLR 2025接收,机制可解释性研究的代表作
  • 连接了ICL和表征学习两个领域
  • 为理解Transformer的泛化能力提供新理论

局限与展望

  • 任务设计较为理想化,需要在真实任务上验证
  • 理论模型可以进一步精细化
  • 未来可探索主动控制重组、多任务迁移等方向

最深刻的洞察

ICL不仅是”学习任务”,更是”重塑语义”。这意味着:

  • LLM的知识不是固定的,而是上下文依赖的
  • 足够的上下文可以让模型”忘记”预训练,采用全新的概念体系
  • 这种灵活性可能是通用智能的关键特征

对prompt engineering的终极启示

“The power of in-context learning is not just adaptation, but re-imagination of the semantic space.”

ICL的力量不仅在于适应任务,更在于重新想象语义空间

当我们设计prompt时,我们不只是在”告诉”模型做什么,而是在”重塑”模型对世界的理解。

资源链接

引用

1
@inproceedings{park2025iclr,\n  title={ICLR: In-Context Learning of Representations},\n  author={Park, Core Francisco and Lee, Andrew and Lubana, Ekdeep Singh and Yang, Yongyi and Okawa, Maya and Nishi, Kento and Wattenberg, Martin and Tanaka, Hidenori},\n  booktitle={International Conference on Learning Representations},\n  year={2025}\n}
© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero