Skip to content
返回

Precision Alignment Agent 流程图

发布于

Precision Alignment Agent 流程图

根据 precision-alignment.prose 整理的 Paddle 与 PyTorch 精度对齐多智能体系统流程图。

简化流程(关键分支)

只保留主要决策点,细节合并为阶段框。

flowchart TD
    Start([开始]) --> Input[输入配置]
    Input --> Scope["范围与知识<br/>C: API 关系与范围 · K: 历史知识指导"]
    Scope --> Baseline["V: 建立精度基线"]

    Baseline --> B1{"① 需要修复?"}

    B1 -->|否| NoFix["无修复: D 做 CI/CE,C 记录已对齐"]
    NoFix --> Review["R: 最终审查与输出报告"]

    B1 -->|是| Analysis["L: 分析 PyTorch / Paddle · C: 汇总"]
    Analysis --> Compare

    subgraph DFC["DFC 修复环 (对比→修改→验证)"]
        Compare["C 对比报告 · P 计划"]
        Fix["A 改核 → D 编译"]
        B2{"② 编译通过?"}
        Validate["V 精度验证 · D CI/CE"]
        B3{"③ 精度已对齐?"}
        Perf["A 性能分析"]

        Compare --> Fix
        Fix --> B2
        B2 -->|否| Fix
        B2 -->|是| Validate
        Validate --> B3
        B3 -->|否| Compare
        B3 -->|是| Perf
    end

    Perf --> Review

    Review --> B4{"④ 最终结果?"}
    B4 -->|完全成功| PR1["R: 成功 PR"]
    B4 -->|部分成功| PR2["R: 部分 PR"]
    B4 -->|完全失败| PR3["R: 失败报告"]

    PR1 & PR2 & PR3 --> Curate["K: 知识沉淀 → knowledge/"]
    Curate --> End([结束])

四个关键分支: ① 需要修复? ② 编译通过?(FGE 内环) ③ 精度已对齐?(DFC 主环) ④ 最终结果?(完全 / 部分 / 失败)


参与智能体

代号名称职责概要
CCoordinator 协调者分析 API 关系、确定范围、对比报告、策略决策
LLocator 定位者代码路径分析、伪代码、精度关键点标注
VValidator 验证者PaddleAPITest 精度测试、基线建立、错误模式分析
DDiagnostician 诊断者编译/安装、CI/CE 测试、故障排查
PPlanner 规划者修复路线图、优先级、依赖与回退
AAligner 对齐者CUDA 核修改、数值实现、性能与兼容
RReviewer 审查者独立验证、PR 生成、失败报告
KCurator 策展者任务前知识指导、任务后知识沉淀与持久化

主流程(完整)

x = 1
flowchart TD
    Start([开始]) --> Input[/"输入: api_name, paddle_path, pytorch_path, paddletest_path, venv_path"/]
    Input --> Init["C: 启动对齐,分析 API 关系与范围"]

    subgraph Scope["确定范围与知识"]
        Init --> ApiScope["C: 分析相关 API(函数/方法变体、共享核)"]
        ApiScope --> TaskScope["C: 确定对齐任务范围与优先级"]
        TaskScope --> Knowledge["K: 基于历史知识提供指导"]
        Knowledge --> ScopeDone["C: 审阅知识指导,初始化环境"]
    end

    ScopeDone --> Baseline["V: 建立 PaddleAPITest 精度基线"]

    Baseline --> RepairDec{"C: 是否需要修复?"}

    RepairDec -->|否| NoRepair["precision_results = 基线"]
    NoRepair --> NoRepairD["D: 执行 CI/CE 测试"]
    NoRepairD --> NoRepairC["C: 记录「已对齐」状态"]
    NoRepairC --> NoRepairA["A: fix_implementation = null"]
    NoRepairA --> FinalReview

    RepairDec -->|是| Parallel

    subgraph Parallel["并行分析"]
        PytorchL["L: 分析 PyTorch 源码<br/>API→中间层→CUDA 核"]
        PaddleL["L: 分析 Paddle 源码<br/>API→中间层→CUDA 核"]
    end

    Parallel --> Summary["C: 汇总 PyTorch / Paddle 分析,准备修复规划"]

    subgraph DFC["DFC 主环: 对比-修复-验证 (最多 3 轮)"]
        Summary --> Compare["C: 生成 PyTorch vs Paddle 对比报告"]
        Compare --> Plan["P: 制定修复路线图"]

        subgraph FGE["FGE 内环: 计划-修改-编译 (最多 5 轮)"]
            Plan --> FGEResume["P: 确定当前实施步骤"]
            FGEResume --> Impl["A: 按计划实现核修改"]
            Impl --> Compile["D: 编译 Paddle 并安装到 venv"]
            Compile --> CompOk{"编译/安装<br/>是否成功?"}
            CompOk -->|是| Validate["V: PaddleAPITest 精度验证"]
            CompOk -->|否| ErrType{"错误类型?"}
            ErrType -->|简单| SimpleD["D: 修复简单错误,重试编译"]
            SimpleD --> Compile
            ErrType -->|复杂| ComplexA["A: 分析根因并修改实现"]
            ComplexA --> Compile
        end

        Validate --> Quality["D: CI/CE 质量报告"]
        Quality --> Aligned{"所有 API<br/>精度是否已对齐?"}
        Aligned -->|是| Perf["A: 性能对比分析"]
        Aligned -->|否| NextRound["C: 分析结果,为下一轮更新策略"]
        NextRound --> Compare
        Perf --> FinalReview
    end

    subgraph Final["最终审查与输出"]
        FinalReview["R: 独立验证<br/>编译 / 精度测试 / CI·CE / 性能 / 数值对齐"]
        FinalReview --> Out1["输出: alignment_report"]
        FinalReview --> Out2["输出: modified_kernel"]
        FinalReview --> Out3["输出: api_scope_report"]
    end

    Out1 & Out2 & Out3 --> PREval{"最终结果?"}

    PREval -->|完全成功| PRSuccess["R: 创建 PR (成功)"]
    PREval -->|部分成功| PRPartial["R: 创建 PR (标明未完成)"]
    PREval -->|完全失败| PRFail["R: 生成失败报告"]

    PRSuccess & PRPartial & PRFail --> Curate["K: 从全流程抽取知识并持久化到 knowledge/"]

    Curate --> End([结束])

DFC 主环与 FGE 内环

PR 与知识沉淀


建议修改

上一篇
OpenProse 案例研究:当 DSL 的执行器是大模型
下一篇
PyCapsule:Python 与其他语言之间的指针传递桥梁