[1/6] 带着 Attention Is All You Need 穿越回宋朝
第一卷:惊马汴京,带着论文破天机(第1–20章)
第一卷:惊马汴京,带着论文破天机
第1章 论文、惊马与宣和六年的秋风
十月的理工大校园,银杏叶被秋风卷着,在柏油路面上打着旋儿。
沈拓身上套着一件洗得有些发白的深灰色工科冲锋衣内胆,右手夹着一把不锈钢游标卡尺和一支黑色碳素笔,左手死死捏着一叠刚刚从机电实验楼三楼激光打印机里吐出来的A4纸。
纸张还带着硒鼓定影后的余温,散发着淡淡的臭氧与碳粉混合的干燥气味。一共十五页,为了省纸,他特意选了单面打印留出背面做草稿演算,左上角用一颗镀镍回形针别得严严实实。
第一页顶端的加粗黑体字在午后的阳光下格外刺眼——
《Attention Is All You Need》。
“缩放点积注意力……$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$……”
沈拓一边顺着林荫道往宿舍走,一边低着头,用碳素笔尖在第三页的架构图旁飞快地画着矩阵分块草图,嘴里念念有词:“如果把循环神经网络那种一步等一步的串行结构彻底砍掉,换成全并行矩阵乘加……那我毕设里那台基于FPGA与机械齿轮联动的物理矩阵加速原型机,吞吐率至少能翻十六倍!老张还非说我的机电控制方案跑不动高维特征,等我今天晚上把硬件定点数归一化的延迟算出来,明天早会直接把数据拍他办公桌上……”
作为一名顶尖工科大学机械电子与控制工程系的大四准毕业生,沈拓是个出了名的硬核狠人。别人大四忙着找工作或者泡图书馆刷题,他却一头扎进了跨学科的深坑——不仅把机械设计、材料冶金、化工热力学和流体力学修到了满绩点,还辅修了人工智能与运筹学,发誓要在毕业设计里用最底层的物理硬件去复现这篇划时代的Transformer开山之作。
为了推导论文里多头注意力机制(Multi-Head Attention)在边缘低算力条件下的降维近似解,他已经连续熬了两个通宵。此时眼底布满血丝,满脑子都是查询向量(Query)、键向量(Key)和值向量(Value)在高维空间里的点积碰撞。
突然,脚下的柏油路面毫无征兆地剧烈震颤了一下。
起初沈拓以为是学校后街的地铁施工队在放炮,可还没等他从那个精妙的残差连接(Residual Connection)公式里抬起头,耳畔骤然炸开了一片嘈杂到极点的鼎沸人声!
“闪开!快闪开!惊马——!”
“天杀的!那是应奉局的西夏纯血战马,撞死人不管埋的!”
“前头那小哥儿,发什么愣呢,快逃命啊!”
什么应奉局?什么西夏战马?哪个剧组在学校林荫道拍古装戏还不拉警戒线?
沈拓下意识地猛然抬头。
这一抬头,他整个人如遭雷击,瞳孔在千分之一秒内剧烈收缩!
视野里熟悉得不能再熟悉的红砖机电实验楼、柏油马路、共享单车,连同远处的现代高楼大厦,竟然像被一只无形巨手瞬间抹去的幻影般荡然无存!
取而代之的,是一条宽达数十步、铺着厚重青石板与黄土的宏伟御街!
街道两侧,飞檐斗拱的彩绘酒楼鳞次栉比,高达三层的木结构欢门上挂满了迎风招展的锦缎酒旗与栀子灯。空气中没有了汽车尾气的味道,反而充斥着一股浓烈的檀香、刚出笼的羊肉灌浆包子香气、汴河漕船的水腥味,以及尘土与马粪混杂的古老气息。
而在御街尽头,一座巍峨如山岳、朱墙金钉、城楼重檐高耸入云的皇城正门,正冷冷地俯瞰着芸芸众生。城门匾额上,“宣德门”三个古朴苍劲的大字在深秋的寒风中透着令人窒息的皇权威压!
北宋?汴京?!
沈拓脑子里的神经元组差点当场过载死机。不仅如此,一股不属于他的零碎记忆碎片如同决堤的洪水般强行撞入他的脑海——大宋宣和六年秋、汴京城外寒门算学弟子、将作监候补书令史、同名同姓的十九岁青年沈拓、押运花石纲劳累过度暴毙街头……
然而,物理规律根本没有给他留出哪怕一秒钟去消化这场荒谬绝伦的穿越。
“希律律——!”
一声凄厉暴躁的马嘶声几乎贴着他的鼻尖炸响!
二十步外,一匹通体枣红、肩高足有五尺开外、四蹄翻腾着白沫的西夏纯血公马,正拖着半截断裂的青帷车辕,像一辆失控的重型泥头车般朝着他迎面狂奔而来!
那战马的左臀上赫然扎着一枚断了半截的铜簇袖箭,鲜血顺着油亮的马毛汩汩淌下。而在失控的断辕后方,半倾的车厢里,一名身着浅碧色宋制褙子、发髻散乱却掩不住清丽绝伦面容的年轻女子,正死死攥着一根快要崩断的麻绳缰绳,整个人被颠得半悬在车辕外,只要再往前冲出十步,就会被路旁石狮子的基座撞得香消玉殒!
周围的百姓吓得哭爹喊娘,纷纷往街边的茶肆、肉铺里钻,摊贩的竹筐、瓦罐被撞得粉碎,红枣和铜钱滚了一地。
“滚开!挡路者死!”
惊马后方三十步外,四五个身穿皂色锦衣、腰挎腰刀的凶悍恶奴正骑着快马紧追不舍,非但没有救人的意思,领头那个满脸横肉的刀疤脸汉子反而狞笑着挥舞马鞭,狠狠抽打空气,试图让前面的受惊战马彻底狂化,好把车上那女子直接拖死在宣德门前的大街上!
跑?
以战马目前每秒接近十二米的冲刺速度,加上自己离马头不足十五米的距离,转身逃跑的生还概率是零!
就在这生死一线的刹那,沈拓作为一个常年在实验室里跟高速旋转飞轮、高压气缸打交道的工科生的本能,瞬间压倒了恐惧。
他的大脑仿佛开启了超高频的硬件加速模式,视野中的一切喧嚣全部退去,只剩下一道道冷酷的物理与几何线条:
战马质量约四百五十公斤,算上残破车辕约六百公斤;初速度约十二米每秒;地面为干燥青石板覆薄沙,动摩擦系数约为零点三五;马匹因左臀受创,重心明显向右前侧偏移约十五度!
硬抗等于找死。想救人、想活命,唯有利用角动量定理与力矩失衡,给这匹狂奔的畜生来一次精准的“物理梯度裁剪”!
“拼了!”
沈拓眼神骤然冷冽如刀。他非但没有后退,反而左脚猛踏青石地面,趁着战马前蹄腾空、即将落地的半秒空档,整个人如猎豹般向右侧斜跨一步,堪堪贴着擦过耳畔的锋利马蹄,一把抓住了路旁一家绸缎庄门前用来挂巨幅招幌的粗麻缆绳!
那缆绳一头系在碗口粗的铁环石柱上,另一头连着滑轮。
沈拓左手将那十五页珍若性命的《Attention Is All You Need》论文往怀里工装内胆的拉链暗袋里猛地一塞,右手拔出腰间那把不锈钢游标卡尺,用卡尺尾端坚硬的深度尺尖头,狠狠一挑绸缎庄招幌的活扣!
“哗啦——!”
三丈长、五尺宽的厚重茜红桐油绸布招幌轰然坠落!
沈拓算准了风向与抛物线,双手猛拽缆绳,在惊马冲到眼前的瞬间,将那幅带着刺鼻桐油味的巨大红绸凌空一抖,如同一张铺天盖地的红色天罗,严严实实地蒙住了西夏战马的双眼与口鼻!
马匹在高速狂奔中最惧视野骤盲!
果不其然,眼前突然一片血红黑暗、呼吸又被厚重油绸堵住的战马当场惊慌失措,前冲的本能瞬间变成了本能的急停侧闪,两只前蹄在青石板上刮出一串刺耳的火星!
“就是现在!重心偏右,力臂三尺!”
沈拓暴喝一声,根本不管双手被粗麻绳勒出的血印,趁着马头因受惊向右侧猛偏、左侧前蹄悬空的千钧一发之际,将手中绳索在路边拴马石柱上飞快绕了半圈(欧拉摩擦公式:$T_2 = T_1 e^{\mu \theta}$,仅需半圈即可将人类臂力放大数倍),随后用尽全身力气,朝着与战马转向垂直的法线方向猛然一拽!
“砰——!!!”
一声沉闷至极的巨响在宣德门外大街上炸开!
原本不可一世的西夏纯血战马,在失去视觉、重心偏移与侧向缠绕力矩的三重物理绝杀下,四蹄彻底失去平衡,庞大的身躯连同后面的半截车辕在青石板上轰然侧翻,贴着地面滑行出两丈多远,正好停在石狮子基座前不到两尺的地方!
漫天尘土飞扬。
整条御街死一般的寂静。那些原本抱头鼠窜的汴京百姓、茶博士、行商脚夫,全都张大了嘴巴,像见了鬼一样盯着那个站在拴马石旁、身穿奇怪灰布短袄、连发髻都没挽(留着一头利落现代短发)的年轻人。
单人!空手!一根绳子,一块招幌,硬生生在十步之内截停了一匹发狂的西夏军马?!
沈拓剧烈地喘息着,虎口发麻。但他没有丝毫停顿,第一时间冲到侧翻的车辕旁,伸手拨开碎裂的木板,一把将那个差点被压在车轮下的浅碧衣衫女子拉了出来。
“姑娘,没伤着骨头吧?”沈拓低头看去。
怀中的女子约莫二十岁年纪,肌肤胜雪,眉目如画,只是此刻脸色苍白,额角沁着细密的冷汗。即便在如此狼狈的境地里,她怀里依然死死抱着一只用油布包裹得严严实实的紫檀木算盘,以及一卷染着指尖血迹的状纸。
秦雪音惊魂未定地抬起头,撞进了一双深邃、冷静得完全不像寻常大宋读书人的眸子里。
她刚想挣扎着行礼道谢:“多谢这位义士救命之……”
话音未落,一阵急促嚣张的马蹄声已然冲破烟尘,将沈拓、秦雪音连同那匹倒在地上的战马团团围住!
“好胆!哪来的野汉子,连太师府与苏州应奉局朱太尉名下的御赐战马都敢弄残?!”
领头那个满脸横肉的刀疤脸恶奴勒住缰绳,居高临下地用马鞭指着沈拓的鼻子,眼底闪过一丝计划落空的阴鸷,随即化作狰狞的讹诈狂笑:
“来人!把这蓄意惊扰御马、毁坏官物的狂徒,连同秦九思这罪臣之女一并锁了!这匹西夏大宛良驹价值两千贯,外加车上押运的太湖瑞石图纸损毁——赔不出三千贯现钱,今日就让你二人把牢底坐穿!”
随着刀疤脸一声令下,四名如狼似虎的恶奴同时翻身下马,抖开手中哗啦作响的铁链,带着满身煞气逼了上来!
秦雪音脸色瞬间惨白如纸,嘴唇颤抖:“刘彪!明明是你们在半路用袖箭暗算马匹,阻我向开封府与太常寺递交家父的冤状,如今竟敢当街倒打一耙!”
“冤状?哈哈哈,秦小娘子,你爹秦九思身为太学算学博士,奉旨核验汴河花石纲漕船,却因算错吃水配重,致使载有万斤‘神霄太湖瑞石’的官船在陈留段无故沉没!那是大不敬的死罪!”
刘彪一口浓痰吐在青石板上,目光贪婪地扫过秦雪音怀里的算盘和账册,冷笑道:“老东西在开封府大牢里熬不过三天就得画押认罪!至于你身边这不长眼的野小子……哼,弄伤了应奉局的宝马,哪怕天王老子来了也救不了他!”
沈拓站在原地,缓缓松开紧握的拳头,轻轻拍了拍胸口冲锋衣内胆里的那十五页《Attention Is All You Need》。
他看了看地上那匹左臀插着半截袖箭、口吐白沫的战马,又转头看向一脸凶相的刘彪,嘴角忽然勾起一抹冰冷而玩味的弧度。
跟一个手握现代工程力学、材料学和顶级算法架构的工科生玩碰瓷?还要用“算错吃水配重导致花石纲官船沉没”这种低劣的工程假账来杀人灭口?
“三千贯是吧?”
沈拓向前踏出一步,将身形单薄的秦雪音挡在身后,声音不大,却清晰地传遍了围观的半条宣德门大街:
“赔钱可以。但在上枷锁之前,刘大管家是吧?我不仅能当场证明这匹马是谁用军制三棱铜簇伤的,还能顺手帮你们应奉局算一算——你们那艘所谓的‘万斤太湖石沉船’,到底是怎么在水深不过八尺的汴河陈留段,演出一场空船骗保的烂戏的!”
第2章 流体力学与花石纲沉船之谜
宣德门外大街上,秋风卷起落叶,气氛瞬间剑拔弩张。
周围看热闹的汴京百姓越聚越多,里三层外三层地围了数百人。其中不乏太学的学子、附近茶肆里的说书先生,以及刚下值的各部司小吏。
听到沈拓这番掷地有声的话,全场顿时响起一片哗然。
“这短发后生是谁啊?看着像个将作监那边的寒门候补小吏,竟敢跟应奉局的刘彪叫板?”
“嘘!小声点!这刘彪可是苏州应奉局朱勔朱太尉在京城的恶犬,专门跟太师府蔡攸、王黼那边勾兑花石纲的账目!前几日太学算学馆的秦九思老博士去陈留核查沉船,回来就被按了个‘算学失误、毁损神霄瑞石’的罪名下了大牢,谁敢管这闲事?”
“可不是嘛,那沉船都在百里外的陈留汴河底下了,这后生连现场都没去过,怎么敢夸口当街算出沉船是假?”
听着四周的议论声,刀疤脸刘彪先是一愣,随即像是听到了天底下最好笑的笑话,仰头狂笑起来,脸上的横肉一抖一抖的。
“哈哈哈!小子,我看你是被马蹄子震傻了脑子!陈留河段的官船沉没,连开封府的推官和工部水部司的郎中去看了都挑不出毛病,白纸黑字的卷宗就在秦家小娘子怀里揣着呢!你连陈留的水都没喝过一口,凭一张嘴就敢说我们应奉局凿船骗银子?”
刘彪眼中凶光暴涨,上前一步,手按腰刀刀柄,阴恻恻地喝道:“你要是算不出来,老子今日就当着宣德门外父老的面,先拔了你的舌头,再打断你的狗腿!”
站在沈拓身后的秦雪音急得眼眶发红,伸出冰凉的小手轻轻拽了拽沈拓的衣袖,低声急促道:“义士快走!这刘彪心狠手辣,家父那桩案子卷宗极其诡谲,官船尺牍、吃水刻痕、纤夫口供环环相扣,连我与家父熬了三夜用《九章》方田、粟米之法反复推演,都只知其账目有十万贯亏空,却找不出那沉船在物理上的破绽……”
“找不出破绽,是因为你们用的是线性代数出现之前的传统筹算,而且缺了一门叫‘流体力学与船舶静力学’的课。”
沈拓转过头,给了秦雪音一个令人莫名心安的微笑。
在刚刚融合的原主记忆里,原主也叫沈拓,是汴京将作监的一名九品候补书令史(还没转正的底层技术文书),平时也常去太学算学馆旁听秦九思老博士讲课,对这位才名满京华却遭逢巨变的秦姑娘并不陌生。至于自己这一头短发,原主三天前刚生了一场大病,被郎中剃了发散热,倒也勉强能用“大病初愈、顶风落帽”糊弄过去。
“秦姑娘,把你怀里那份工部水部司出具的《陈留花石纲沉船勘验抄本》给我看一眼。”沈拓平静地伸出手。
秦雪音怔了一下,看着沈拓那双亮得惊人的眼睛,鬼使神差地将怀中那卷染血的勘验文书递了过去。
沈拓接过文书,目光如高速扫描仪般在竖排的毛笔字上飞速掠过。
《勘验状》上写得清清楚楚:
『宣和六年九月廿八,应奉局纲船“神霄七号”北上运送太湖灵璧瑞石一座,重四万八千斤(北宋一斤约合现代600克,四万八千斤即约28.8吨)。船制乃汴河标准平底浅水纲船,船长七丈二尺,宽一丈五尺,型深六尺。经算学博士秦九思核定配重后起航。行至陈留界牌湾,水深八尺,忽遇横风,因石重船浅、重心过高,船身右倾覆没,瑞石沉入河底流沙,并随船沉没随行护卫饷银、修缮脂麻桐油款共计十二万贯……』
“好一个‘石重船浅、重心过高、沉入流沙’!连死无对证的流沙坑都找好了,难怪能顺手把十二万贯的亏空黑账一起埋进河底!”
沈拓看完,嘴角掀起一抹冷峭的弧度。
他从胸口内胆口袋里掏出那十五页《Attention Is All You Need》论文,翻到最后一页(第15页References参考文献的背面,完全空白的A4白纸),又拔开手里那支黑色碳素笔的笔帽。
“刘管家,还有在场的太学同窗、街坊父老,都竖起耳朵听好了!”
沈拓左手托着那卷竹简木板垫底的文书,右手握着碳素笔,在雪白得令周围古人瞠目结舌的A4纸背面上,刷刷刷地画出了一个标准的三维平底船横截面受力图!
周围离得近的几个太学学子探头一看,顿时倒吸一口凉气:“嘶——这是何等纸张?竟比宫里的澄心堂贡纸还要洁白坚挺十倍!还有他手里那根不用蘸墨就能写出纤细黑字的神笔,又是何物?!”
沈拓根本不管众人的惊叹,笔尖在纸面上飞快游走,一行行阿基米德浮力公式、排水量体积积分、稳心高度(Metacentric Height)公式跃然纸上:
$$F_b = \rho g V_{\text{排}}$$
$$GM = KB + BM - KG = \frac{d}{2} + \frac{I}{V_{\text{排}}} - KG$$
“第一罪:浮力与吃水线造假,欺天罔人!”
沈拓猛地抬起头,声音如洪钟大吕,直刺刘彪面门:
“工部勘验状上写着,你们应奉局的‘神霄七号’纲船,是汴河标准平底木船,长七丈二尺,宽一丈五尺,折合方尺底面积约为一千零八十平方尺!船身自重连同船工杂物,按将作监《营造法式》漕船定例,空船吃水为一尺二寸!”
刘彪脸色微变,梗着脖子强辩道:“那又如何?船上装了四万八千斤的太湖瑞石,还有十二万贯折合的铜钱物料,自然吃水极深!”
“蠢货!要不说你们贪官连造假都不懂基本物理呢!”
沈拓毫不客气地啐了一口,手中碳素笔重重敲在纸面上的算式上:
“大宋一立方尺河水,重约五十四斤!船底面积一千零八十平方尺,每下沉一尺,排水增重就是五万八千三百二十斤!你们谎称船上装了四万八千斤太湖石,再加上所谓的一万两千斤随船饷银铜钱物料,总计不过六万斤!”
沈拓转过身,目光灼灼地看向身旁的秦雪音:“秦姑娘,你是算学行家,你用算盘当场给大家伙儿拨一下——六万斤的货物压在船上,这艘平底船的吃水线应该增加多少?”
秦雪音美眸中瞬间迸发出一团璀璨的光芒!
她原本被繁琐的四柱清册和官场威压弄得乱了方寸,此刻被沈拓用如此直观、犀利的“排水体积与重量一比一换算”一点拨,脑海中困扰三天的迷雾瞬间被一道闪电劈开!
“六万除以五万八千三百二十……只需下沉一尺零三分!”
秦雪音手指如飞,在紫檀木算盘上啪啪两声脆响,清脆的声音带着压抑不住的激动与颤音:“加上空船吃水一尺二寸,整艘‘神霄七号’满载之时的真实吃水,绝不可能超过两尺二寸三分!”
“听见了吗?两尺二寸三分!”
沈拓一把抓过刘彪刚才叫嚣的勘验状,翻到第三页岸边桩记记录,冷笑道:“可你们应奉局买通水部司蠢吏写的勘验状上,为了坐实‘船重负重过大、触底倾覆’的罪名,竟然白纸黑字写着——起航之时,船舷吃水刻痕高达五尺一寸,几近漫舷!陈留界牌湾水深八尺,一艘吃水才两尺出头的平底宽船,是怎么在八尺深的河道里触底侧翻的?!”
“轰——!”
围观的人群瞬间炸开了锅!
那些太学学子和常在汴河跑船的老船工一听这个数字,眼珠子都快瞪出来了:
“对啊!宽一丈五、长七丈二的平底大驳船,拉六万斤货怎么可能吃水五尺一寸?吃水五尺一寸,那船上得装二十多万斤生铁才压得下去!”
“五尺一寸的吃水痕?我知道了!那是应奉局的贼人提前用墨汁和绿矾在船帮上伪造的假水线,或者是他们在船底暗舱里提前灌满了河水!”
刘彪额头上的冷汗刷地一下就冒了出来,握着刀柄的手掌开始发抖:“你……你胡说八道!就算吃水线是船工看花了眼,那也是因为太湖石高达两丈,立在甲板上重心太高,被横风吹翻的!跟秦九思脱不了干系!”
“还敢嘴硬?那我就再给你算算第二罪——倾覆力矩与稳心高度!”
沈拓冷笑一声,根本不给刘彪喘息的机会,指着A4纸上的第二个公式:
“平底矩形船的横摇稳心半径,等于船宽的平方除以十二倍的吃水深度($BM = \frac{B^2}{12d}$)!船宽一丈五尺,吃水两尺二寸,算出来的稳心高度足足有八尺五寸以上!你们那块所谓的四万八千斤太湖石,除非是一根细得像竹竿一样、高达五丈的石柱子,否则只要重心在八尺五寸以下,哪怕刮起八级秋风,船体倾斜十度就会产生超过三万斤尺的恢复力矩,根本翻不了!”
沈拓一步步逼近脸色惨白的刘彪,每走一步,身上的气势便暴涨一分:
“最可笑的是你们勘验状上写的沉船姿态——‘船身右倾覆没,船底朝天漂浮三里,而瑞石与饷银尽沉流沙’!刘大管家,你去问问汴河上任何一个满十岁的船家孩子!如果是货物太重在甲板上把船压翻,货物脱落后船体吃水骤减,船舱未满水时只会恢复正浮;只有一种情况会让平底木船在没有礁石的泥沙河道里‘船底朝天、缓漂三里’——”
沈拓猛地停住脚步,声音如惊雷炸响:
“那就是这艘船从出港时起,根本就没有装什么四万八千斤的太湖石,更没有装那十二万贯的饷银!那是一艘彻头彻尾的空船!你们应奉局的蛀虫,早就把十二万贯官银和瑞石私吞变卖,然后雇了水鬼在陈留界牌湾,从船底龙骨右侧直接凿穿了三个碗口大的漏水孔!河水从底部单侧涌入空舱,上方木板封死形成气室,才会出现‘下沉五尺、随后翻转底朝天漂流’的凿船死状!”
“至于这匹马……”
沈拓弯下腰,在刘彪惊骇欲绝的目光中,一把拔出枣红战马左臀上那枚带血的断箭,高高举起,展示给宣德门外数百百姓与正在闻声赶来的皇城司、开封府巡街铺兵:
“箭杆涂黑漆,箭簇为三棱带血槽青铜狼牙簇,尾部刻有‘应奉甲字’暗记!你们怕秦姑娘把核查出的十二万贯亏空底账送到开封府和李纲李少卿手里,先是在陈留凿空船嫁祸秦博士,今日又在天子脚下、宣德门前暗箭伤马,企图当街杀人灭口!”
沈拓目光如电,扫向周围群情激愤的百姓与赶来的官差,朗声喝道:
“人证、物证、算理铁证俱在!刘彪,你现在告诉我,这三千贯的惊马钱,你们应奉局还敢要吗?!”
全场鸦雀无声,紧接着爆发出雷鸣般的叫好声!
秦雪音站在沈拓身后,看着那个手持白纸黑笔、在权贵恶奴面前谈笑间算破惊天迷局的挺拔背影,滚烫的泪水终于夺眶而出。
而就在人群外围,一顶不起眼的青布小轿悄然停驻。轿帘微掀,一名身穿绯色官袍、面容刚毅、颌下留着三缕长须的中年官员,正死死盯着沈拓手中那张写满奇异算式与图形的A4纸,眼中掀起了滔天巨浪。
“仅凭一纸勘验状,便以闻所未闻之算学格致之理,三言两语破获应奉局十二万贯沉船黑幕……来人,去查查,这个叫沈拓的将作监候补小吏,到底是何方神圣!”
第3章 这大宋是个梯度消失的破烂RNN
宣德门外的一场闹剧,最终以开封府巡检司和太常寺官员的当场介入画上了句号。
在数百双百姓与太学学子的眼睛盯视下,哪怕刘彪背后站着苏州应奉局和太师府,也不可能在大庭广众之下把黑的说成白的。更何况,那支刻着“应奉甲字”的三棱铜簇袖箭就摆在开封府捕头的托盘里,而沈拓当街推演出的“空船凿孔翻转吃水算法”,更是被几个懂算学的太学监生当场用算筹验算无误,传为奇谈。
刘彪等五个恶奴被开封府差役灰溜溜地锁拿带走候审,秦雪音递交的冤状也被正式收入开封府案牍库,定于三日后由开封府会同太学算学馆、户部度支司共同复核秦九思一案的漕运总账。
暮色四合,深秋的寒意顺着汴河水面漫上京城街头。
婉拒了秦雪音再三要将身上仅存的一支素银钗塞给他当谢礼的举动,只与她约定了明日清晨在太学算学馆外会合调阅卷宗后,沈拓独自一人踩着碎石小巷,顺着原主记忆里的路线,回到了位于汴京外城东南角、紧挨着将作监水磨务的一处破落大杂院。
推开吱呀作响的木门,屋内只有一床发硬的芦花被、一张缺了角的榆木案几,以及墙角堆着的几卷翻烂了的《九章算术》和《营造法式》抄本。
沈拓插上门栓,用火镰打着了火绒,点亮了案几上一盏豆大的菜油灯。
昏黄摇曳的灯光下,他没有急着喝水充饥,而是深吸一口气,拉开了身上那件21世纪工装冲锋衣内胆的拉链,小心翼翼地将那十五页A4纸平摊在榆木案几上。
看着纸张顶端熟悉的《Attention Is All You Need》标题,以及自己穿越前用碳素笔在旁边做的密密麻麻的批注,沈拓这才真正有了一种脚踏实地的真实感。
“宣和六年……公元1124年,深秋。”
沈拓盘腿坐在冰凉的床榻上,手指轻轻敲击着膝盖,眼神逐渐变得凝重而锐利。
作为一个平时酷爱研读冷热兵器史与古代战争运筹学的工科男,他对“宣和六年”这四个字背后代表着怎样血淋淋的倒计时,比这大宋朝堂上的任何一个人都要清楚!
此时此刻,北方的天空看似平静,实则早已乌云压顶。
就在去年,大宋与女真金国达成了荒唐透顶的“海上之盟”。童贯、王黼之流连二十万宋军都打不下辽国残破的燕京,最后不得不靠着向金国献上巨额岁币与百万贯“代税钱”,才极其屈辱地从金人手里赎回了燕山府等六座被搜刮得连树皮都不剩的空城。
而在大宋君臣为此弹冠相庆、宋徽宗赵佶忙着在艮岳堆砌太湖石、大搞神霄道会的时候,北方那个如野兽般崛起的金国,刚刚完成了从完颜阿骨打到金太宗完颜吴乞买的权力交接。
完颜宗翰(粘罕)、完颜宗望(斡离不)这两头嗜血的恶狼,正在广袤的东北与草原上收拢最后的辽国残部,磨亮了“铁浮图”与“拐子马”的战刀!
“距离宣和七年十月,金兵分东西两路大举南侵,只剩下整整十四个月!”
“距离靖康元年的第一次汴京保卫战,只剩十六个月!而距离汴京城破、二帝北狩、数十万中原百姓与宗室女子沦为金人铁蹄下的猪羊、整个北方华夏衣冠彻底陆沉的‘靖康之耻’,满打满算,不到两年!”
沈拓站起身,走到窗边,推开一条缝隙。
远处樊楼与马行街方向,正传来阵阵靡靡之音,漫天烟火将汴京的夜空映照得恍若白昼。一队队驮着奇花异石的大车还在趁夜往皇城艮岳方向运送,随行的差役挥舞着皮鞭,将拦路的饥民抽得皮开肉绽。
这是一个GDP占世界大半、人口过亿、市民商业繁荣到极致的庞大帝国。
但同时,在沈拓这位控制工程与人工智能学子的眼中,这更是一个病入膏肓、结构彻底腐朽的过时循环神经网络(RNN)!
沈拓走回油灯下,翻开论文的第一页与第二页,手指停留在关于循环模型(Recurrent Models)缺陷的那段经典论述上,低声自语:
“为什么坐拥百万禁军、富甲天下的北宋,会在短短一年多时间里被区区十余万女真骑兵打得灰飞烟灭?以前史书上总说是文官贪腐、重文轻武,但如果用系统工程与信息论的视角来看,北宋灭亡的根本原因只有一个——长序列传输中的梯度消失(Vanishing Gradient)与注意力权重的彻底坍塌!”
他拔开碳素笔,在第十四页背面的空白处画出了两条截然不同的结构图。
第一条,是细长、扭曲、一环扣一环的串行链条(RNN)。
“看这大宋的官制与军制:前线一个斥候发现了金军异动,要把情报传给队将,队将报给统制,统制报给河北转运使或安抚使,再经由驿站层层递奏给枢密院,枢密院的童贯、王黼先按自己的私利过滤一遍,最后递到太师蔡京和皇帝赵佶面前……”
沈拓冷笑一声,用笔尖狠狠划掉那串冗长的节点:“在这个长达十几个时间步的串行链条里,每一层贪官污吏都是一个小于零点五的衰减权重矩阵!等到河北的求救血书传到垂拱殿,原本十万火急的灭国警讯,梯度早就消失成了零!更别提从朝廷下达一道作战指令到前线,还要拿着幾百年前的阵图一步步串行审批,等命令传到黄河渡口,金军的拐子马早就把渡口砍穿了!”
“至于这位道君皇帝赵佶……”
沈拓指了指链条末端的输出层:“他的注意力权重(Attention Weight),百分之五十给了艮岳的石头和花鸟画,百分之四十给了林灵素、郭京之流的神霄青词,剩下百分之十给了蔡京、王黼帮他搜刮的脂膏钱!对边关将士的死活、对女真铁骑的威胁、对炼铁造炮的军工技术,他的注意力权重是彻头彻尾的零!”
一个丧失了全局感知能力、算力被中间冗杂官僚层完全锁死、且顶层注意力完全跑偏的帝国系统,哪怕账面上的参数量(人口与钱粮)再大,面对金国那种扁平化、高机动、目标极其明确的狼群冲击,崩溃只是时间问题!
“既然老天爷让我带着这篇《Attention Is All You Need》撞进宣和六年的汴京……”
沈拓低头看着论文第三页正中央那幅经典的 The Transformer - model architecture 架构图。
左边是 Encoder(编码器):多头自注意力(Multi-Head Attention)、残差连接与层归一化(Add & Norm)、前馈神经网络(Feed-Forward);右边是 Decoder(解码器):掩码多头注意力、跨注意力协同、线性层与 Softmax 输出!
豆大的油灯火苗在沈拓漆黑的瞳孔里跳动,仿佛点燃了一座沉寂千年的钢铁高炉。
“那我就亲手把这个腐烂的串行大宋,给它彻底重构了!”
“查不清花石纲和户部的烂账?我就用 Query-Key-Value(QKV)向量检索与打孔矩阵,三天之内把六贼贪墨的每一文军饷都从故纸堆里揪出来!”
“算学馆的酸儒算盘拨得太慢?我就砍掉单人串行,组建三百人的 人肉并行算力集群,再把将作监水运仪象台的青铜齿轮改造成 水力矩阵差分机!”
“朝堂耳目闭塞、辽金细作横行?我就用 位置编码(Positional Encoding) 和望远镜架起八百里光学信号塔,把皇城司改造成 八头自注意力反谍天罗网!”
“宋军弓软刀钝、火药像放鞭炮?对不起,本人主修机械电子、辅修材料与化工!游标卡尺做 LayerNorm 公差归一化,焦炭高炉炼转炉钢,水力镗床钻无缝枪管,颗粒化黑火药配米尼线膛枪和开花重炮,再用 残差连接(Skip Connection) 建立前线观察哨直达重炮阵地的扁平化合成旅!”
沈拓一拳轻轻砸在榆木案几上,震得油灯火苗猛地一蹿。
他不需要去给赵佶磕头当什么道德君子,他要做这个时代唯一的“总架构师”。先从三天后的太学算学馆与开封府清账开始,撕开六贼集团的第一道口子!
……
第4章 太学算学馆的酸儒与算筹困局
次日清晨,卯时三刻。
汴京城南的太学门前,晨雾尚未散尽。
作为北宋最高学府,太学占地极广,内设三舍,而在太学东侧一隅,便是大宋专门培养天文、历法、财政度支人才的“算学馆”。
沈拓换上了原主那身洗得发白的青色九品候补书令史公服,里面依旧貼身穿着现代工装冲锋衣内胆,怀揣着那十五页A4论文和不锈钢游标卡尺,准时出现在了算学馆的青石台阶下。
台阶旁,一道纤细的浅碧色身影早已等候多时。
今天的秦雪音重新梳拢了发髻,斜插着那支素银钗,虽然眼圈微红,显然也是一夜未眠,但那双清澈如秋水般的眸子在看到沈拓走来时,顿时亮起了希冀的神采。
“沈小哥!”秦雪音快步迎上前来,双手捧着一只热气腾腾的油纸包递过去,有些不好意思地低声道,“昨夜听闻你在将作监水磨务那边独居,想必晨起还未用饭。这是我今早出门时在州桥买的羊肉胡饼,你……你垫垫肚子。”
沈拓也不矫情,接过还带着少女掌心余温的羊肉胡饼咬了一大口。外焦里嫩的酥皮混着鲜香的羊肉葱花味在口腔里化开,瞬间驱散了深秋的寒意。
“好吃!多谢秦姑娘。”沈拓三两口吃掉半个胡饼,拍了拍手,看向算学馆紧闭的偏门,“开封府的调卷文书拿到了吗?”
“拿到了。”秦雪音从袖中取出一块盖着开封府紫泥大印与太常寺协理印信的铜牌,神色却有些忧虑,“昨夜太常少卿李纲李大人亲自过问了此案,特批我们今日入算学馆与户部架阁库联署的‘度支书库’,调阅近三年来汴河花石纲与河北军粮漕运的并轨底账。只是……如今掌管算学馆度支书库的,乃是家父的死对头,太学算学博士刘文举。”
“刘文举?”沈拓挑了挑眉,原主的记忆里立刻浮现出一个留着山羊胡、平时在算学馆里最讲究论资排辈、逢人便吹嘘自己精通《九章》《缀术》,实则是太师王黼门下走狗的酸腐老儒形象,“就是那个靠给王黼编造《燕云免夫钱盈余表》才爬上博士之位的刘文举?还有,昨日大街上那个恶奴刘彪跟他是什么关系?”
“刘彪正是刘文举的远房堂侄!”秦雪音咬了咬嘴唇,低声道,“家父之所以被下狱,就是因为上月在核算汴河漕运总账时,无意间发现王黼大人的‘燕云岁币代税钱’与朱勔的‘花石纲损耗银’之间,有一笔高达三百万贯的阴阳假账!刘文举为了替王黼和应奉局遮掩,才联手构陷家父!”
“原来是一窝硕鼠。”沈拓冷笑一声,“走,进去会会这位刘大博士!”
两人出示了开封府铜牌,推开算学馆的大门。
穿过两重栽满翠竹的庭院,前方是一座宽敞高大的木结构藏书楼——度支架阁分库。
此时,藏书楼前的青石院坝里,正聚着二三十名身穿襕衫的太学算学馆生员。而在正堂太师椅上,一个身穿深青色七品博士官袍、手里端着建盏茶碗的山羊胡老者,正慢条斯理地吹着茶沫。
正是算学博士,刘文举!
“哟,老夫当是谁这么大阵仗,拿着开封府和太常寺的牌子来我算学馆撒野,原来是罪臣之女秦氏,还有……将作监水磨务那个连正九品都没混上的候补书令史,沈拓?”
刘文举皮笑肉不笑地放下茶碗,那双狭长的三角眼在沈拓身上扫过,眼底闪过一丝阴毒的冷意。
昨晚堂侄刘彪被锁进开封府大牢的消息传回来,应奉局和太师府那边连夜下了死命令——既然陈留沉船那条明线被这不知名的小子用什么妖门算术搅黄了,那就必须在三天后的堂审账目复核上,用浩如烟海的度支总账把秦九思和这姓沈的小子彻底压死!
“刘博士,这是开封府少尹与太常寺李少卿联署的提卷公文。”
秦雪音强忍着怒气,上前一步将公文呈上:“按大宋律例,家父所涉之宣和四年至宣和六年汴河漕运、花石纲及河北军需并轨清册,理应交由我二人当场核验,找出那十二万贯沉船银及三百万贯亏空的真实流向!”
“核验?好说,好说得很呐!”
刘文举捻着山羊胡,突然哈哈一笑,站起身来,朝身后那座黑洞洞的架阁库大门一挥袖子:
“来人!把宣和四年正月至今,汴河四务、陈留转运司、苏州应奉局、河北东路度支司所有往来交引、四柱清册、船料折耗、水脚杂支,统统给秦小娘子和这位号称‘算破天机’的沈令史搬出来!”
随着刘文举一声令下,十几名杂役推着整整八辆吱呀作响的独轮木推车,从架阁库深处鱼贯而出,轰隆隆地将车上堆得像小山一样的麻纸账册、竹简签牌,一股脑地倾倒在院坝正中央!
“哗啦——!”
烟尘四起,发霉的陈年故纸味扑面而来。
只见院坝中央,赫然堆起了整整三千两百多卷厚厚的黄麻纸账册!每一卷都有手臂粗细,用麻绳捆扎,上面密密麻麻写满了草书、行书夹杂的“旧管、新收、开除、实在”四柱流水账,以及苏州码子与传统算筹记数符号!
周围的二三十名算学馆生员见状,纷纷发出一阵幸灾乐祸的哄笑声。
“三千两百卷四柱清册!每一卷少说也有五百条出入款项,合起来就是一百六十万条流水账目!”
“哈哈哈,莫说是三天,就算把咱们算学馆三十名上舍生全算上,每人摆开算筹日夜不休地按州府、按时辰一行行顺着加减核对,没有三个月也别想理出个头绪来!”
“昨日在宣德门外算个船底吃水,不过是仗着点工匠丈量的投机取巧之术罢了!真正的度支大算,浩若烟海,讲究的是皓首穷经、循序渐进!这姓沈的候补小吏,今日怕是要在这三千卷故纸堆里把眼珠子哭瞎了!”
刘文举听着门下弟子们的嘲讽,脸上露出了猫戏老鼠般的残忍笑意。
他背着手走到那座高达丈许的账册山前,居高临下地看着沈拓和秦雪音:
“沈令史,昨日你在街上不是挺威风吗?怎么现在哑巴了?老夫丑话可说在前头,这三千两百卷清册,乃是朝廷度支机密,片纸不得带出算学馆!开封府给你们的期限是三日——也就是三十六个时辰!”
刘文举伸出三根枯瘦的手指,在沈拓面前晃了晃,声音阴冷刺骨:
“三十六个时辰之内,你们要是能从这一百六十万条流水账里,把秦九思所谓的‘应奉局与河北岁币挪用亏空’逐笔勾稽出来,且做到收支相抵、分毫不差,老夫当场摘下这顶算学博士乌纱帽给你们磕头!可若是算不出来……”
“那就说明秦九思所谓查出贪墨纯属诬告朝廷命官!三日后午时,秦九思依律问斩,而你沈拓——咆哮公堂、诬陷上官,杖责八十,刺配沙门岛!”
秦雪音看着眼前那座令人绝望的三千卷账册大山,脸色瞬间失去了所有血色,连怀里的紫檀算盘都差点滑落在地。
她比谁都清楚北宋“四柱清册”的恐怖之处。
为了防止外人查账,户部与应奉局的书吏故意将花石纲的款项拆散成成千上万笔几贯、几十贯的零碎支取,混杂在纤夫口粮、桐油修船、河道清淤、燕云运粮等几十个名目里,而且不同州县的铜钱折算率、米麦斗斛大小全都不同!
如果用传统的筹算或者珠算,只能像贪吃蛇一样,从第一卷的第一行开始,一笔一笔往后顺着读、顺着记、顺着加——一旦中间漏看一行或者算错一个进位,前面几天几夜的心血就得全部推翻重来!
“三十六个时辰……一百六十万条混杂账目……这根本不是人能算出来的……”秦雪音声音发颤,绝望的寒意瞬间笼罩全身。
“用你们那个一步等一步、从头顺到尾的‘串行循环算法’,别说三天,给你三年你也跳不出他们设下的死局。”
就在秦雪音近乎绝望之际,身旁的沈拓却忽然笑了起来。
他非但没有半点慌乱,反而弯下腰,随手从脚边抽出一卷宣和五年的《陈留转运司杂支清册》,哗啦一声展开,看了一眼上面那杂乱无章的流水记录,然后转头看向一脸得意的刘文举。
“刘博士,你刚才说,只要我在三十六个时辰内,从这三千两百卷、一百六十万条账目里,把你们应奉局和太师府贪墨挪用的每一笔黑账精准拎出来,你就摘下乌纱帽给我们磕头?”
刘文举冷哼一声:“君子一言,驷马难追!全馆三十名算生皆可作证!怎么,你想临阵脱逃?”
“逃?我只是怕刘博士脖子太硬,三天后跪不下去。”
沈拓随手将那卷账册扔回纸堆,拍了拍手上的灰尘,语出惊人:
“不用三天。前面的三十五个时辰,用来把你们这堆垃圾流水账做一次‘特征向量化(Embedding)’;至于最后真正把所有贪墨黑账全部检索抓出来的时间——”
沈拓竖起一根食指,目光如刀锋般扫过全场目瞪口呆的算学馆师生:
“只需要三息!一针下去,三百万贯黑账,自己就会跳出来!”
“秦姑娘,去帮我买两万片削平的毛竹签、十把钻孔用的三分铁冲子,再找三根三尺长的细铁钎来!”
第5章 把流水账变成 Embedding 向量
“两万片毛竹签?十把铁冲子?还要三根穿肉串似的细铁钎?!”
度支架阁库前的院坝里,短暂的死寂之后,爆发出一阵比刚才还要猛烈十倍的哄堂大笑。
算学馆的生员们一个个笑得前仰后合,有的甚至拍着大腿眼泪都笑出来了。
“哈哈哈哈!我还当这姓沈的小吏有什么鬼神莫测的《九章》秘术,原来是个要去夜市摆摊烤羊肉串的厨子!”
“放着馆里上好的紫檀算筹、象牙算盘不用,居然去买竹签和打孔铁冲子?他以为这是将作监木作坊钉板凳呢?”
“秦博士一世英名,怎么生出个女儿找了这么个疯子来做帮手?这下好了,三天之后不用开封府动刑,这小子自己就得因为疯癫被轰出太学!”
刘文举更是捻着山羊胡,笑得满脸褶子都挤在了一起:“好!好一个‘三息抓黑账’!老夫倒要看看,你是怎么用铁钎子把三百万贯银子从竹签里穿出来的!来人,把东厢房那间废弃的柴房腾出来给沈令史当算房,记住,除了他要的竹签、铁冲子和铁钎,不准任何算学馆博士帮他拨一下算盘!”
面对满院子酸儒的讥讽,沈拓连眼皮都没抬一下。
跟一群连“高维向量空间”和“布尔逻辑门”都没听说过的12世纪古人解释什么叫 Input Embedding(输入特征嵌入),纯粹是浪费口水。
不到半个时辰,秦雪音便带着两名以前受过秦九思恩惠的将作监老木匠,拉着满满两板车削得薄厚均匀的楠竹片、十几把钢口极佳的半圆铁冲子、木槌,以及几根磨得笔直光滑的细长铁钎,赶回了算学馆东厢房。
为了帮沈拓打下手,秦雪音还特意从太学外舍请来了八名出身寒门、平日里常受秦九思接济资助的年轻算生。
东厢房门一关,隔绝了外面的冷嘲热讽。
那八名寒门算生看着满屋子堆成山的三千两百卷黄麻纸清册,又看了看地上那两万片巴掌大小(长五寸、宽两寸、厚一分)的空白竹片,全都面面相觑,脸上写满了迷茫与惶恐。
为首一名叫赵铁柱的河北籍寒门算生咽了口唾沫,小心翼翼地问道:“沈……沈大哥,还有秦师姐,咱们算学馆查账,向来是先按‘旧管、新收、开除、实在’四柱,用算筹摆出各州府的总数,再一笔笔核对交引。咱们今日不摆算筹,弄这么多竹片和打孔冲子,到底是何章法?”
秦雪音也抬起那双清澈却充满疑惑的眸子看向沈拓:“是啊,沈小哥,这一百六十万条流水账,如果每一条都要抄在竹片上,莫说竹片不够,光抄写就得十天半个月……”
“谁说要把一百六十万条流水账全部抄下来了?”
沈拓走到正中央的木桌前,从怀里掏出那十五页《Attention Is All You Need》论文,翻到第3页的架构图底部——那个标着 Input Embedding 的粉红色方框。
他拿起碳素笔,在一张空白的楠竹片上画出了整整齐齐的两排、共计十六个圆圈孔位,随后抬起头,目光灼灼地扫视着秦雪音和八名寒门算生:
“你们之所以觉得三千卷账册算不完,是因为你们被编造假账的人牵着鼻子走,掉进了‘文字表面噪音’的陷阱里!”
沈拓随手抓起一卷《宣和五年汴河陈留段花石纲杂支册》,哗啦翻开第一页,指着上面密密麻麻的毛笔字冷笑道:
“你们看这一页:初三日买麻绳三十斤支钱四贯;初四日纤夫张二狗病故抚恤支钱三贯;初五日押纲官刘彪夜宿樊楼招待水部司官吏支酒水钱十八贯;初六日补修神霄三号船底桐油支银五百两……如果你们用眼睛一行行去读这些文字,脑子不出半个时辰就会被那些鸡毛蒜皮的麻绳、草鞋、酒水钱彻底灌满!”
“在我的算学体系里,首先第一条铁律就是:滤除低权重噪声,将非结构化的混乱文字,映射为固定维度的特征向量——我称之为‘竹片向量化(Embedding)’!”
“向量化?”秦雪音喃喃重复着这个陌生却又带着奇异美感的词汇,秀眉微蹙,“何为特征向量?”
“很简单!”
沈拓举起手里那片画了十六个孔位的竹片,声音清脆果断:
“首先,低于五十贯的小额零碎流水,哪怕它有一百五十万条,加起来也凑不够三百万贯亏空的零头,直接略过不看!我们只抓取单笔或同日累计超过五十贯的大额异常收支!这样一来,三千两百卷清册里真正需要处理的账目,瞬间从一百六十万条锐减到了不到一万两千条!”
秦雪音眼睛猛地一亮:“对啊!二八定律!大额贪墨必藏于大宗物料与整批调拨之中!一万两千条,每条一片竹卡,两万片竹签绰绰有余!”
“但这还不够,哪怕只剩一万两千条,如果用文字写在竹片上,你要把‘所有在陈留段发生、且经手人为应奉局、且名目为修船或瑞石损耗、且银钱去向与河北岁币重叠’的账目找出来,还是得把一万两千片竹签翻上几十遍!”
沈拓嘴角微扬,露出了工科生降维打击时的绝对自信:
“所以,我们不在竹片正面写废话,我们只在竹片上端边缘打孔!”
他指着竹片上端那十六个并排的圆孔位置,用碳素笔依次标上刻度:
“看好了!这十六个孔位,就是每一笔账目的十六维特征向量(16-Dimensional Key Vector)!”
“第一至第四孔(时间维度):分别代表宣和四年、宣和五年、宣和六年,以及‘是否处于冬春枯水停航期’!”
“第五至第八孔(空间与部门维度):第五孔代表汴河陈留至雍丘段;第六孔代表苏州应奉局经手;第七孔代表河北燕云岁币度支司拨款;第八孔代表太师府或蔡氏、王氏票号汇兑!”
“第九至第十二孔(名目与物料维度):第九孔代表太湖瑞石采买与沉没;第十孔代表大宗桐油、生铁、麻缆修船;第十一孔代表军粮折银;第十二孔代表无实物交引的空头调拨!”
“第十三至第十六孔(数额与异常特征维度):第十三孔代表单笔超五百贯;第十四孔代表单笔超五千贯;第十五孔代表账面物价超出市场均价五成以上;第十六孔代表收支跨州县对冲!”
说到这里,沈拓拿起一把半圆铁冲子和一把V型槽刻刀,在众人屏息凝神的注视下,演示了这个源自20世纪早期边缘打孔卡(Edge-notched card)与现代向量点积检索完美结合的逆天操作:
“所有拿到的空白竹片,上端早已由老木匠用钻床统一钻好了这十六个圆孔。你们九个人接下来的任务,根本不用动脑子算加减法!你们每个人分三百五十卷账册,看到任何一笔超过五十贯的账目,就拿出一张竹片,在竹片正中央飞快记下卷宗号与金额(这就是 Value,值向量)!”
“然后,根据这笔账符合哪几个特征,如果它符合某一个孔位代表的特征——比如它是宣和五年(第2孔)、应奉局经手(第6孔)、名目是太湖石沉没(第9孔)、金额超五千贯(第14孔)——你们就用这把V型铁冲子,咔嚓一下,把那个圆孔上方的竹片边缘剪开,变成一个开口朝上的U型凹槽! 如果不符合,就保留完整的圆孔不动!”
“轰——!”
仿佛有一道九天惊雷,在秦雪音的脑海深处轰然炸响!
作为自幼浸淫《九章算术》与大衍求一术的天才算学少女,秦雪音几乎在沈拓剪开那个孔位边缘的0.1秒内,就彻底想通了这背后令人头皮发麻的数学与物理逻辑!
她的呼吸瞬间变得急促无比,一双美眸死死盯着那片被剪出四个U型缺口的竹片,指尖因为极度的震撼而剧烈颤抖起来:
“圆孔是闭锁(0),剪开缺口是释放(1)……把一笔复杂的文字账目,彻底拆解成十六个非此即彼的孔位状态!那如果把一万两千片打好孔、剪好缺口的竹片整整齐齐叠在一起……”
秦雪音猛地抬起头,看向沈拓手里那根三尺长的细铁钎,失声惊呼:
“用铁钎穿过某一个孔位往上一挑,所有没剪开的圆孔竹片都会被铁钎死死挂住提起来,而所有剪开了U型缺口的竹片——就会因为没有阻碍,受重力作用,瞬间从一万片竹卡里自动掉落下来?!”
“啪!啪!啪!”
沈拓忍不住为秦雪音鼓起掌来,眼中满是惊艳与赞赏:“不愧是秦博士的高足!一点就透!这在我的论文里,就叫 Query(铁钎查询)与 Key(孔位特征)的硬件级并行点积匹配(Dot-Product Attention)!”
周围那八名寒门算生虽然听不懂什么叫“点积匹配”,但经过秦雪音这一句大白话的解释,八双眼睛瞬间瞪得像铜铃一样大!
“我的亲娘祖宗诶!”
河北算生赵铁柱一巴掌拍在自己脑门上,激动得满脸通红:“穿一根铁钎抖一下,就能从一万多笔账里把所有‘应奉局经手’的账全抖落出来?要是同时穿四根铁钎一起往上提,那岂不是只有同时剪开了那四个缺口的竹片才会掉下来?!”
“没错!一根铁钎是单维检索,四根铁钎同时穿进去,就是四维向量的逻辑与(AND)运算,也就是计算 Query 和 Key 的最高相似度权重!”
沈拓大手一挥,将三千两百卷清册分成九份,声音铿锵有力:
“传统查账是串行的,一个人必须记住前面所有数据才能往下算;而我这套‘竹片向量化’是完全并行的!你们九个人互不干扰,各自只管把手头的账册变成打孔竹片!现在是辰时正刻,给你们二十个时辰,把这一万两千张特征竹卡给我全部冲压出来!能不能救出秦老博士、能不能把王黼和朱勔的狗腿子钉死在开封府大堂上,就看各位手里的铁冲子快不快了!”
“干了!!”
八名寒门算生热血沸腾,再无半点迷茫,纷纷抄起铁冲子、木槌和朱笔,扑向了各自的账册堆!
秦雪音深深地看了沈拓一眼,那眼神里除了感激,更多了一种高山仰止般的炽热崇拜。她挽起碧色衣袖,露出一段皓白的手腕,拿起铁冲子坐在沈拓身旁,清脆的“咔嚓、咔嚓”冲孔声,顿时如密集的战鼓般在东厢房内响彻起来!
……
第6章 QKV铁钎检索法,一针刺破三百万贯
一天一夜,整整二十四个时辰。
算学馆东厢房内的菜油灯添了三次油,自始至终没有熄灭过。
外面的算学馆博士刘文举派了生员来窗外偷听了三次,每次听到的都不是拨打算盘的噼啪声,更不是摆放算筹的沙沙声,而是像铁匠铺一样的“咔嚓、咔嚓、笃、笃”的冲孔与敲击木槌声。
刘文举得知后,更是放下了心,只当沈拓和秦雪音已经彻底放弃了查账,在屋里发泄做木工活,甚至已经让人备好了三日后在开封府门前庆贺的酒席。
他做梦也想不到,在东厢房那扇紧闭的木门后面,人类历史上第一次“物理向量数据库构建与硬件注意力检索”正在以惊人的速度推进!
为了加快进度,沈拓在第二天清晨更是展现出了他作为大四机械工程学霸的恐怖动手能力——他直接用老木匠带来的榆木方料和铁轴,现场手搓了三台简易的“杠杆连动十六位排冲夹具”。
算生们只需要把竹片塞进木槽,按账目特征拨下对应的铁销子,然后一压手柄,“咔嚓”一下,三四个U型缺口在半秒钟内同时冲压成型,连切口毛刺都被修得干干净净!
到了第三日凌晨,寅时三刻。
随着赵铁柱打着哈欠压下最后一下杠杆手柄,三千两百卷黄麻纸清册被彻底清空!
东厢房的长条大木桌上,整整齐齐地码放着十二排、每排一千张、总计一万两千四百八十张冲压完毕的楠竹特征卡!
每一张竹卡的顶端,都布满了或圆或凹的十六位二进制特征孔槽;而在竹卡的下半截,则用最简练的苏州码子记录着该笔款项对应的原卷宗编号、日期与具体数额(Value)。
九名熬得眼眶发黑的算生全都围在木桌旁,紧张得大气都不敢喘一口,目光死死盯着站在主位上的沈拓。
秦雪音揉了揉酸痛的手腕,声音带着一丝沙哑与期盼:“沈小哥,一万两千四百八十笔五十贯以上的出入款项,全部完成你说的……Embedding 向量化了!离巳时开封府升堂只剩三个时辰,接下来怎么算?”
“接下来,就是见证《Attention Is All You Need》核心公式显灵的时刻了。”
沈拓精神抖擞,拍了拍怀里的论文。
在那篇划时代的论文里,自注意力机制的本质,就是用当前的查询向量 $Q$(Query),去和数据库中所有的键向量 $K$(Key)做内积,算出相关性分数,再通过 Softmax 函数将注意力集中在得分最高的那几个值向量 $V$(Value)上。
而在眼前这张12世纪的木桌上:
那一万两千四百八十张竹片顶端的十六个孔槽,就是矩阵 $K$!
竹片正面写的卷宗号与金额,就是矩阵 $V$!
而沈拓手里握着的这几根三尺长的细铁钎,就是即将刺破一切贪腐迷雾的查询探针——Query($Q$)!
“首先,我们来抓第一条大鱼:应奉局朱勔与刘彪在汴河花石纲上,到底用了多少次‘空船凿沉’或‘冬春枯水期虚报瑞石运输’的假账!”
沈拓将第一排一千张竹卡拢进一个两头通透的木制卡槽里,将所有竹卡拍齐。瞬间,竹卡顶端的十六个孔位连成了十六条笔直深邃的孔道!
“看好了!我的第一个 Query 查询向量是:【第4孔:冬春汴河枯水停航期】+【第6孔:苏州应奉局经手】+【第9孔:太湖瑞石采买及修船损耗】+【第14孔:单笔金额超五千贯】!”
沈拓话音未落,双手持着四根细长的铁钎,眼神锐利如鹰,刷刷刷四声轻响,精准无比地同时刺入了第一排竹卡的第4、第6、第9、第14号孔道之中!
“起——!”
沈拓双手握住四根铁钎的两端,猛地往上一提,同时手腕高频抖动了两下!
奇迹发生了!
一千张密密麻麻的竹卡中,凡是在这四个孔位上哪怕有一个没被剪开(即不符合全部四个特征)的竹卡,全都被铁钎死死穿住,随着铁钎一起被提到了半空中!
而唯独有十几张在这四个孔位上全部被剪成了U型开口凹槽的竹卡,因为没有任何铁钎能够挂住它们,在一声清脆悦耳的“哗啦”声中,如同被无形筛子精准筛出的金粒一般,直接脱离大部队,整齐地跌落在了底部的木槽里!
整个过程,从插针、提起、抖动到竹卡掉落,真的只用了不到三秒钟(三息)!
“掉……掉出来了!真的自己掉出来了!!”
赵铁柱等八名寒门算生眼珠子都快瞪裂了,一个个扑到木槽边,低头看向那跌落出来的十四张竹卡。
秦雪音一把抓起那十四张竹卡,目光扫过竹卡正面的记录,呼吸瞬间停滞:
“宣和四年腊月十二,汴河冰封停航,应奉局却支取‘陈留段抢运神霄瑞石雇船及破冰损耗银’一万八千贯,经手人刘文举、刘彪!”
“宣和五年正月十八,汴河枯水绝流,应奉局支取‘雍丘段太湖石沉船打捞及桐油修补银’两万四千贯!”
“宣和六年二月初三,同样是枯水期,支取三万一千贯……”
秦雪音一连念出十四笔账目,手指在紫檀算盘上飞快一拨,声音颤抖得几乎变了调:“十二排竹卡全部过一遍铁钎……前后不过半盏茶功夫,总共筛出枯水停航期虚报花石纲瑞石沉没及损耗假账八十六笔,合计贪墨银钱——一百一十二万四千贯!每一笔都有原卷宗页码对应,铁证如山!”
八名寒门算生彻底傻眼了,扑通一声差点给沈拓跪下。
平时三十个算学博士算上三个月都未必能从一百六十万条流水里抠出来的跨年假账,在这个叫“QKV铁钎检索”的神仙手段面前,竟然像烈日下的冰雪一样,十几秒钟就被扒了个干干净净!
“别急,这一百一十二万贯只是朱勔和刘文举的开胃小菜。”
沈拓眼神冰冷,没有丝毫停顿,将筛完的竹卡重新归位,再次抽出了四根铁钎:
“秦老博士之所以会被王黼和刘文举联手置之死地,是因为他摸到了真正不能碰的逆鳞——河北燕云岁币与边防军饷的挪用黑洞!现在,我们输入第二个 Query 查询向量,做一次跨部门的 Cross-Attention(交叉注意力检索)!”
沈拓双手如幻影般移动,四根铁钎精准刺入另外四个孔位:
“【第7孔:河北燕云度支司军饷拨款】+【第8孔:太师府蔡氏、王氏票号汇兑】+【第12孔:无实物交引空头调拨】+【第16孔:跨州县收支同日对冲】!”
“给我出来!”
沈拓低喝一声,双臂肌肉贲张,一排接一排地用四根铁钎向上猛提!
“哗啦!哗啦!哗啦!”
在清脆如玉珠落盘的撞击声中,十二排、一万两千多张竹卡被铁钎在短短两分钟内全部过滤完毕!
木槽底部,静静地躺着一百零八张染着桐油香气的楠竹卡!
沈拓放下铁钎,拿起一张大白麻纸,用碳素笔将这一百零八张竹卡上的数据按矩阵行列飞快汇总,画出了大宋历史上第一幅《宣和四至六年花石纲与河北军饷资金流向注意力热力矩阵图》!
当最后一个数字落笔,秦雪音看着那张图纸右下角的汇总金额,整个人如遭电击,捂住嘴巴,眼泪夺眶而出:
“一百零八笔空头调拨……名为拨付河北燕山府军前粮饷与代税岁币,实则在拨出当日,便由刘文举在算学馆度支册上以‘汴河漕运折耗’对冲抹平,原银一文未出汴京,直接转入了王黼太师府名下的丰乐钱庄与应奉局私库!合计金额——二百一十八万六千贯!”
“加上刚才查出的一百一十二万四千贯,总计三百三十一万贯!”
分毫不差!甚至连秦九思老博士当初只怀疑有诈、却没来得及算清的另外三十一万贯暗账,都被沈拓这几根铁钎连根拔起!
此时,窗外天光大亮,远处的开封府方向传来了沉闷威严的晨钟声。
第三日巳时,到了!
“哐当!”
东厢房的大门被人从外面一脚踹开。
算学博士刘文举穿着一身崭新的七品官袍,带着满脸的讥诮与迫不及待的杀意,领着十几名算学馆生员和开封府差役堵在门口,阴阳怪气地高声喝道:
“沈令史,秦小娘子,三十六个时辰已到!太常寺李纲李少卿、开封府少尹大人已经在府衙正堂等着看你们的笑话了!怎么,你们那烤羊肉串的竹签子,串出几文钱来了啊?!”
沈拓缓缓转过身。
他手里提着一只装满了一百九十四张高权重罪证竹卡的木匣,另一只手拎着那四根寒光闪闪的细长铁钎,脸上带着一抹让刘文举莫名心里发毛的灿烂笑容:
“刘博士,你的乌纱帽戴稳了吗?走吧,去开封府正堂——我现场给你演示一下,什么叫三秒钟把你送进断头台!”
第7章 开封府堂审,降维打击算学宗师
巳时二刻,开封府正堂。
威严的“明镜高悬”匾额之下,两排手持水火棍的差役肃然而立。堂外天井里,不仅挤满了闻讯赶来旁听的太学学子与京城百姓,连户部度支司、将作监、太常寺的十余名官员也坐在两侧廊庑下观审。
正堂主位之上,开封府少尹王大人正襟危坐;而在他左侧的协审席上,坐着一位身穿绯色四品官袍、面容清癯刚毅、双目炯炯有神的中年官员——正是当朝太常少卿,李纲,李伯纪!
两日前在宣德门外轿中惊鸿一瞥后,李纲便对这个仅凭几行奇异算式就推翻水部司勘验状的年轻人产生了极大的兴趣。今日这场关乎太学算学馆老博士秦九思生死的度支总账复核,他更是力排众议,亲自来开封府坐镇监审。
此时,大堂中央的枷锁声响起。
满头白发、身穿囚衣却依旧脊梁挺直的算学老博士秦九思被带上了大堂。
“爹!”秦雪音一见父亲额角上的刑伤,眼泪顿时扑簌簌地往下掉。
“雪音莫哭!为父行得正坐得端,哪怕今日血溅开封府,也绝不替国贼背这口黑锅!”秦九思须发皆张,怒视着站在一旁的算学馆同僚刘文举。
刘文举却是冷笑连连,朝着堂上的开封府少尹和李纲拱手一礼,朗声道:
“启禀少尹大人、李少卿!三日前,秦氏之女与这狂妄小吏沈拓立下军令状,言称只需三十六个时辰,便能从宣和四至六年的三千两百卷、一百六十万条度支清册中,查出所谓的‘花石纲与河北军饷亏空’。如今时限已到,可据老夫所知,这二人三天里连算筹都没摆过一回,只顾着在柴房里拿铁冲子凿竹签玩儿!此等儿戏公堂、欺罔朝廷之徒,还请少尹大人即刻定罪!”
堂上的开封府少尹眉头一皱,他本就不想得罪太师王黼和应奉局朱勔,闻言立刻一拍惊堂木:“沈拓!刘博士所言可属实?那三千两百卷清册,你们可核算清楚了?”
全场数百道目光瞬间聚焦在堂下的沈拓身上。
那些跟着刘文举一起来的算学馆生员们,一个个抱起双臂,脸上满是看好戏的戏谑表情。在他们看来,别说是沈拓,就算是祖冲之、刘徽复生,也不可能在三天内用筹算看完三千两百卷四柱清册!
面对全场的审视,沈拓不慌不忙地走上前一步,将手中那只长条木匣放在堂中的长案上,同时让赵铁柱等八名寒门算生把另外十一排打好孔的楠竹卡箱一字排开。
“回少尹大人、李少卿!三千两百卷清册,共计大额出入款项一万两千四百八十笔,下官与秦姑娘不仅已经全部核算完毕,而且连刘文举勾结应奉局刘彪、太师府丰乐钱庄,虚报花石纲瑞石沉没、挪用河北燕云边防军饷的每一笔假账,都已分门别类,精确到了哪一卷、哪一页、哪一行!”
此言一出,满堂哗然!
刘文举像是被踩了尾巴的猫一样跳了起来,指着沈拓怒极反笑:“满口胡言!一万两千四百八十笔大额账目,散落在三千两百卷清册之中,你要把跨年、跨州府的对冲假账找出来,每一笔都要在三千卷里来回翻找比对,那是上亿次的比对之功!莫非你请了天兵天将下凡不成?!”
“对付你这种连矩阵都不懂的酸儒,哪用得着天兵天将?”
沈拓嘴角勾起一抹讥讽的笑意,转头看向刘文举:“刘博士既然自诩大宋算学宗师,那不妨当着少尹大人和李少卿的面,跟下官比试一场如何?”
“比什么?!”刘文举傲然昂头,“老夫浸淫《九章》四十年,筹算珠算天下无双,还怕你不成?”
“很简单。”
沈拓指了指堂下由开封府书吏推上来的那三千两百卷原版清册,又指了指自己面前的一万两千多张打孔竹卡:
“请李少卿当场随意指定一个查账条件——比如某一年、某一个河段、某一类物料、或者某一个钱庄经手的款项。你用你引以为傲的传统筹算和眼睛去找,我用我的‘天工QKV铁钎检索法’去找。谁先找全并算出总额,就算谁赢!”
协审席上的李纲闻言,眼中精光暴涨,抚掌道:“好!眼见为实!本官便来出个题目——本官要查:宣和五年至六年之间,凡是名目为‘河北燕山府军前运粮水脚钱’,但实际收支却在同日被‘汴河陈留或雍丘段修船折耗’对冲抹平、且单笔在三千贯以上的全部款项!”
李纲这题目一出,堂下的户部度支司官员们全都倒吸了一口凉气。
这可是横跨两年、涉及河北与汴河两个完全不同衙门、还要比对同日对冲金额的复合难题!用传统查账法,至少得十几个老书吏把两边的账册一页页摊开对照,算上三天三夜才能找齐!
刘文举脸色也是一僵,随即咬牙道:“来人!给老夫把宣和五年、六年的河北度支册和陈留转运册搬过来,摆算筹!”
四名算学馆高足立刻冲上去,手忙脚乱地解开麻绳,翻开账册,刘文举双手抓起一把竹制算筹,在地上铺开的算毯上飞快地摆弄起来,额头上瞬间见了汗。
他刚翻开第一卷账册的第三页,连第一笔款项的算筹还没摆完——
“不必麻烦了,刘博士。”
大堂正中央,沈拓平静的声音陡然响起。
所有人下意识地转头看去。
只见沈拓根本没有去碰那堆故纸卷宗,他只是气定神闲地从木匣旁拿起四根三尺长的细铁钎。
“李少卿的查询条件(Query),对应我天工特征竹卡的四个孔位维度:【第2、3孔:宣和五至六年】、【第5孔:陈留雍丘段】、【第7孔:河北燕云军前拨款】、【第16孔:跨州县同日对冲】!”
在全场数百双眼睛的注视下,沈拓双手持钎,动作优雅而精准地刺入第一箱竹卡的对应孔道,手腕轻轻一提、一抖!
“哗啦——!”
伴随着一阵清脆悦耳的竹片滑落声,九张边缘被剪出U型凹槽的竹卡,如同听懂了号令的士兵一般,瞬间从上千张竹卡中自动脱颖而出,整齐地掉落在托盘之中!
紧接着,赵铁柱等算生在其他十一箱竹卡上同时提钎一抖!
一秒!两秒!三秒!
仅仅三息时间!
当刘文举手里的第一把算筹刚刚摆出一个“三千四百贯”的个位数时,沈拓已经将十二个托盘里掉落出来的竹卡全部拢在手中,“啪”地一声,连同早已画好的《资金流向权重热力矩阵图》,重重拍在了李纲与开封府少尹面前的公案上!
“启禀少尹大人、李少卿!检索完毕!”
沈拓声音洪亮,震得大堂梁柱嗡嗡作响:
“符合李少卿所提全部四个特征的异常对冲黑账,在三千两百卷清册中,共计七十二笔!其中宣和五年三十一笔,宣和六年四十一笔!”
“第一笔,见《宣和五年河北度支甲字第十四卷》第八页第三行,拨付燕山府运粮水脚银四千五百贯,同日于《陈留转运司乙字第七卷》第十二页,由算学博士刘文举亲笔批注‘神霄纲船搁浅修补折耗四千五百贯’予以冲销,实银转入丰乐钱庄!”
“第二笔,见《宣和五年河北度支甲字第十九卷》……”
沈拓连看都不用看原卷宗,仅凭手中竹卡上的 Value 编码,一口气报出了十几笔账目的精确卷号、页码、行数与金额!
一旁的秦雪音更是配合默契,手指在紫檀算盘上一阵疾风骤雨般的连拨,清脆报数:“七十二笔款项,连同其余一百二十二笔花石纲枯水期假账、空头交引账,总计查实刘文举、刘彪伙同应奉局、丰乐钱庄贪墨挪用朝廷军饷及漕银——三百三十一万零四百五十贯!”
“什么?!”
堂上的开封府少尹直接从椅子上弹了起来,李纲更是猛地抓起案上的那叠竹卡和矩阵图,对着堂下书吏吼道:“快!按沈拓报出的卷号页码,当堂翻查原卷核对!”
十几名开封府书吏和户部官员疯了一样冲向那堆原卷,按照竹卡上标注的卷号页码一翻——
“甲字第十四卷第八页第三行……有!真的一字不差!上面还有刘文举的亲笔签押!”
“乙字第七卷第十二页……全对上了!连铜钱折算的零头都分毫不差!”
“天呐!七十二笔,连同另外一百二十二笔,一共一百九十四处假账,全在原卷里找到了!三息之间,从三千两百卷账册里精准抓出所有贪墨黑账……这、这是何等神仙算术?!”
大堂内外,彻底沸腾了!
那些刚才还在嘲笑沈拓“拿竹签烤羊肉串”的算学馆生员们,此刻一个个面如土色,下巴差点砸在脚背上。他们看着那一排排打着整齐孔洞的竹片和那几根细铁钎,只觉得自己过去十几年苦读的算学套路,在人家这种降维打击的矩阵检索面前,简直就像是三岁孩童数手指头一样可笑!
而跪在地上摆算筹的算学博士刘文举,手里的竹筹“啪嗒”一声全散落在了地上。
他浑身如筛糠般剧烈颤抖,老脸涨成了猪肝色,指着沈拓手里的铁钎,喉咙里发出破风箱般的嘶吼:“妖术……这是妖术!三千两百卷账册,你怎么可能用几根铁钎子一穿就穿出来?!我不服……噗——!”
急怒攻心之下,这位不可一世的太学算学博士竟当堂喷出一口老血,头顶的七品乌纱帽歪斜着滚落在地,整个人软绵绵地瘫倒在算毯上!
“妖术?这叫科学,叫特征向量与注意力机制!”
沈拓居高临下地瞥了一眼瘫倒如死狗的刘文举,朗声道:“刘博士,乌纱帽既然自己掉了,那这磕头就免了,留着脑袋去大牢里跟开封府的包头铡磕吧!”
“啪!”
李纲猛地一拍公案,霍然起身,满面凛然正气:
“铁证如山,天理昭彰!来人!当堂卸去秦九思老博士刑具,官复原职!将这欺君罔上、盗窃边军粮饷三百三十一万贯的国贼刘文举,剥去官袍,押入死牢严加审讯!涉案之丰乐钱庄、应奉局相关人等,由本官会同御史台即刻入宫面圣参奏!”
“威武——!”
水火棍齐刷刷顿地,堂外百姓欢声雷动。
秦九思老泪纵横,走出枷锁的第一件事,便是拉着女儿秦雪音,要向沈拓行大礼参拜。沈拓连忙上前扶住这位耿直的老学者。
而当沈拓抬起头时,却发现堂上的太常少卿李纲正深深地凝视着自己,手中紧紧攥着那张画满了方格与数字的《注意力权重热力矩阵图》,嘴唇微动,用只有前排几人能听见的声音低语道:
“今夜戌时,备一壶热酒,本官去你水磨务的小院一叙。”
……
第8章 夜谈李伯纪,图穷匕见推演靖康
是夜,戌时正刻。
汴京城东南角,将作监水磨务旁的破落小院里,飘起了温酒的醇香。
白天开封府大堂上的惊天逆转,此刻已经像长了翅膀一样传遍了整个汴京官场。三息时间、四根铁钎、一万两千张打孔竹片,当堂刺破应奉局与太师府下属钱庄三百三十一万贯的惊天黑账——“沈拓”这个名字,第一次真正进入了大宋高层权贵与清流大臣的视野。
为了防止应奉局狗急跳墙,李纲在散堂后特意调了一队太常寺与开封府的精悍护卫暗中守在小院外围。
此时,狭窄的土屋内,豆大的菜油灯被换成了两支明亮的红烛。
当朝太常少卿李纲换上了一身朴素的青布常服,盘腿坐在榆木案几对面,手里端着一只粗瓷酒碗,目光却始终没有离开案几上铺着的那几张打孔竹卡和那幅被他翻来覆去看了一下午的《矩阵热力图》。
“致远(沈拓字)啊,老夫在朝为官二十载,见过苏子瞻(苏轼)的锦绣文章,也见过沈存中(沈括)留下的《梦溪笔谈》,却从未见过如此匪夷所思、却又直指事物本源的算学神技!”
李纲仰头饮尽碗中浊酒,长叹一声,眼中满是震撼与好奇:“白日里在公堂之上人多眼杂,老夫不便深问。如今四下无人,你能否给老夫透个底——你这套将万卷文字化作孔洞、以铁钎探针瞬间锁定关键的法门,究竟从何而来?莫非真是哪位隐世奇人所授?”
沈拓替李纲满上一碗热酒,看着眼前这位在历史上曾以一己之力撑起东京保卫战、最后却被投降派逼得抱恨终身的铁血名臣,心中也不禁涌起一股敬意。
要在短短十四个月内扭转大宋的灭国狂澜,单靠他一个九品候补小吏在底层手搓机器是绝对不够的,他必须在朝堂中枢有一个敢拍板、有魄力、且绝对爱国的政治盟友。而李纲,就是唯一的人选!
“李公既然深夜屈尊至此,那晚辈也就不再藏私了。”
沈拓指了指案几上的竹片,神色肃穆地说道:“此法并非什么仙人秘术,而是晚辈偶得的一卷奇书,名为《万象聚焦总纲》(即《Attention Is All You Need》)。其核心要义只有一句话——世间万物、军国大政,皆为信息之流转;摒弃层层传递之串行积弊,赋万事万物以多维特征,则无论局面如何繁杂,皆可以算力矩阵瞬间锁定致命之核心!”
“摒弃层层传递之积弊,以算力矩阵锁定致命之核心……”
李纲反复咀嚼着这句话,浑身猛地一震,仿佛有一扇全新的大门在他眼前轰然洞开!
他霍然抬起头,死死盯着沈拓:“致远!你白日里用此法查清了河北燕山府被挪用的两百多万贯军饷。那依你这套‘万象聚焦’之术来看,如今我大宋收复燕云六州、与金国海上结盟之后,北方的局势……究竟如何?”
来了!
沈拓知道,这才是李纲今夜微服私访的真正目的。
满朝文武都在为王黼、童贯赎回燕山空城而歌功颂德,唯有李纲等人忧心忡忡,却苦于被童贯和枢密院封锁了河北与辽东的真实军情,抓不到足以说服宋徽宗赵佶的铁证。
沈拓没有直接回答,而是起身走到墙角,将一盆烧得通红的木炭端到案几旁,然后从怀里抽出一张早已准备好的大宋北方舆图草纸。
“李公,在回答您这个问题之前,请允许晚辈用‘多变量注意力权重模型’,当着您的面算一算大宋与金国的这盘生死棋!”
沈拓拔开碳素笔,在舆图上的燕山府(今北京)、平州(今河北卢龙)、云中府(今山西大同)以及会宁府(金国上京)四个节点上,重重地画了四个黑圈。
“朝堂上的王黼、童贯总以为,金国女真人乃是苦寒之地的野人,贪图我大宋每年四十万贯的岁币与绢帛,只要我们按时给钱,金人就会乖乖守约,替我们看守北方门户。但这在算学与运筹学上,是一个彻头彻尾的笑话!”
沈拓笔尖如刀,在纸上列出了第一组矩阵参数:
“我们不看金国使臣嘴上说了什么,我们只看四个硬核的物理与经济特征(Key Vectors):”
“第一,人口与粮食膨胀率(K1):女真灭辽之战打了十年,完颜阿骨打死前,金国吞并了辽国上京、中京、东京及渤海、奚族数百万人口与三十万降军。但辽东与北疆连年战火,耕地荒芜,今年秋收北地又逢早霜!根据白日里我从河北度支册边缘看到的幽燕互市粮价数据——短短三个月,平州与燕山交界处的粟米价格暴涨了四倍!这意味着什么?意味着金国入冬之后,有着至少一百五十万石的致命粮食缺口!大宋给的那四十万匹丝绸,能当饭吃吗?不能!”
李纲呼吸陡然一滞,脸色瞬间凝重起来。
“第二,地理防线权重(K2)!”
沈拓笔尖一划,直接将燕山府北面的居庸关、古北口连成一线:
“石敬瑭割让燕云十六州,真正险要的不是燕山府那座孤城,而是北面的燕山山脉关隘,以及西面的太行山、大同云中高原!如今金人虽然把燕山府空城卖给了我们,但西边的云中、朔州、应州全在金国西路元帅完颜宗翰手里;东边的平州、营州扼守榆关通道,全在金国东路完颜宗望手里!从几何拓扑结构上看,我们的燕山府根本不是防线,而是伸进金国血盆大口里的一块肥肉,两侧高地全被金军俯瞰包围!”
“第三,守军叛变概率(K3)!”
沈拓指着燕山府旁标注的“常胜军郭药师”五个字,眼中寒芒闪烁:“白日里我用铁钎检索河北军饷时,顺手算了一笔账——朝廷拨给河北的军饷,七成被王黼和蔡攸截留,剩下三成全部用来收买辽国降将郭药师的五万‘常胜军’,而原本防守真定、中山、太原的大宋本土禁军,已经连续八个月只发半饷、甚至发霉米充数!郭药师此人,先叛辽主,再降大宋,其军中马匹草料与铁器自今年八月起,交易对象有六成来自平州金人控制的商队!一旦金军南下,郭药师掉转枪头引狼入室的概率,在我的矩阵模型里高达 九成八以上!”
“九成八?!”李纲猛地捏紧了手中的粗瓷酒碗,指节因用力过度而发白,额头上已然渗出了一层细密的冷汗,“郭药师手握燕山五万精兵,若他临阵反水,那从燕山到黄河岸边,一马平川的河北平原岂不是……”
“岂止是河北平原!”
沈拓猛地抬起头,烛火映照着他冷峻如铁的面庞,他在纸上画出了两条触目惊心的红色粗箭头——一条从平州经燕山直插汴京,另一条从云中南下直扑太原,然后东出太行山会师黄河!
“第四,时间窗口(K4)!如今辽天祚帝已是冢中枯骨,最多明年(宣和七年)开春,金军便可彻底肃清辽国残部,腾出全部主力!等到明年秋收之后,战马秋肥,黄河与汴河进入冬日枯水浅滩期,北方粮食缺口达到顶峰——这四个特征向量的注意力权重,将在宣和七年十月(即十四个月后)同时达到极值(Softmax 趋近于 1)!”
“啪!”
沈拓手中的碳素笔重重顿在舆图正中央的“东京开封府”五个字上,一字一顿,声若寒冰:
“李公!不用怀疑,十四个月后的冬天,金国必以完颜宗翰为西路、完颜宗望为东路,分兵两路大举伐宋!郭药师必降,燕山必失,太原必被死死围困,而东路金军铁骑只消二十天就能踏破河北,直抵汴京城下!”
“轰隆——!”
仿佛有一道惊雷在狭小的土屋里炸开!
李纲手中的粗瓷酒碗“咔嚓”一声被他生生捏碎,酒水混着掌心刺破的鲜血顺着指缝滴落在榆木案几上。
这位见惯了朝堂风浪的铁血少卿,此刻竟被沈拓这番环环相扣、精确到月份与行军路线的算学推演震得浑身发冷,后背的衣衫瞬间被冷汗浸透!
别人说金人狼子野心,那只是道德上的揣测;而眼前这个年仅十九岁的少年,却是从粮价膨胀、地理拓扑、军饷资金流、气候水文四个看似毫不相关的维度,像解剖一具尸体一样,把十四个月后的灭国大祸赤裸裸地摆在了他的面前!
“十四个月……两路伐宋,郭药师反水,兵临汴京……”
李纲嘴唇剧烈颤抖着,猛地跨前一步,一把死死抓住沈拓的双肩,连手上的鲜血染红了沈拓的青布公服都浑然不觉:
“致远!此乃倾天之祸,社稷危如累卵!老夫明日便拿着你这张推演图去垂拱殿撞柱死谏,哪怕拼了这条性命,也要叫醒官家!”
“李公万万不可!”
沈拓反手按住李纲颤抖的手腕,冷静得可怕:“您现在拿着这张纸去见官家,王黼、蔡攸、童贯只会说您是因为太常寺与应奉局结怨,故意编造危言耸听的妖言来诅咒‘收复燕云之大功’!到时候金兵还没影儿,官家一怒之下先把您贬去江南岭南,那十四个月后,这汴京城就真成了没人主持大局的死城了!”
李纲浑身一僵,顿时清醒过来。是啊,如今赵佶正沉浸在收复燕云的千古圣君美梦里,谁敢在这个时候泼冷水说金人明年要打进汴京,谁就是找死!
“那……那依致远之见,当如何破此死局?!”李纲呼吸急促,此刻他看沈拓的眼神,早已不再是看一个九品候补小吏,而是看一位能挽天倾于既倒的当世国士、活诸葛!
沈拓目光深邃,缓缓吐出十六个字:
“借查账之名,聚天下算力;掌将作之器,铸铁血新军!”
他指了指桌上的打孔竹片:“今日开封府一战,刘文举倒台,牵扯出三百三十一万贯亏空。官家此刻最关心的是什么?是钱!他修艮岳缺钱,搞神霄宫缺钱,赏赐燕云降军更缺钱!李公明日入宫,绝口不提金兵伐宋,只奏请官家一件事——就说户部度支司与全国漕运、免夫钱账目积弊三年,至少还藏着上千万贯的贪墨漏卮!”
“请官家特批,由您领衔,调我入主太学算学馆与将作监,允许我招募三百名寒门算生与盲人珠算师,组建大宋第一个‘天工并行算力大阵’,在十日之内,把户部积压三年的全国烂账彻底算穿!”
沈拓眼中燃烧着炽热的野心与战意:
“只要我帮官家从贪官肚子里掏出几百万贯真金白银,官家的注意力权重,就会彻底转移到我这个‘能替他生钱、能算尽天机’的奇才身上!到那时,我要将作监的废铜烂铁、要水磨务的汴河水力、要皇城司的边缘密档、甚至要自己炼钢铸炮——满朝文武,谁能拦我?!”
第9章 摒弃串行!组建大宋第一代人肉GPU
事实证明,沈拓对宋徽宗赵佶这位“艺术天子”注意力权重的预判,准到了骨子里。
次日早朝,当太常少卿李纲将开封府查实的三百三十一万贯贪墨铁证、连同沈拓那套匪夷所思的“天工铁钎竹卡图”呈上垂拱殿时,原本还想替门生刘文举遮掩几句的太师王黼和少保蔡攸,还没来得及开口,龙椅上的赵佶就已经被“三百三十一万贯”这个庞大的数字晃花了眼。
要知道,宣和六年朝廷为了应付燕云防务和艮岳扩建,内帑与左藏库早已捉襟见肘。
听说一个年仅十九岁的将作监候补小吏,仅用几根铁钎和两万片竹签,三天就从故纸堆里刨出了三百多万贯的现成银子,而且李纲还趁热打铁地进言——“户部度支司积压三年的全国六路免夫钱、漕运折耗及边军空饷总账共三万卷,若交由沈拓以新法清查,十日之内,必可为官家再追回至少八百万贯羡余!”
八百万贯!
赵佶当场龙颜大悦,甚至都没去深究王黼和朱勔在里面的牵连(只罚了二人半年俸禄以示惩戒,将替罪羊刘文举、刘彪秋后处决),当殿朱批圣旨:
特擢升沈拓为太学算学馆权博士兼将作监主簿(从八品实职),赐银三百两,由李纲协理,准其便宜调用太学场地及京城算工,限期十日,彻查户部积压三年的三万卷度支烂账!
圣旨下达的当天下午,整个太学算学馆迎来了建馆以来最鸡飞狗跳、却又最震撼人心的一幕。
算学馆原本属于刘文举的博士正堂,牌匾被直接摘下,换上了沈拓亲手用工程仿宋体书写的六个大字——
【天工算学矩阵堂】!
而更让太学那些自命清高的儒生和算学官们大跌眼镜的,是沈拓招人的标准。
他没有录用哪怕一个平日里喜欢摇头晃脑背诵《周髀算经》注疏的名门监生,而是让官复原职的老博士秦九思与女儿秦雪音出面,在一日之内,从汴京城内外的寒门外舍生、茶肆酒楼的账房学徒、甚至大相国寺瓦舍旁靠盲算卜卦混饭吃的盲人珠算好手里,一口气招募了整整三百二十人!
只要能熟练使用算盘(北宋时期珠算已开始在民间商业与算学馆中与筹算并行,正如《清明上河图》赵太丞家柜台上的算盘)、听得懂口令、手指灵活、且家境贫寒急需每日五十文工钱糊口的人,不论出身、不论残疾,全数录用!
傍晚时分,太学算学馆最大的讲堂“大衍堂”内,所有的孔子像帷幔和经书案几被全部移走。
取而代之的,是按照极其严格的几何网格排列的十六排、每排二十席,共计三百二十个独立算位!
站在高高的讲坛上,身穿崭新从八品青色主簿官袍的沈拓,低头看着手中《Attention Is All You Need》论文第6页关于 Computational Complexity Per Layer(每层计算复杂度与并行度对比) 的表格:
| Layer Type | Complexity per Layer | Sequential Operations | Maximum Path Length |
|---|---|---|---|
| Recurrent (RNN) | $O(n \cdot d^2)$ | $O(n)$ | $O(n)$ |
| Self-Attention | $O(n^2 \cdot d)$ | $O(1)$ | $O(1)$ |
“Sequential Operations: $O(1)$(串行等待步数为常数1)!”
沈拓合上论文,看着台下三百二十张或年轻、或沧桑、或双目失明却耳朵高高竖起的面孔,以及站在第一排担任总调度的秦九思、秦雪音父女,胸中涌起一股豪迈之气。
在这个没有硅基芯片、没有英伟达A100显卡的北宋宣和六年,他脚下这三百二十名手持紫檀与黄杨木算盘的大宋底层百姓,就是他亲手搭建的人类历史上第一块“人肉加机械混合并行 GPU(图形/矩阵处理器)集群”!
“沈博士!”
老博士秦九思看着台下这密密麻麻的三百二十人,又看了看廊庑外由户部度支司刚刚用三十辆大车拉过来的三万卷六路免夫钱与边军粮饷总账,还是忍不住有些心惊肉跳,低声道:
“前日三千卷账,我们用铁钎竹卡筛出大额假账已是神迹。可今日户部送来的这三万卷,乃是大宋京东、京西、河北、河东、陕西、淮南六路三百多个州军的‘赋役折变与军粮转运交叉大账’!这不仅要检索,更要算清每一州、每一军在铜钱、铁钱、交子、糙米、精麦、草料六种物料之间,跨越三十六个月的折算损耗与实收总值!按传统算法,一个人算完一个州前一个月的结余,才能接着算下一个月的旧管,三百多人凑在一起反而容易把账本传乱啊!”
台下的赵铁柱等算生也纷纷点头。
在他们的认知里,算账就像砌墙,底下第一层砖没砌好(第一个月的结余没算出来),上面第二层砖(第二个月的账)根本没法算!多找三百个人来,除了大家抢账本打架,怎么可能一起算?
“秦老博士说到了最关键的痛点!”
沈拓走到讲坛正中央的一块巨大黑漆木板前,拿起一块白垩石(粉笔雏形),在木板上重重地画了一个长长的箭头链条:
$$h_t = f(h_{t-1}, x_t)$$
“诸位请看!为什么过去户部度支司哪怕养着两百个书吏,算这三万卷跨年折变大账也要整整三年?因为你们用的是‘循环串行算法(RNN)’!你们非要算完正月($t-1$)的‘实在(结余)’,把它当成二月($t$)的‘旧管(期初)’,再去加二月的‘新收’、减二月的‘开除’!只要正月里有一个书吏算错了一斗米,后面三十五个月的账就全成了废纸,后面的人只能干瞪眼等着前面的人算完!”
沈拓手腕一抖,用白垩石将那个长长的串行链条打了个大大的叉!
紧接着,他在黑漆木板右侧,画出了两个巨大而工整的方阵网格——矩阵 $X$(各州各月原始收支矩阵) 与 矩阵 $W$(折算权重与损耗率矩阵)!
“从今天起,在我的天工算学矩阵堂里,彻底废除‘旧管递推’的串行算法!我们只做一件事——全并行矩阵乘法与残差归约(Parallel Matrix Multiplication & All-Reduce)!”
沈拓用木杆指着那三百二十名算生,声音洪亮如钟:
“仔细听好你们每个人的定位!你们三百二十人,不是三百二十个各自为战的账房先生,而是我这座‘天工大矩阵’里的三百二十个并行计算核心(CUDA Cores / Tensor Blocks)!”
“我把你们三百二十人,分为八个层组(8 Layers/Blocks),每组四十人,由赵铁柱等八名参加过前日竹卡冲孔的老算生担任组长(Block Controller),秦雪音姑娘担任全局总调度(Master Scheduler)!”
“怎么把原本必须一步等一步的三年跨州大账,变成三百二十个人同时开算的并行任务?”
沈拓白垩石在木板上刷刷点点,写下了令秦九思和秦雪音父女呼吸骤停的矩阵拆解公式:
“很简单!三年三十六个月的期末总结余,根本不需要一个月接一个月地递推!在数学上,线性递推完全可以展开为独立时间步的加权求和!”
$$Y = X \times W$$
“第一排到第八排的一百六十名算生(前四个Block),你们每个人桌面上只发一个州、某一个单独季度的‘新收’与‘开除’净值表(矩阵 $X$ 的一个分块 $X_{ij}$),以及对应的物价折变率与漕运里程损耗系数(矩阵 $W$ 的分块 $W_{jk}$)!”
“你们根本不需要管上个月剩多少钱,也不需要管隔壁州运了多少米!你们每个人手里只有两个极其简单的任务——听到第一声竹梆响,把左手的物料数乘以右手的折算系数;听到第二声竹梆响,把算盘上的乘积加到累加栏里!”
“至于双目失明、但听觉与珠算心算天下无双的四十位盲人珠算大师——”
沈拓目光温和而郑重地看向坐在最中间第9、第10排的那四十名盲人算师:
“你们是整个矩阵的 Reduce(归约汇总)与 Softmax 异常激活层!前面八个分块算出来的子矩阵结果,会由传令童子直接报给你们。你们只负责将三十六个时间步的独立结果瞬间相加,并与朝廷法定定额做差值比对!”
秦九思老博士呆呆地看着黑板上的方阵分块图,整个人像是被一道天光劈中了天灵盖,浑身剧烈一震,失声喃喃道:
“化递推为分块并算……把一人算三十六个月的死结,拆成三十六人同时算一个月、最后一步汇总相加!互不等待,同时轰鸣……老天爷,这、这岂不是意味着,原本需要算三十六天的账,现在一个时辰就能全部算完?!”
“不止一个时辰!”
沈拓搬出一台他让木匠连夜赶制出来的、由重锤与擒纵齿轮驱动的“双音竹梆机械节拍器(系统时钟发生器 Clock Generator)”,重重放在讲坛正中央!
“在并行计算里,最怕的就是各算各的、数据交接步调不一导致的阻塞!所以,这台节拍器就是你们三百二十人的统一心跳(System Clock)!”
沈拓伸手拔掉节拍器的卡销。
“笃——哒!笃——哒!”
清脆、稳定、充满工业机械美感的竹梆敲击声,以每秒一次(1 Hz)的精准频率,在空旷宏伟的大衍堂内回荡开来!
第10章 并行矩阵乘法与算盘交响曲
次日清晨,辰时正刻。
太学算学馆外,旌旗招展,车马云集。
因为今日是沈拓夸下海口“启动天工大阵、清查户部三万卷积压烂账”的第一天,不仅太常少卿李纲亲自到场坐镇,连户部尚书、度支郎中,以及太师王黼、少保蔡攸派来盯梢挑刺的十几名御史台言官和原算学馆酸儒,全都黑压压地站在大衍堂外的廊庑下。
“哼,装神弄鬼!三万卷六路赋役与军粮折变大账,涉及上千万贯的米麦银钱折算,他沈拓找了一群瞎子、脚夫和寒门穷酸坐在屋里,难不成还能靠念咒把账算出来?”
户部度支员外郎张谦(王黼的心腹门生)抱着胳膊,看着大衍堂内那三百二十个如同军阵般排列的算席,嘴角满是不屑的冷笑:“昨日我们度支司特意把河北、河东、京东三路最难缠的‘宣和四年至六年免夫钱折变军粮交引册’共六千卷先送了过来!光这一批账,我们度支司四十个老书吏算了整整四个月都没对平尾数,我倒要看看,他今天怎么收场!”
话音未落,大衍堂的高台之上,沈拓与秦雪音同时站起身来。
经过昨夜两个时辰的预处理(Data Preprocessing),六千卷账册已经被外围的一百名识字杂役拆解成了标准的三百二十份独立数据切片(Data Shards / Tensors),由跑堂童子整整齐齐地摆在了三百二十名算生的左手边。
而在每名算生的右手边,则贴着一张由沈拓和秦雪音连夜用《九章》粟米之法与现代矩阵归一化推导出的《定点数折算权重速查表(Weight Matrix $W$)》——沈拓直接将北宋坑爹的“十六两一斤、七十七文陌钱(省陌制)”全部转换成了标准的十进制移位乘法常数!
“各计算单元(Block)注意!”
秦雪音站在讲坛右侧,手持一面令旗,清脆悦耳却又威严十足的声音传遍全场:
“第一批次输入矩阵:河北东路、河北西路、河东路,宣和四年春至宣和六年秋,共计十二个季度、三十二州军免夫钱与军粮折耗并行核算!各席检查算盘清零!”
“哗啦——!”
三百二十名算生同时左手扶住算盘框,右手食指与拇指捏住横梁,轻轻往上一推、一顺!
三百二十把算盘、近两万颗算珠在同一瞬间归位清零!那整齐划一的一声脆响,竟如同三百名重甲步兵同时拔刀出鞘,听得廊庑外原本还在说风凉话的张谦和一众言官心头猛地一跳!
“这是算学馆还是禁军校场?怎么连拨个算盘都跟排兵布阵似的……”一名御史喃喃道。
讲坛中央,沈拓神色冷峻,目光扫过全场,伸手按在机械节拍器的启动杆上:
“启动时钟信号!第一层(Layer 1)矩阵点积,并行开算!”
“咔嗒!”
重锤下落,齿轮咬合,竹梆节拍器发出了第一声清脆的轰鸣:
“笃——!”
随着这一声“笃”响,大衍堂内,骇人听闻的一幕出现了!
第一排到第八排的一百六十名寒门算生,没有一个人抬头,也没有一个人去翻看别人的账本。他们的左眼锁定左边数据单上的第一个数字($X_{i1}$),右眼锁定权重表上的第一个常数($W_{1j}$),右手五指如穿花蝴蝶般在算盘上猛然拨动!
“噼里啪啦——!!!”
一百六十把算盘同时爆发出密集如狂风暴雨般的撞击声!
因为沈拓已经把所有的复杂折算全部简化成了固定位数的十进制乘加(MAC, Multiply-Accumulate Operation),每个算生根本不需要思考这笔钱是从哪个县收上来的、要运到哪个军营去,他们就像是最精密的硅基晶体管,只负责在节拍器的每一次敲击声中,完成一次纯粹的乘法与加法!
“笃——哒!笃——哒!”
节拍器稳定地跳动着。
每跳动十下,第一层的一百六十名算生就完成了一个维度向量的点积计算,随手将结果写在窄竹签上,往桌角一推!
早已候在过道里的三十二名敏捷童子(Data Bus 数据总线),立刻如同穿梭的织布梭子一般,在三秒钟内将窄竹签收走,按行列坐标精准投递到第九排至第十二排的“跨州交叉核对层(Layer 2)”与最核心的四十名盲人珠算大师面前!
那四十名盲人算师双目微闭,耳朵却随着节拍器的韵律微微颤动。
当童子低声报出前排传来的四个分块子矩阵和:“大名府甲块,三万四千二百一十贯;乙块,一万八千九百贯……”
盲人算师枯瘦如柴的双手在特制的大号十九档算盘上猛地一抹!
甚至不需要口诀,两只手同时在算盘左右两端并行拨珠,四个庞大的数字在两息之内瞬间完成了残差累加与定额比对!
“嘶——!!!”
廊庑之外,李纲、户部尚书、度支员外郎张谦,以及所有的太学博士们,全都情不自禁地往前迈了两步,死死扒着大衍堂的雕花木窗,眼珠子都快从眼眶里凸出来了!
此时的讲堂之内,哪里还像是印象中死气沉沉的书房?
三百二十把算盘在统一的机械竹梆节拍下,发出了一阵阵如同惊涛拍岸、万马奔腾般的金属质感交响曲!
没有争吵,没有停顿,没有一个人因为等待上游账目而闲置哪怕一秒钟!庞大的三万卷度支数据流,被沈拓硬生生切碎成了成千上万个微小的矩阵块,在这座由三百二十人组成的“生物GPU阵列”中高速流转、碰撞、收敛!
“这……这就是致远说的‘全并行矩阵算力’?!”
李纲听着那令人热血沸腾的算盘轰鸣声,只觉得头皮阵阵发麻:“一人算一隅,百人同频,千流归海!这哪里是算账,这分明是韩信点兵、多多益善的无上兵法啊!”
而原本等着看笑话的户部度支员外郎张谦,此刻脸上的冷笑早已僵死。
他看着那些每隔半盏茶功夫就被童子成捆送到讲坛汇总席上的结果签牌,额头上的冷汗顺着鬓角滑落:“不可能……绝对不可能!河北、河东三路三年的赋役军粮折变,光不同州县的省陌折算和沿途鼠雀损耗,我们度支司四十个老手算了四个月都没理清,他们这才算了不到半个时辰,怎么可能……”
就在这时——
“铛!!!”
讲坛之上,一声清越的铜锣声骤然响起,压过了所有的算盘声!
沈拓按停了机械节拍器。
全场三百二十名算生同时收手,三百二十把算盘在同一秒戛然而止,大衍堂内瞬间静得连一根针掉在地上都能听见!
所有人抬头看向墙角那支刚刚燃尽了一炷香的铜壶滴漏。
从辰时正刻开算,到现在——整整一炷香(约半小时)!
秦雪音双手捧着由四十名盲人珠算大师最终归约汇总出的《北方三路六千卷免夫钱及军粮折变总矩阵表》,快步走到沈拓身旁,声音因极度的激动而微微发颤,却字字清晰地传遍了堂内堂外:
“启禀李少卿、户部诸公!河北东路、河北西路、河东路三十二州军,宣和四年至六年共计六千卷清册、四十八万条收支折变,天工矩阵堂三百二十席并行核算完毕!”
“三路实收免夫钱及折变军粮总计:一千四百二十八万六千三百二十贯石!”
“按朝廷法定损耗及军前实收交引矩阵核减,实际运抵边军大营及燕山府之钱粮,仅八百一十二万四千贯石!”
说到这里,秦雪音猛地抬起头,目光如利剑般直刺廊庑下脸色惨白的户部度支员外郎张谦:
“其中,有整整六百一十六万两千三百二十贯的差额,被户部度支司以‘跨路折变汇水’及‘沿途霉烂改拨’之名,分散隐匿于十七个州军的虚假尾数之中!尤其以度支员外郎张谦签押之大名府、太原府折变册最为触目惊心——张员外郎,你用阴阳折率贪墨截留的八十四万贯河东军粮款,矩阵坐标就在第三排第七列,你要不要自己上来算算?!”
“轰——!”
廊庑之下,犹如平地炸响了一颗万钧惊雷!
户部尚书吓得手里的玉笏差点摔成两半,猛地转头看向身旁的张谦。
而张谦更是双腿一软,“扑通”一声直接瘫跪在了青石台阶上,面无人色,嘴唇哆嗦着连半个字都吐不出来:“一炷香……六千卷……怎么可能算得出来……我们明明把尾数拆散藏进了三十二个州、三十六个月的折变率里,怎么可能一炷香就被全抓出来了?!”
他至死也不会明白,他引以为傲的“把巨额贪墨拆散成无数个微小尾数藏进不同月份”的障眼法,在单人串行查账时的确是无解的迷宫;但在沈拓的全并行矩阵乘法与全局归约(All-Reduce)面前,所有的局部障眼法在被同时乘以标准权重并求和的那一瞬间,就会像黑夜里的探照灯一样,直接暴露出高达六百一十六万贯的巨大残差黑洞!
“好!好一座天工算学矩阵堂!好一个并行算力大阵!”
李纲激动得满脸通红,一把握住廊柱,仰天长笑:“度支司算四个月算不清的烂账,沈博士一炷香算个底朝天!来人!把张谦给本官拿下!其余两万四千卷全国总账,今日之内全部搬入大衍堂——本官倒要看看,这大宋的硕鼠肚子里,到底还吞了多少救命的军饷!”
第11章 归一化(LayerNorm)与度支司的惊雷
度支员外郎张谦当堂瘫软被锁拿的消息,在不到两个时辰内便如飓风般席卷了汴京六部与东西两府。
一炷香算穿六千卷陈年烂账!三百二十把算盘同频共振,直接从王黼门生手里刨出了六百一十六万贯的边军粮饷黑洞!
原本还把沈拓当成一个侥幸靠着奇淫巧技立功的寒门小吏的朝堂大佬们,这一刻彻底坐不住了。户部度支司、金部司、仓部司的官员们人人自危,连夜往大衍堂运送剩余两万四千卷全国清册的车队,从太学门口一直排到了御街州桥。
然而,当第二批涉及京东、京西、淮南、陕西四路的两万四千卷账册被拆解送入大衍堂时,负责预处理数据的秦九思老博士和赵铁柱却遇到了一个极其棘手的新难题。
午后,大衍堂后方的算学博士值房内。
秦九思手里捧着十几本来自陕西路、河东路与淮南路的赋役折变底册,眉头拧成了一个死结,焦急地对沈拓说道:
“沈博士,上午我们算河北三路,是因为北方官道平坦、且皆以铜钱与标准京斛粟米计价,所以你定的那张《定点数折算权重表》一乘就灵。可你来看这刚送来的陕西、淮南与两浙路的账册——简直是一团乱麻!”
秦雪音也在一旁指着账册上的数字,秀眉紧蹙:“是啊沈小哥。我大宋各路度量衡与币制极其繁杂:陕西路与蜀地通用铁钱与交子,有时十贯铁钱才折一贯铜钱,有时又按八贯折算;淮南路收粮用的是‘加耗大斛’,一斛抵京师一石三斗,而京西路用的是‘省斛’,一石只有八斗五升!更可恨的是,各州知州在报账时,有的把山地脚力损耗报三成,有的报半成,还有的借口铜钱成色不足(夹锡钱),故意把折算率上下浮动数倍!”
“如此一来,每个州的基数、单位、物价波动全都不同!如果我们还用统一的常数矩阵去乘,那些真正贪墨了巨款、但把账面数字伪装在‘铁钱折算’和‘山路损耗’里的贪官,就会跟正常因山路遥远而损耗偏高的清白州县混在一起,根本分不出谁是真损耗、谁是假贪墨!”
听完父女二人的话,沈拓非但没有头疼,反而眼睛一亮。
他拍了拍大腿,从怀里掏出那十五页《Attention Is All You Need》论文,翻到第3页架构图里紧跟在 Multi-Head Attention 后面那个至关重要的橙色模块——Add & Norm(残差连接与层归一化 Layer Normalization)!
“秦老博士,秦姑娘,你们刚才说的这个痛点,在我的这卷《万象聚焦总纲》里,有一个专门的数学术语,叫做‘内部协变量偏移与量纲失衡(Covariate Shift & Scale Mismatch)’!”
沈拓走到桌案前,铺开一张大白纸,用碳素笔写下了现代深度学习与统计学中最经典的 LayerNorm(层归一化 / 标准分数 Z-Score) 公式:
$$\mu = \frac{1}{H}\sum_{i=1}^{H} x_i, \quad \sigma = \sqrt{\frac{1}{H}\sum_{i=1}^{H}(x_i - \mu)^2 + \epsilon}$$
$$\hat{x}_i = \frac{x_i - \mu}{\sigma}$$
“什么叫量纲失衡?就像秦姑娘说的,陕西用铁钱,动辄几十万贯;淮南用铜钱,只有几万贯;山区运粮损耗三成,平原运粮损耗半成。如果直接拿绝对数字去比,陕西一个清官报的十万贯铁钱损耗,看起来比江南一个贪官贪墨的三万贯铜钱还要吓人!这在算学上是不公平的,也是贪官最喜欢钻的空子!”
沈拓用笔尖重重敲了敲那个 $\hat{x}_i$ 的公式,目光灼灼:
“既然各路的钱币、斗斛、地形全都不同,那我们就不要跨越不同的州路去比绝对值!我们在每一个独立层(同一路、同一地形、同一币制、同一季节的州县集合)内部,做一次强制的‘层归一化(LayerNorm)’!”
秦雪音凑近纸面,仔细端详着那两个奇特的希腊字母符号 $\mu$ 和 $\sigma$,冰雪聪明的她结合后面的算式,瞬间领悟了大半:“沈小哥,这个 $\mu$,莫非就是将同一路、相同地形的十几个州县的损耗率加起来除以州县数,算出的‘同层均值’?那下面这个先求差、再平方(自乘)、最后开方(少广开平方法)的 $\sigma$,又是什么?”
“这叫标准差(Standard Deviation),也就是衡量这一层所有州县数据波动离散程度的尺子!”
沈拓眼中闪烁着狂热的工科光芒,大声解释道:
“打个比方!同样是在太行山或秦岭山道运粮的十个州,大家山路一样难走、用的都是铁钱。我们先把这十个州上报的每百里折耗率加起来,算出它们的平均折耗率 $\mu$(比如是二成五);然后再算出这十个州围绕二成五上下波动的标准幅度 $\sigma$(比如是两分)!”
“接下来,我们把每个州上报的数字减去均值 $\mu$,再除以波动尺子 $\sigma$!经过这一步‘层归一化’之后,管你是用铁钱、铜钱、夹锡钱,还是用大斛、省斛,所有的单位和地形差异全都被彻底抹平了!全大宋三百多个州县的每一笔账,都会变成一个在‘零’附近徘徊的纯数字(归一化标准分)!”
沈拓竖起三根手指,声音冷酷如铁:
“在自然规律与数学铁律下(正态分布3$\sigma$原则),任何一个正常运转的州县,哪怕遇到刮风下雨,它归一化之后的数值也绝不可能超过正负二!一旦某一个州、或者某一个转运使经手的账目,在层归一化之后的得分超过了 正三($+3\sigma$)——”
“那就意味着,他在同等地形、同等币制、同等物价下,干出了违背天理常情的千分之一概率异常!不用问,直接标红抓人,一抓一个准!”
“轰——!”
秦九思老博士只觉得脑海中一阵轰鸣,整个人激动得浑身颤抖,一把捧起那张写着均值与标准差公式的白纸,眼泪差点又掉下来:
“去其量纲,归其均值,以自乘开方之尺,量天下万物之异动!妙啊!太妙了!老夫钻研《九章》均输、盈不足之术五十年,今日方知何为真正的‘大道至简、万法归一’!有了这‘层归一化’之术,天下贪官污吏那些借口铁钱折算、山路崎岖的遮羞布,全成了笑话!”
“说干就干!”
沈拓立刻下令,将三百二十名算生重新编组:
前四个分块(Block 1-4)专门负责按“路分、地形、币制”对两万四千卷账册进行同层均值 $\mu$ 的并行累加;
第五、第六分块利用秦雪音连夜编制的《平方与开方速查表(Look-up Table,相当于硬件里的LUT查找表实现非线性函数)》计算标准差 $\sigma$;
最后由四十名盲人珠算大师进行除法归一化与“三倍标准差($3\sigma$)”阈值过滤!
一时间,大衍堂内竹梆声再起,三百二十把算盘再次化作咆哮的算力洪流!
一个时辰后,申时正刻。
当两万四千卷全国六路总账在“层归一化”矩阵的强力碾压下全部跑完一遍后,一张长达两丈、用朱砂笔标出了三十八个刺眼“>3$\sigma$ 极高危红点”的《大宋六路度支归一化异常总图》,被沈拓和李纲联袂送进了皇城垂拱殿!
这份总图上,不再是枯燥乏味的流水账,而是连宋徽宗赵佶一眼都能看懂的“归一化偏离倍数排行”:
排在第一名的,赫然是少保蔡攸(蔡京长子)兼领的京西路与淮南路“神霄宫修缮及漕运折变专款”,其损耗偏离值高达恐怖的 $+8.4\sigma$(超出同层正常州县平均值八倍标准差以上),累计截留贪墨金额高达四百八十万贯!
排在第二名的,是太师王黼亲信把持的陕西路“夹锡铁钱折变边储款”,偏离值 $+6.9\sigma$,虚报汇率吞没军饷三百九十万贯!
排在第三名的,依然是苏州应奉局朱勔在两浙路与京东路的“花石纲加耗羡余”,偏离值 $+6.2\sigma$,吞没官银二百六十万贯!
短短两天,三万卷积压三年的烂账全部算清,加上此前的款项,沈拓率领的天工算学矩阵堂,硬生生为内帑空虚的赵佶揪出了总计高达一千七百余万贯的惊天贪墨黑洞!
皇宫之内,赵佶看着那张红点密布的《归一化异常总图》,又惊又怒又喜,当即下旨由御史台、开封府、皇城司三司并案,查封王黼与蔡攸名下涉案的十二座钱庄与三十处皇庄田产,责令王黼、蔡攸、朱勔在十日内连本带利向内帑与左藏库补缴一千万贯罚银!
消息传出,满朝震怖,百官行路莫敢仰视太学算学馆大门!
而就在整个汴京城都在传颂“沈博士以天工神算日进千万贯”的当晚,一场针对沈拓的致命杀机,已然在汴京繁华的夜市阴影中悄然张开了獠牙。
……
第12章 朱勔党羽的反扑与勾栏暗杀
宣和六年十月初八,亥时。
太学算学馆内灯火通明。连续高强度运转了两天两夜的三百二十名算生终于完成了全部三万卷清册的归档,领到了沈拓兑现的双倍赏银(每人整整两贯铜钱,顶得上普通人家两个月的嚼用),欢天喜地地散去。
为了庆贺秦九思老博士沉冤得雪,也为了犒劳连续熬夜担任总调度的秦雪音和赵铁柱等核心骨干,沈拓特意在马行街南头的“潘楼”定了两桌热腾腾的羊双肠、炙子骨头和鹅梨汁。
酒足饭饱之后,秦九思父女由李纲派来的四名太常寺护卫护送回太学官舍休息,而沈拓则带着两名将作监水磨务的年轻力工(也是赵铁柱的同乡,身材魁梧的王大锤和王二牛兄弟),顺着马行街北侧的勾栏瓦舍小巷,溜达着返回水磨务驻地。
“沈大哥,你是没看见今天下午户部那帮老爷们的脸色,跟吞了死苍蝇似的!”
王大锤怀里抱着沈拓刚从夜市铁匠铺和药铺采购回来的一包生石灰、两斤硫磺、几捆高强度牛筋绳和一套定做的小型青铜滑轮组,兴奋得满脸通红:“俺长这么大,头一回知道拨算盘比俺抡大锤还威风!几千卷账,咔嚓几下就把太师府和应奉局的银子给算出来了!”
走在一旁的沈拓却并没有半点放松。
他右手插在工装冲锋衣内胆的口袋里,握着那把坚硬的不锈钢游标卡尺,左臂袖筒里则藏着一把他昨晚利用材料力学原理、用两片高碳弹簧钢片改造过的滑轮省力袖珍手弩。
作为一名思维严密的工科生,沈拓非常清楚:自己这两天用 QKV 检索和 LayerNorm 归一化,一下子从王黼、蔡攸、朱勔的口袋里掏走了一千多万贯真金白银,还把他们安插在户部和算学馆的爪牙连根拔起。这帮权倾朝野、杀人不眨眼的“六贼”党羽,在朝堂上被数据和赵佶的贪财堵住了嘴,私底下绝对会用最肮脏的物理手段,直接来一次“解决提出问题的人”!
果不其然。
当三人穿过马行街热闹的夜市灯火,拐进通往将作监水磨务那条两侧堆满木材、石料与脚手架的“榆林巷”时,原本在巷尾打更的更夫梆子声,突兀地断了。
四周静得可怕。
连平日里在垃圾堆旁觅食的野狗都不见了踪影,空气中除了深秋的寒雾,还隐隐飘来一股淡淡的、属于刀剑防锈桐油与生人汗腺分泌的腥气。
“停步!”
沈拓瞳孔微缩,一把拉住正要往前走的王大锤和王二牛,同时借着巷口一盏昏暗的气死风灯,抬头看了一眼两侧高达两丈的木材堆与废弃砖窑顶棚。
只见左侧木材堆顶端的阴影里,有三处瓦片的角度与周围呈现出明显不同的新鲜踩踏痕迹;而在前方二十步外的巷子拐角处,两辆看似普通的运粪平车正斜斜地堵住了去路,车轮吃土深度足有三寸——空粪车绝不可能压出这么深的车辙,车底和麻袋下面必然藏着重兵器!
“大锤,二牛,把生石灰袋子解开,退后三步贴住右侧砖墙!”沈拓声音压得极低,语速飞快。
话音未落——
“嗖!嗖!嗖!”
三声凄厉的破空尖啸骤然撕裂夜幕!
三支涂着乌黑剧毒的军用神臂弓铁簇重箭,呈品字形从左侧木材堆顶端暴射而下,直取沈拓的咽喉、心口与小腹!
与此同时,前方那两辆平车上的麻袋轰然掀飞,八名身穿夜行黑衣、脸上蒙着皂巾、手持精钢戒刀与钩镰枪的凶悍死士,如恶狼般从车后跃出,一言不发,刀光如匹练般朝着沈拓当头劈落!
动作狠辣、配合默契、出手就是军中制式神臂弓与绝杀刀阵——这绝不是普通的街头混混,而是应奉局朱勔与太师府养的私兵死士!
“狗贼敢尔!”
王大锤和王二牛吓得魂飞魄散,抄起手里的扁担就要往上冲。
“别冲!趴下!”
千钧一发之际,沈拓展现出了令死士们瞠目结舌的冷静。
在听到弓弦震动声的0.05秒内,他根本没有往后退(后退正好撞进另外两支封路箭的抛物线落点),而是直接一个标准的战术侧滑步,整个人贴着右侧一道凸出的青砖门垛矮身滑入死角!
“咄!咄!咄!”
三支强劲的铁簇重箭擦着他的衣角,狠狠钉进青石板中,箭尾剧烈颤抖,火星四溅!
“哼,躲得过初一,躲不过老子的快刀!把这小子的脑袋剁下来,回去领五千贯赏银!”
冲在最前面的黑衣死士头目狞笑一声,脚踏青砖,手中三尺精钢戒刀带着刺耳的呼啸声,距离沈拓的脖颈已不足五尺!
然而,就在他冲进巷道中段、双脚刚刚踩上一根横在地上的不起眼麻绳的瞬间——
躲在门垛后的沈拓,嘴角勾起了一抹宛如死神般的冰冷弧度:
“五千贯?下辈子记得学好《理论力学》再来赚这份钱!动滑轮四倍省力,给我起!”
这榆林巷紧挨着将作监水磨务的木材吊装场,头顶上方原本就悬着一根用来吊装大木料的碗口粗横梁和铁钩。
刚才沈拓在踏入巷口发现不对劲的那短短三秒钟里,已经顺手将王大锤怀里那套刚刚打造好的“四轮复合青铜定滑轮与动滑轮组”挂在了墙角的吊装主缆上,并将触发活扣一挑!
“咔嚓——轰隆!!!”
头顶上方,原本由铁销锁死的一捆重达八百斤的建筑楠木圆木,在滑轮组配重块坠落的瞬间彻底释放,如同九天落下的滚木雷霆,贴着巷道中央呼啸砸落!
“什么?!”
冲在最前面的四名黑衣死士根本来不及刹车,只听一阵令人牙酸的骨裂惨叫声,两名死士当场被八百斤的圆木砸成了肉泥,另外两人也被翻滚的巨木撞断了小腿,惨叫着滚倒在地!
“有诈!点子扎手,放火油烧死他!”
后面的死士头目和木材堆顶上的三名弓手大惊失色,连忙从怀里掏出火折子和猛火油罐,点燃火苗就要往下扔!
“在我面前玩燃烧学?大锤,扔石灰包!”
沈拓暴喝一声,在王大锤将两袋足有三十斤的极细生石灰粉与干燥木炭锯末混合包奋力抛向半空的刹那,沈拓左臂猛然抬起!
手臂上的双层弹簧钢袖珍手弩发出一声清脆的“崩”响!
一支绑着燃烧火绒与硫磺引信的铁箭,精准无比地射穿了半空中飞舞的生石灰与极细木炭锯末袋!
粉尘爆炸(Dust Explosion)与生石灰强碱迷雾!
当高浓度的极细可燃木炭锯末粉尘在狭窄的巷道半空中弥漫并与空气充分混合的瞬间,遇到明火与硫磺颗粒——
“轰——!!!”
一团直径超过两丈、刺眼夺目的橘红色巨大火球,毫无征兆地在木材堆顶端轰然爆燃!
剧烈的冲击波夹杂着漫天滚烫的生石灰强碱粉尘,瞬间吞没了站在高处的三名神臂弓手和下方的死士头目!
“啊——!!!我的眼睛!我的眼睛瞎了!!”
“这是什么妖火?!救命啊——!”
生石灰粉一旦接触到人眼中的泪水和汗水,立刻发生剧烈的放热化学反应($\text{CaO} + \text{H}_2\text{O} = \text{Ca(OH)}_2$),瞬间产生高温强碱腐蚀!
原本凶神恶煞的五六名死士,此刻全都在火光与白雾中捂着双眼满地打滚,发出杀猪般的凄厉惨叫,手里的钢刀和弓弩丢了一地!
烟尘尚未散尽。
沈拓面无表情地从门垛后走出,手里已经多了一把从地上捡起的军制神臂弓。
他甚至不需要瞄准镜,仅凭脑海中的三维弹道抛物线计算,抬手就是两箭!
“噗!噗!”
两声闷响,还在试图摸索着拔刀反扑的两名死士大腿动脉被精准洞穿,彻底丧失了行动能力。
沈拓缓步走到那个双目通红溃烂、满脸黑灰的死士头目面前,一脚踩住他的胸口,弯下腰,从他怀里摸出了一块刻着“太师府外宅”与“应奉局内卫”字样的鱼符铜牌。
就在这时,巷口外传来一阵急促的马蹄声与甲叶碰撞声,李纲派来巡夜接应的皇城司与开封府缇骑举着火把冲了进来。
看到巷子里横七竖八躺着的八名重伤死士、滚落的巨木以及空气中刺鼻的石灰硫磺味,领头的皇城司都头倒吸了一口凉气,惊骇地看向毫发无损、连呼吸都没乱半分的沈拓。
沈拓轻轻拍了拍手上的石灰粉,将那块染血的铜牌扔给皇城司都头,声音平静却透着一股令人胆寒的杀伐之气:
“劳烦都头把这几个活口带回开封府和李少卿处。顺便帮我给幕后的朱太尉和王太师带句话——算盘珠子能算他们的银子,我手里的齿轮、火药和钢铁,同样能算他们的命!”
说完,沈拓低头看了看脚下散落的粗糙铁簇与生铁刀片,眉头微蹙。
太慢了,袖珍手弩和粉尘爆燃终究只是应急的防身手段。面对即将到来的乱世与更高强度的刺杀乃至国战,他必须尽快拥有真正的近代工业母机与自动化算力底座!
“明天,该去将作监库房最深处,看看六十年前苏颂老先生留下的那些青铜宝贝了。”
第13章 苏颂传人与将作监的废铜烂铁
榆林巷夜袭一案,虽然王黼与朱勔第二天一早就把责任推得一干二净,声称那几个死士是早就被逐出府门的逃奴、因私怨报复沈拓,但李纲还是借题发挥,在早朝上狠狠参了应奉局与太师府一本。
宋徽宗赵佶如今正指望着沈拓帮他充实内帑,听说有人敢暗杀自己的“招财神算”,当即大发雷霆,不仅拨了二十名皇城司精锐禁军日夜护卫沈拓,更准了李纲的奏请——将沈拓正式扶正为将作监丞兼领水磨务与军器所协造(正八品实权技术官),赐办公专署于汴河岸边的将作监东水磨务!
上午,巳时。
沈拓换上了崭新的正八品将作监丞官袍,在秦雪音、王大锤以及四名皇城司护卫的陪同下,正式踏入了位于汴京城东南汴河引水渠畔的将作监水磨务大院。
北宋的将作监,掌管宫室、城郭、桥梁、舟车及百工器物之政令,而下辖的“水磨务”,则是利用汴河湍急的水流落差,驱动巨大的木制水轮,为皇家研磨御茶、面粉以及锻打粗铁构件的动力工坊。
一进大院,隆隆的水轮轰鸣声便震耳欲聋。
只见引水渠上,四架直径高达两丈的巨型立式木水轮正在滚滚河水的冲击下缓缓旋转,带动着岸上坊屋里的石磨。然而,除了前面两间磨面磨茶的屋子还在运转外,后院一大片占地十余亩的库房与铜铁作坊,却是杂草丛生,门窗破败,到处堆满了生锈的铁轴、断裂的木梁和废弃的青铜铸件。
“新来的沈监丞?”
一个沙哑沉闷的声音从后院铁匠炉旁传来。
沈拓循声望去,只见一个身穿油腻皮围裙、头发花白凌乱、左腿微跛、双手布满老茧与铜绿斑点的四十五六岁老匠头,正坐在一段废弃的青铜大齿轮上,手里拿着一把细锉刀,低头慢条斯理地修挫着一枚巴掌大小、齿牙精密得惊人的青铜棘轮。
随行的水磨务老书吏连忙凑到沈拓耳边低声道:“回监丞大人,这倔老头叫鲁百工,是将作监的五等老匠头。他祖父和父亲当年都是跟着元祐相公苏颂(苏子容)老爷子督造‘水运仪象台’的御用铜匠。后来绍圣年间章惇、蔡京两位相公上台,把苏颂老爷子的水运仪象台视为‘元祐奸党旧物’,拆毁的拆毁、封存的封存。这鲁百工为了护住后面甲字库里那堆拆下来的青铜齿轮残件,被打断了一条腿,贬在这水磨务看守废铜烂铁二十年了,脾气臭得很……”
“水运仪象台?!苏颂留下的青铜齿轮残件?!”
沈拓听到这几个字,心脏猛地狂跳了两下,呼吸瞬间变得急促起来!
作为一名机械电子与控制工程系的大四学霸,他在上《中国古代机械工程史》选修课时,曾对北宋苏颂、韩公廉在元祐三年(1088年)主持建造的那座集天文观测(浑仪)、星象演示(浑象)和自动报时(机械钟表)于一体的水运仪象台佩服得五体投地!
英国科学史家李约瑟曾评价水运仪象台是中国古代机械工程的巅峰,它内部那套由“天衡”、“天锁”、“天关”组成的水力机械擒纵调速机构(Escapement Mechanism),比欧洲人发明机械钟表擒纵器整整早了近三百年!
原本沈拓还在发愁,自己想要在北宋手搓出代替算盘的机械矩阵运算器(差分机与乘法加速阵列),如果从零开始教铁匠铸造精密齿轮,光解决齿形公差和传动打滑就得耗费几个月。
谁能想到,踏破铁鞋无觅处,苏颂老爷子当年留下的全套精密青铜齿轮遗产和最顶尖的传人,竟然就躺在这水磨务的后院库房里吃灰!
沈拓大步流星地走到鲁百工面前,根本不在乎老匠头冷漠的态度,直接蹲下身子,目光炙热地看向鲁百工手里那枚正在修挫的青铜棘轮。
“模数约合三分,齿数三十六,齿形采用了圆弧修缘以减小啮合摩擦……鲁师傅,如果我没看错的话,你手里这枚青铜轮,应该是《新仪象法要》卷下所载、水运仪象台昼夜机轮轴上的‘天关擒纵拨齿轮’吧?”
“哐当!”
鲁百工手里的细锉刀差点掉在地上。
他猛地抬起头,那双原本浑浊死寂的眼睛里骤然爆射出骇人的精光,死死盯着眼前这个年仅十九岁、身穿八品官袍的青年:
“你……你认得《新仪象法要》里的天关轮?!连老夫将齿顶修成圆弧以减滞涩的独门手艺,你一眼就能看出来?!”
将作监里那些当官的文人老爷,平时连生铁和熟铁都分不清,来到水磨务不是催交面粉就是惦记着把后院这堆上好的青铜齿轮回炉铸成铜香炉去讨好蔡京、王黼。二十年来,这还是第一次有一个官员,只看了一眼,就准确叫出了这枚核心擒纵齿轮的名字与力学原理!
“我不仅认得天关轮,我还知道苏公水运仪象台的枢轮直径一丈一尺,共有三十六个受水壶;每次水满压下天衡杠杆,放行一个枢轮齿,实现每刻钟、每时辰的精准离散步进!”
沈拓从怀里掏出那把21世纪的不锈钢游标卡尺,“唰”地一声拉开主尺与游标,直接卡在鲁百工手里的青铜棘轮齿厚上,低头看了一眼零点一毫米级的精密刻度,赞叹道:
“好手艺!纯手工修锉,三十六个轮齿的齿厚公差竟然控制在了半毫(约0.05毫米)以内!鲁师傅,后面甲字库里封存的那些水运仪象台残件,能不能带我去看看?”
鲁百工死死盯着沈拓手里那把闪烁着银白色冷光、结构精巧绝伦的“不知名金属量尺”,喉结上下滚动了一下。作为一个干了一辈子精密铜工的巨匠,他一眼就看出沈拓手里那把尺子上的刻度精密到了鬼斧神工的地步!
“跟老夫来!”
鲁百工一言不发地站起身,一瘸一拐地走到后院那座挂着生锈大铁锁的甲字库门前,掏出钥匙打开了尘封已久的大门。
“吱呀——”
阳光穿透积满灰尘的空气,照亮了宽敞幽暗的库房。
沈拓和秦雪音迈步走入库房的瞬间,两人同时屏住了呼吸!
只见近百丈见方的巨大库房内,整整齐齐地摆放着数百件大大小小的锡青铜齿轮、冠齿轮(伞齿轮雏形)、蜗杆传动轴、黄铜套筒、铁制十字连杆,以及高达丈许的青铜枢轮框架!
虽然上面落满了厚厚的灰尘,但因为北宋官造锡青铜极佳的抗腐蚀性能,只需用袖子轻轻一擦,那一排排严丝合缝、闪烁着暗金色金属光泽的精密轮齿,便在阳光下展露出令人窒息的古典工业暴力美学!
“整整三百八十件青铜传动构件……小到直径一寸的十齿定比轮,大到直径八尺的六百齿天轮,还有全套的水力恒速擒纵机构!”
沈拓抚摸着冰凉坚硬的青铜齿轮,眼中仿佛燃起了两团熊熊烈火,激动得声音都在微微发颤:
“秦姑娘!你知道这意味着什么吗?!”
跟在身后的秦雪音也被这宏伟的机械遗迹震撼得说不出话来:“沈小哥,这……这是苏颂相公当年用来观天象、报时辰的仪象台零件,如今拆散在这里,我们能拿它做什么?”
“观天象?报时辰?不!苏颂老先生造出了全世界最伟大的水力步进时钟,却只把它当成了一个看星星的玩具,太暴殄天物了!”
沈拓猛地转过身,一把抓住鲁百工满是老茧的大手,声音在空旷的库房里轰然回荡:
“鲁师傅!你守着这堆宝贝二十年,不就是不想让它们被奸臣回炉熔成铜钱和香炉吗?如果我告诉你,不用毁掉哪怕一个齿轮,只需要改变它们的啮合拓扑结构,我就能带着你,把这堆尘封了三十年的水运仪象台残件,组装成一台由汴河水力驱动、每秒钟能自动完成百位数矩阵乘加与微积分差分运算的——大宋‘天工一号’水力铜齿矩阵差分机!”
“让苏公的心血,不仅能算天上的日月星辰,更能算出大宋百万大军的粮草调度、算出百门火炮的必中弹道、算出女真铁骑的葬身之地!”
“鲁百工,你敢不敢跟本官一起,干这桩震古烁今的大事?!”
鲁百工浑身剧烈一震,浑浊的老泪瞬间夺眶而出。
他看着眼前这个眼中闪烁着星辰与烈火的年轻监丞,一句话也没多说,后退一步,拖着那条残腿,“扑通”一声单膝跪地,双手抱拳高举过头,嘶哑的吼声震落了房梁上的积灰:
“水磨务铜匠鲁百工,携门下二十四名匠户弟子,愿奉沈监丞差遣,赴汤蹈火,万死不辞!”
……
第14章 手搓“天工一号”水力铜齿差分机
接下来的三天,将作监东水磨务彻底变成了一座戒备森严的超级机械实验室。
二十名皇城司精锐禁军守死大门,任何人无沈拓手令不得入内。而在水磨务内部,炉火彻夜不熄,叮叮当当的锻打声、锉刀声与水轮轰鸣声交织在一起。
大衍堂那三百二十名算生组成的“人肉GPU集群”虽然解决了户部查账的燃眉之急,但沈拓很清楚,人肉算盘有两个致命弱点:第一是容易疲劳出错,第二是面对高阶非线性函数(如三角函数 $\sin/\cos$ 位置编码、火炮弹道微分方程、天文历法高次插值)时,人脑查表与珠算的速度还是太慢!
而在计算机科学史上,早在电子管出现的一百年前,英国数学家查尔斯·巴贝奇(Charles Babbage)就已经设计出了纯齿轮传动的差分机(Difference Engine),以及二战时期机械模拟火控计算机中广泛使用的球盘积分器与齿轮乘加器(Mechanical MAC Unit)!
此时此刻,沈拓将怀里《Attention Is All You Need》论文第5页关于 Position-wise Feed-Forward Networks(逐位置前馈网络 $FFN(x) = \max(0, xW_1 + b_1)W_2 + b_2$) 的结构图摊在鲁百工的工作台上。
“鲁师傅,还有雪音,你们看!”
沈拓指着自己用碳素笔绘制的《天工一号水力矩阵差分机总装蓝图》,向两人讲解着跨越八百年的硬核机械算力原理:
“算盘的本质是什么?是满十进一!而齿轮的本质是什么?也是满十进一!”
沈拓拿起一枚被鲁百工改造成拥有十个标准齿位(0到9)的青铜计数轮,套在一根垂直的精钢主轴上,旁边再啮合一枚带有单齿拨销(进位爪 Carry Pawl)的传动轮:
“看好了!当底下这个代表‘个位’的青铜轮转过十个齿(从9跳回0)的瞬间,它侧面凸出的这根拨销,就会‘咔嗒’一下,精准拨动上面代表‘十位’的青铜轮前进一个齿!如果我们在主轴上串起八个这样的十齿青铜轮,它就是一个能表示从一到九千九百九十九万的八位机械寄存器(Register)!”
鲁百工毕竟是造过水运仪象台的顶级机械大匠,一点就透,眼睛瞪得溜圆:“妙啊!以前水运仪象台的木人报时,是满百刻换一牌;如今改成十齿一拨,那岂不是只要水轮带着主轴一转,这几排铜轮自己就能做加法?!”
“光做加法怎么够?我们要做的是矩阵并行乘加(Matrix MAC)与高阶有限差分(Finite Difference)!”
沈拓指着图纸上最核心的三个机械模块,眼中光芒大盛:
“第一模块:水力恒速动力源与擒纵时钟(Clock & Power)!我们直接把汴河引水渠的三号大水轮接入工坊,利用苏公留下的‘天衡水斗擒纵器’,将狂暴不均的水流冲力,转化为每秒钟精准跳动四次(4 Hz)的恒定步进旋转扭矩!这比用人手摇动快十倍,且昼夜不停!”
“第二模块:阶梯齿圆柱乘法器(Stepped Reckoner / 莱布尼茨轮矩阵阵列)!”
沈拓拿起一根他让鲁百工连夜用青铜车削出来的奇特圆柱齿轮——这根圆柱体周围分布着九条长短不一的轮齿肋条(第1条肋长1寸,第9条肋长9寸):
“通过滑动花键轴改变啮合位置(设置权重 $W$),主轴每转一圈,就能一次性拨动累加轮转过 $x \times W$ 个齿位!我们在整座三丈长的机架上,横向并排安装十六列(16 Columns)、纵向四层(4 Layers),共计六十四组这样的青铜乘加柱!只要把打孔竹片(输入向量 $X$)插进顶部的探针卡槽,探针根据竹片是否有孔自动拨动滑动齿轮定好系数,水轮一转——轰隆一声,十六维向量的矩阵乘法与偏置加法($xW + b$),在半秒钟内全部自动算完!”
“第三模块:ReLU 机械单向棘轮(非线性激活函数 $\max(0, x)$)与多阶差分塔!”
沈拓举起一枚带止回簧片的单向棘轮,对听得如痴如醉的秦雪音笑道:
“雪音你看,论文里这个公式 $\max(0, x)$,意思是大于零的数原样输出,小于零的负数直接归零截断!在算盘上你还得用眼睛判断正负,而在我们的铜齿机上,只需要装上这枚单向止回棘轮——正转(正数)时齿轮啮合向上传递,反转(负数)时棘轮直接空转脱开,输出自动归零!至于底下这八列串联的差分塔,专门用来利用牛顿前向差分公式($\Delta^n f(x)$),通过纯加法迭代,直接逼近任何复杂的抛物线弹道与日月五星运行轨迹!”
秦雪音听得心潮澎湃,双手紧紧交握在胸前,看着眼前这座正在三十名铜匠、铁匠手中一点点成型的高大青铜机械巨兽,仿佛看到了一个不属于凡间的神明造物正在苏醒!
三天三夜,七十二个时辰。
鲁百工带着二十四名匠户弟子,几乎寸步不离地守在熔炉与水力车床旁。
沈拓更是亲自上手,用不锈钢游标卡尺充当 LayerNorm 终极标准件,将所有青铜齿轮的轴孔配合公差全部打磨到了丝滑无比的滑动配合级;同时利用动物油脂混合极细石墨粉(铅笔芯原料),调制出了耐高压的石墨机械润滑脂,涂抹在每一处青铜齿面与铁轴轴承之上!
宣和六年十月十二,傍晚。
将作监东水磨务的核心机房内,二十盏鲸油铜灯将屋子照得亮如白昼。
在机房正中央,一座高一丈二尺、长两丈四尺、通体由粗壮的铁力木框架与数百个精密咬合的暗金色青铜齿轮、阶梯圆柱、传动连杆构成的庞然大物——“天工一号”水力铜齿矩阵差分机,巍然矗立!
在机器顶端,是一排用来读取打孔竹卡的弹簧钢探针阵列;中间是六十四组闪烁着金属冷光的阶梯乘加柱与八列十进制计数轮,每一个铜轮边缘都清晰地镌刻着“0”到“9”的阴文数字,透过机架正面的观察窗整齐排列;而在机器底部,碗口粗的精钢传动主轴穿过墙壁,直接与门外汴河引水渠上的巨型水轮及天衡擒纵机构相连!
太常少卿李纲、算学老博士秦九思受邀匆匆赶来。一进门,两位老臣就被眼前这座充满了精密工业压迫感的青铜巨兽震得停下了脚步。
“致远……这、这就是你说的‘不用人力、凭汴河之水便可日夜推演军国大算’的天工一号?!”李纲仰望着那密密麻麻却又秩序井然的齿轮阵列,声音都在发颤。
“不错!李公,秦老博士,请看天工一号的第一次开机测试!”
沈拓站在总控台前,先是将一张代表着“十六州军粮运输距离、坡度、载重与损耗系数”的打孔竹卡塞进顶部的输入槽(Input Layer),咔嚓一声压下探针锁扣。
六十四根连杆瞬间联动,将阶梯乘法齿轮精准推入对应的啮合齿位!
紧接着,沈拓双手握住连接水闸与擒纵离合器的铁制总拉杆,用力向下一扳:
“开闸!进水!启动天工一号!”
“轰隆隆隆——!!!”
墙外汴河闸门提起,湍急的河水咆哮着冲入水轮斗槽!
随着天衡擒纵器发出一阵极具节奏感的“咔哒、咔哒、咔哒”巨响,磅礴的水力化作精准的步进脉冲,瞬间驱动机房内的精钢主轴高速旋转起来!
刹那间,整座“天工一号”活了过来!
数百个青铜齿轮、阶梯圆柱、进位拨爪在石墨润滑脂的包裹下,发出了令人灵魂战栗的、丝滑而高亢的金属啮合交响声!
观察窗后,六十四排刻着数字的青铜计数轮如同飞瀑般疯狂旋转、跳动、进位!
“咔哒!咔哒!咔哒——叮!”
仅仅过了五息(五秒钟)!
伴随着顶部一声清脆的铜铃报数声,传动离合器自动脱开,所有的青铜计数轮在同一瞬间稳稳停住!
站在观察窗前的秦雪音和秦九思父女迫不及待地凑上前去,只看了一眼观察窗内整齐排列出的八行十位数字结果,父女二人同时倒吸了一口凉气!
“第一行:大名府至燕山府三路并进最优粮道配给值,三十四万二千八百一十六石五斗……”
“第二行:太行山八陉坡度折耗二次差分修正值,一万九千零四十二石三斗……”
秦九思老博士颤抖着手指,对照着自己手里那本花了整整两天时间才用算筹推算出来的《河北军粮均输微缩稿》,老眼瞪得滚圆,失声惊呼:
“八道涉及二次开方与均输差分的军需大题……老夫用算筹算了整整两天两夜,而这台青铜神机,只借了汴河一口水力,转了五息功夫,八行答案连小数点后三位的升合尾数都跟老夫算的分毫不差?!”
李纲更是箭步冲到观察窗前,死死盯着那一排冰冷而精准的青铜数字,胸膛剧烈起伏,猛地一拍大腿:
“五息抵两日!且水力不绝,算力不息!致远,有了这台天工一号,莫说是户部的烂账,便是天下兵马钱粮之调拨、火器营造之规制,我大宋中枢皆可于瞬息之间决胜千里之外!”
然而,李纲的兴奋还没持续三秒钟,院门外突然传来一阵急促的马蹄声。
一名太常寺的亲随官员满头大汗地冲进机房,手里高举着一份盖着御前金印的紧急邸报,神色慌张地喊道:
“李少卿!沈监丞!大事不好了!少保蔡攸会同司天监少监王道亨,刚刚在延福宫向官家密奏——言称今晚紫微垣有客星(彗星)犯月,且明日午时将有‘天狗食日(日偏食)’之凶兆!王道亨与蔡攸一口咬定,是因为沈监丞在太学和将作监大搞奇技淫巧、妄动铁钎铜轮,惊扰了神霄青华帝君的紫微星气,才招致天降异象!官家受惊,已下旨明日巳时在宣德门前设坛质对,若沈监丞不能自证清白,就要……就要当众砸毁将作监铜器,将沈监丞下大理寺治罪啊!”
第15章 司天监赌局,一念算尽五星连珠
“惊扰神霄青华帝君?招致天狗食日、客星犯月?!”
听完太常寺官员的禀报,机房内的鲁百工气得一锤子砸在铁砧上,火星四溅:“放他娘的狗臭屁!苏颂相公当年造水运仪象台,在宫里转了十几年,怎么没见惊扰什么神霄帝君?这分明是蔡攸那狗贼被沈监丞查出了四百八十万贯的贪墨黑账,在账目上扳不倒咱们,就勾结司天监(太史局)的神棍,拿官家最迷信的‘天象灾异’来杀人!”
李纲脸色也是铁青一片,拳头攥得咯咯作响:“鲁师傅说得不错!官家自封‘教主道君皇帝’,平生最忌惮的便是日食、彗星等天变。蔡攸这一招极其阴毒——明日午时若真有日偏食,在那些不懂格致的朝臣与百姓眼里,就成了蔡攸和王道亨口中的‘天谴铁证’!到那时,莫说这台天工一号保不住,便是老夫在御前拼死力保,也难挡群小鼓噪啊!”
秦九思老博士和秦雪音父女更是急得脸色发白:“沈小哥,这可如何是好?司天监掌管大宋《纪元历》,既然王道亨敢在御前笃定明日午时有日食、今夜有客星犯月,说明他们必然已经观测到了端倪,提前算出了大概时辰,这才借题发挥设下死局!”
机房内众人忧心如焚,然而处于风暴中心的沈拓,在听完“日偏食”和“客星(周期彗星/亮星掩星)轨迹”这几个词后,脸上非但没有半点惧色,反而露出了一抹古怪至极的冷笑。
“拿天文历法和轨道微积分,来砸我这台‘天工一号’差分机的场子?”
沈拓摇了摇头,转头看向秦九思老博士:“秦老,我问您,如今司天监少监王道亨推算日月交食与五星凌犯,用的是哪部历法?精度如何?”
秦九思一怔,连忙答道:“回沈博士,如今司天监用的是崇宁年间姚舜辅编修的《纪元历》。虽然引入了二次内插法(招差术),但因计算极其繁琐,司天监的保章正们每次推算日食,往往只取三阶以内的粗略差分,算出来的‘食甚(日食最深时刻)’与‘食分(遮挡比例)’,常常与实际天象相差两三刻钟(半小时以上)!这也是历朝历代司天监最头疼的事,每次算不准,他们就只能用‘官家圣德感天、日食推迟或缩减’来糊弄过去……”
“误差高达两三刻钟?!”
沈拓哈哈大笑起来,伸手重重拍在身边“天工一号”那冰凉坚硬的青铜差分塔机架上:
“李公!秦老!你们知道在真正的科学史里,差分机被发明出来的第一天,是干什么用的吗?它就是专门用来做高阶多项式数值积分与天文星历表插值(Astronomical Ephemeris Interpolation)的!”
“蔡攸和王道亨以为垄断了观星台,就能拿老天爷的脸色来当杀人的刀?那好,今天晚上我们就去借太学观星台的浑仪测三个点的坐标,输入天工一号跑一次七阶牛顿前向差分与开普勒轨道微分逼近!”
“明天在宣德门前,我不光要扒光王道亨装神弄鬼的底裤,我还要当着赵佶和满朝文武的面,把明天日食开始、食甚、复圆的时刻,精确到呼吸读秒(铜壶滴漏的每一分每一秒),顺便连后天晚上金、木、水、火、土五星与月亮的交汇角度一并算出来,看看到底是谁在欺天罔上!”
当夜,子时。
太学观星台上寒风凛冽。沈拓带着秦雪音、秦九思,利用苏颂留下的精密浑仪与自己改造的游标刻度环,连续三个时辰对月球视差、黄白交角以及紫微垣外围那颗微弱周期彗星的赤经赤纬进行了三次高精度采样。
寅时正刻,数据带回东水磨务。
沈拓将三次采样的角度差值($\Delta y, \Delta^2 y, \dots, \Delta^6 y$)编码进打孔竹卡,送入“天工一号”底部的八列青铜差分塔中。
随着汴河水闸再次开启,“天工一号”轰隆隆地高速运转了整整一刻钟,完成了相当于五十名司天监算师拨算盘算上整整一年的六阶拉格朗日插值与轨道摄动修正积分!
次日,宣和六年十月十三,巳时三刻。
宣德门外广场,气氛肃杀到了极点。
高大的朱红城楼之下,搭起了一座三丈高的“禳灾祈福道坛”。少保蔡攸一身紫袍玉带,神色倨傲地站在道坛东侧;而在道坛中央,身穿星冠鹤氅的司天监少监王道亨手持拂尘,身后摆着一尊巨大的青铜浑仪和一排铜壶滴漏,周围跪满了神霄派的道士。
城楼之上,宋徽宗赵佶身穿素服,在梁师成、童贯、王黼的簇拥下凭栏俯视。城楼之下,文武百官与上万名闻讯围观的汴京百姓屏息凝神,将广场围得水泄不通。
“吉时将至!带将作监丞沈拓上坛质对!”
随着礼部官员一声高喊,沈拓身穿八品青袍,并没有像寻常待罪官员那样惊慌失措,而是气定神闲地带着秦雪音、鲁百工,以及一辆盖着红绸的木制平板车,大步走到了道坛下方。
蔡攸居高临下地看着沈拓,眼底闪过一丝快意而残忍的冷笑,厉声喝道:
“沈拓!你身为将作监小吏,不思敬天法祖,竟在太学与水磨务私造邪门铁钎、青铜妖器,日夜轰鸣,惊扰京师地脉与紫微帝星!如今司天监王少监已然算出,今日午时正刻(12点整),上天将降下‘日食五分’之大凶兆以示惩戒!你若现在跪下认罪,自毁妖器,并承认此前所查之度支账目皆乃妖术伪造,或可饶你一死!”
全场哗然!
站在百官队列里的李纲气得胡须直抖:“无耻!为了翻掉度支司的贪墨铁案,蔡攸竟然把算盘和查账都污蔑成招致日食的妖术!”
“让我认罪?还要翻掉一千七百万贯的贪墨铁案?”
沈拓仰起头,看着道坛上装模作样的蔡攸和王道亨,嘴角勾起一抹讥讽到极点的弧度,朗声笑道:
“蔡少保,王少监,你们口口声声说日食是因为我造了‘天工一号’铜齿机才招来的天谴。那下官敢问一句——如果日月交食、彗星凌犯,从头到尾都只是天地日月按固定几何轨道运转的物理常数,不仅与人事善恶毫无干系,而且我脚下这台被你们骂作‘妖器’的天工一号,算出来的天象时刻,比你们司天监和神霄道士准上一百倍,那又当如何?!”
王道亨闻言勃然大怒,一甩拂尘喝道:“黄口小儿,安敢妄谈天道!老夫执掌司天监二十年,夜观乾坤,早已推演出今日日食乃是因你逆天行事而突发:午时正刻(12:00)初亏,午时三刻(12:45)食甚,日食五分(遮挡一半),未时二刻(13:30)复圆!此乃天机,你拿几个死物铜轮,如何能算?!”
“午时正刻初亏?日食五分?”
沈拓嗤笑一声,一把扯下身后平板车上的红绸!
只见车上并排立着一块写满了精密数字的黑漆大木板,以及一台连接着水运仪象台标准擒纵器的“天工秒针铜钟”和三块涂黑的滤光茶晶石(墨镜片)!
沈拓指着黑漆木板上由“天工一号”昨夜跑出来的六阶差分积分结果,声音如惊雷般响彻整个宣德门广场:
“启禀官家!启禀满朝诸公!司天监王道亨学艺不精,连月球视差和黄白道交角摄动都算不明白,还敢在这儿冒充神仙!”
“根据我天工院‘天工一号’水力差分机昨夜用六阶招差微分算出的铁律——今日这场日偏食,在三千年前就已经由日月运行的引力与轨道定死了!而且王道亨算的时刻,错得离谱!”
沈拓竖起三根手指,对着城楼上的宋徽宗高声喝道:
“第一,初亏绝不在午时正刻,而是在午时一刻零八分三十秒(12点23分30秒),王道亨早算了整整二十三分钟!”
“第二,食甚遮挡比例绝不是五分,因为汴京地处北纬三十四度八分,月球视差偏南,实际食分只有三分二厘(遮挡不到三分之一)!”
“第三,也是最打脸的一条——昨晚王道亨密奏说紫微垣外那颗微弱客星(彗星)今夜会冲犯帝星;但天工一号算出的椭圆轨道证明,那颗客星在今日辰时就已经过了近日点折返向东,反倒是今日日食最深之时,在太阳西南侧二十二度角的天空上,原本白昼不可见的太白金星与岁星(木星)将同时显露,形成罕见的‘日月金木四曜同天’之大吉星象!”
“官家!下官愿立生死状!若待会儿日食时刻与金木二星方位,与我天工一号所算相差超过十息(十秒),下官甘受五马分尸之刑!可若是分毫不差,而王道亨错得一塌糊涂——那就证明所谓‘天工器物惊扰神霄’纯属蔡攸与王道亨欺君罔上、意图替贪官翻案的死罪!”
“哗——!!!”
全场上万百姓与文武百官彻底炸了!
精确到几分几秒?!还敢断言日食的时候大白天能看见金星和木星同时出现在太阳西南二十二度角?!
城楼之上,宋徽宗赵佶腾地一下站起身来,接过内侍递上来的涂黑茶晶石,眼神死死盯向天空:“好!朕今日便亲自拿着滴漏与这面秒针铜钟,替你们做这个见证!”
时间一分一秒地流逝。
转眼间,司天监铜壶滴漏的浮箭指向了午时正刻(12:00)!
王道亨昂首挺胸,手持拂尘指向天空高呼:“午时正刻已到!天狗食日,速速跪迎天谴——”
然而,天空之上,秋日骄阳灿烂夺目,圆得像一面金盘,连一丝一毫的黑影都没有!
一分钟过去了,五分钟过去了,一刻钟过去了!
太阳依旧完美无缺!
广场上顿时响起了一片窃窃私语与哄笑声,王道亨额头上的冷汗哗哗往下淌,脸色由红转白,蔡攸更是急得眼角直跳。
就在这时,沈拓身旁的“天工秒针铜钟”发出了清脆的倒计时滴答声:
“距离午时一刻零八分三十秒,还有五息!四、三、二、一——初亏,起!”
沈拓话音落下的同一秒!
城楼上的赵佶、百官中的李纲,以及广场上端着水盆看倒影的上万百姓,同时发出一声震天动地的惊呼:
“黑了!日轮西北角真的刚刚缺了一丝黑影!!”
“老天爷!连一息(一秒)都不差!真的是午时一刻零八分三十秒!”
紧接着,当时间来到食甚时刻,日轮被遮挡的面积稳稳停在了三分之一弱(三分二厘),绝非王道亨危言耸听的五分!更让所有人头皮发麻的是,随着天空光线微暗,众人顺着沈拓手指的太阳西南侧二十二度角望去——
两颗璀璨夺目的亮星(金星与木星),果然在白昼的苍穹中双星并耀,熠熠生辉!
“噗通!”
道坛之上,司天监少监王道亨双腿一软,手里的拂尘摔落台下,整个人如遭雷击般瘫倒在地,面如死灰:“不可能……这怎么可能算到几分几秒……连白昼隐星的度数都算得毫厘不差……”
城楼下,上万汴京百姓看着那个负手立于青铜秒钟旁、宛如执掌乾坤天机的年轻官员,不知是谁带头喊了一嗓子,紧接着万人山呼海啸般跪拜高呼:
“天工神算!四曜同天,大宋万年!!”
城楼之上,赵佶放下了手中的茶晶石,原本对日食的恐惧瞬间化作了发现绝世珍宝般的狂喜与震撼,反手一巴掌狠狠甩在身旁脸色惨白的蔡攸脸上:
“混账东西!如此精准合天之神算器物,你们竟敢污蔑为妖器?!来人!将欺君罔上、庸碌无能的司天监少监王道亨革职查办!蔡攸罚俸三年,闭门思过!自今日起,司天监一切历法推演,皆归沈拓之天工院统辖!”
……
第16章 金国贺使入京,傲慢的女真贵人
宣德门外一场天象大赌局,彻底将沈拓和他的“天工一号”水力差分机推上了神坛。
如果说之前三天破获花石纲案、一炷香算穿户部三万卷烂账,还只是让百官觉得沈拓是个查账的酷吏奇才;那么今日当着全城百姓的面,把日食初亏精确到秒、把白昼金木二星的夹角算到分毫,则直接让这个年仅十九岁的青年在北宋朝野眼里蒙上了一层“通晓天地造化、算尽宇宙玄机”的传奇色彩!
蔡攸被当众抽了耳光闭门思过,太师王黼也吓得称病不敢上朝,“六贼”集团在短短十天内被沈拓和李纲联手重创,气焰大衰。
然而,还没等沈拓在将作监东水磨务把第二台专门用于军工弹道计算的差分机组装完毕,一股来自北方白山黑水的凛冽寒风,已然吹进了歌舞升平的汴京城。
十月十八日,大宋宣和六年冬至前夕。
按照去年“海上之盟”的约定,金国派出了一支由三十余名女真铁骑护卫的正旦贺使团,跨越黄河,抵达东京开封府,名义上是庆贺大宋收复燕云及冬至大朝会,实则是来催逼今年的四十万贯岁币、二十万匹绢帛,外加索要从辽国逃入燕山府的数千户辽东豪族与工匠!
鸿胪寺馆驿外,街道净水泼街,黄土垫道。
但凡路过的汴京百姓与低阶官员,无不被那群骑在高头大马上、身穿生牛皮重甲与貂皮大氅、脑后留着两条粗长鼠尾辫(女真髡发)、眼神凶悍如草原饿狼般的女真骑士吓得纷纷避让。
金国正使,乃是金国东路都统完颜宗望(斡离不)的堂弟兼麾下第一智囊——完颜希尹(谷神,女真文字创制者)的亲传副手,女真贵族猛安完颜娄室之侄、完颜活女之兄:完颜撒改(化名乌林答·撒改),以及一名精通汉学算术的辽国降臣、枢密院旧吏萧仲恭!
这两人奉完颜宗望之命入京,除了催讨岁币,更肩负着一个绝密任务:试探大宋朝堂的虚实、绘制汴京城防图,并在大朝会上狠狠折辱大宋文臣的锐气!
十月十九日,紫宸殿大朝会暨款待金使御宴。
殿内金碧辉煌,钟鼓齐鸣。沈拓作为新晋崛起的将作监丞兼太学算学馆权博士,也在李纲的刻意安排下,坐到了殿尾靠前的技术词臣席位上。
酒过三巡,殿中央的教坊司舞姬刚刚退下。
坐在客席首位的金国正使乌林答·撒改,突然哈哈一笑,随手将面前的纯金酒樽重重顿在案几上,发出“哐”的一声闷响!
他站起身来,身材魁梧如铁塔,身上还带着塞外未洗净的血腥与马汗味,目光傲慢地扫过大宋满朝身穿宽袍大袖的文武百官,用生硬却洪亮的汉语大声说道:
“大宋皇帝陛下!我大金国大圣皇帝与二太子(完颜宗望)常闻南朝以文治天下,满朝朱紫皆自诩饱读诗书、算无遗策。然去岁燕京之战,南朝二十万大军攻打辽国残兵,却连芦沟桥都过不去,粮草倒先自己乱成了一锅粥,最后还得靠我大金铁骑替你们破城!我家二太子心中实在好奇——南朝的算学博士与枢密院大人们,平日里到底是真懂行军布阵之算,还是只会躲在深宫里写几首酸诗?”
此言一出,紫宸殿内瞬间一片死寂!
奇耻大辱!
当着大宋天子和满朝文武的面,直接揭去年童贯二十万大军败于辽国残部、全靠金人施舍才拿回燕山空城的烂疮疤!
殿上的枢密院贯相童贯脸色涨成猪肝色,太师王黼低着头假装喝酒,礼部与鸿胪寺的官员更是吓得大气都不敢喘。
太常少卿李纲勃然大怒,霍然起身喝道:“金使休得无礼!天朝上国礼遇尔等,岂容尔在殿前狂吠?!”
“李大人何必动怒?”
站在金使身后的辽国降臣副使萧仲恭阴恻恻地一笑,上前一步,从怀中取出一卷用羊皮绘制的《塞北行军围猎图》,双手托起:
“我家正使并无恶意,只是我大金二太子在平州军中,偶得一道‘女真万骑围猎行军算题’。我大金军中萨满与辽东算师算了半月未得最优之解。既然南朝自称天朝上国、算学祖庭,那今日不妨当殿解一解这道军前算题!”
乌林答·撒改双手抱胸,眼中满是戏谑与轻蔑,指着殿外的三百车岁币样品大声道:
“若是南朝满殿大臣,能在半个时辰内算出此题,我大金使团不仅当殿向南朝赔礼,且今年燕云代税钱中的十万石运粮脚力费,我大金一力承担!可若是你们连我女真人的马蹄子怎么跑都算不明白……”
撒改狞笑一声,目光如刀锋般刮过宋徽宗赵佶的脸庞:
“那就请南朝皇帝立刻把逃入燕山的辽东三千工匠交出来,并且明年的岁币,须得加收三成‘折耗银’,更不许再派什么算学官去河北查验边储!”
图穷匕见!
李纲和沈拓对视一眼,两人瞬间明白过来——什么讨教算题,这分明是金国在汴京的暗桩(或者王黼、蔡攸集团里的内鬼)已经把沈拓这几天用算学清查河北军饷、准备整顿边防的消息透给了金使!金使这是要在朝堂之上,用一道无解的军事运筹难题当众羞辱大宋算学,顺便逼赵佶停掉对河北防务的清查!
“把题目呈上来!”赵佶脸色阴沉得快要滴出水来。
内侍接过羊皮卷,在大殿中央展开,并由鸿胪寺官员高声诵读题面:
『今有女真精骑一万,分驻平州、卢龙、迁安、滦州、抚宁五营;欲合围燕山以南之百里猎场(实为河北真定至中山防线隐喻)。五营至猎场共有山道、河滩、平原十二条路径,每条路径宽度不同、草料水井承载上限不同、且受风雪泥泞影响,骑兵每增加百人,行军速度便按二次曲线递减;同时猎场内有猎物(守军)三群,正在向南移动……问:五营一万铁骑当如何分兵、如何选路、在何处交汇,方可使最后一名骑兵抵达合围点之耗时最短,且全程草料损耗最少?请给出十二条路径之精确分兵人数与抵达时刻!』
当鸿胪寺官员念完这道题目的瞬间,殿内刚才还跃跃欲试的五名太学算学馆老博士和司天监官员,脸色刷地一下全白了!
“这……这是什么怪题?!”
“十二条路,每条路的速度还随着人数增加而按平方递减?还要同时满足耗时最短、草料最少、且拦截移动中的三群目标?!”
“《九章算术》里的均输章,只教过固定速度的赋役分派!这种变量互相牵制、多路径动态变化的题目,每一条路改一个人,另外十一条路的速度和草料全都要跟着重算!这根本就有成百上千亿种分兵可能,别说半个时辰,就算给老夫十年也算不出来啊!”
看着大殿下方交头接耳、冷汗直流却无一人敢应声的大宋算学官们,金国正使乌林答·撒改仰天发出一阵肆无忌惮的狂笑:
“哈哈哈哈!这就是自诩才华冠绝天下的南朝朝堂吗?连一道行军分兵的算题都吓得像缩头乌龟一样!既然算不出来,那就赶紧备好三千工匠和加征的岁币吧!”
御座之上,赵佶气得浑身发抖,目光焦急地扫向殿下:“沈拓!沈拓何在?!”
不用赵佶点名。
在满殿文武屈辱而绝望的注视下,那个身穿青色八品官袍的挺拔身影,早已手捧一卷打孔竹卡和一把不锈钢游标卡尺,缓缓越众而出,走到了金国正使乌林答·撒改的面前。
沈拓连看都没看地上那张羊皮卷,只是抬起眼皮,像看一个原始部落的文盲一样看着满脸狂傲的撒改,嘴角勾起一抹冰冷刺骨的弧度:
“区区一道带非线性约束的多目标动态网络流与注意力权重分配题(Multi-Objective Dynamic Routing & Attention Allocation),也配拿来我大宋金銮殿上献丑?”
“不用半个时辰。给我一盏茶功夫——我不仅把这十二条路的分兵极值给你算出来,我还顺手帮你算算,你们使团这次进京带来的三十六匹女真战马,马鞍夹层里到底藏了多少斤违禁的河东私铁!”
第17章 多目标动态优化,算得金使脸色惨白
紫宸殿内,落针可闻。
当沈拓说出“顺手算出你们使团三十六匹战马马鞍夹层里藏了多少斤违禁私铁”这句话时,金国正使乌林答·撒改脸上的狂笑瞬间僵住,瞳孔猛地一缩,下意识地按住了腰间的鎏金弯刀刀柄!
而站在他身后的辽国降臣副使萧仲恭,更是眼皮狂跳,后背瞬间窜起一股凉气。
“放肆!”
乌林答·撒改恼羞成怒,踏前一步,一双牛眼死死瞪着沈拓,凶神恶煞地喝道:“哪里来的八品芝麻小官,算不出本使的塞北围猎题,就敢血口喷人污蔑大金使团夹带私铁?!今日你若算不出这十二条路的分兵之数,或是拿不出证据,本使当殿拧下你的脑袋!”
“拧下我的脑袋?你还不够格。”
沈拓神色淡漠,转身朝着御座上的宋徽宗赵佶拱手一礼:“陛下,请赐下官一张白麻纸、一支炭笔,并准太学算学馆助教秦雪音携天工便携算盘入殿记数!”
“准!快传!”赵佶此刻把所有的面子都押在了沈拓身上,立刻挥手批准。
殿外候命的秦雪音捧着一只特制的双排并行算盘快步走入大殿,跪坐在沈拓身侧。
沈拓展开丈许长的白麻纸,手中炭笔如飞,转眼间便将羊皮卷上那幅看似复杂的《塞北五营十二路围猎图》,抽象成了一张极其简洁冷酷的有向加权拓扑网络图(Directed Weighted Graph)!
“萧副使,还有这位乌林答正使,你们以为把兵力、道路拥挤减速、草料水井上限和移动猎物混在一起,就能难住大宋的算学?”
沈拓一边画图,一边朗声开口,声音在大殿高耸的藻井间回荡:
“这道题,你们辽东和女真的算师之所以算了半个月都算不出来,是因为你们只会用死板的试凑法!而在我天工算学的体系里,这不过是一个最基础的‘拉格朗日乘子法求极值’结合‘自注意力动态权重分配(Self-Attention Routing)’!”
沈拓笔尖在白纸上重重写下三个核心方程:
$$T_k(n_k) = t_{0k} + \alpha_k n_k^2 \quad (\text{路径 } k \text{ 的行军耗时函数})$$
$$\text{Score}k = \frac{Q{\text{target}} \cdot K_{\text{path}, k}}{\sqrt{d_k}} \quad (\text{路径与移动目标的注意力匹配度})$$
$$n_k = \text{Softmax}(\text{Score}k) \cdot N{\text{total}}$$
“听好了!为什么十二条路的分兵会互相牵制?因为你们不懂‘等边际耗时平衡定理(Wardrop Equilibrium)’!”
沈拓指着拓扑图上的十二条连线,语速快如连珠炮:
“要想让一万名骑兵中‘最后到达的那个人’耗时最短,数学上的充要条件只有一个——所有被选中的路径,在塞进对应数量的骑兵后,它们的最终实际耗时 $T_k(n_k)$ 必须完全相等! 只要有一条路比别的路快半刻钟,就可以把慢路上的骑兵挪过去,从而进一步缩短总时间!”
“什么?!”
大殿两侧的五名太学算学老博士听到这句话,全都如梦初醒,猛地一拍大腿:“对啊!无论走哪条路,只要让各路最终到达的时刻完全齐平,那就是全局最快之极值!如此一来,原本上百亿种盲目试凑,瞬间就变成了十二个等式联立求解!”
辽国降臣萧仲恭脸色瞬间变了。
这道题是他联合金军参谋部里的汉人算师,根据今年秋天金军在平州秘密演练“分进合击包抄燕山至真定宋军”的真实推演改头换面而成的!他们整整算了半个月,才靠着无数次沙盘推演试出了一个大概的分配方案,结果眼前这个十九岁的大宋青年,只看了一眼题面,竟然直接一针见血地戳穿了多路径极值问题的数学本质!
“但这还没完!”
沈拓冷笑一声,炭笔在代表移动猎物的三个节点上画出一个三角形向量:
“猎场里的三群猎物正在向南移动,且十二条道路上的水井与草料承载上限不同。如果用死板的联立方程,一旦某条路超出水井上限就会断水崩溃!所以,我们直接引入《万象聚焦总纲》里的‘带掩码的缩放点积注意力机制(Masked Scaled Dot-Product Attention)’!”
“雪音,听我报特征内积,你只管按《天工指数速查表》拨算盘归一化!”
“是!”秦雪音双眸明亮如星,十指按在双排算盘上。
“第一路卢龙山道:坡度权重三,草料权重二,目标截击夹角余弦零点八,内积得分二点四!未超水井掩码阈值,保留!”
“第二路滦河浅滩:泥泞阻力二次系数过高,边际导数劣于均值三个标准差,触发负无穷掩码($-\infty$ Masking),直接剔除,分兵为零!”
“第三路迁安平原古道:内积得分四点八,触及草料上限,按饱和截断(Clipping)锁定两千四百骑,余量自动由残差连接分配至第四、第七路……”
大殿之上,沈拓负手而立,口中吐出的一串串闻所未闻却又逻辑严密到令人窒息的算学术语,配合着秦雪音手下算盘发出的清脆如玉珠落盘般的“噼啪”声,仿佛形成了一个无形的算力力场!
满朝文武屏住呼吸,连大气都不敢喘一口。
仅仅过了半盏茶功夫(不到五分钟)!
秦雪音手指猛然一收,沈拓手中的炭笔也在白麻纸最下方重重画下了一个句号!
沈拓一把提起那张写满了十二路最优分兵矩阵的白麻纸,走到面色铁青的乌林答·撒改和萧仲恭面前,“哗啦”一声抖开:
“两位使者,睁大眼睛看清楚了!”
“一万女真铁骑,五营十二路,最优解如下:第二、第六、第十一路因泥泞边际损耗过高,弃之不用,分兵为零(稀疏化剪枝)!第一路分兵八百四十骑,第三路满额两千四百骑,第四路一千五百六十骑,第五路一千一百二十骑……第九路九百八十骑,第十二路一千三百骑!”
“九路铁骑同时于卯时正刻出发,必于午时二刻三分(3小时33分后),在猎场南端二十里之‘白草洼(对应河北定州东侧要冲)’实现分秒不差的合围截击!全程最快与最慢路径时间差为零,总计消耗草料四百一十二石六斗,比你们金军算师算了半个月得出的方案,耗时缩短两刻钟,草料节省整整一成半!”
“轰——!”
萧仲恭像是见了鬼一样,猛地从袖子里掏出自己贴身收藏的金军参谋部算稿,低头一看,双手剧烈颤抖起来!
他们金军算师算了半个月,得出的最短耗时是“午时三刻”,草料消耗是“四百八十石”,而且当时他们根本没看出第六路和第十一路可以完全剪枝舍弃!
当他顺着沈拓给出的九路分兵数字心算核对了一遍耗时公式后,萧仲恭脸上的血色在三秒钟内褪得干干净净,额头上豆大的冷汗滚滚而下,失声惊叫道:
“午时二刻三分……九路同达,草料省一成半……天呐,他算出来的竟然比我大金军中十几个算师算了半个月的结果还要精妙百倍!而且……而且他连白草洼的地形坐标都反推出来了!”
“什么?!”乌林答·撒改脸色大变。
还没等撒改反应过来,沈拓突然向前逼近一步,目光如两柄出鞘的寒冰利剑,死死刺入撒改的双眼:
“乌林答正使,别急着惊讶,我刚才说过,还要顺手帮你们算第二笔账——你们使团夹带违禁私铁的账!”
沈拓指了指大殿外广场上停驻的金国使团车马,声音冷酷如雷:
“昨日你们使团入宣德门大街时,恰好经过我将作监水磨务铺设在御街青石板下的测重木梁与沙土路段!你们谎称使团三十六匹战马驮的只是北珠、貂皮与人参贡品,总重不过两千斤。”
“但我昨天只看了一眼你们战马蹄印在干燥黄土上的陷深矩阵,以及随行四辆檀木贡车车轴钢板簧的弯曲挠度(材料力学悬臂梁挠度公式 $w = \frac{FL^3}{3EI}$),就用天工一号算出了你们的真实负重!”
沈拓一字一顿,声震紫宸殿:
“三十六匹战马,每匹马的马蹄压强比正常空鞍骑乘高出三成二,扣除骑士体重,你们那三十六副看似厚重的女真双层木马鞍内部,每一副都用空心铅皮夹层灌满了至少六十斤的高纯度河东熟铁与箭簇钢胚!而后面那四辆所谓的貂皮贡车,车轴吃重高达四千八百斤,车底暗格里藏着的,根本不是什么辽东人参,而是你们买通太师府奸商、准备偷运出境用来打造重甲的一万两千斤大宋百炼精铁与两千斤提纯硫磺!”
“加上你们刚才那道所谓的‘围猎算题’——五营之间的里程、坡度、河流宽度,与我大宋河北平州至真定、中山府的地理水文特征矩阵相似度(Cosine Similarity)高达 百分之九十九点四!你们哪里是在算打猎,你们分明是在拿我大宋河北防线做万骑突袭的兵棋推演,还要当朝试探我大宋有无人能识破你们的合围战术!”
“陛下!请即刻下旨,命皇城司甲士当殿劈开金使车外马鞍与贡车底板!若搜不出一万四千斤违禁军铁与硫磺,臣沈拓甘受欺君之罪!”
“哗——!!!”
整个紫宸殿彻底炸开了锅!
文武百官骇然失色,李纲更是第一个冲出队列,跪倒在御阶之下,声嘶力竭地高呼:“陛下!私运精铁硫磺出境,图谋河北兵要,此乃等同谋反之大罪!请陛下即刻下旨搜检金使车马!”
金国正使乌林答·撒改和副使萧仲恭此刻脸色惨白如死人,浑身冷汗如雨下!
他们做梦也想不到,自己自以为天衣无缝的马鞍藏铁、车底暗格,甚至连那道改头换面的河北行军算题,在这个大宋年轻官员面前,竟然像是没穿衣服一样,连藏了多少斤铁都被人用什么“马蹄压强”和“车轴弯曲度”算到了十位数!
这大宋朝堂里,什么时候出了这么一个算尽人心、算透万物的妖孽?!
赵佶虽然平时昏聩,但听到金人不仅当殿羞辱自己,竟然还在眼皮子底下偷运上万斤精铁硫磺、推演进攻河北的路线,天子之怒瞬间爆发:“来人!皇城司何在?!给朕把金使馆驿外的车马当场劈开!”
“不必劈了……”
眼看皇城司带刀禁军就要冲出大殿,副使萧仲恭双腿一软,冷汗涔涔地拉住差点拔刀拼命的乌林答·撒改,强行挤出一丝比哭还难看的笑容,噗通一声跪倒在地:
“外臣……外臣知罪!那车底与马鞍中的铁料,乃是我使团下属护卫受奸商蛊惑私自夹带,绝非我家二太子本意!外臣愿将那三十六匹战马连同一万四千斤铁料尽数献予大宋朝廷充公!至于方才那道算题,天朝沈大人神机妙算、惊天纬地,外臣心服口服!此前所提加征岁币、索要辽东工匠及插手河北边储之事,我大金使团即刻收回,绝不敢再提半个字!只求大宋皇帝陛下宽宏大量,勿伤两国和气!”
看着刚才还不可一世、叫嚣着要拧下沈拓脑袋的金国使臣,此刻跪在大殿中央瑟瑟发抖、主动献马认怂的狼狈模样,紫宸殿内的大宋百官只觉得胸中一口憋了数年的恶气轰然吐出,痛快得差点当场吼出来!
而在御座之上,宋徽宗赵佶看着殿中那个风神俊朗、谈笑间将虎狼金使算得魂飞魄散的十九岁青年,眼中的光芒已经炽热到了极点。
……
第18章 瘦金体皇帝的召见与艮岳奇谋
紫宸殿御宴结束不到一个时辰,金使乌林答·撒改和萧仲恭便灰溜溜地带着随从缩回了鸿胪寺馆驿,连夜写密信派快马送往平州完颜宗望大营——信中只有一句话:“南朝新出奇人沈拓,算术通神,洞察秋毫,万不可轻视!”
而此时的皇城后苑,延福宫宣和殿内。
浓郁的龙涎香在鎏金仙鹤香炉中袅袅升起。四周的紫檀博古架上摆满了商周青铜彝器与汝窑天青釉瓷器,墙上挂着宋徽宗赵佶亲笔绘制的《瑞鹤图》与瘦金体《千字文》。
沈拓没有穿官靴,只着白袜,独自一人随着内侍省押班走在这座北宋帝国最高权力的艺术圣殿中。
他在等,也在算。
作为一个深谙历史走向的穿越者,沈拓比李纲更懂赵佶这个皇帝的心理模型。
赵佶不是那种勤政爱民的明君,而是一个极度自恋、痴迷道教长生、追求极致审美与奇技淫巧的“顶级艺术家兼享乐主义者”。如果你像李纲、陈东那样哭着喊着让他拆掉艮岳、停止花石纲、天天跟他讲金兵要来亡国了,只会触发他的逆反防御机制(Negative Weight),把你当成扫兴的倔驴一脚踢开。
想要从这位道君皇帝手里,合法地拿到调动全国工匠、垄断将作监军器所、查阅皇城司密档、甚至独立建军炼钢的至高特权,就必须用一场精准投喂的“对抗样本(Adversarial Example / Prompt Injection)”,顺着他的艺术与神仙审美切入,再把军工重器包装成守护他大宋江山万代长生的“天工神器”!
“将作监丞沈拓,参见官家!”
沈拓走到御案前,恭敬而不失挺拔地躬身行礼。
御案之后,身穿一袭紫色道袍、头戴九梁道冠、面容清癯俊雅的宋徽宗赵佶,正手持一支湘妃竹狼毫笔,在一幅宣纸上写下最后一笔铁画银钩、锋芒毕露的瘦金体“天工”二字。
“免礼,平身吧。”
赵佶放下御笔,饶有兴致地上下打量着眼前这个年仅十九岁、却在短短半个月内替他查出千万贯贪墨、算准日食四曜同天、又在金銮殿上把女真狼崽子算得当堂下跪的少年奇才,嘴角露出一抹温和的笑意:
“沈拓,朕今日在殿上听你算那塞北围猎之题,言辞如刀,算理如神。走上前来,看看朕写的这两个字如何?”
沈拓走上前两步,目光落在那幅墨迹未干的瘦金体“天工”二字上,眼中适时地露出一丝惊叹,却没有像普通溜须拍马的词臣那样只喊“圣明”,而是从几何与力学的角度朗声赞道:
“回官家!下官不懂凡俗书法之皮毛,但以天工格致之理观之——官家这瘦金御笔,起笔如屈铁断金,收笔似游丝悬针;横画细劲而竖画刚挺,每一处撇捺之夹角,皆暗合黄金分割之几何极值(0.618),每一笔转折之顿挫,皆如精钢弹簧蓄力千钧而一朝迸发!此非人间翰墨,实乃将天地间至刚之力学与至美之均衡,熔铸于寸纸之上的神仙法度!”
这一番融合了黄金分割几何学与材料力学弹性的马屁,拍得实在是太高级、太清新脱俗了!
饶是听惯了蔡京、梁师成歌功颂德的赵佶,听到有人竟然能从“黄金几何比例”和“精钢蓄力力学”的维度来解读他独创的瘦金体,顿时犹如遇到了千古知音,抚掌大笑,双眼放光:
“哈哈哈哈!好一个‘黄金几何极值,精钢蓄力千钧’!满朝翰林学士,竟无一人如你这般懂朕笔意之筋骨!沈拓,朕问你,你那套能查万卷账、能算日月食、能破胡人阵的‘天工算学’,究竟是个什么章法?为何以前太学和将作监从无人知晓?”
沈拓神色一正,从袖中取出一张他特意用黄金分割比例与三维焦点透视法(Linear Perspective,比文艺复兴达芬奇早三百年)绘制的《艮岳万岁山瑞鹤水力自动天工图》,双手呈上御案:
“启禀官家!昔日轩辕黄帝得天书而造指南车,墨子与鲁班以机关算理止楚攻宋。然汉唐以来,腐儒只重章句训诂,将真正经天纬地之‘算学矩阵’与‘格致重工’视为奇技淫巧,致使华夏绝学蒙尘!”
“臣偶得上古《万象聚焦总纲》真传,深知天地万物——小到一只机械瑞鹤的振翅角度、一幅画卷的焦点透视,大到千万贯钱粮的归一化调拨、十万大军的雷霆火器,其底层皆由同一套‘矩阵算力’与‘精密公差’所统御!”
赵佶低头看向沈拓呈上的那幅图,整个人瞬间被吸住了!
因为沈拓用了现代建筑工程制图中的三点焦点透视与明暗素描光影法,画纸上的艮岳宫殿与铜鹤仿佛直接从平面的宣纸上立了起来,具有极其强烈的三维空间纵深感!不仅如此,图下还画着一套利用暗渠水力、青铜凸轮(Cam)与连杆驱动的自动报时瑞鹤群机关!
“这……这画法竟似真宫实景迎面扑来!仿佛能直接走进画中去!”赵佶身为大画家,瞬间被三维透视几何的数学美感彻底征服,手指颤抖着抚摸画纸,“沈拓,这透视画法与水力瑞鹤,你真能造出来?”
“回官家,这只是天工格致之学百中之一!”
沈拓趁热打铁,扑通一声单膝跪地,声音陡然变得无比沉痛与恳切:
“官家!臣之所以在殿上狠挫金使锐气,是因为臣用‘天工一号’算出了一个关乎我大宋神霄万年基业的惊天隐患!金人狼子野心,今日虽慑于天威献出私铁,但其吞并辽国之后,必在一年之内觊觎我中原锦绣与官家苦心营造之东京盛景!”
“而如今我大宋将作监与军器所,匠户涣散,官吏贪墨,造出的神臂弓连十步外的熟铁甲都射不穿,造出的火药连受潮发霉都没人管!长此以往,若虎狼南下,谁来护卫官家的万岁山与九鼎社稷?!”
赵佶脸上的笑容渐渐敛去。
经历了刚才紫宸殿上金使的当面挑衅和马鞍藏铁事件,赵佶哪怕再心大,心里也对那群凶悍野蛮的女真人产生了一丝深深的忌惮。
“那依你之见,朕当如何?”赵佶沉声问道。
“臣不要六部高官厚禄,只向官家求三样东西!”
沈拓抬起头,目光灼灼地直视赵佶,抛出了他早已谋划成熟的“天工帝国”第一步蓝图:
“第一,求一道独立专权之旨! 请官家在太学与将作监之外,特设直属御前的‘大宋天工院’!将太学算学馆、将作监东水磨务、以及军器所下辖的火药作、钢铁作尽数并入天工院!由臣总领院务,太常少卿李纲协理,准臣不拘一格,在天下招募能工巧匠、寒门算生与军中悍卒,任何六部与枢密院文官不得插手天工院内部营造!”
“第二,求皇城司边缘密档之阅览权! 臣要用‘多头注意力矩阵’,为官家将河北、河东、燕山及京师的物价、车马、流民数据汇总成网,凡有辽金细作与叛将异动,提前百日便可为官家精准标出!”
“第三,求从臣查出的千万贯贪墨罚银中,划拨一百万贯作为天工院启动工本! 臣向官家立下军令状:三个月内,不仅为官家献上能看清十里外蚊蝇翅膀的‘天工千里镜’与艮岳水力瑞鹤;更要在半年之内,用天工矩阵与新法百炼钢,为官家打造出一支百步穿重甲、千步轰城池的‘天工神机新军’!”
一百万贯!换取整整一千七百万贯的查账收益,还能得到千里镜、水力瑞鹤,外加一支能把女真铁骑轰成渣的神机新军,而且完全绕开了王黼、童贯那些已经尾大不掉的旧官僚集团,直接向皇帝本人负责!
在沈拓精心计算的利益与安全权重面前,赵佶连十秒钟都没犹豫。
这位道君皇帝猛地站起身来,一把拿起案上那幅刚刚写好的瘦金体“天工”御笔,重重塞进沈拓手中,朗声大笑:
“准奏!朕全准了!这幅御笔‘天工’二字,便是朕赐予你的尚方匾额!朕封你为直天工院事、兼领军器所与太学算学馆都大提举(正六品实权特使,赐绯鱼袋)!谁敢克扣天工院一文钱、阻挠你调用一名匠人,你只管拿朕的御笔进宫来见朕!”
第19章 天工算学院挂牌,寒门工匠的圣地
宣和六年十月二十二日,晴空万里。
汴京城东南,原将作监东水磨务与毗邻的废旧漕仓、军器所南坊被彻底打通,连成了一座占地超过两百亩、三面临水、高墙深院的宏大园区。
上午巳时,园区正门外锣鼓喧天,鞭炮齐鸣。
一排身穿明光铠、手持长戟的皇城司禁军将大门两侧护卫得水泄不通。太常少卿李纲、算学老博士秦九思、水磨务大匠头鲁百工,连同三百二十名身穿统一藏青色干练短褐的算生与上百名精壮铁匠,齐刷刷地立于门前广场之上。
在万众瞩目之中,一身绯色六品官袍、腰悬银鱼袋的沈拓亲自拉下红绸。
大门上方,一块长一丈二尺、由整块金丝楠木雕琢而成的巨型黑底金字匾额赫然显露——正中央是宋徽宗赵佶御笔亲题、铁画银钩的瘦金体【天工院】三个大字;而在匾额两侧的石柱上,则镌刻着沈拓亲手撰写的二十二字楹联:
上联:以算力穷尽万物之理,毫厘不爽;
下联:以钢铁重铸华夏之脊,雷霆万钧!
“好!好一个‘以算力穷尽万物之理,以钢铁重铸华夏之脊’!”
李纲仰望着这副气吞山河的楹联,抚须激赏,眼眶微热。
而在周围围观的数千名汴京百姓、落第举子、以及世代受尽盘剥的底层匠户眼中,最让他们心跳加速、热血沸腾的,还不是那块御笔金匾,而是贴在天工院大门两侧高墙上的那张十丈长的《天工院招贤与考工榜》!
在这之前的大宋,虽然商业繁荣,但工匠与算师的地位极其低下。
按照北宋旧制,民间的铁匠、木匠、铜匠、窑工统统被编入“匠籍”,每年必须无偿或只领几文口粮钱到将作监、军器所服役(当差),动辄被监工官吏鞭打克扣,手艺稍微好点的还会被逼着给权贵豪门白做私活,以至于汴京流传着“宁断三根指,不入将作门”的凄惨民谣;而算学更是被理学与词章大儒视为“九流末技”,算学馆博士最高不过从八品,一辈子给人当账房奴才。
但今天,沈拓贴出的这张《天工院招贤与考工榜》,直接像一颗重磅炸弹,炸翻了延续千年的“劳心者治人、劳力者治于人”的腐朽铁幕!
站在榜文前的一名落第寒门书生,声音颤抖地大声念出了榜文上的条款:
“第一条(废除无偿匠役,实行天工九级技师俸禄制):凡考入天工院之铁匠、铜匠、木匠、琉璃匠、火药匠及算生,一律脱离原有贱籍与无偿差役!入职即授‘天工一级工士’,月支现钱五贯、白米两石!若能通过游标卡尺‘半毫公差(0.05毫米)’考核,或能在并行矩阵算阵中连续百次零差错者,晋升‘五级大匠/算师’,月俸二十贯,享正九品文官待遇,免除全家赋役!”
“第二条(重大发明与工艺改良专利分红制):无论是白发老匠还是十岁学徒,凡在炼钢、造粒火药、光学透镜、齿轮传动、算学公式上有独门改良者,经天工院‘前馈实验局’验证有效,当场赏银百两至千两,并以发明者之名命名该器物,载入《大宋天工院正史》,享该器物军工拨款百分之三的终身抽成!”
“第三条(设立天工算学与工程夜校):天工院内设:
- 第一局(矩阵算力与密码情报局,由秦雪音任总管);
- 第二局(精密机械与水力机床局,由鲁百工任总匠师);
- 第三局(煤铁冶金与高炉转炉局);
- 第四局(提纯火药与近代热兵器局)!
每日酉时,由提举沈大人与秦总管亲自讲授《天工算术》《几何制图》《力学与化学初阶》,包教包会,包吃三餐(顿顿有肉)!”
念到这里,整个天工院广场彻底沸腾了!
“天呐!当个铁匠考过半毫公差,一个月能拿二十贯现钱,还能享九品官身、免除全家赋役?!”
“顿顿有肉吃,改良手艺还能赏银千两、把咱泥腿子工匠的名字写进朝廷正史里?!”
“俺娘嘞!俺爹在磁州打了四十年铁,造出的钢刀能砍断铁钉,结果被知州老爷抢去还不给钱!俺这就去报名考那个什么‘游标卡尺公差’!”
“算我一个!我考了三次太学都没中,但我算盘和九章开方术闭着眼都能算,我要进秦姑娘的第一局!”
短短半天时间,天工院门前的报名长龙排出去足足三里地!
沈拓根本不用派差役去抓丁,全汴京乃至周边陈留、洛阳、磁州最顶尖的民间野铁匠、造船木匠、琉璃吹制工、落第才子,像是闻到了腥味的鲨鱼一样,哭着喊着往天工院里钻!
而在天工院内部,沈拓更是展现出了一个现代工科实验室主任的雷厉风行。
穿过前院的“矩阵算力大厅”(此时里面不仅有三百二十名算生,还在两侧并联扩建了四台升级版的“天工二号”水力铜齿矩阵运算机),中院便是热火朝天的“LayerNorm 标准化度量衡与机械母机车间”!
走进车间,一股浓烈的机油、煤炭与炽热铜铁气息扑面而来。
只见鲁百工正带着五十名精挑细选出来的顶级铜铁匠,围在一台由汴河水轮直接通过皮带与变速齿轮箱驱动的“水力高速精车与铣削母机”旁。
“都给老夫看准了!这是沈大人亲手定的‘天工一号公差铁律’!”
鲁百工手里高举着沈拓让人用高碳百炼钢仿制并批量刻度的三十把青铜/精钢游标卡尺(Vernier Caliper),以及一套用来检验轴孔配合的“通止规(Go/No-Go Gauge)”,扯着嗓子对新来的工匠们吼道:
“以前你们在将作监和军器所打铁,造十把神臂弓,十个弩机扳机长短不一,坏了一个零件整把弓就得扔!从今天起,在咱们天工院,这就叫‘没有归一化(Unnormalized)的垃圾’!”
鲁百工拿起一根刚从水力车床上车削出来的精钢螺栓,咔嚓一声塞进“通规”孔里,严丝合缝地滑过;再塞进小了半毫的“止规”孔里,稳稳卡住!
“看见没有!通规能过,止规不过,误差不超过半毫(0.05毫米)!以后咱们天工院造出来的哪怕一万颗螺丝、一万根火铳枪管、一万个齿轮,随便闭着眼睛抓一把出来拼在一起,都必须严丝合缝、完全通用!谁造出来的零件过不了沈大人的‘LayerNorm 通止规’,一律回炉重造!”
工匠们看着那精巧绝伦的游标卡尺和通止规,再看看那台不用人拉风箱、不用人手摇、靠着水力齿轮每分钟高速旋转三百转、把坚硬的熟铁棒像削萝卜一样车削出镜面般光滑螺纹的水力车床,一个个激动得呼吸急促,眼中全是对“工业标准化”的狂热虔诚!
站在车间二楼走廊上的秦雪音,怀里抱着一叠刚刚用天工二号差分机打印(通过铜字轮压印在麻纸条上)出来的工料配给表,看着下方如同精密钟表般高速运转的四大车间,忍不住轻声感叹:
“沈大哥,半个月前你在宣德门外拦下惊马救我的时候,我还以为你只是一位精通《九章》的奇才。可如今看着这座天工院……三百算生与四台水力铜齿机并算于前,百名大匠持卡尺车床锻造于后,万千繁杂事务皆在你的矩阵网格中井然有序。我有时真觉得,你像是从几千年后的神仙世界走出来的人。”
沈拓转过头,看着身旁少女被车间炉火映照得白里透红的绝美侧脸,微微一笑:
“不是神仙世界,只是一个把‘注意力’放在了科学、算力与每一个普通工匠身上的世界罢了。”
沈拓从袖中取出一支刚刚用最新提炼的铝合金(明矾还原实验品)与高透铅晶玻璃镶嵌而成的精致发簪,以及一把缩小的纯银游标卡尺挂件,递到秦雪音面前:
“诺,给咱们天工院第一局秦总管的升职贺礼。以后这大宋的第一代算力中枢,就全交给你替我掌舵了。”
秦雪音愣了一下,看着那支在阳光下流转着银白星辉的发簪和精致到极点的纯银小卡尺,白皙的耳根瞬间红到了脖颈。她羞涩却又坚定地接过发簪,轻轻替下了头上那支旧银钗,抬起头,那双清澈如水的眸子里倒映着沈拓的身影:
“沈大哥放心,只要雪音还有一口气在,天工院的矩阵算力,就绝不会掉线半息!”
……
第20章 第一卷终章:Attention 架构图贴上宣德门
夜幕降临,华灯初上。
天工院最核心的顶层秘阁——“总架构师值房”内,四周的窗户皆由双层厚木板与铁叶封死,门外站着八名由李纲亲自挑选的百战死士。
沈拓独自坐在宽大的紫檀木工作台前。
他的面前,放着一只由鲁百工用三层百炼精钢打造、内衬防水防潮油布与石棉(火浣布)隔热层、并配有五位密码转轮锁的贴身扁平钢盒。
沈拓从怀中工装冲锋衣内胆的暗袋里,小心翼翼地取出了那十五页已经陪伴他度过了生死半个月、边缘有些微微卷曲、背面写满了流体力学与矩阵草稿的A4激光打印纸——
《Attention Is All You Need》。
这十五页来自21世纪的薄薄纸张,就是他在这个山雨欲来的1124年最大的底牌与精神图腾。
但是,纸张终究是脆弱的,一旦遇到水火或者在战场上遗失,后果不堪设想。尽管上面的每一个公式他早已倒背如流,但沈拓还是决定将原件锁入这只可以贴身绑在护心镜内侧的防水防火精钢密码盒中;同时,他花了整整三个时辰,用大宋最顶级的澄心堂贡纸与防水桐油朱砂墨,将论文中最核心的那幅 Transformer 全局架构图,彻底翻译转化为了属于大宋工业与军事体系的终极蓝图——
《大宋天工总纲:万象聚焦与铁血重工架构图》!
在这张长六尺、宽四尺的宏伟图纸上,左右双塔结构巍然耸立:
左塔为【天工编码感知中枢(Encoder - 帝国之眼与耳)】:
- 底层(Input Embedding + Positional Encoding):将天下万事万物——户部钱粮、河北物价、黄河水文、敌军马蹄印、流民口音,全部通过“打孔竹卡”与“正余弦活字密电码”转化为带时空坐标的标准特征向量,通过即将铺设的“八百里千里镜光影信号塔”实时汇聚汴京!
- 核心层(Multi-Head Self-Attention 八头自注意力反谍与战场态势网):改造皇城司与边防斥候,设立八个完全独立的观察子空间,并行计算点积权重,让任何辽金细作、叛将阴谋、敌军主力集结在热力沙盘上无所遁形!
- 归一化与前馈层(LayerNorm & FFN):以游标卡尺公差制度统一全国度量衡与军工标准,以四台并联的“水力铜齿差分机”与三百人珠算阵列作为高维算力引擎!
右塔为【天工解码执行中枢(Decoder - 帝国之剑与盾)】:
- 底层(标准化重工流水线):焦炭高炉炼转炉钢、水力深孔镗床钻无缝枪管、99%重结晶提纯颗粒化黑火药、定装米尼线膛枪、十二磅“惊雷”野战开花重炮!
- 核心层(Cross-Attention 跨注意力火控协同 & Residual Skip Connection 残差直通指挥链):彻底砸碎北宋“文官监军、阵图束缚、层层递奏”的腐朽串行链条!建立前线热气球/千里镜观察哨($x$)越过一切腐败中间层、直达后方重炮阵地与背嵬机动旅的“残差直通车($y = F(x) + x$)”!
- 顶层输出(Linear & Softmax 温度可调战略决战):以动态火控算尺与铁甲合成旅,对女真铁浮图与拐子马实施物理法则级别的降维屠戮!
“呼——”
沈拓吹干最后一笔朱砂墨迹,将那十五页英文原版论文郑重锁入精钢密码盒,贴身收好。
就在这时,阁楼下突然传来一阵急促而沉重的脚步声!
房门被推开,太常少卿李纲连官帽都有些歪斜,手里攥着一份刚刚由枢密院快马八百里加急送抵汴京、上面还染着暗红血迹的河北军报,脸色凝重如铁地大步走了进来。
“致远!你的矩阵推演……应验了第一步!”
李纲声音沙哑,一把将那份染血的加急军报拍在沈拓的工作台上:
“半个时辰前,燕山府与平州交界处的密探拼死传回急报——金国西路粘罕(完颜宗翰)与东路斡离不(完颜宗望)已在辽西彻底击溃辽天祚帝主力!更可怕的是,金国平州守将非但没有按海上之盟约定撤军,反而突然扣押了我大宋派往平州交割粮草的使臣,并在榆关、卢龙一带大肆砍伐林木、打造攻城鹅车与渡河浮桥!”
“不仅如此,镇守燕山府的常胜军统帅郭药师,今日突然上表朝廷,以‘军士冬衣不足、粮饷不济’为由,强行扣留了朝廷派去的度支监军,并向朝廷索要五百万贯赏银与河北三镇节度使之权,言辞桀骜到了极点!”
说到这里,李纲深吸一口气,看着沈拓的眼神里充满了无以复加的敬畏与后怕:
“王黼和童贯在枢密院里吓得六神无主,还在争论要不要再给郭药师送三百万贯银子去安抚他!他们根本不知道,就在十天前的那个雪夜,你已经在那个破落小院的炭盆旁,把金军灭辽、平州伐木造桥、以及郭药师拥兵自重准备反水的每一步棋,全都用那个‘注意力权重矩阵’算得清清楚楚了!”
沈拓低头看了一眼那份染血的河北军报,眼神没有半分波动,仿佛只是看到了程序运行中一个早已预测到的日志输出。
“给郭药师送银子?那叫肉包子打狗,给完颜宗望凑南下的路费。”
沈拓平静地站起身来,一把卷起桌上那幅墨迹刚刚干透的《大宋天工总纲:万象聚焦与铁血重工架构图》,大步走向阁楼外。
“致远,你这是要去哪儿?”李纲连忙跟上。
“去宣德门!”
沈拓站在天工院最高处的观星露台上,深秋的夜风吹拂着他利落的短发与绯色官袍猎猎作响。
他抬头望向北方那片黑云压城、狼烟隐现的幽燕夜空,又低头看向脚下灯火万家、却不知灭顶之灾已在咫尺的东京汴梁城,声音铿锵如铁,字字如雷:
“官家昨天不是赐了我尚方御笔,准我在宣德门外张贴天工院训导图吗?”
“今晚,我就要把这幅脱胎于《Attention Is All You Need》的《万象聚焦架构图》,堂堂正正地贴在大宋皇城的正门——宣德门城墙上!”
“我要让满朝的滚刀肉、让潜伏在汴京暗处的辽金细作、也让北边磨刀霍霍的完颜宗翰和完颜宗望都睁大狗眼看清楚——”
“从今天起,这大宋朝堂的眼睛和耳朵,由我沈拓的多头注意力矩阵接管;这大宋边关的每一寸山河,由我天工院的焦炭高炉、无缝钢炮和千万工匠的算力来守!”
“一年之期,倒计时开始!”
“接下来,李公,请随我去皇城司——该给咱们大宋的情报网,装上位置编码(Positional Encoding)、千里镜光纤塔和八头自注意力天罗地网了!”
(第一卷 完)
继续阅读: 第二卷 →