The DeepPavlov Dream Platform introduces a distribution-based approach for dialog systems development. A distribution is a set of YML-files specifying parameters of docker containers, and a configuration JSON-file determining a processing pipeline for DeepPavlov Agent. Agent is an orchestrator running in a separate docker container that passes the dialog state through the given pipeline to drive the conversation between users and AI assistant built on top of the DeepPavlov Dream Platform.
Platform contains different distributions including script-based English distributions, generative-based English and multi-lingual distributions, multimodal distribution, robot controller distribution, and lots of multi-skill distributions utilizing prompt-based generation with LLMs.
Following recent trends on generative AI, DeepPavlov Dream Platform development is focused on Large Language Models applications such as prompt-based generative distributions.
The following distributions are of the main focus:
LLM-based Generative Distributions:
Dream Distribution is a main distribution containing annotators for classification, entity detection, knowledge bases integration, skills for Factoid Question Answering, Google API Question Answering, Dream persona-based response generation with ChatGPT, skills selection based on the similarity of prompts and dialog context.
DeepPavlov Assistant Distribution is a prompt-based generative distribution that is aimed to help DeepPavlov’s emploeyers with different tasks. It supports changing prompt (for particular user not for everyone using the same assistant) during the dialog session using a command
/prompt new prompt text here or reset a prompt to a default one using command
Dream Reasoning Distribution utilizes OpenAI ChatGPT to think of actions required to handle user requests and to choose the suitable API to use.
Document Q&A Distribution is a generative distribution that consider list of the documents to answer questions on them using LLM.
Google API Distribution is a distribution demonstrating how a special Google API Skill works.
Universal Assistant Distribution is a distribution for debug purposes. It utilizes Universal Prompted Skill which accepts prompt and selected LLM service on the fly, so one may switch them during the dialog by hands.
Prompted-based Assistants (Deepy Assistant Distribution, AI FAQ Assistant, Fairytale Assistant, Fashion Stylist Assistant, Life Coaching Assistant, Marketing Assistant, Nutrition Assistant) are prompt-based generative distributions demonstrating how to create custom distribution using local or external LLMs.
Multi-skill AI Assistant is a prompt-based generative distribution demonstrating combination of several generative skills with different prompts in the same dialog session.
Dream Distribution with Custom KGs is a distribution integrating cuzstom knowledge graphs to a prompt-based generative system. This distribution is being actively developed for custom KGs integration improvement.
Dream Light Distribution does not require GPU, cotnains only the most simple skills like AIML-based, script-based, and template-based. It also includes light-weight Multi-task classifier not requiring GPU for inference.
Dream Multilingual Distribution is a multilingual socialbot utilizing mGPT. The Socialbot responses in the same language as an input utterance.
Dream Multimodal Distribution is a multimodal socialbot utilizing image captioning and script-based responses to the particular type of objects in images.
Dream Script-based Distribution is similar to Dream Alexa Distribution. It contains almost all of the developed components, including script-based skills, wide variety of NLU models, different skills with conditioned generation approach (persona-based, knowledge grounding, story generation), COMeT commonsense prediction models, and tag-based response selection (splitting hypotheses to the priority groups, and selecting the the most prioritized group by ranking scores).
Dream Alexa Distribution is almost the same version of the DREAM socialbot as at the end of Alexa Prize Challenge 4. Some API services are replaced with trainable models. This version of Dream Socialbot consumes a lot of resources because of its modular architecture and original goals (participation in Alexa Prize Challenge).
Dream Mini Distribution is a generative-based socialbot that uses English DialoGPT model to generate most of the responses. It also contains intent catcher and responder components to cover special user requests.
Dream Mini Persona-based Distribution is a generative-based socialbot that uses fine-tuned persona-based English DialoGPT model to generate most of the responses. It also contains intent catcher and responder components to cover special user requests.
Deepy Distributions were different versions of Lunar Assistant that utilize script-based approach (AIML, goal-oriented skill) FAQ. Deepy was originally featured at NVIDIA GTC Fall 2020 conference. It is no longer supported, and there is a new LLM-based distribution also called Deepy that is responsible for completely different actions.
There are also some other distributions that are presented in DeepPavlov Dream. Feel free to use them too. One may find all distributions here.
One may want to create their own distribution in two ways: composing dialog system from the existing components or customize components.
Create a new distribution utilizing the existing Dream components. See a tutorial on Medium. Learn how to create a simple light-weight bot that specializes in discussing movies and answering factoid questions, utilizing the existing Dream components.
We also prepared the video workshop “How to design multiskill AI assistants with DeepPavlov Dream”. This tutorial is a bit outdated because we used a direct copy-paste approach to create a new distribution while we already have DeepPavlov Dreamtools which help to create your own distribution from the existing components automatically using CLI.
Create a new assistant by modifying the existing Dream distributions. See a tutorial on Medium. Discover how to create a generative bot with a predefined persona, using the existing Dream Persona distribution that utilizes OpenAI ChatGPT.
We also prepared the video workshop “How to integrate a new component into a Dream-based multiskill AI Assistant”. This tutorial is a bit outdated because we used a direct copy-paste approach to create a new distribution while we already have DeepPavlov Dreamtools which help create your own distribution from the existing components automatically using CLI.
Publishing Your Distribution
If you want to share your distribution with other Dream users, create a distribution directory in the
/assistant_dists/ subdirectory, put your config files to the just created distribution’s subdirectory in the
/assistant_dists, and then submit it to this repository using a pull request from your fork of the Dream repo.