最近自己做了个开源项目,叫 Causal Forge ,核心目标是解决因果分析中「决策不可靠」的痛点。
我们平时接触的「因果关系」,大多来自两个孤立的维度,最终导致决策靠“拍脑袋”:
不追求“自动生成厉害的因果图”,而是聚焦更朴素、更实用的目标:让因果结论可验证、可追溯、可复盘,具体流程如下:
目前更适合偏研究、审计类的场景,尤其适配:
不重复造轮子,基于成熟工具组合,聚焦“流水线编排+证据管理”,核心技术包括:
文本与数据因果双向验证(核心)
区别于“只做文本抽取”或“只做数据因果发现”的项目,强制让两边结果对撞,只有双方都支持的候选,才进入后续验证。
失败也留档,不只展示成功结论
每条因果链若未通过验证,会详细记录“卡在哪一步”“失败原因”(如时序不成立、稳定性不足),为复盘和迭代提供依据。
五道闸门式严格验证
验证不止一步,需依次通过:必要性、充分性、时序性、不可逆性、跨周期稳定性,全部通过才认定为可信因果链。
因果链条全链路可追溯
最终结论不是“模型认为 A 导致 B”,而是能回查到对应的原始文本段落、数据切片、验证参数和过程,确保可信。
偏研究/审计,而非黑盒预测器
核心价值不是“给答案”,而是“说明答案为什么可信”,适配研究、复核等需要严谨证据的场景。
| 模块 | 职责 | 关键依赖 |
|---|---|---|
schema/ |
所有数据契约( Decision / Callback / CausalLink / CausalChain / Evidence ) | Pydantic v2 |
topdown/ |
文本 → 结构化 Decision/Callback 候选 | LLM via instructor, spaCy, CauseNet |
bottomup/ |
数据 → 候选因果边集(静态 + 时序) | causal-learn, Tigramite, DoWhy, EconML |
crosscheck/ |
语义对齐 + 双向取交集 + 冲突标注 | sentence-transformers, networkx |
validate/ |
五道闸门串联校验 + 失败原因记录 | DoWhy, statsmodels, scipy |
chain/ |
Link 拼 DAG + 剪枝 + 综合置信度评分 | networkx |
store/ |
结果沉淀( JSONL/Parquet/GraphML/Neo4j ) | — |
utils/ |
时间轴对齐、随机种子、日志、配置加载 | loguru, rich, OmegaConf |
如果你对「把文本因果叙事和数据因果验证结合」有兴趣,欢迎查看完整文档: https://github.com/zjhong/causal-forge/blob/main/README.zh-CN.md
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.