你问AI一个简单问题,它回你三段排比、五个比喻,外加两句"值得注意的是"。这不是贴心,是话痨。更麻烦的是,话越多,瞎编的概率越高——每多一句,就多一分脱离事实、开始"创作"的风险。

这篇文章介绍了一套用Python实现的"复杂度预算"机制:给大模型回复设一道 readability 红线,超标就重写。核心工具是 Textstat 库,它能算出一段文字的 ARI 指数(Automated Readability Index),也就是读懂这段文字需要的受教育年限。比如 10.0 对应美国十年级水平,大约高一。

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

具体做法很直接。先用 Textstat 给模型回复打分,如果 ARI 超过预设阈值(比如 10.0),就自动触发重提示(re-prompting),要求模型精简。这套流程可以嵌进 LangChain 管道里跑,作者在 Google Colab 里做了完整演示。你需要一个 Hugging Face 的免费 API token,在 Colab 左侧 Secrets 里存成 HF_TOKEN 就行。

安装依赖只有三行:

!pip install textstat langchain_huggingface langchain_community

代码先从 Colab 的 Secrets 里取 token,验证通过后进入主逻辑。作者强调这部分是 Colab 专用,换环境要自行调整。核心思路是把 readability 检查做成一个可复用的 guardrail:不是事后审稿,而是实时拦截——太复杂就退回去重写,直到达标或达到重试上限。

这套机制针对的是 LLM 训练里的一个固有倾向:它们被优化得"尽可能有帮助、尽可能对话感",结果就是容易铺陈过度。而 verbosity 和 hallucination 的相关性,业内已有不少讨论——生成空间越大,事实锚定越松。用复杂度预算压缩生成空间,相当于逼模型"没话找话"的余地变小,只能紧扣已知信息。

当然,ARI 只是 readability 的一个维度。实际部署时,阈值设多少、重试几次、要不要结合其他指标(比如语义一致性检测),都得看场景。但至少,这提供了一种可量化的控制手段:不是凭感觉说"太长了",而是用 grade level 画一条线。