别用英语和你的大语言模型说话

仅仅因为大语言模型(LLMs)能流利地使用自然语言,并不意味着我们应该总是用自然语言和它们交流。

当涉及到重要的流程时,人类之间自己也不会用自然语言来沟通。经验表明,缺乏结构,流程就无法扩展。表格这种东西在计算机出现之前就已经存在很久了。

大语言模型在自然语言方面的流畅性,对于交流和弥合许多集成问题中的模糊地带很有价值 。但同时,它也可能是一种干扰 ,不应该让我们在设计基于 LLM 的系统时变得懒惰

澳大利亚联邦银行(Commonwealth Bank)的布莱尔·哈德森(Blair Hudson)提出,第一波生成式 AI 的应用之所以部分失败,是因为它过度依赖于"聊天"(Chat)这种形式 。尽管 ChatGPT 是历史上增长最快的消费者应用,但它为大多数企业对底层技术的应用指明了错误的方向

世界各地的团队之所以构建聊天界面,是因为它们通用且能快速原型设计。其中少数界面最终转化成了产品。

但大多数都没有

在我看来,聊天界面之所以使应用采用率停滞不前,是因为工作本身并不是在聊天界面中完成的 。你不能通过一个聊天窗口来运营一家医院、管理一家零售店,或是管理一条供应链。对于大多数工作而言, "聊天"是一种错误的抽象方式。它确实释放了某些能力,但真正的生产力需要更多东西。

错误的界面无疑是一个因素。但更重要的是缺乏结构

人类不会通过文字来运营医院。他们会从多个来源获取和更新结构化信息 ,因为他们知道结构能使流程更安全、更可预测。他们不希望监测器显示"金姆的血压一天大部分时间都稳定,除了上午晚些时候有个峰值"------他们希望能够查看图表 并在发生危机时收到警报 。医生在撰写病历时会包含自然语言,但会尽可能多地使用结构化数据:每种药物的毫克数;体温、血氧饱和度和其他读数。即使是像病人情绪这样的主观信息,也通常用结构化的问卷和量表来表达,以便于比较。


自然语言的成本

虽然诱人,但过度依赖自然语言 的生成式 AI 应用会带来高昂的成本。它能在短期内快速产生令人印象深刻的结果,但以牺牲未来的问题为代价

自然语言是不透明的(opaque)。 很难对其应用工具。搜索是不精确的,即使使用了昂贵的向量嵌入(vector embeddings)也是如此。LLM 的理解能力并非完全可信 ,并且会增加更大的延迟和成本 。构建精确 RAG(检索增强生成)系统的难度就证明了这些问题。此外,当所有信息都是自然语言时,在代码中执行某些步骤也很困难------而我们肯定希望这样做,因为执行代码永远比使用 LLM 更便宜、更具确定性

自然语言也是模糊的(ambiguous) ------这也是编程语言存在的原因之一。

传统的软件产物,如对象(objects)数据库行(database rows) ,在解决许多对业务应用很重要的核心问题上,具有远超自然语言的优势,例如:

  • 搜索: 如果我们知道一个相关的 ID,我们就能确定找到所需信息,或确定我们没有它(后者尤为重要)。如果我们有结构化数据,我们可以高效地查询它,并利用适当数据库的丰富能力来考虑关系。
  • 变更追踪: 我们引入的结构越多,观察变更的成本就越低,准确性就越高。例如,我们可以检测对象图中的变化,或使用触发器来观察数据库中细粒度的变化。
  • 安全、选择性共享: 我们可以确定模型中哪些部分是安全的,可以与信任度较低的各方共享。

在构建生成式 AI 应用时,当可以采用结构化方式时却退回到使用自然语言,是一种懒惰的选择。它节省了前期的时间,但却为将来埋下了问题。

好的,那么需要什么样的结构呢?

如果我们确实需要结构,应该从哪里寻找呢?

大语言模型(LLMs)并不太关心我们使用哪种格式。基于大量的训练曝光,它们可以轻松理解 JSON、XML 和其他常见格式

更有意思的问题不在于表现形式 ,而在于我们如何填充这些结构

对于商业应用而言,答案是显而易见的,但在许多关于生成式 AI 的文章中却奇怪地被忽视了在可能的情况下,我们应该使用那些已经存在并反映领域理解的结构。

领域集成(Domain integration)是至关重要的。在可能的情况下,我们应该利用 LLM 来说出我们领域(Domain)的语言,而不是自然语言。

许多最有价值的生成式 AI 应用将从现有的业务应用中成长出来 ,而非完全是全新的。这些应用将借鉴现有的领域模型和基础设施,因此会更加健壮和实用。

JVM 的优势

这就是企业 Java 生态系统大放异彩的地方。几十年来,Java 开发者一直擅长于生成式 AI 应用所需的核心能力:领域建模(domain modeling)、类型安全(type safety)和结构化数据处理。

虽然 Python 框架与现有企业系统相距甚远 ,并倾向于将所有数据视为字符串(strings)和字典(dicts),迫使你用脆弱的代码处理 LLM 输出;但基于 JVM 的方法则可以利用:

  • 强类型(Strong typing): 你的 LLM 输出可以直接反序列化为领域对象。
  • 现有领域模型: Spring Data 实体、JPA 模型------数十年的领域知识已经通过代码捕获
  • Bean Validation (JSR 380): 对 LLM 输出进行结构化验证,而非凭空猜测。
  • 久经考验的基础设施: 你现有的 Spring Boot 配置、持久层和企业集成。

不要偷懒

如果你正在构建任何任务关键型 的生成式 AI 应用,请不要偷懒。像你在任何应用中一样对领域进行建模 。更好的是,使用现有的领域模型 。引入使企业系统可靠的工程规范。这样一来,你的应用将更安全、成本更低、更可预测。

如果你正在使用 JVM ,你已经处于领先地位 。你拥有工具、模式、基础设施,以及一个丰富的代理框架 Embabel。不要仅仅因为 LLM 擅长英语就放弃你的优势。

相关推荐
陈随易3 分钟前
bun将会支持Bun.image,你怎么看?
前端·后端·程序员
jingqingdai320 分钟前
别用正则格式化 HTML!我用 DOM 遍历实现零风险本地格式化,老项目重构效率直接拉满
前端·重构·html
木斯佳22 分钟前
前端八股文面经大全:腾讯前端实习二、三OC面(2026-04-27)·面经深度解析
前端·状态模式
Python私教35 分钟前
如意Agent日志系统重构:从 print() 大海捞针到结构化可观测性栈
java·前端·重构
We་ct1 小时前
LeetCode 97. 交错字符串:动态规划详解
前端·算法·leetcode·typescript·动态规划
Chengbei111 小时前
轻量化 Web 安全日志分析神器 星川智盾日志威胁检测、地理溯源、MITRE ATT&CK 映射,支持 Windows/macOS/Linux
前端·人工智能·安全·web安全·macos·系统安全·安全架构
风流 少年1 小时前
Python Web框架:FastAPI
前端·python·fastapi
GISer_Jing1 小时前
AI时代面试新常态——从“会用工具”到“深挖原理”的跨越
前端·人工智能·ai编程
IT_陈寒1 小时前
React的useEffect把我坑惨了,这些闭包陷阱真要命
前端·人工智能·后端