回档2015:我和梁文锋把AGI提前了十年
给你一个不可能的活
陈野是早上八点半给黄老板打的电话。他站在出租屋的阳台栏杆边上,说自己昨天晚上肚子不舒服,半夜跑了两趟厕所,今天想歇一天。
黄老板问了两句,说"那你歇着吧",又补了一句"周五那个报表别忘了"。
挂了电话,陈野把通话记录看了一眼,五十一秒。这是他到2015年以后撒的第一个谎,撒得比他想得顺。
雅克比投资在古墩路一栋写字楼的九楼。陈野九点四十到的,在楼下站了三分钟。他把要说的几句话在嘴里过了一遍,过完发现每一句单独拿出来都站不住,索性不背了。
电梯到九楼,走廊尽头左手第二间,门上用透明胶贴着一张A4纸,打印了五个字:雅克比投资。纸的右下角翘起来一块。
门没关严,空调外机的声音隔着门就听得见。陈野推门进去。
八九十平的一个大开间,七张桌子挤在一起,靠窗那排桌上摆着两台机箱和三摞打印纸。墙角码着四箱红牛,最上面那箱拆过了,少掉三罐。饮水机的加热灯一亮一暗。
第一个人注意到他的是坐在门口的老周。
老周四十多岁,电话听筒夹在脖子上,右手在纸上画线,画到一半抬眼把陈野从上到下看了一遍。
"你就是那个搞模型的?"
"我姓陈。"
"做过几年实盘?"
"没做过。"
老周手里的笔停了一下,问:"你多大。"
"二十四。"
老周把听筒从脖子上摘下来,回头冲着里间喊:"文锋!有人找你!"
喊完他小声嘟囔了一句:"又来一个搞模型的。"
嘟囔完,他对着话筒说:"没说你。我们这儿来了个小孩。"
陈野站着没动,也不知道该不该往里走。老周用笔尖指了指靠门那张空桌子:"坐吧。里头那位一会儿出来,你别吓着。"
"他怎么了。"
"他话多。"老周说,"能说一上午。你要是不想听,就说你肚子疼。"
陈野刚把包放下,里间的门开了。
出来的人白衬衫,扣子系到最上面一颗,胳膊底下夹着一沓打印纸,纸边上全是铅笔划的杠。
"你就是文锋说的那个。"他走到陈野跟前站住,"你那套东西,一年能赚多少钱。"
"我不知道。"
徐进看了他两秒,眉毛挑起来,笑了。
"行,你挺实在。"他侧身让开半步,"我叫徐进。进去坐。"
他往里走,走了两步又回头:"真不知道?"
"真不知道。"
"那你进去吧。"徐进说,"他等了一上午了。"
里间的门又响了一声,这回出来的是梁文锋。
他手里拿着半个包子,衬衫套在T恤外面,一颗扣子都没系。他看见陈野,脚步快了两下,隔着两张桌子就喊:"来了!"
"吃了吗?没吃我这有包子。"
"吃了。"陈野说。
"吃了啊。"梁文锋听起来有点失望。他把那半个包子塞进嘴里,一边嚼一边走到一张桌子前,从桌底下抽出一台笔记本,用袖子抹了一下屏幕,推到陈野面前,"那你先看看这个。"
笔记本很旧,A面磨得发亮,转轴那里缠着一圈透明胶。
陈野打开屏幕。上面是一个脚本窗口,还有一个画了两条线的图。图上的中文注释写得又密又乱,字很难看。
"这是我们从四月底卡到现在的。"梁文锋把包子咽下去,"回测这条好看得很,实盘这条一上就走下坡。"
"每天掉一点。"老周在门口接话,"回头看,少了一大截。"
"代码重写了三遍。"梁文锋伸出三根手指,扭头朝靠窗那边喊,"你们那边几遍?"
靠窗那排有人头也不抬地回了一句:"算上今天上午,第四遍。"
陈野把鼠标挪过去,点开脚本。数据加载那一段塞了几十列字段,一列一列读进来,读完直接喂给模型。整段代码干干净净,注释齐全,写得比他在潮汐数据见过的东西都规矩。
"你要是找不到,也不怪你。"梁文锋在旁边说,"看看就行。"
说完他没走。他从隔壁搬了把椅子过来,放在陈野左边半米的地方,坐下,两条腿伸出去。
然后他就开始问问题了。 "这个图你从哪儿看起?"
"这列是什么。"
"哎你等一下,回去一下。"
"你这个鼠标怎么划这么快。"
陈野看了十分钟,跟他说了三遍"我还没看完"。梁文锋说"行行行,你看你看",胳膊搭在椅背上,眼睛一直盯着屏幕,隔两分钟又问一句。
十点出头,陈野回过头找老周:"我要三样东西。数据字典、字段更新日志,还有每一列是从哪个接口来的。"
老周从抽屉里翻的时候脸拉得挺长:"这些都是我买的。合同在我这儿,你要这个干什么。"
"我想看看这几个字段什么时候才真的到手。"
老周嘟囔了两句,把三沓纸和两个U盘拍在桌上。
接下来的一个多小时,陈野问的问题都很碎。
"这一列是哪年开始有数据的。"
"当天盘后更新,还是第二天早上。"
"这个接口换过版本吗,换的时候历史值重算没有。"
老周一开始答得很冲,答到后面声音慢下来。有几个问题他自己也答不上,翻出手机给数据商打电话,打了两个没人接。
十一点半,陈野停下来了。
他指着屏幕上一列叫"当日成交额(后复权)"的数据:"这列是数据商给你们的吧。"
"委托加工的。"老周说,"我们这儿哪算得动这个。"
"他们改过。"
"什么改过。"
"这一列的历史值被重新算过好几遍。"陈野把更新日志翻到前面几页,把日期那一栏转过去给老周看,"去年到今年,改了七次。你们拿2013年那天的数喂模型的时候,那个数是2015年4月才算出来的。"
老周凑过来,看了大概二十秒,没说话。
"这个有问题吗。"他问。
"回测的时候,模型站在2013年那一天看盘。"陈野说,"它手上拿着一个两年以后才有的数。"
"还有这个。"他又往下翻了三十几行,停在一列叫"当日融资余额"的数据上,"接口说明写着每交易日盘后更新。"
"对啊。"老周说,"交易所晚上才发。我天天等到十一点。"
"那模型是拿它预测当天的收益。"
老周脖子上的听筒往下滑了一截,他伸手扶住,扶完才想起来那通电话早挂了。
陈野刚说完,左边有人凑过来。梁文锋把脑袋伸到屏幕前面:"你等一下,你慢点,我看看这一列。"
陈野把袖子往上推,开始改。
他只在数据加载那一段里动了一处:把"当日融资余额"整列往后挪了一天,模型今天只能看见昨天收盘以后公布的数。改动就这一处。
重跑花了六分钟。进度条走完,那张图重新画出来。
上面那条漂亮的回测曲线一路往下掉,掉到下面那条线的上方,然后往那条线上靠。两条线越靠越近,最右边那一段几乎贴到一起。
陈野把椅子往后推了半米,两只手从键盘上拿下来,甩了甩手腕。右下角亮了一下。
【奇点】
算力值:+400(技术判断被现实验证)
当前算力值:700
「查账查出来的,打折。」那个声音说。
陈野小声回了一句:"你能不能挑个时候。"
"你说什么?"梁文锋问。
"我说这数据商够可以的。"
老周是第一个动的。 他把自己那把椅子拉到隔壁那台机器前面,插上U盘,让陈野把刚才改的那一段发过来,然后自己跑。跑完一遍,他又从后往前拉了一遍。
拉到第三遍的时候他站起来,走到饮水机那儿接了杯水。饮水机那个热水键有点松,他按了两下才出水。
他把杯子放在陈野桌上,放下去的时候磕了一下桌面,水洒出来一点。
"这杯水给你的。"老周说,"接下来我要骂人,你听着。"
他掏出手机翻通讯录,拨出去,先把免提按开了。
"王老板。"老周的声音一下子提上去,"我问你,你们那列复权成交额,从去年到现在,重算过几版?"
电话那头说了两句,听不清。
"你别跟我说口径调整。我这儿有个二十四岁的小孩,两个小时给我扒出来的。你们卖我五年数据,一个字没提。"
电话那头又说了一串。 "下午两点,你过来。"老周说,"把你那边的改版日志带全。"
挂了电话,老周把手机往桌上一扔,转头跟陈野说:"他们签合同那天,一口一个'服务'。"
靠窗那边有人探头喊:"周哥,真找出来了?"
"找出来了。你别问,我正难受。"
徐进把手里那沓打印纸放下,掏出手机往走廊走。走出去两步他就站住了,站在门口讲。
"老李,你过来一趟。"他说,"我们那个模型是假的。"
电话那头问了什么。 "回测和实盘差在哪儿,我这儿有人算出来了。"徐进看了一眼手表,"下午两点,你过来。数据商也到。"
梁文锋凑到屏幕前面。 他把滚动条从上拉到下,又从下拉到上,拉了三遍。第三遍拉完,他把脸转过来。
"等一下等一下。"他说,"你这个挪一天,是什么意思。"
"这列数是收盘以后才有的。挪一天,就是让模型只拿昨天的数去猜今天。"
"那它之前是拿今天的数猜今天。"
"对。"
"哦。"梁文锋往后坐了一点,又往前凑回来,"那你这个挪一天的规矩,能不能写成一个检查脚本。"
"能写。"
"能不能每天跑一遍。"
"能。"
"跑一遍多久。"
"全表十几秒。"
梁文锋两只手在桌子上拍了一下:"那早上八点四十跑一遍。"
"八点四十在开晨会。"老周说。
"那就八点半。"梁文锋说,"跑完打出来,贴在饮水机上。"
他掏出那个牛皮纸本子,翻到后面一页,写了两个数,算了一会儿。
"这个坑,三个月。"他说,"白干。算上退给客户的,八十七万。"
"九十一万四千。"徐进从门口说,"我上周三算过。"
"你怎么没跟我说。"
"我说了。"徐进说,"你当时说,这个……有可能。"
"这个……有可能。"梁文锋跟着念了一遍,自己顿了一下,然后笑了,"我说的是这数有可能还多。"
陈野在心里飞快地过了一下:九十一万四,除以六千五,够他挣十一年。他咽了口唾沫。
梁文锋把本子合上,转过头来看他。
"你原来那边多少钱一个月?"
陈野说六千五。梁文锋跟徐进对视了一眼,说:"你明天别去上班了。"
陈野愣住。梁文锋补一句:"我这儿给一万二。你要是嫌少,你说话。"
陈野说"不用不用"。
梁文锋:"那就一万二。"
黄老板问了两句,说"那你歇着吧",又补了一句"周五那个报表别忘了"。
挂了电话,陈野把通话记录看了一眼,五十一秒。这是他到2015年以后撒的第一个谎,撒得比他想得顺。
雅克比投资在古墩路一栋写字楼的九楼。陈野九点四十到的,在楼下站了三分钟。他把要说的几句话在嘴里过了一遍,过完发现每一句单独拿出来都站不住,索性不背了。
电梯到九楼,走廊尽头左手第二间,门上用透明胶贴着一张A4纸,打印了五个字:雅克比投资。纸的右下角翘起来一块。
门没关严,空调外机的声音隔着门就听得见。陈野推门进去。
八九十平的一个大开间,七张桌子挤在一起,靠窗那排桌上摆着两台机箱和三摞打印纸。墙角码着四箱红牛,最上面那箱拆过了,少掉三罐。饮水机的加热灯一亮一暗。
第一个人注意到他的是坐在门口的老周。
老周四十多岁,电话听筒夹在脖子上,右手在纸上画线,画到一半抬眼把陈野从上到下看了一遍。
"你就是那个搞模型的?"
"我姓陈。"
"做过几年实盘?"
"没做过。"
老周手里的笔停了一下,问:"你多大。"
"二十四。"
老周把听筒从脖子上摘下来,回头冲着里间喊:"文锋!有人找你!"
喊完他小声嘟囔了一句:"又来一个搞模型的。"
嘟囔完,他对着话筒说:"没说你。我们这儿来了个小孩。"
陈野站着没动,也不知道该不该往里走。老周用笔尖指了指靠门那张空桌子:"坐吧。里头那位一会儿出来,你别吓着。"
"他怎么了。"
"他话多。"老周说,"能说一上午。你要是不想听,就说你肚子疼。"
陈野刚把包放下,里间的门开了。
出来的人白衬衫,扣子系到最上面一颗,胳膊底下夹着一沓打印纸,纸边上全是铅笔划的杠。
"你就是文锋说的那个。"他走到陈野跟前站住,"你那套东西,一年能赚多少钱。"
"我不知道。"
徐进看了他两秒,眉毛挑起来,笑了。
"行,你挺实在。"他侧身让开半步,"我叫徐进。进去坐。"
他往里走,走了两步又回头:"真不知道?"
"真不知道。"
"那你进去吧。"徐进说,"他等了一上午了。"
里间的门又响了一声,这回出来的是梁文锋。
他手里拿着半个包子,衬衫套在T恤外面,一颗扣子都没系。他看见陈野,脚步快了两下,隔着两张桌子就喊:"来了!"
"吃了吗?没吃我这有包子。"
"吃了。"陈野说。
"吃了啊。"梁文锋听起来有点失望。他把那半个包子塞进嘴里,一边嚼一边走到一张桌子前,从桌底下抽出一台笔记本,用袖子抹了一下屏幕,推到陈野面前,"那你先看看这个。"
笔记本很旧,A面磨得发亮,转轴那里缠着一圈透明胶。
陈野打开屏幕。上面是一个脚本窗口,还有一个画了两条线的图。图上的中文注释写得又密又乱,字很难看。
"这是我们从四月底卡到现在的。"梁文锋把包子咽下去,"回测这条好看得很,实盘这条一上就走下坡。"
"每天掉一点。"老周在门口接话,"回头看,少了一大截。"
"代码重写了三遍。"梁文锋伸出三根手指,扭头朝靠窗那边喊,"你们那边几遍?"
靠窗那排有人头也不抬地回了一句:"算上今天上午,第四遍。"
陈野把鼠标挪过去,点开脚本。数据加载那一段塞了几十列字段,一列一列读进来,读完直接喂给模型。整段代码干干净净,注释齐全,写得比他在潮汐数据见过的东西都规矩。
"你要是找不到,也不怪你。"梁文锋在旁边说,"看看就行。"
说完他没走。他从隔壁搬了把椅子过来,放在陈野左边半米的地方,坐下,两条腿伸出去。
然后他就开始问问题了。 "这个图你从哪儿看起?"
"这列是什么。"
"哎你等一下,回去一下。"
"你这个鼠标怎么划这么快。"
陈野看了十分钟,跟他说了三遍"我还没看完"。梁文锋说"行行行,你看你看",胳膊搭在椅背上,眼睛一直盯着屏幕,隔两分钟又问一句。
十点出头,陈野回过头找老周:"我要三样东西。数据字典、字段更新日志,还有每一列是从哪个接口来的。"
老周从抽屉里翻的时候脸拉得挺长:"这些都是我买的。合同在我这儿,你要这个干什么。"
"我想看看这几个字段什么时候才真的到手。"
老周嘟囔了两句,把三沓纸和两个U盘拍在桌上。
接下来的一个多小时,陈野问的问题都很碎。
"这一列是哪年开始有数据的。"
"当天盘后更新,还是第二天早上。"
"这个接口换过版本吗,换的时候历史值重算没有。"
老周一开始答得很冲,答到后面声音慢下来。有几个问题他自己也答不上,翻出手机给数据商打电话,打了两个没人接。
十一点半,陈野停下来了。
他指着屏幕上一列叫"当日成交额(后复权)"的数据:"这列是数据商给你们的吧。"
"委托加工的。"老周说,"我们这儿哪算得动这个。"
"他们改过。"
"什么改过。"
"这一列的历史值被重新算过好几遍。"陈野把更新日志翻到前面几页,把日期那一栏转过去给老周看,"去年到今年,改了七次。你们拿2013年那天的数喂模型的时候,那个数是2015年4月才算出来的。"
老周凑过来,看了大概二十秒,没说话。
"这个有问题吗。"他问。
"回测的时候,模型站在2013年那一天看盘。"陈野说,"它手上拿着一个两年以后才有的数。"
"还有这个。"他又往下翻了三十几行,停在一列叫"当日融资余额"的数据上,"接口说明写着每交易日盘后更新。"
"对啊。"老周说,"交易所晚上才发。我天天等到十一点。"
"那模型是拿它预测当天的收益。"
老周脖子上的听筒往下滑了一截,他伸手扶住,扶完才想起来那通电话早挂了。
陈野刚说完,左边有人凑过来。梁文锋把脑袋伸到屏幕前面:"你等一下,你慢点,我看看这一列。"
陈野把袖子往上推,开始改。
他只在数据加载那一段里动了一处:把"当日融资余额"整列往后挪了一天,模型今天只能看见昨天收盘以后公布的数。改动就这一处。
重跑花了六分钟。进度条走完,那张图重新画出来。
上面那条漂亮的回测曲线一路往下掉,掉到下面那条线的上方,然后往那条线上靠。两条线越靠越近,最右边那一段几乎贴到一起。
陈野把椅子往后推了半米,两只手从键盘上拿下来,甩了甩手腕。右下角亮了一下。
【奇点】
算力值:+400(技术判断被现实验证)
当前算力值:700
「查账查出来的,打折。」那个声音说。
陈野小声回了一句:"你能不能挑个时候。"
"你说什么?"梁文锋问。
"我说这数据商够可以的。"
老周是第一个动的。 他把自己那把椅子拉到隔壁那台机器前面,插上U盘,让陈野把刚才改的那一段发过来,然后自己跑。跑完一遍,他又从后往前拉了一遍。
拉到第三遍的时候他站起来,走到饮水机那儿接了杯水。饮水机那个热水键有点松,他按了两下才出水。
他把杯子放在陈野桌上,放下去的时候磕了一下桌面,水洒出来一点。
"这杯水给你的。"老周说,"接下来我要骂人,你听着。"
他掏出手机翻通讯录,拨出去,先把免提按开了。
"王老板。"老周的声音一下子提上去,"我问你,你们那列复权成交额,从去年到现在,重算过几版?"
电话那头说了两句,听不清。
"你别跟我说口径调整。我这儿有个二十四岁的小孩,两个小时给我扒出来的。你们卖我五年数据,一个字没提。"
电话那头又说了一串。 "下午两点,你过来。"老周说,"把你那边的改版日志带全。"
挂了电话,老周把手机往桌上一扔,转头跟陈野说:"他们签合同那天,一口一个'服务'。"
靠窗那边有人探头喊:"周哥,真找出来了?"
"找出来了。你别问,我正难受。"
徐进把手里那沓打印纸放下,掏出手机往走廊走。走出去两步他就站住了,站在门口讲。
"老李,你过来一趟。"他说,"我们那个模型是假的。"
电话那头问了什么。 "回测和实盘差在哪儿,我这儿有人算出来了。"徐进看了一眼手表,"下午两点,你过来。数据商也到。"
梁文锋凑到屏幕前面。 他把滚动条从上拉到下,又从下拉到上,拉了三遍。第三遍拉完,他把脸转过来。
"等一下等一下。"他说,"你这个挪一天,是什么意思。"
"这列数是收盘以后才有的。挪一天,就是让模型只拿昨天的数去猜今天。"
"那它之前是拿今天的数猜今天。"
"对。"
"哦。"梁文锋往后坐了一点,又往前凑回来,"那你这个挪一天的规矩,能不能写成一个检查脚本。"
"能写。"
"能不能每天跑一遍。"
"能。"
"跑一遍多久。"
"全表十几秒。"
梁文锋两只手在桌子上拍了一下:"那早上八点四十跑一遍。"
"八点四十在开晨会。"老周说。
"那就八点半。"梁文锋说,"跑完打出来,贴在饮水机上。"
他掏出那个牛皮纸本子,翻到后面一页,写了两个数,算了一会儿。
"这个坑,三个月。"他说,"白干。算上退给客户的,八十七万。"
"九十一万四千。"徐进从门口说,"我上周三算过。"
"你怎么没跟我说。"
"我说了。"徐进说,"你当时说,这个……有可能。"
"这个……有可能。"梁文锋跟着念了一遍,自己顿了一下,然后笑了,"我说的是这数有可能还多。"
陈野在心里飞快地过了一下:九十一万四,除以六千五,够他挣十一年。他咽了口唾沫。
梁文锋把本子合上,转过头来看他。
"你原来那边多少钱一个月?"
陈野说六千五。梁文锋跟徐进对视了一眼,说:"你明天别去上班了。"
陈野愣住。梁文锋补一句:"我这儿给一万二。你要是嫌少,你说话。"
陈野说"不用不用"。
梁文锋:"那就一万二。"