第二百三十四章 约束的重量
程浩的技术文档是周六上午到的。
一份加密压缩包,密码单独发来,附了一句:"看完了删。这是我的底线。"
压缩包里四个文件:系统架构图、技术白皮书、接口文档、数据流向说明。林知行泡了杯茶,打开架构图。
三层结构。底层数据采集,从商户POS、商圈客流、天气API、竞品价格库抓取实时数据。中间推理引擎,把原始数据转化成定价建议。顶层执行层,推送到价签系统。标准的工业级设计。
他的目光落在中间那层。
推理引擎的模块依赖关系图里,特征提取器、多维交叉分析器、上下文感知权重计算器——命名方式、参数结构、数据流走向,和credit-score-lite有超过七成相似。他把两份架构图并排放在屏幕上,模块之间的连接关系几乎一致,数据流转的箭头方向都没变。
唯一的区别:他的版本叫"decision_log"的地方,智领科技的版本叫"price_signal_amplifier"。
决策日志。他在开源版本里设计的核心功能——每条AI建议附带人类可读的解释,让用户看到AI为什么这么定价。
在智领科技的版本里,这个模块被替换成"价格信号放大器"。
不是删除。是替换。
他们保留了决策日志的骨架——数据输入、特征提取、权重计算、结果输出——但把"输出人类可读解释"的功能改成了"输出更激进的价格策略"。原本用来说话的嘴,被改造成了咬人的牙。
白皮书里有一段让他停了很久:"本系统通过竞争态势感知模块自动识别目标商户的优势品类,生成针对性的价格优化策略。从竞品价格变动到系统价格调整的延迟不超过15分钟。"
翻译成人话:你的店什么东西卖得好,它十五分钟就知道了。然后专门针对你卖得好的东西降价。
这就是王老板看到的。砂糖橘卖得正旺,鲜时达的砂糖橘就便宜两毛。
白皮书的技术路线图更刺眼。v3.0标注着"引入业界先进的可审计推理架构"。
可审计推理架构。赵鸣岐提出的概念——AI的每一个决策都可以被追溯、被质疑、被纠正。林知行把它写进了开源版本。
智领科技拿走了这套架构。但只拿走了"推理"的部分。"可审计"在他们的版本里变成了"高效"。
两个字的差别。一个是"AI的决策可以被追问为什么"。另一个是"AI的决策更快更准,你不需要知道为什么"。
数据流向说明更直白——数据进来,价格出去,中间一个黑箱。决策日志在他们的版本里完全不存在。
他们拆掉了算法的良心。不是粗暴删除,是精准手术——切掉负责"说为什么"的神经,保留负责"做决定"的肌肉。
林知行关掉所有文件,在桌面上新建文本:
借势路径:
1. 保留推理架构
2. 删除决策日志
3. 替换目标函数(从"帮助用户做决策"→"利润最大化")不是谁都可以用。是谁都可以拆。
周日上午十点,会议室。
白板干净,投影仪开着。三页PPT:架构对比图、借势路径分析、第三页只有一行字——"伦理约束层方案提案"。
方小满坐在长桌左侧,赵鸣岐在右侧,笔记本屏幕上是原始技术文档。程浩远程接入,头像在屏幕右下角,背景是一面白墙。陆可盈在左下角,面前放着咖啡。
"先说结论。"林知行站在白板旁边,拿起黑色马克笔。"智领科技的定价系统,核心推理架构来自credit-score-lite。不是抄,是拆——保留了数据推理,删掉了决策日志,把目标函数从'帮用户做决策'改成'利润最大化'。"
他在白板上画了对比图。
"方案:在开源算法中加入伦理约束层。基于赵鸣岐的可审计AI,在推理引擎的决策逻辑里嵌入规则检查模块——当定价策略指向'围剿'而非'优化'时,算法自动降级,输出警告而非建议。"
方小满第一个开口。
"你这个方案,是在给开源代码加锁。"
语气不重,但每个字都带着态度。
"开源的意义是什么?是任何人可以自由使用、修改、分发。你在代码里嵌入约束层,等于告诉用户:你可以用,但只能按我的规矩用。这还叫开源?"
他停了一下,继续说:"社区会怎么想?你README里写的'free to use for everyone',现在要改成'free to use, but only if you behave'?四千多个star,一半会变成骂你的issue。开源代码加锁,等于免费公园装了收费闸机——公园还是那个公园,但性质变了。"
赵鸣岐开口了。
"技术上可行。"
方小满停了下来看他。
"在推理引擎的决策逻辑里嵌入规则检查模块,当目标函数的梯度方向指向'价格低于成本线'或'连续降价超过阈值'时触发拦截,工程上做得到。"
他顿了一下。
"但前提是——约束规则需要人工定义。"
他把笔记本屏幕转过来。上面是一段伪代码:
function ethics_check(pricing_strategy) {
if (pricing_strategy.margin < THRESHOLD_A) return WARN;
if (pricing_strategy.price_drop_rate > THRESHOLD_B) return BLOCK;
if (pricing_strategy.competitor_impact > THRESHOLD_C) return WARN;
// THRESHOLD_A, B, C 由谁定义?
}"三个阈值。利润率的安全线、降价速度的红线、对竞争对手影响的警戒线。"赵鸣岐说。"定太低,约束形同虚设。定太高,正常促销也会被误判为围剿。便利店打八折和连锁品牌系统性压价,在算法眼里可能长得一模一样。你怎么区分?"
程浩的声音从扬声器里传出来,音质有点糊,语气很清楚。
"林知行,你不可能控制别人怎么用你的代码。"
这句话他两个月前说过,一字不差。
"代码开源了就不属于你。你在代码里加约束层,别人fork一个版本把约束层删掉,十分钟的事。"
林知行说:"我知道。但至少——"
"至少什么?"程浩打断他。"至少你做了?这是安慰剂。你加一把锁,但给全世界都发了钥匙。再说,代码是刀,你把刀递出去了,不能怪别人拿它砍人。现在你想在刀上加保险栓——已经握在别人手里的刀,你怎么加?"
方小满微微点头。赵鸣岐低头打字,没表态。
陆可盈这时候开口了。声音比程浩更清晰,带着做投资汇报时的平稳。
"我从商业角度说。我们的产品和智领用同一套底层算法,区别在于我们有决策日志和可审计性。这是差异化优势。"
她停了一下。
"但如果你在开源版本里加约束层,等于告诉所有人:这套算法有风险,不做约束会伤害人。客户不会想'至简有责任感',他们会想'原来这东西有危险'。你在给自己的产品贴危险标签。"
她端起咖啡喝了一口。
"更直接的问题——约束层如果导致算法比竞品慢,或者拒绝执行正常商业策略,客户会流失。投资人投的是可规模化的技术壁垒,不是情怀。B轮前置条件里没有'伦理约束层'。"
四个人的话都完了。
会议室安静下来。投影仪风扇嗡嗡响。
林知行站在白板旁边,手里握着马克笔。
他想反驳方小满——开源代码加锁,社区不会接受。他想反驳赵鸣岐——阈值由谁定义,他答不了。他想反驳程浩——递出去的刀加不了保险栓。他想反驳陆可盈——给产品贴危险标签,客户不会买单。
四条反对,每一条都站得住脚。
会议十一点二十分结束。方小满走的时候拍了拍他的肩。赵鸣岐在门口点了个头。程浩的画面先暗了。陆可盈最后消失——关摄像头前看了他一眼,不是同情,是"你听懂了没有"的确认。
门关了。
林知行在长桌旁坐下来,看着白板。
白板左边是架构对比图——credit-score-lite和智领科技的版本并排。右边是他写的"伦理约束层方案提案",下面空白。
他在白板右下角写了几个字:
function ethics(algorithm, use_case) {
if (use_case.harms_small_business) return warn();
// 谁来定义 harms_small_business?
// 什么是 harm? 多大的 harm 需要 warn?
// warn 了谁听? 听了谁改? 改了谁执行?
}六个问号。定义问题、程度问题、执行问题、意愿问题、监督问题、权力问题。
这不是代码。这是一个哲学问题的伪代码形式。
他想起排课系统时期——系统给怀孕的女教师排了满课表,他在架构图上加了"人工审核层"。那时候的问题简单:数据不全导致错误决策,加一层人工审核就行。
但现在的问题不简单。
智领科技的定价系统数据维度比他还丰富——POS、客流、天气、竞品价格,一样不少。系统做出的决策不是因为数据不全,是因为目标函数本身就是利润最大化。
人工审核层解决不了这个问题。审核标准本身就是模糊的——什么叫"不公平定价"?便利店把苹果从六块降到五块五,是促销还是围剿?答案取决于你是便利店老板,还是水果店的王老板。
从始至终,他一直在用算法思维面对这件事——把伦理约束层当成一个技术方案设计,像当年设计排课系统的约束满足问题。列变量,设约束,求最优解。
但这个问题没有最优解。
"谁来定义善恶"不是算法能解的问题。方小满站在开源社区的立场说不能加锁,赵鸣岐站在技术审慎的立场说阈值谁来定,程浩站在代码自由的立场说递出去的刀加不了锁,陆可盈站在商业回报的立场说不要贴危险标签。
四个人都没错。
但王老板的客流确实在掉。
林知行站起来,走到窗边。中关村的街景从十八楼看下去,行人像点,车流像线。每个节点都在执行自己的路径函数,每个节点的优化目标都不一样。有些节点的利润最大化,建立在另一些节点的存亡之上。
他回到白板前,在"伦理约束层方案提案"下面写了一行字:
"不是技术方案。是选择。"
然后擦掉白板,关了投影仪,关了灯。
走廊灯光从门缝漏进来。他走到自己的工位坐下。桌上摆着王老板那封信的复印件,信纸右下角有一块水渍。旁边是K572时刻表,红色圆珠笔画的圈还在。
一个是代价的证据,一个是出发的GPS。
他打开笔记本,翻到高铁上写的那页——"想法。行动。代价。"
在下面加了第四行:"定义。"
想法有了。行动在试。代价看到了一部分。定义——他还不知道。
谁来定义什么是善,什么是恶?什么是伤害,什么是保护?算法给不了答案。人也许同样给不了。
但他至少可以问。
林知行拿起手机,找到姜意的微信,打了两行字又删掉。最后只发了一句:
"在吗?有个事想跟你聊聊。"
姜意秒回:"说。"
他把手机扣在桌上,靠在椅背上。
有些问题需要先想清楚才能问出口。但他此刻唯一确定的是——这个问题,他不想一个人想。
(本章完)