打开网易新闻 查看精彩图片

一个通过基准测试的AI人性化管道,DPO分数漂亮,日语句号bug已修,却在真实文本对比时暴露了致命伤——它给商务邮件和闺蜜聊天塞了同一套口头禅。

这是我亲手写死自己项目的故事。

「能跑就行」的代价

「能跑就行」的代价

human-persona的core/目录里躺着四个组件:TimingController(时机控制器)、StyleVariator(风格变体器)、EmotionStateMachine(情绪状态机)、ContextReferencer(上下文引用器)。这套框架本可以跨语言、跨文化地模拟人类沟通。

某天我决定把它落地。三小时写出了humanize/pipeline.py——一个后处理管道,三阶段:填充词注入、错别字注入、节奏变化。代码干净得像瑞士钟表:

先拆分句子,再按概率塞"Actually"或"说实话",随机制造"ですが"变"でうすが"的手滑,最后插入短评句调节长短。强度参数0.4,一键出活儿。

我修了日语双句号bug,跑完benchmark,数据漂亮。直到我把Before/After样本并排摆开——商务邮件、 casual闲聊、正式合同,三种语境被喂了同一套填充词、同一套错别字率、同一套节奏模板。

语言学里的语域(register)概念,管道完全无视。"To be honest"放商务邮件是得体,塞合同里是要命,丢闺蜜聊天里又太端着。一个参数走天下,本质是偷懒。

日语敬语的三层地狱

日语敬语的三层地狱

打开网易新闻 查看精彩图片

更隐蔽的炸弹在日语里。敬语分三层:尊敬语(sonkeigo,抬高对方)、谦让语(kenjougo,压低自己)、礼貌语(teineigo,基础客气)。

pipeline.py用单个标量formality_default: 0.7打发了这一切。它分不清"対応いたします"(得体谦让)和"対応させていただきます"(过度谦卑到别扭),也选不对"ご検討くださいませ"(尊敬)和"検討します"(仅礼貌语)。

任何母语者一眼就能察觉的违和感,被0.7这个数字轻轻盖过。

讽刺的是,core/base_persona.py里早就埋了解法:emotion update → generation → style variation → context reference → ambiguity handling的完整链路。我写的pipeline.py是条绕过所有设计的捷径——因为"想快点出个能用的"。

三阶段后处理器比理解核心架构快,这是事实。快出来的东西正在系统性破坏语境,这也是事实。

冻结代码的那个下午

我提交了freeze commit。不是删除,是冻结——留个墓碑,提醒自己"能跑就行"的毒性。

这个决定背后有个更硬的逻辑:AI人性化的敌人从来不是技术难度,而是对"足够好"的误判。0.4的强度参数在benchmark里漂亮,是因为benchmark不测语境错配;DPO分数高,是因为DPO不考敬语三层。

真正的人性化需要语域感知、文化粒度、实时语境判断。这些feature不是"加个if语句"能解决的,它们需要被设计进架构底层,而不是事后打补丁。

打开网易新闻 查看精彩图片

我回头看了眼core/目录里的四个组件。TimingController本可以判断什么时候该停顿、什么时候该推进;StyleVariator本可以切换正式/商务/casual/friendly模式;EmotionStateMachine本可以跟踪对话情绪曲线;ContextReferencer本可以召回前文避免重复填充词。

pipeline.py把它们全绕过了,用正则表达式和随机数 generator 交差。

一个未完成的实验

一个未完成的实验

现在humanize/pipeline.py躺在仓库里,状态frozen。偶尔有新同事问"这个能直接用吗",我指给他们看commit message:"Frozen due to register-agnostic design flaw. See issue #47."

Issue #47至今开着。标题是"Re-design with core/ architecture integration",描述栏只有一句话:"需要把语域检测、文化特定规则、动态强度调整塞进管道,而不是挂在管道外面。"

没人认领。优先级永远被"先出个能用的"挤掉——和我当初一样。

上周产品会上有人提议:"要不我们把pipeline.py放出来当轻量版?很多人其实不需要那么精细。"我投了反对票。不是傲慢,是记得那些Before/After样本摆在一起时,自己后颈发凉的感觉。

粗糙的AI人性化比没有更危险——它让用户误以为自己在和真人对话,却在敬语层数、语域边界、文化暗码上持续暴露机器底色。

冻结代码那天,我在注释里写了行小字:"Fast path to human-like is a trap. The slow path through core/ is the only path." 现在每次路过那行代码,都想问问三个月前的自己:如果当时多花两天理解架构,能省掉后面多少返工?

以及——你们仓库里,有没有躺着类似的"能跑就行"的遗产?