硅谷硬核Rasa课程、Rasa培训、Rasa面试系列之:Rasa 3.x Command Line Interface

本文详细介绍了Rasa 3.x的命令行接口(CLI)命令,包括`rasa init`、`rasa train`、`rasa interactive`等,用于创建项目、训练模型、交互学习和运行服务器。通过CLI,开发者可以高效地进行对话模型的迭代和优化。文章还提到了增量训练和微调模型的概念,以及如何使用`rasa interactive`进行交互式学习。此外,文中提及Gavin大咖的Rasa系列课程,涵盖了Rasa 3.x的源码解析和实战技巧。
摘要由CSDN通过智能技术生成

Command Line Interface

CLI (command line interface)提供了简单的常见任务命令。本页面描述了这些命令的行为以及可以传递给它们的参数。

  1. rasa init 创建一个新项目,包含训练数据、动作和配置文件。
  2. rasa train使用你的NLU数据和故事来训练一个模型,并将训练过的模型保存在/models中。
  3. rasa interactive 开始一个交互式的学习会话,通过与你的助手聊天来创建新的训练数据。
  4. rasa shell 加载你训练过的模型,让你在命令行上与你的助手交谈。
  5. rasa run 用你训练过的模型启动服务器。
  6. rasa run actions 使用- rasa SDK启动一个action服务器。
  7. rasa visualize 将你的故事可视化。
  8. rasa test 对任何以test_开头的文件测试一个训练过的- rasa模型。对你的NLU训练数据进行80/20的分割。
  9. rasa data convert 在不同格式之间转换训练数据。
  10. rasa data migrate 将2.0域迁移到3.0格式。
  11. rasa data validate 检查域、NLU和会话数据是否不一致。
  12. rasa export 将会话从跟踪器库导出到事件代理。
  13. rasa evaluate markers 从现有的跟踪器存储中提取标记。
  14. rasa X 以本地模式启动- rasa X。
  15. rasa -h 显示所有可用的命令。

rasa init

这个命令为你设置了一个完整的助手,带有一些示例训练数据:

 

它创建以下文件:

 

它会询问您是否想要使用这些数据训练一个初始模型。如果您回答否,则models目录将为空。任何默认的CLI命令都需要这个项目设置,所以这是开始的最佳方式。您可以运行rasa train, rasa shell和 rasa test,而无需任何额外的配置。

rasa train

下面的命令训练了一个Rasa开源模型:

 

如果您的目录中有已存在的模型(默认情况下在models/下),那么只有模型中已更改的部分将被重新训练。例如,如果你只编辑NLU的训练数据而不编辑其他内容,那么只有NLU部分会被训练。

如果你想单独训练NLU或对话模型,你可以运行rasa train NLU或rasa train core。如果你只为其中一个命令提供训练数据,默认情况下rasa train将回到这些命令中的一个。

Rasa train将把训练过的模型存储在——out, models/默认情况下定义的目录中。默认情况下,模型的名称是.tar.gz。如果您想要以不同的方式命名您的模型,您可以使用——fixed model-name标志指定名称。

以下参数可用于配置训练过程:

 

Incremental training 增量训练

新2.2版本:这个特性是实验性的。我们引入了一些实验性的功能,以从我们的社区获得反馈,所以我们鼓励您尝试一下!但是,将来可能会更改或删除这些功能。如果你有反馈(积极的或消极的),请在Rasa论坛上与我们分享。

为了提高助手的性能,练习对话驱动开发((Conversation-Driven Development,CDD)并根据用户与助手的交谈方式添加新的训练示例是很有帮助的。您可以使用rasa train —finetune来初始化一个已经训练过的模型的管道,并在包含其他训练示例的新训练数据集上进一步微调它。这将有助于减少新模型的训练时间。

默认情况下,该命令从models/目录中获取最新的模型,如果你有一个想要改进的特定模型,你可以通过运行rasa train ——finetune 来指定它的路径。与从头开始训练相比,对模型进行微调通常需要更少的时间来训练机器学习组件,如DIETClassifier、ResponseSelector和TEDPolicy。要么使用定义比以前更少的epoch的模型配置进行微调,要么使用标志——epoch-fraction。——epoch-fraction将在模型配置文件中为每个机器学习组件指定epoch的一部分。例如,如果DIETClassifier配置为使用100个epoch,指定——epoch-fraction 0.5将只使用50个epoch进行微调。

你也可以分别使用rasa train nlu -finetune和rasa train core -finetune来微调nlu -only或对话管理模型。

为了能够对模型进行微调,必须满足以下条件:

1、所提供的配置应该与用于训练正在进行微调的模型的配置完全相同。唯一可以改变的参数是单个机器学习组件和策略的epoch。

2、用于训练基本模型的标签集(意图、动作、实体和槽)应该与用于微调的训练数据中的标签集完全相同。这意味着您不能在增量训练期间向您的训练数据添加新的意图、动作、实体或插槽标签。您仍然可以为每个现有的标签添加新的训练示例。如果您已经在训练数据中添加/删除了标签,则需要从头开始训练管道。

3、要微调的模型使用当前安装的rasa版本的MINIMUM_COMPATIBLE_VERSION进行训练。

rasa interactive

你可以在本地模式下使用Rasa X在UI中进行交互学习,查看文档了解更多细节。

如果你更喜欢使用命令行,你可以通过运行以下命令来启动一个交互式学习会话:

 

这将首先训练一个模型,然后开始一个交互式shell会话。然后,您可以在与它交谈时纠正助手的预测。如果UnexpecTEDIntentPolicy包含在管道中,action_unlikely_intent可以在任何会话回合被触发。随后,将显示如下信息:

 

正如该消息所言,这表明您已经探索了一个会话路径,根据当前的训练故事集,这是意料之外的,因此建议将此路径添加到训练故事中。与其他bot操作一样,您可以选择确认或拒绝运行此操作。如果你使用 --model参数提供一个训练过的模型,训练将被跳过,而该模型将被加载。

在互动学习过程中,Rasa将从训练数据中绘制出当前的对话和一些类似的对话,以帮助您跟踪自己的位置。会话一开始,您就可以在http://localhost:5005/visualization.html上查看可视化。生成此图可能需要一些时间。要跳过可视化,运行rasa interactive --skip-visualization。

以下参数可用于配置交互式学习会话:

 

交互式示例:

rasa interactive --config E:\starspace\my_rasa\config.yml --domain E:\starspace\my_rasa\domain.yml --model E:\starspace\my_rasa\models\20211227-124216-active-fort.tar.gz

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值