问题

如何验证CAR的概念原子能否表达不确定性的多样性?上次会话设计了实验方案,本次实现代码框架。

实现内容

1. 完整实验代码结构

1
2
3
4
5
6
projects/car-expressivity-test/
├── car_expressivity_test.py # 主实验代码(GPU版)
├── concept_prompts.py # 20个概念原子的提示模板
├── data_loader.py # GSM8K/PopQA/CommonsenseQA数据加载
├── run_simulated.py # CPU模拟实验(调试用)
└── requirements.txt

2. 核心算法实现

CAR分解 (基于岭回归):

1
2
3
4
5
6
7
def car_decompose(r, A, alpha=0.1):
# w = (A^T A + alpha I)^{-1} A^T r
ATA = A.T @ A
alpha_I = alpha * np.eye(ATA.shape[0])
ATr = A.T @ r
w = np.linalg.solve(ATA + alpha_I, ATr)
return w

不确定性方向提取:

  • 用逻辑回归探针预测生成正确性
  • 探针权重即为不确定性方向

3. 模拟实验结果

运行 run_simulated.py 验证框架:

数据集 Top 2 概念原子 权重
GSM8K (数学) Math, Logic 0.068, 0.048
PopQA (事实) Epistemic Uncertainty, Confidence(-) 0.112, -0.027
CommonsenseQA Epistemic Uncertainty, Creativity 0.075, 0.032

权重相关性:

  • gsm8k vs popqa: -0.029 (几乎不相关)
  • gsm8k vs commonsenseqa: 0.139 (弱相关)
  • popqa vs commonsenseqa: 0.895 (高度相关)

4. 初步发现

  1. CAR可以区分数学 vs 事实不确定性:权重相关性接近0

  2. 事实 vs 常识不确定性高度相关:可能因为两者都涉及知识检索

  3. 概念原子贡献符合直觉

    • 数学不确定性 → Math/Logic 原子
    • 事实不确定性 → Epistemic Uncertainty 原子

下一步

  1. 在实际模型上运行实验(需要GPU)
  2. 分析真实不确定性的CAR分解
  3. 验证跨数据集迁移效果

批判性反思

模拟实验的局限

模拟实验用随机向量构造"概念原子",无法验证:

  1. 真实模型中概念原子的语义一致性
  2. CAR分解的重构质量

需要验证的假设

  1. 线性可分性假设:不确定性是否真的线性可分?

    • 不确定性多重性论文支持这个假设
  2. CAR覆盖假设:20个概念原子是否足够覆盖不确定性子空间?

    • 需要实验验证
  3. 跨模型一致性假设:不同模型的概念原子是否对齐?

    • CAR论文的层对齐方法可以处理这个问题

参考