对话驱动的开发¶
什么是对话驱动的开发(CDD)?¶
对话驱动的开发(CDD)是指通过倾听用户并使用这些见解来改进 AI 对话机器人的过程。这是开发对话机器人的最佳实践方法。
开发一个出色的对话机器人是具有挑战性的,因为用户总是会说出无法预料的话。CDD 背后的原则是在每一次对话中,用户都在用他们自己的话告诉你他们想要的是什么。通过在对话机器人开发的每个阶段践行 CDD,你可以将对话机器人引导至真实的用户语言和行为。
CDD 包括如下操作:
- 尽可能快的和用户分享对话机器人
- 定期检查对话
- 标记消息并用作 NLU 训练数据
- 测试对话机器人是否总是如期行事
- 在对话机器人出现故障时追踪并随时评估其性能
- 修复机器人如何处理不成功的对话
CDD 不是一个线性过程,在开发和改进对话机器人的过程中可能会一遍又一遍的重复相同的操作。
在 Rasa 博客上可以阅读有关这些操作和 CDD 概念的更多信息。
你还可以查看专门为 CDD 构建的工具 Rasa X/Enterprise。
早期开发阶段中的 CDD¶
如果你还处在对话机器人开发的早期阶段,那么 CDD 似乎没有什么作用,毕竟此时还没有任何对话。但是,你在对话机器人开发的一开始就可以采用如下 CDD 动作:
- 使用 CDD 创建训练数据的详细信息,请参见有关 NUL 数据和故事的最佳实践。
- 将对话机器人尽早的交付测试用户。CDD 就是为了倾听用户的声音,因此越早越好。测试用户可以是并不了解对话机器内部如何工作的任意用户。对话机器人开发团队的人不应该作为测试用户,因为他们明确知道对话机器人能做什么不能做什么。测试用户应该同最终使用用户一样仅对对话机器人的领域知识有一定了解。
- 设置 CI/CD 流水线。由于可以从对话中获得洞察信息,CDD 可以对对话机器人进行快速小步迭代。在早期开发中就设置 CI/CD 流水线能够让你基于对话快速做出反应。
对话机器人生产环境中的 CDD¶
一旦对话机器人投入生产,你将有更多的对话来获得洞察信息。然后就可以全面应用 CDD 操作。在这个阶段,可以在服务器上安装 Rasa X/Enterprise 来部署对话机器人并在生产中使用中启用 CDD。
检查¶
在对话中寻找用户真正想要的东西。
测试用户至少知道一些有关对话机器人打算做什么的内容,但真正的用户通常要么不知道,要么忽略给他们的指引。你不能迎合每一个意想不到的用户行为,但你可以尝试解决注意到的主要摩擦点。以下是可以考虑的一些东西:
- 查看发生
out_of_scope
意图或回退行为时的对话。这些可能为潜在的新技能,或只是错误分类的用户对话。 - 查看用户不满意的情况,例如转接到人工的请求。
- 如果对话机器人在流水线中通过
UnexpecTEDIntentPolicy
进行训练,你可以在任意对话轮次中查看预测值为action_unlikely_intent
的对话。当用户表达的最后一个意图在当前对话上下文中是非预期的时候,则会预测为action_unlikely_intent
。还可以通过运行如下的独立脚本来过滤出这类对话:- 从追踪存储中获取真实对话。
- 在获取的对话中运行
rasa test
并在单独的警告文件中过滤包含action_unlikely_intent
的对话。你可以在如何解释这些告警中阅读更多信息。
检查这些对话子集可以帮助你了解真实用户是否出现了训练数据中不存在的对话路径,对于 TEDPolicy
等机器学习策略来说会“令人惊讶”。添加这些对话路径(如果 TEDPolicy
失败,可能会进行更正)作为训练故事将取得通过 TEDPolicy
等策略更鲁棒的动作预测。鼓励用户调整 UnexpecTEDIntentPolicy
的 tolerance
参数,来控制在警告文件中对话包含“令人惊讶”的程度。
标记¶
将来自真实对话的新用户对话添加到训练数据中来持续践行 NLU 的最佳实践。注意不要将 NLU 模型过度拟合到训练数据中已经存在的对话。当不断将已经正确预测且具有较高置信度的用户对话添加到训练数据中时就会发生这样的问题。为了避免过拟合并帮助模型针对多样化的用户对话更加泛化,应该仅添加模型先前预测不正确或置信度较低的用户对话。
测试¶
将成功的用户对话添加到测试对话中。持续地执行这样的操作有助于确保在对话机器人进行其他修复时不会导致回退。
追踪¶
查找成功和失败的线索来帮助追踪机器人的性能。
一些指标是外部指标。例如:如果你正在构建一个对话机器人来缓解对客户服务呼叫中心的需求,那么衡量成功的一个指标可能是呼叫中心流量的减少。其他可以直接从对话中获得,例如是否一个用户触达了代表实现用户目标的特定动作。
自动追踪的指标本质上是代理指标。获得真正成功衡量标准的唯一方法是单独审查和评价与对话机器人的每一次对话。虽然这显然不现实,但请记住,没有任何指标可以完美地衡量对话机器人的性能,因此不要仅依靠指标来了解对话机器人需要改进的地方。
修复¶
随着扩展和提高对话机器人的能力,持续践行故事的最佳实践。让用户需求来指导添加哪些技能以及进行哪些修复。实施小步快速而不是偶尔进行较大的更改。这有助于衡量更改的有效性,因为这可以更加频繁的获取用户的反馈。你的 CI/CD 流水线可以让你有信心完成此工作。