雨下到傍晚才停。第二天陆衍到公司时,办公桌上摊着监管组发的会议纪要,最后一页用红笔圈了句“请于五个工作日内提交说明材料,报协会技术委员会参考”。他泡了杯隔夜的白茶,盘腿坐在转椅上翻出那本磨得边角起毛的黑色软皮本,对着空白页发了十分钟呆,转笔转得笔帽都掉了,弯腰捡起来插回笔杆,还是没想好第一句写啥。
要写的东西他自己门儿清,难的是怎么把那些技术逻辑翻译成监管能看懂的大白话。他先敲了句“系统基于字段哈希匹配与余弦相似度算法构建交叉比对引擎”,写完自己读了一遍,划掉,改成“系统自动扫描底稿里的文本、签字、日期等字段,找矛盾、找重复”。又敲了句“比对规则可动态配置”,觉得还是太硬,改成“客户可以根据自己项目的规则调整比对要求,我们只提供基础规则包,不限制客户自定义”。敲了半页,总觉得哪里卡了壳,冯树端着一杯加了冰的豆浆进来,见他抓耳挠腮的,凑过来扫了一眼屏幕:“你可别把规则写死了,以后改起来麻烦死。”
陆衍抬头:“嗯?”
“你看啊,现在我们的比对规则只覆盖文本重复、签字重叠、日期逻辑,以后要加合同条款比对、财务数据勾稽,你现在要是把规则写得明明白白,以后迭代是不是还得走报备?那得多麻烦。”冯树咬了一口油条,豆浆杯壁上的水珠滴在本子上,洇了一小团浅褐色的印子,“监管要的是边界,不是给你发奖状的技术白皮书。你写清楚能干啥、不能干啥,剩下的让他们自己判断。”
陆衍转笔的手停在半空,指尖敲了敲本子皮,扯了下嘴角:“有道理。”
他重新铺开一张A4纸,捋了三页的结构:第一页只写系统能做什么,不超过两百字,举两个昨天演示里的例子,红标黄标是什么意思,客户拿到手能直接扫底稿。第二页写不能做什么,篇幅占整张纸的一半,头一条写数据全在客户本地跑,青舟的服务器碰不到任何客户文件,比对结束不留任何副本;第二条写系统只标异常,不下结论,所有异常都得人工复核,我们不替客户判断是不是造假;第三条写比对规则由客户自己配置,我们只给基础包,后续迭代不需要报备;最后一条写系统不能替代保代、内核委员的签字责任,所有结论都得人来担。第三页放试点的数据,列个简单的表:试点扫了三年四万两千多条底稿条目,出了十七条异常,人工复核下来十三起是实的,四起是误报,数字全是真的,经得起查。
他敲敲改改,熬到中午,把技术术语全换成了大白话,反复读了三遍,觉得连他妈都能看懂,才指尖一按发送键,把材料发到了协会的公共邮箱。刚松了手指,手机就响了,是个陌生号码,接起来是东江证券昨天递名片的那位项目经理:“陆总您好,我是东江的刘畅,我们领导看了昨天的演示,想下周带合规和投行的人上门聊聊,方便吗?”
冯树正蹲在卫越旁边看他改误报的识别逻辑,听见这话噌地就站起来,抢过陆衍的手机:“方便!太方便了!您看下周二行不行?我们安排会议室,带你们跑一遍全流程,比说十句都管用。”
挂了电话,冯树把手机塞回陆衍手里,冲他挤眼睛:“这单要是能成,咱们今年的KPI就齐了,晚上我请吃市井路的重庆火锅。”
陆衍还没说话,行政的小周抱着个挂号信封进来,信封上盖着证券业协会的红章,收件人写的是陆衍的名字。他手边正摊着那本磨得边角起毛的软皮本,翻到昨天写的那页,字迹还新,他指尖蹭了蹭本子上刚写的“边界说清楚了,演示就成了一半”,墨迹还没干透。
陆衍拆信封的动作顿了顿,指尖在封口处停了两秒才挑开。里面不是预想中的红头批复,是几张普通的A4打印纸,最上面一行黑体字写着“关于青舟科技文件核查系统技术备案的征询意见”。陆衍扫了一眼,眉梢挑了一下。
旁边的冯树已经凑过来了,叼着半根没吃完的油条,含糊地念:“第一,比对规则覆盖率怎么证明?第二,误报率样本量够不够?第三,边界声明谁背书?”念完他“哟”了一声,油条渣掉在办公桌上,“这是真抠咱们细节啊,三个问题全戳腚眼子上,全是奔着命门来的。”
陆衍没说话,指尖敲着那三张纸。第一个问题,比对规则覆盖率,他们现在的基础规则包只覆盖文本、签字、日期三类,覆盖率确实没法说100%,要是瞎吹个数字,以后查起来就是麻烦;第二个误报率,试点那四个误报是项目太赶没做二次标注,样本量确实小,撑死算个预估值;第三个边界背书,他们之前只写了“系统不替代人工判断”,没落具体的责任主体,监管要的是明确的签字方,不是空口白话。
冯树见他半天没吭声,以为他着急,伸手拍了拍他肩膀:“咋了?这三个问题难?”
“不难。”陆衍扯了下嘴角,把纸折起来塞进本子里,指尖蹭了蹭本子皮上那道磨得发亮的印子,“问得好。说明人家真看了材料,不是走流程批个文就完事。要是直接给批复,我还得担心他们没仔细看我们的边界声明,到时候真出问题扯皮。”
他转身拍了拍卫越的工位隔板:“把试点那十七个项目的底稿原始数据导出来,四个误报的案例单独拉个表,标注清楚当时的比对规则版本、人工复核的过程。三天之内我要看到完整的样本库,每个样本都带原始凭证扫描件。”
卫越头都没抬,手指在键盘上敲得飞快:“早就导好了,等你开金口。误报的那四个,一个是旧版合同扫描的时候漏了个骑缝章,系统把两页当成两份合同,日期对不上报了异常;一个是客户自己改了文件编号没留变更记录,我早给你标好了。”
陆衍嗯了一声,又转头跟冯树说:“你约刘畅的时候提一嘴,下周东江的演示,我们可以把试点数据全摊开给他们看,误报的案例也一起讲,不藏着掖着。敢把短板亮出来,比吹一百句都管用。”
冯树眼睛亮了,抓过手机就要发微信,刚划开屏幕又停住,回头问陆衍:“那协会那边这三个问题,咱们怎么回?按你说的,边界声明要不要找律所做见证?”
陆衍笔尖没停,在本子上补了两行字:“边界声明我们自己盖公章就行,不用找律所。三个问题的回函我今晚写,明天发过去。你帮我把试点数据的脱敏版本整理好,随回函一起附过去。”
冯树比了个OK,抓过键盘就开始整理数据,键盘敲得噼啪响。
快下班的时候,卫越把整理好的样本库发到陆衍邮箱,他坐回工位,点开文件翻到第三个误报案例的扫描件,是穗州证券底稿里的一份旧版合同,两页纸的骑缝章只盖了一半,系统识别成两份独立的合同,日期差了半个月,报了异常。他盯着那半道骑缝章看了两秒,在本子上又补了一行:“试点样本要补边界案例:格式瑕疵导致的误报,单独归为一类。”
下班的时候天已经黑了,他抱着本子出办公楼,风一吹,脑子里的浆糊被刮干净了不少。那三个问题其实根本不是刁难,是监管在给他们划道道:你要做这个工具,就得把能做什么、不能做什么、出了事谁担责,全给我摊在明面上。他翻到本子最新的一页,刚写的那两行字旁边,又加了一句:“边界写清楚了,比会吹有用。”
刚写完这句,手机震了一下,是刘畅发来的微信,确认下周二下午两点带团队过来,末尾还加了个笑脸。陆衍把手机塞回兜里,大步往地铁站走,风把本子的页吹得哗哗响,那页刚写的字被风掀得翻了个面,露出背面他上周算的算力成本表,边缘被早上冯树滴的豆浆渍晕了个小圈。