是否可以将深度学习模型与 Microsoft Bot Framework (SDK) 一起使用?

Is it possible to use Deep Learning models with Microsoft Bot Framework (SDK)?

我知道 Bot Framework SDK 是开源的,但 Azure Bot 服务不是这样。

From this link 我假设几乎所有深度学习 library/framework 都可以使用聊天机器人框架,但免费 SDK 是否也是如此,或者仅当我使用 Azure 机器人服务时才如此?

此外,是否可以在非 Azure 平台上部署使用 SDK 制作的聊天机器人?

非常感谢

SDK 和社区支持包括识别器的标准实现

RegExRecognizer – 适用于单元测试等简单识别任务。

LuisRecognizer – 使用 LUIS.ai 模型进行 intent/entity 识别

QnAMakerRecognizer – 使用 QnAMaker KB 识别常见问题

CrossTrainedRecognizer – 将交叉训练的多个识别器组合在一起(例如Luis/Qna)

社区识别器 – BERT、spaCy.io、DialogFlow 等

SDK 定义了一个用于语言识别的通用声明文件,称为 .LU 文件。 LU 文件是简单的 Markdown 文件,易于编辑和捕获意图、实体、标记数据、字典等基本 NLU 概念。SDK 为 BF CLI 提供了一个插件,可以解析 LU 文件并从中创建 LUIS 模型。 Power Virtual Agents 等服务可以使用 LU 文件来训练其内部自定义 NLU 识别器。开源社区创建了 LU 解析器,它针对来自 Spacey.io 和 BERT 模型的开源 NLU 引擎。

最终,机器人应用程序需要能够决定哪个组件应该处理输入。每个组件都可以使用不同的识别器来处理输入,因此我们需要一种创建调度模型的标准化方法,该模型将流量路由到正确的组件。这为按部门组织机器人或整合其他来源的“技能”奠定了基础。

为了创建调度模型,我们定义了每个组件如何公开语言数据(再次利用技术不可知的 .LU 声明文件格式),这些语言数据公开调用者创建调度模型所需的信息。

我们当前的调度工具将 LUIS 用于调度模型,但有一个新的预览版本已重命名为 Orchestrator。编排器使用基于转换器的语言模型(例如:BERT、RoBERTa)来构建调度模型。这个模型已经优化到足够小可以嵌入(英语约 200mb),适用于低延迟场景,并使用 .LU 文件中的信息构建一个丰富的调度模型,可以离线使用,在嵌入式场景中,并作为 Azure 机器人服务的一部分提供。