AgentDepthAgent 工程学习指南
输入概念或问题,检索正文和待编写目录。
第一次学习?从 L0 总览开始 →

论文复现、消融与技术雷达

我的学习 →

正在读取学习记录…

论文复现是按论文描述重新实现方法,并在对应条件下比较结果。消融是拿掉一个组件,观察它对结果的影响。技术雷达则把候选技术分成继续观察、进入试验、业务采用等阶段,让选择跟着证据推进。像排查一道菜的风味,保留同一批食材,只去掉一种调料,才能知道变化来自哪一处;对应到工程里,食材是评测材料,调料是组件。

我们用一个简单的答案匹配任务练习消融过程:四个固定回答里,有一个正确答案被前后空格包住。开启去空白组件时有三条匹配,关闭时只有两条。50%到75%的差距来自这一项组件,材料与答案保持不变。

从输入到可核对结果

CASES 给出候选回答和人工参考答案,程序实际运行去空白与精确匹配。它是微型消融材料,用来练习控制变量;完整论文复现还要使用论文指定的数据、代码与训练或推理配置。

baseline始终关闭归一化,full读取USE_NORMALIZATION。两者使用同一CASES,才能比较得分差。雷达门限0.20代表本例要求至少20个百分点收益,增益0.25达到它便进入业务试验。技术雷达阶段决定下一步投入;达到小样本门限后,进入业务试验验证真实任务的效果、成本与维护要求。机器学习复现术语与建议讨论复现所需的方法、资料和条件。

样本候选回答参考答案关闭去空白开启去空白
1订单A订单A匹配匹配
2前后含空格的订单B订单B不匹配匹配
3订单C订单C匹配匹配
4未知订单D不匹配不匹配
同一四条材料,然后完整方案 / 关闭strip,然后配对得分75% / 50%,然后增益25个百分点,增益≥20个百分点 → 业务试验
按箭头阅读一次正常路径;下方分支标出当前主题的条件变化。

保存并运行这两个文件

在 PowerShell 创建练习目录:

PowerShell
New-Item -ItemType Directory -Force l9-research
cd l9-research

macOS 终端:

Bash
mkdir -p l9-research
cd l9-research

把下面第一段完整代码保存为 ablation_lab.py,第二段保存为 test_ablation_lab.py,两份文件放在这个目录。

Python
USE_NORMALIZATION = True
CASES = [("订单A", "订单A"), (" 订单B ", "订单B"), ("订单C", "订单C"), ("未知", "订单D")]

def reproduce(cases, normalize):
    if not cases:
        raise ValueError("评测材料不能为空")
    matches = 0
    for prediction, truth in cases:
        # 消融只关闭去空白这一个组件;材料、答案和计分规则保持相同。
        if normalize:
            prediction = prediction.strip()
        matches += prediction == truth
    return matches / len(cases)

def radar(baseline, full, required_gain):
    if required_gain < 0:
        raise ValueError("收益门限不能为负数")
    # 雷达阶段从同一小样本证据推出:达到门限才进入业务试验。
    return "进入业务试验" if full - baseline >= required_gain else "继续观察"

if __name__ == "__main__":
    baseline = reproduce(CASES, False)
    full = reproduce(CASES, USE_NORMALIZATION)
    print("关闭归一化:" + format(baseline, ".0%"))
    print("当前方案:" + format(full, ".0%"))
    print("增益:" + format((full - baseline) * 100, ".0f") + "个百分点")
    print("技术雷达:" + radar(baseline, full, 0.20))
Python
import unittest
import ablation_lab as lab


class MechanismTests(unittest.TestCase):
    # 正常、边界和失败输入都由这里提供,直接运行即可。

    def test_normal_ablation(self):
        self.assertEqual(lab.reproduce(lab.CASES, False), 0.5)
        self.assertEqual(lab.reproduce(lab.CASES, True), 0.75)

    def test_boundary_radar(self):
        self.assertEqual(lab.radar(0.5, 0.75, 0.25), "进入业务试验")
        self.assertEqual(lab.radar(0.5, 0.75, 0.26), "继续观察")

    def test_failure_empty(self):
        with self.assertRaises(ValueError):
            lab.reproduce([], True)


if __name__ == "__main__":
    unittest.main()

打开 PowerShell,逐行输入下列命令。cd 是进入文件夹,dir 是列出文件;确认列表里有刚保存的两个 .py 文件,再运行 Python。

Bash
# 在刚才创建的练习目录检查文件,再运行程序。
ls
python -X utf8 ablation_lab.py
python -X utf8 -m unittest -v test_ablation_lab.py

程序输出:

TXT
关闭归一化:50%
当前方案:75%
增益:25个百分点
技术雷达:进入业务试验

测试末尾应显示 Ran 3 tests 与 OK。若找不到文件,检查当前目录与扩展名;若导入失败,确认测试和主程序在同一文件夹。测试描述的三组材料就在上方代码,不需要另外准备输入。

改一处,再看结果

输出直接写“增益:25个百分点”;相对50%的基线,它的相对提升是50%,两个说法分母不同。技术结论应写清指标和差值含义,避免只写“提升25%”。

把 USE_NORMALIZATION = True 改成 USE_NORMALIZATION = False,保存并重跑。当前方案降为50%,增益为0个百分点,雷达变成“继续观察”。恢复True后重跑。实验直接告诉我们,改参关闭的是空白归一化,并没有改变模型权重或重新训练模型。

阅读真实论文时,先找任务定义、数据划分、评价指标、基线和消融表。复现未接近报告值时,逐项核对输入预处理、随机性、样本量和推理设置。不要不断试参数直到测试集变好,再把那组结果当独立验证;先在开发集选择方案,最后一次评估冻结的测试集。技术雷达还需加入许可证、算力成本、维护活跃度与业务约束,达到实验门限后才能安排业务试验。

改动后仍在刚才的 PowerShell 目录运行:

Bash
python -X utf8 ablation_lab.py

确认上述变化后,把参数恢复成原值,保存并再次执行这条命令。

把机制接回 Agent

技术雷达中的每个候选应记录研究问题、对照基线、收益、成本、维护与下一次决策条件。先把论文的输入输出与业务任务对上,再复现最小结果,再做消融。新技术通过小样本后进入业务试验,是否采用还要在真实任务、费用和维护要求下验证。

课后练习展开习题收起习题

4 道练习 · 客观题规则评分 · 其余题目待批改

正在读取本地记录…

不调用模型,不执行代码。简答、代码和场景题仅保存答案并展示自查标准,不生成评分、徽章或认证。输入内容不会自动保存,请点击提交;不要填写个人信息或密钥。

练习 1 / 4 · v1.0.1

选择题 · 先判断边界

关于“论文复现、消融与技术雷达”,哪种做法更稳妥?

对应知识点:L9-research

选择一个答案
练习 2 / 4 · v1.0.0

简答题 · 解释失败

写出一个失败输入并说明记录字段。

对应知识点:L9-research

练习 3 / 4 · v1.0.0

代码题 · 边界测试

补充正常、边界、失败三组输入和预期结果。

对应知识点:L9-research

练习 4 / 4 · v1.0.0

场景题 · 结果未知

证据不足时如何设计状态和人工接管?

对应知识点:L9-research

图片查看器
100%

文章配图 · 按 Esc 关闭