先这样答
结论是:把模型、Prompt、知识库、工具和评测集作为一个组合来管理,不要只给其中某一个组件单独编号。因为五个组件会各自升级,组件一变,组合后的行为就可能变化。每次请求都记录这五个组件的版本,形成一个五元组。这样才能知道一次输出具体用了什么配置。
发布时,把这组五元组绑定成一个组合版本号。后续升级时创建新的组合版本,不直接改旧组合。新组合先经过评测,评测通过后再切流量。这样可以把升级动作和线上结果对应起来,也能避免某个组件单独变更后,其他组件仍停留在原配置,导致结果无法判断。
回滚也按组合版本回退,不能只回滚模型。因为问题可能来自 Prompt、知识库、工具或评测集的变化,单独换回模型不能保证恢复原来的组合行为。审计时,线上任何一次输出都应该能反查到当时使用的五元组,再定位它所属的组合版本。面试中可以把重点归纳为三点:请求记录五元组,发布绑定组合,回滚按组合执行。
面试官会怎么追问
-
「为什么不能只管理模型版本?」 模型只是五个组件中的一个。Prompt、知识库、工具和评测集也会升级。只记录模型版本,无法解释同一个模型在不同组合下为什么产生不同输出。
-
「一次请求需要记录哪些版本?」 需要记录模型、Prompt、知识库、工具和评测集这五个版本。它们共同组成一次请求的五元组。通过这个五元组,可以反查当时的具体配置。
-
「新组合发布后,线上发现问题怎么回滚?」 先按组合版本回到此前可用的组合。不能只把模型切回旧版本,因为其他四个组件可能仍然是新版本。回滚后还要保留这次请求对应的五元组记录,保证后续审计可以继续追查。
回答的坑
-
只记录模型版本,会丢失 Prompt、知识库、工具和评测集的变化,无法解释组合行为。
-
只回滚模型,会留下其他组件的新版本,回不到原来的组合。
同系列的题