资讯详情

资讯详情

GraphRAG 找到调用链以后:怎样区分相关、干预与反事实

调用图里有“网关→订单→数据库”再加上三条同一时刻变红的监控曲线仍然不能直接得出“网关重试导致数据库锁等待”。共同的流量变化、发布操作或者采样偏差都可能改变解释。GraphRAG 适合帮助我们找出相关文档、路径与已知机制。要做干预或反事实必须再给出可检验的因果假设。DoWhy 的作者把因果分析分为建模、识别、估计和反驳四个步骤而不是把一张图送给模型就完成归因。原论文路径是一份待核对的机制清单先问边从哪里来RPC 调用、代码依赖、专家确认还是文本共现。再问边是否有时间范围和版本。一次升级把同步调用改成消息异步化以后旧图仍可能看起来连通却已经不适合解释新事故。反事实还要求固定同一个个体的外生扰动。假设知道某次观测的流量背景与噪声把重试数改成零以后其他噪声不能重新抽样否则比较的不再是同一次事件。若这些扰动无法从观测唯一恢复就需要给出分布或区间而不是一个精确到小数点的“挽回概率”。用一组写明的方程演示不冒充学出来的因果关系下面明确假定X2ZUxY3XZUy。Z同时影响 X 与 Y是共同原因。先由观测反推噪声再干预 X这个程序验证代数计算不证明这套方程描述了真实微服务。图中的三种问题不是三级准确率排名观察描述共变干预改变机制中的赋值反事实比较同一噪声下的替代状态。GraphRAG 返回的文本需要说明支持的是哪一层。def infer_noise(z, x, y): return {ux: x - 2*z, uy: y - 3*x - z} def forward(z, noise, intervention_xNone): x 2*z noise[ux] if intervention_x is None else intervention_x y 3*x z noise[uy] return x, y observed {z: 1, x: 5, y: 20} u infer_noise(**observed) assert u {ux: 3, uy: 4} assert forward(observed[z], u) (5, 20) cf_x, cf_y forward(observed[z], u, intervention_x0) assert (cf_x, cf_y) (0, 5) # Same observation, same exogenous noise; do not resample U here. assert u {ux: 3, uy: 4} print(factual Y20; assumed-model counterfactual Y5; noise fixed)例子跑通以后还要验证什么这段代码已在本地 macOS、CPython 3.9.6 下运行实际输出为factual Y20; assumed-model counterfactual Y5; noise fixed。它验证的是例子中的数据约束与分支不包含线上服务的吞吐或延迟测量。未安装 DoWhy、运行因果发现、访问监控或调用模型。系数与观测都是教学构造。真实分析需要检查混杂、可识别性、干预定义与敏感性若无法支持某条边应把回答停在相关线索而不是生成“已定位根因”的报告。延伸阅读DoWhy: An End-to-End Library for Causal Inference区分建模、识别、估计和反驳2020 年研究而非当月新发布。GraphRAG Global Search说明图谱社区报告在检索回答中的角色不赋予其因果识别能力。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →