
在 AI 系统,尤其是智能体的开发过程中,如何应对由 AI 不确定性带来的挑战,已经成为每一位 AI 软件工程师必须面对的问题。Google 的开发者推广专家 Jason 和 Aja 分享了一套简单而高效的应对方案,为这一难题提供了有益的思路。
许多人在接触非确定性系统时,首先想到的是通过参数调整来追求确定性,比如将温度(Temperature)参数设为零以期获得可预测的输出。事实上,这种做法虽然能减少输出的多样性,却也极大地压缩了系统的创造力与灵活性,甚至让输出趋于单调,丧失原本的价值。因此,更为关键的第一步应当是思考,究竟是否真的需要绝对一致的结果,还是只要合理、可接受的输出即可。绝大多数场合,工程师们真正关心的其实不是非确定性本身,而是输出质量的不稳定,以及由此带来的调试难度。
面对输出质量的波动,评估机制就变得尤为重要。通过在每个关键步骤中引入评估流程,可以有效地保证每一步的正确性。例如在一个订餐场景中,系统可以在用户信息提取、餐厅推荐、最终预订等阶段分别进行检查,确保信息提取准确、工具调用有效、候选结果合理等。若在流程中发现异常,系统可以选择自动纠错、重试,或者引入人工介入,避免错误影响后续步骤。这种“人类在环”(Human in Loop)的机制,早在传统的软件系统中就已被广泛采用,譬如代码合并冲突的人工解决,AI 系统开发同样可以借鉴这种思路。
当然,非确定性系统的最大挑战之一在于调试。由于输出存在不确定性,定位问题的难度远高于传统确定性系统。因此,完善的日志记录变得尤为重要。通过细致地记录每一步的参数、调用过程和结果,工程师能够在出现问题时迅速定位到具体环节,进而采取针对性的修正措施。许多现代开发框架已经内置了详尽的日志功能,但仍需开发者有意识地加以利用。
其实,非确定性并没有改变软件工程的基本原则。面对不可预测的输出,依然可以采用常规的异常处理、兜底机制、错误提示等方法。AI 应用的开发,本质上仍是在既有工程经验基础上的延伸,只需针对新特性作出适当调整。
综上,非确定性并不是无法驾驭的障碍。通过合理的参数设置、分阶段评估、完善的日志记录和人机协作机制,开发工程师完全可以将 AI 系统的非确定性纳入可控范围。
评论(0)