第四十一章 两份架构
白板上的等号还留着。
林知行起床的时候,阳光从窗户斜射进来,正好照在那条线上——左边"老板说的话",右边"AI能听懂的话",中间是一个等号。他盯着看了几秒,伸手摸了摸。马克笔的痕迹已经干了,但还能感觉到凹凸。
昨天苏雨晴问他这个等号是什么意思,他说:翻译不是把中文变成英文,翻译是让说中文的人和说英文的人看着同一样东西。
现在他得把这个想法变成代码。
方小满还在上铺打呼噜,声音不大,像一台老旧的打印机在缓慢吐纸。林知行轻手轻脚下了床,打开笔记本电脑,新建了一个文档。
标题:技术架构v0.1。
他开始写。
上午九点,方小满醒了,看到林知行坐在书桌前,屏幕上密密麻麻的文字和图表。
"你几点起的?"
"六点半。"
"干嘛呢?"
"写架构。"
方小满从梯子上爬下来,凑过去看了一眼,皱起眉头。"这写的啥?我看不懂。"
"技术架构。"林知行说,"把昨天的调研结果转化成技术方案。"
"转化成什么?"
"两种方案。"林知行指着屏幕,"A版和B版。"
方小满拉过一把椅子坐下,摆出一副"你说我听"的架势。
"A版是什么?"
"A版是用大语言模型做前端理解。"林知行说,"就是让AI直接理解老板说的话。比如老板说'天热了珍珠卖得好得多备点但别太多怕放坏了',大模型直接解析成结构化指令:珍珠库存+30%,但不超过当日销量的1.5倍,保质期约束保留。"
"听起来挺厉害的。"
"确实厉害。"林知行说,"如果能做成,评委会惊艳。"
"但是?"
"但是我们做不成。"林知行说,"大模型需要算力,需要训练数据,需要微调。我们的资金是847块,连租一台像样的云服务器都不够。而且时间只有两个月,从零开始训练一个模型,不可能。"
方小满点点头。"那B版呢?"
"B版是用规则引擎做模式匹配。"林知行说,"就是把老板的话拆成关键词,然后匹配预设的规则库。比如'珍珠卖得好'匹配到'库存预测','天热了'匹配到'天气因素','别太多'匹配到'上限约束'。"
"听起来像if-else。"
"就是if-else。"林知行说,"丑陋,但能在低成本下跑通。我们现有的资源够用,两个月也能做出来。"
"那就做B版呗。"
"问题是,"林知行说,"评委里有人会说'这不就是if-else吗'。"
方小满沉默了几秒。"那怎么办?"
"这就是我纠结的地方。"林知行靠在椅背上,"A版优雅但做不完,B版能跑但太丑。两条路都有硬伤。"
他转过身,继续在文档里写。方小满在旁边看了一会儿,看不懂技术细节,但看懂了林知行的眉头皱得越来越紧。
中午,林知行把两版方案都写完了。
A版十二页,B版八页。他从头到尾看了两遍,改了几个细节,然后保存。
"你打算怎么办?"方小满问。
"发给沈渡看看。"
"沈渡?"方小满愣了一下,"他不是推荐你比赛的那个人吗?"
"对。"林知行说,"他是技术大牛,做了十五年AI。我这两版方案都有问题,想听听他的意见。"
"他会回吗?"
"不知道。"林知行说,"但他之前说过,如果决定参加比赛,可以随时联系他。"
方小满没再说话。
林知行打开邮箱,写了一封邮件:
沈工您好,我是林知行。我正在准备全国AI应用大赛的参赛方案,技术架构做了两版,想请您看看。A版用大语言模型做前端理解,B版用规则引擎做模式匹配。两版都有硬伤,我拿不定主意。附件是两版方案的详细说明。期待您的指点。
他把两份文档附上,点击发送。
然后他靠在椅背上,盯着屏幕。
"他会回吗?"方小满又问了一遍。
"不知道。"
"那你觉得他会怎么说?"
"我不知道。"林知行说,"但我希望他能给个方向。"
方小满站起来,去食堂打饭了。
林知行一个人坐在宿舍里,盯着邮箱。他知道沈渡不一定马上回,甚至不一定回。但他还是盯着。
这是一种他不熟悉的感觉——等待。不是等待结果,而是等待一个他算不出来的东西。
下午三点,邮箱响了。
林知行的心跳快了一拍。他点开邮件,发件人是沈渡。
沈渡的回复很简短,没有客套:
林知行,两版方案我都看了。A版如果做成,评委会惊艳,但你两个月做不完。B版能跑,但评委里有人会说"这不就是if-else吗"。
我建议你做第三版。
用大模型做前端理解,规则引擎做后端约束,中间用你最擅长的解释层串起来。大模型负责理解自然语言,规则引擎负责业务逻辑和约束条件,解释层负责把AI的决策翻译成人类可读的语言。
这不优雅,但它解决问题。
林知行把这段话看了三遍。
第一遍,他在找技术细节。大模型做前端理解、规则引擎做后端约束、解释层串联——这个架构他见过。
第二遍,他在想可行性。大模型可以用开源的微调版本,规则引擎可以用现有的工具库,解释层是他最熟的。资源够,时间够,能跑通。
第三遍,他沉默了。
沈渡说的第三版,本质上就是他在排课系统上用过的架构。
排课系统:大模型前端理解教师约束条件,规则引擎后端处理排课逻辑,解释层把排课结果翻译成人类可读的理由。三十七个校区,零投诉。
现在这个比赛作品:大模型前端理解商户需求,规则引擎后端处理业务逻辑,解释层把AI建议翻译成商户能懂的语言。
一模一样。
他不是在做新东西,是在把旧经验抽象化。
这个认知像一颗石子投进水里,没有激起浪花,只是沉下去了。沉到某个他够不到的地方。
他想起沈渡在咖啡馆说的那句话:"你的问题拆解能力,比我见过的大多数985硕士都强。"
现在他明白了。沈渡看中的不是他的创新能力,是他把经验抽象化的能力。
这算好事吗?他不知道。
方小满打饭回来,看到林知行盯着屏幕发呆。
"沈渡回了?"
"回了。"
"说什么了?"
"他建议做第三版。"林知行把邮件内容念了一遍。
方小满听完,放下饭盒。"那不就是你之前排课系统的架构吗?"
"对。"
"那你纠结什么?"
"我不纠结。"林知行说,"我只是……"
他停顿了一下,想找一个词来形容那种感觉。
"我只是发现,我不是在做新东西。"
方小满看着他。"做新东西很重要吗?"
"不重要。"林知行说,"但有点失落。"
"失落什么?"
"我以为我在创新,结果只是在重复自己。"
方小满想了想。"知行,你记得张老板当时怎么说的吗?"
"说什么?"
"他说'我不是要最优解,我是要不出事'。"方小满说,"你的排课系统能跑通,是因为你解决了真实的问题。现在这个比赛,你也要解决真实的问题。架构是不是新的,不重要。能不能解决问题,才重要。"
林知行没说话。
方小满继续说:"而且,沈渡为什么帮你?"
"他说看好我。"
"看好你什么?"方小满说,"一个大专生的比赛作品?"
林知行转过头,看着方小满。
方小满的表情很认真,没有平时的嬉皮笑脸。"知行,沈渡是灵犀科技的创始人,做了十五年AI。他推荐你比赛,帮你递评委信息,现在又帮你改架构。他图什么?"
"我不知道。"
"那就想想。"方小满说,"他不可能只是因为看好你。这里面一定有别的东西。"
林知行沉默了。
方小满的话像一颗钉子,准确扎在了某个他一直在回避的地方。
沈渡到底想要什么?
他想起26章沈渡那句话:"机会是自己挣的。"
这句话当时听起来像是鼓励,现在听起来像是别的东西。
他打开笔记本,翻到空白页。
写了一行字:"沈渡到底想要什么?"
下面画了一个问号。
然后他把这页翻过去,开始写C版架构。
C版架构的思路很清晰:大模型做前端理解,规则引擎做后端约束,解释层做中间串联。这是沈渡建议的第三版,也是他排课系统的抽象化版本。
但这次,他要做得更通用。
排课系统是针对教育场景的定制方案,商户翻译层是针对中小商户的通用方案。底层架构可以复用,但上层逻辑要重新设计。
他打开代码编辑器,开始写。
第一个模块:自然语言理解层。用开源的大语言模型,微调一个专门理解商户需求的版本。输入是老板的话,输出是结构化的需求描述。
第二个模块:业务逻辑引擎。用规则引擎处理六种模式——库存预测、客户画像、定价策略、排班优化、营销文案、异常报警。每种模式对应一套业务规则。
第三个模块:解释层。把AI的决策翻译成商户能懂的语言。不是技术术语,是"因为你上周三矿泉水卖了48瓶,而平时只卖20瓶"。
三个模块,三层翻译。
林知行写了一个小时,写了大概五百行伪代码。他停下来,看了一眼窗外。天已经黑了,宿舍楼的灯光一格一格亮起来。
方小满在上铺刷手机,偶尔笑出声。
林知行转过头,看着笔记本上的那行字:"沈渡到底想要什么?"
问号还在那里,像一个没有闭合的括号。
他不知道答案。
但他知道,这个问题不能用算法求解。
他合上笔记本,关掉电脑,躺在床上。
窗外商业街的霓虹还在闪,像昨天一样。但他脑子里想的不是奶茶店老板娘,是沈渡。
沈渡说"机会是自己挣的"。
沈渡说"你的问题拆解能力比我见过的大多数985硕士都强"。
沈渡说"我建议你做第三版"。
每一句话都像是在帮他。
但为什么帮他?
他想起父亲说的"车到山前必有路"。
路是出现了。
但修路的人,图什么?
他闭上眼睛,脑子里还在转。
明天要继续写C版架构,要把三个模块的接口设计好,要把数据流理清楚。一天一天来,先走,再算。
但有一个问题,他算不清。
那个问题叫沈渡。
(本章完)