凌晨两点四十,陆远洲躺在值班室的行军床上,眼睛闭着,脑子没停。
朴正浩那份报告里的数字一直在转26。3%。
不对。
他记得朴正浩上一封邮件里写的是内部验证集18%,那为什么真实环境跑出来差了将近十个百分点?
内部验证集跟真实世界之间的鸿沟,说到底就是训练数据的问题。
他翻了个身,放弃睡觉这件事,爬起来打开电脑。
朴正浩的报告一共四十七页,他昨晚只扫了最后一页的结论数据。现在他从第一页开始,一例一例地翻逐例分析表。
假阳性一共三十一例。
翻到第八例的时候,他停下来把截图放大。一个六十三岁男性,肝右叶后段有个一点八厘米的低密度灶,ai标红置信度0。79,实际诊断是局灶性脂肪浸润。
他往回翻,前面七例里有三例也是类似情况脂肪肝背景下的低密度灶被误判。
另一类集中在第十五到第二十三例之间,清一色是基层八毫米厚层ct。容积效应把小病灶的边缘糊成了一团,模型分不清是实性成分还是伪影。
两类问题,占了假阳性的八成以上。
早上七点二十,林小禾推门进来的时候,陆远洲已经把三十一例假阳性按类型标好了颜色,红色代表脂肪肝误判,蓝色代表层厚干扰。
“老板,您昨晚没睡?”
“泡杯咖啡。”
林小禾看了眼他面前密密麻麻的标注,识趣地没再问,转身去泡咖啡。
八点整,陆远洲拨通了朴正浩的视频。
屏幕那头,朴正浩顶着两个黑眼圈,背景从公寓书房换成了实验室,身后白板上贴满了打印出来的roc曲线图。
“远洲,你看到报告了。”
“看完了。内部验证18%,真实环境28%,差了十个点。你自己分析的原因是什么?”
朴正浩揉了揉太阳穴。“层厚问题是老毛病了,自适应补偿模块对八毫米层厚的矫正还有极限。脂肪肝那块我没预料到会这么集中,国内基层人群脂肪肝比例比训练集里的高。”
“不止这个。”
陆远洲把标注好的表格共享到屏幕上,光标移到第十一例。
“你看这个。五十八岁女性,肝左叶s3段两点一厘米低密度灶,ai标红置信度0。82。最终诊断是肝囊肿。”
朴正浩凑近屏幕看了看。“囊肿的话,密度应该很均匀,模型不应该判错才对。”
“所以我往回查了训练集。”陆远洲切到另一个页面,“林小禾,把昨晚我让你调的那批标注记录拉出来。”
林小禾端着两杯咖啡走过来,放下一杯,另一只手操作笔记本。屏幕上弹出一个表格,列着训练集中某合作医院提供的一批肝脏影像标注记录。
“这批数据一共一百四十六例,来自东部某市中心医院,去年十月入库的。”陆远洲指着标注者一栏,“标注人只有一个名字,住院医师,没有上级复核签字。”
朴正浩的表情变了。
“我抽查了其中跟假阳性影像特征相似的二十例。”陆远洲继续说,“至少十二例标注存疑。有三例影像特征明显是囊肿或血管瘤,被标成了恶性。还有几例边界模糊的,标注理由栏是空白。”
朴正浩闭了一下眼睛。“一个住院医独立标完一百四十六例,没人审……这批数据入库的时候我审了影像质量,没逐例核对标注。是我的问题。”
“不是追责。”陆远洲喝了口咖啡,“问题出了就解决。”
“怎么处理?”
“三件事。”陆远洲竖起手指,“第一,这一百四十六例全部回溯,找两名副高以上的医师独立重新标注。两个人结果不一致的,送第三方仲裁,我来协调人选。”
朴正浩点头。
“第二,从现在开始,所有合作方提供的训练数据,标注环节必须执行双盲核查。两个人独立标,一致率低于85%的批次整批打回。这条写进合作协议模板里。”
“行,我今天改协议。”
“第三,清洗完的数据重新训练,两周内出新版模型。跑完内部验证之后,先在绿通已接入的三十家医院做回顾测试,真实环境假阳性率降到20%以下才推送上线。”