水野空生
25-10-10 15:43 微博认证:科技博主

在 ai 工程领域,eval 几乎是每个产品在开发周期时不可或缺的环节,传统的软件程序是确定的,换句话说,工程师可以仅看程序就肯定输入会有什么对应的输出,但是由于 ai 模型的输出是 non-deterministic,所以现在诸位给定某个输入后,没办法只看程序就能确定 ai 会给出什么输出,在这个前提下,传统的软件测试 ,例如单元测试,整合测试,e2e测试将没办法百分百保证产出是否会如预期。但在把 ai 加到软件产品后,团队仍需要判断新加入的改动是否有达到理想的成果,那在这种状况下就需要有一个不同的机制来确保跟 ai 部分有关的改动后,有让产品变得更好,在业界这件事被叫 evals,来自 evaluations 的缩写,直译的话是评估机制,
󠀠
具体来说评估机制是什么呢,假如要用一句话来描述,评估机制就像给 ai 端到端测试,根据预先定义的标准来评估输出品质,对于评估 ai 输出来说,所谓的正确比传统软件的正确有更多复杂的因素要考量,除了最基本的不能够有客观上可衡量的错误外还有包含风格,遵照最佳实践等不同的面向要评估,通过评估机制除了能协助决策另一个评估机制的存在目的是为了能有效把关产品的品质,当有了完整的评估机制,即便是存在某个改动后也是可以在实际上线前先评估,确保上线后的版本不会比较差,
󠀠
anthropic 团队的 amanda Askell 在一条帖子精辟的总结一个好的系统提示词的秘密是测试驱动开发这个无聊但重要的方法,比起先写下系统提示词,然后测试该系统提示词好不好,先写下测试案例,然后找出能通过这些测试的系统提示词,
󠀠
这个流程跟传统开发会用的 tdd 很类似,因此业界也有 evals-driven development 简称 edd 的说法。
󠀠
简单来说,edd 就是先把评估的指标写好然后去调整产品 ,例如更换模型,更换系统提示词等等,接着去跑评估,确保调整后的品质又更好,如果没有的话,就要持续迭代直到通过评估为止。

发布于 日本