CALM
CALM是Rasa的最新技术,仅用于商业版本Rasa Pro中(开源版本仍然为旧的基于意图的设计)。
Conversational AI with Language Models,是一个原生大模型的对话方案,包括:
- 业务逻辑(Business Logic)
- 对话理解 (Dialogue Understanding)
- 对话修复 (Automatic Conversation Repair)
大模型负责理解用户的整篇对话,输出贴合业务流程的内部命令语言。
由于大模型并不是直接输出文字给用户,而是保证DM流程图的执行,因此,它不会产生幻觉,在商业领域中可以可靠的运行。
业务逻辑(Business Logic)
流程(Flow)
流程的描述很重要,这是让大模型找到目标的关键。
流程也支持条件满足。流程如果有FlowGuard,则LLMCommandGenerator在一个Flow的FlowGuard不满足条件时,不会选择这个Flow。
步骤(Steps)
- 动作step(action)
- 为了填槽而收集信息step(collect)
- 填写槽位(set slots)
- 跳转另一个流程(link)
(大模型的输入长度限制,会影响flow的描述和槽位数量等信息的总信息量)
对话理解(Dialogue Understanding)
用户对话 -》 业务逻辑
和传统NLU相比
- 不仅仅是一句话的理解,而是整通对话的理解(会加入 业务逻辑的理解)。
- 不再是输出意图和实体。而是用户要继续业务流程所需要的一系列的命令(内部语言)。
使用DU最大的收益就是从意图中释放出来。
传统NLU将用户文字转为预定义的N个桶里,这种简化会影响拓展性。例如,新增的意图是否会和已存在的意图太相似了,以至于会搞砸现有的东西。
CALM可以将复杂的用户文字转为可以让业务流程跑下去的简单语法
对话修复
如果用户回复的不是我们需要的信息,对话修复就会介入。
对话修复本身会有一些默认的Flow来应对一些常见的异常场景。
Digressions: 从一个Flow切换到另一个Flow时触发
Corrections: 纠正或更新输入数据触发,Flow会retrace
Cancellations: 取消一个正在进行的任务
Chitchat: 闲聊,但不会影响Flow
Completion: 完成了用户要求或用户放弃
Clarification: 不明确用户请求或有多个Flow匹配时
Internal Errors: 内部错误
Human Handoff: 挂机
如果自定义上面的pattern(FLow里取一个相同的名字即可覆盖),需要重新训练
FAQ
是否会有大模型的幻觉问题?
不会,因为不会直接输出文字给用户,而是流程图的标准响应给用户。
开发速度如何?
CALM不需要将用户的各种情况变成意图,而只需要建立业务逻辑的关键部分,就能跑起来。
是否可以用上大模型的生成能力?
可以,rephrase功能。就是Flow配置的固定回复话术太呆板,可以加入大模型做rephrase,不会千篇一律,尤其在多次重复时。
同时,大模型可以结合用户的上文或结合用户的画像,进行rephrase
参考
https://rasa.com/blog/how-to-put-next-generation-ai-assistants-in-production-today-with-calm/
https://rasa.com/blog/calm-rasa-s-answer-to-spooky-ai-hallucinations/
Conversational AI with Language Models
.