azuredeep-learningchatbotazure-language-understanding

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


I know that the Bot Framework SDK is open-source, while this is not true for the Azure Bot Service.

From this link I assume that it can be used almost every deep learning library/framework with the chatbot framework, but is this true for the free SDK too or only if I use the Azure bot Service?

In addition, is it possible to deploy a chatbot made with the SDK on a platform which is not Azure?

Many thanks in advance


Solution

  • The SDK and community support includes standard implementations of recognizers

    RegExRecognizer – useful for simple recognition tasks such as unit tests.

    LuisRecognizer – use LUIS.ai model for intent/entity recognition

    QnAMakerRecognizer – use QnAMaker KB for recognizing FAQs

    CrossTrainedRecognizer – combines multiple-recognizers that are cross-trained together (such as Luis/Qna)

    Community recognizers – BERT, spaCy.io, DialogFlow, etc.

    The SDK defines a common declarative file for language recognition called a .LU file. LU files are simple markdown files which are easy to edit and capture the basic NLU concepts of intents, entities, labeled data, dictionaries, etc. The SDK provides a plugin to BF CLI which parses LU files and creates a LUIS model from it. Services like Power Virtual Agents can consume LU files to train their internal custom NLU recognizer. The open source community have created LU parsers which target open source NLU engines from Spacey.io and BERT models.

    Ultimately, the bot application needs to be able to decide which component is supposed to handle an input. Each component can use different recognizers to process input, so we need a standardized way of creating a dispatch model, which is a model that routes traffic to the correct component. This lays the foundation for organizing a bot by department or integrating “skills” from other sources.

    To create dispatch models, we have defined how each component can expose language data (again leveraging the technology agnostic .LU declarative file format) that exposes the information necessary for the caller to create a dispatch model.

    Our current dispatch tooling utilizes LUIS for dispatch models, but have a new preview version which has been renamed Orchestrator. The orchestrator uses transformer-based language models (e.g.: BERT, RoBERTa) to build the dispatch model. This model has been optimized to be small enough to be embeddable (~200mb for English), work for low latency scenarios, and use the information from the .LU file to build a rich dispatch model that can be used offline, in embedded scenarios, and offered as part of Azure Bot Service.