六月中旬,ESA的接口改造完成了。
顾深把代码打包发给Marco,附了一份详细的部署文档。Marco回复:“Received. We’ll run integration tests next week.”顾深没有等结果。她开始做另一件事,把可解释性模块从系统里剥离出来,做成一个独立的开源库。这个想法在她脑子里转了很久。可解释性模块是她的系统里最核心的部分,也是最通用的部分。不管用什么模型,不管处理什么数据,只要需要知道“为什么报警”,这个模块都能用。把它开源,别人可以用,可以用在她不知道的项目上,可以用在她想不到的地方。
林小北说:“顾姐,你把核心代码开源了,别人抄去怎么办?”顾深说:“用了才知道好不好。知道好不好就会改。改了就会更好。代码不怕抄,怕没人用。”林小北想了想,说:“你这话有点像老周。”顾深愣了一下。这是林小北第一次提到老周。他没见过老周,但他听过顾深偶尔提起。“老周说过类似的话?”林小北问。顾深说:“他说过‘你的东西在别人脑子里,他们就拿不走’。我说‘代码在别人电脑里,他们就能用’。不一样,但意思差不多。”
她用两周时间把模块重构成了独立的Python包,写了详细的README和API文档,加了一组示例数据和测试脚本。和合作单位沟通,同意开源。然后在GitHub上新建了一个仓库,把代码推了上去。仓库的名字叫“explanator”,副标题是“Explainable AI for anomaly detection in time-series data”。她选了一个MIT许可证,随便用,随便改,随便商用,保留版权声明就行。
推完之后,她在项目群里发了一条消息:“可解释性模块已开源。链接在内网。有需要的自取。”林小北秒回了一个ok。两个新人各回了一个好棒的表情包。顾深不介意。她不是为了得到谁的认可才开源的。
一周后,Marco发来邮件:“Integration tests passed. Your module works perfectly with our data. We’ve also tried the standalone version from GitHub. Very useful. Thanks for open-sourcing it.”顾深回了一个单词:“Great.”