大语言模型(LLM)本质上具有非确定性特征。本文将探讨如何为生成式AI工作流注入确定性元素。
随着生成式AI技术日益融入软件产品和业务流程,这些系统和流程也开始呈现出LLM的特性:可靠性降低、非确定性增强,偶尔会出现错误。LLM从根本上说是非确定性的,这意味着相同的输入可能产生不同的输出。如果使用推理模型和AI代理,早期错误可能会在后续步骤中被放大。
"任何概率模型都难免会出错,"LinearB首席运营官Dan Lines表示,"缺乏完善世界模型所导致的不一致性,将始终存在于我们使用的系统和推理过程中。"
这种非确定性是LLM的特性而非缺陷。我们希望它们是"造梦机器",能创造新颖惊喜的内容。本质上它们就是不一致的——相同的提示输入十次,会得到十个不同的回答,每个回答都带着统计模型特有的确定性。当这些新内容事实错误时,就产生了问题。而大多数LLM的工作原理使得很难理解错误原因并进行修正。
对企业级软件而言,这种情况是不可接受的。付费客户需要可靠的结果,需要系统能优雅处理失败而不重复扣款或提供矛盾结果,需要可审计的执行轨迹和问题诊断能力。
"预测系统行为变得非常困难,"Jetify CEO Daniel Loreto指出,"需要特定工具和流程来确保系统按预期运行。"本文将探讨一些可能为生成式AI工作流注入确定性的技术方案。
企业应用成败取决于建立的信任。对生成式AI流程而言,准确性成为新的挑战。"真正的成功案例多是那些出现几分钟故障或小安全漏洞影响不大的应用,"Sonar CEO Tariq Shaukat表示,"银行代码中的幻觉问题显然比儿童网页应用严重得多。"
应对幻觉的常规方法是通过检索增强生成(RAG)将回答基于事实信息。但即使RAG系统也可能产生幻觉。"即使经过基础训练,每20个输出token中可能就有1个完全错误或无关,"GenAI平台Vectara CEO Amr Awadallah指出,"Google Gemini 2.0将幻觉率降至0.8%-0.9%已是突破,但很多领域连0.5%的错误率都无法接受。"
需要在提示和响应环节设置额外防护栏。由于LLM能接受任何文本提示并返回训练数据范围内的任意内容,当训练数据包含大量开放网络信息时,模型可能输出不当内容。虽然可以通过微调消除有害响应或过滤个人身份信息(PII),但总有意外情况。
"需要防止越狱等行为,"IBM watsonx.ai产品负责人Maryam Ashoori表示,"在数据传入LLM前设置输入防护栏,输出端同样需要过滤仇恨言论、辱骂内容、PII和越狱尝试。但不能过度过滤,否则模型将无内容可输出。"
提示端过滤是防御,输出端过滤则是预防事故。提示可能并非恶意,但数据本身可能有害。"从LLM返回时需要数据过滤、防泄露和掩码控制,"Solo.io产品负责人Keith Babo举例,"如果询问'关于Ben的三个趣事',响应可能包含社保号码这类敏感信息。"
引入代理后问题更复杂。能使用工具的代理一旦产生幻觉,可能采取实际影响用户的行动。"我们都听过代理失控的故事,"Salesforce开发者关系副总裁Christophe Coenraets说,"防护栏能确保代理不越界,定义其行为参数。"
某种程度上,代理展示了降低LLM非确定性的方法:限制其能力范围。"如何提高代理可靠性?"Orkes CEO Jeu George反问,"有些环节本质就是确定性的,比如发送邮件或通知。应该选择性使用LLM擅长的事项。"
但总有防护栏失效的时候。这时就需要观察问题所在的能力。
传统计算的可观测性关注日志、指标、堆栈跟踪等。但在LLM领域,情况更加复杂。"我习惯使用CI/CD等所有工具,"Alembic CTO Abby Kearns表示,"现在却要实时为机器学习负载重建这些工具,实在令人困惑。"
除标准软件指标外,实时获取等效性能指标很困难。可以通过Hugging Face等平台的排行榜获取幻觉率、事实一致性、偏见和毒性等聚合指标。但这些指标对实时场景帮助有限,仍需依赖概率防止生成式AI应用输出不当内容。
这时就需要LLM版的日志系统。"需要建立记录系统,"Loreto建议,"能查看每个会话中用户输入内容、系统生成的实际提示、LLM响应等每个步骤数据,形成分析数据流和步骤的习惯。"
也可以使用其他LLM评估输出来生成上述指标("LLM即裁判"方法)。虽然类似学生自评考卷,但使用多个不同模型能提高输出可靠性。"就像多人辩论能提升认知水平,多个代理交互也能产生更可靠输出,"Alexi CEO Mark Doble解释。
代理和思维链模型能让LLM内部工作更透明,但幻觉等错误也可能被放大。虽然Anthropic等机构在研究LLM思维解读,这个过程仍不透明。"思维链方法将提示分解逐步解决,"Ashoori介绍,"每个步骤节点都可以用LLM作为裁判评估效率。"
但LLM可观测性远未成熟。思维链方法本质是改进LLM日志记录。"分词方式如何影响输出?注意力机制如何理解?结果可解释性存疑,"Holistic AI转型负责人Raj Patel指出,"目前大量资源投入输出测试,只要输出令人满意就可以投入生产吗?"
生成式AI最有趣的部分是能带来无限小惊喜,但当企业软件需要可靠完成任务时,这种特性就令人头痛。为AI工作流添加越多确定性越好。
生成式AI工作流日益依赖API和外部服务,这些服务本身可能不可靠。工作流中途失败意味着重新运行提示可能得到完全不同响应。"停机一直都有成本,"DBOS CEO Jeremy Edberg表示,"但AI的非确定性使其更为关键。AI流水线需要清洗海量数据。"
这类工作流中的故障比传统面向服务架构代价更高。生成式API调用按token计费,失败也产生费用。代理和思维链过程可能使用网络数据进行推理时处理,失败会付费却无产出。"LLM可能不稳定,"DBOS联合创始人Qian Li指出,"不仅会返回失败,还会限速。LLM API通常限制每分钟调用次数。"
可以使用持久化执行技术保存工作流进度。"就像应用程序的检查点,"Li解释。当生成式AI应用或代理处理提示、推断数据或调用工具时,持久化工具会存储结果。"已完成并记录的调用不会重复,"Temporal联合创始人兼CTO Maxim Fateev强调。
工作原理类似游戏自动保存。"我们使用数据库存储执行状态并实现幂等性,"Li详细说明,"每个工作流启动时存储记录,执行每步前检查是否已完成。通过数据库查询和状态检查点,可以确保所有调用精确执行一次。"
另一种提高确定性的方法是不要滥用LLM。当前LLM热潮下,有些场景并不适合使用。"构建代理时,有些环节本质就是确定性的,"George指出,"发送邮件或通知这类操作,如果已有API就不需要代理处理。"
在生成式AI普及的时代,可以通过标准化流程稍微提高LLM的可靠性:净化输入输出、尽可能多地观察流程、确保流程只执行一次。生成式AI系统非常强大,但也带来复杂性和风险。
对个人程序而言,这种非确定性可以忽略。但对重金购买的企业软件则不然。最终,软件能否兑现承诺决定企业声誉。当潜在客户比较功能相似的产品时,声誉成为关键因素。"信任需要多年建立,几秒就能摧毁,却要很长时间才能恢复,"Patel总结道。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。