跳到主要内容

17 篇博文 含有标签「llm-engineering」

查看所有标签

合成训练数据质量崩溃:反馈循环如何摧毁你的微调模型

· 阅读需 12 分钟
Tian Pan
Software Engineer

你使用 GPT-4 生成了 50,000 个合成的指令遵循示例,在这些示例上微调了一个较小的模型并将其部署,结果看起来非常棒。六个月后,你的团队重复了这一过程——只不过这次为了节省成本,你使用微调后的模型来生成示例。第二个模型的评估结果略低,但在噪声范围内。你以同样的方式微调了下一个版本。到第四次迭代时,你的模型输出呈现出一种奇怪的同质化。用户反馈它听起来像机器人。它在处理任何不符合狭窄模板的内容时都显得很吃力。你最强大的微调模型已经变成了最糟糕的一个。

这就是模型崩溃(model collapse)——当大语言模型(LLM)使用其他 LLM 生成的数据进行训练时,会发生渐进式的、自我强化的退化。这并非理论上的风险。它是一种有据可查的故障模式,具有可衡量的机制,并且越来越有可能影响那些在没有仔细思考反馈动态的情况下就将合成数据生成常态化的团队。

为智能体编写工具:ACI 与 API 同等重要

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数工程师对待智能体工具的方式与编写 REST 接口或库函数如出一辙:清晰地暴露功能、记录参数、处理错误。这对人类来说是正确的直觉。但对于 AI 智能体(AI Agents)来说,这完全是错误的。

智能体使用的工具是以非确定性的方式被消耗的,它被逐个 Token 解析,并由一个对上周二使用过什么工具没有持久记忆的模型来选择。你编写的工具 Schema 并不是文档——它是运行时提示词(runtime prompt),在推理时被注入到模型的上下文中,塑造着智能体做出的每一个决策。每一个字段名称、每一段描述、每一个返回值的结构都是一个设计决策,具有可衡量的性能影响。这就是智能体-计算机接口(ACI,Agent-Computer Interface),它值得你像对待任何关键的面向用户的界面一样投入工程精力。

为什么你的 AI Agent 应该编写代码而不是调用工具

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数 AI 智能体之所以昂贵,是因为一个细微的架构错误:它们将每一个中间结果都视为要反馈给模型的消息。每一次工具调用都变成了 LLM 上下文窗口的一次往返,而当一个中等复杂度的任务完成时,你已经为处理相同的数据支付了五次、十次、甚至二十次的费用。一个在三个分析工具之间传递的 2 小时销售录音,可能在路由上就花费你 50,000 个 token —— 而这还不是为了分析,仅仅是为了路由。

有一种更好的方法。当智能体编写并执行代码而不是逐个调用工具时,中间结果会保留在执行环境中,而不是上下文窗口中。模型看到的是摘要和过滤后的输出,而不是原始数据。这种差异不是渐进式的 —— 在实际工作负载中,token 消耗量减少了 98–99%。

AI 智能体是如何随时间真正学习的

· 阅读需 9 分钟
Tian Pan
Software Engineer

大多数构建 AI 智能体的团队都将模型视为固定不变的产物。你选择一个基础模型,编写提示,连接一些工具,然后发布。如果智能体开始出错,你会调整系统提示或切换到更新的模型。在这种框架下,学习发生在“上游”——在 AI 实验室中,在预训练和 RLHF 阶段——而不是在你的技术栈中。

这是一种错误的思维模型。随着时间推移而改进的智能体,是在三个不同的架构层面上实现这一点的,其中只有一个层面涉及修改模型权重。了解这一区别的团队能够构建出质量持续提升的系统;不了解的团队则会不断手动修补相同的故障模式。

生产环境中的 AI Agent 自主性度量:数据实际揭示了什么

· 阅读需 8 分钟
Tian Pan
Software Engineer

大多数构建 AI Agent 的团队花费数周时间进行部署前评估,却几乎不测量 Agent 在生产环境中实际的行为。这正好本末倒置了。真正重要的指标——Agent 无监督运行的时长、寻求帮助的频率、承担的风险程度——只有在运行时,跨越数千个真实会话之后才能浮现。不去衡量这些,等于盲目飞行。

一项针对数千次生产部署和软件工程会话的大规模研究,揭示了一些真正令人意想不到的发现。呈现出来的图景,与大多数构建者的预期大相径庭。