Today, we are excited to invite you to join us in our adventure. Not just because contributing to open source is a valuable learning experience and an excellent opportunity to grow your portfolio. We invite you because by contributing to Open Source projects, you will personally help to move our field’s progress forward faster and better. Your personal contribution into moving the frontier’s line is important and worthy of attention.
At DeepPavlov.ai, we are facing challenges in the NLP and Conversational AI field on an everyday basis, as we build and ship components for development of natural language understanding machines.
If you are an ML/NLP engineer, and share our inner passion to push boundaries of Conversational AI, or simply want to make NLP/NLU tools easier to use by the wider community, we welcome you to join our Open Source Community.
Getting To Know The DeepPavlov’s Family
DeepPavlov has three core projects:
- DP Library is an open-source framework that provides developers with a declarative approach to define ML pipelines to solve a large variety of NLP problems. With DP Library, one can use either existing pre-trained models, or train their own variations of those models in a very short amount of time.
- DP Agent DeepPavlov Agent is an open-source framework for development of scalable and production ready multi-skill virtual assistants, complex dialogue systems and chatbots.It reuses DP Library’s declarative approach to form pipelines to build Conversational AI experiences. And boy, have we battle-tested it during the Amazon Alexa Prize 2019 challenge!
- DP Dream is an AI Assistant system with dev tools. It stays on the shoulders of both DP Library and DP Agent, and brings a plethora of custom skills, annotators, skill and response selectors, as well as the entire config examples of the end-to-end AI assistants.
With the wide variety of individual components that make our projects, there are many opportunities to leave your mark in the field of Conversational AI.
How Can You Contribute To DeepPavlov Projects?
This is a central question, and it very much begins with you and what you want to achieve. No matter how you contribute, your contribution will matter.
I Want To Contribute New Code
We know this feeling. You look at a new shiny platform, you see (inevitably) missing pieces, and you feel the urge to get them done. In closed-source products all you can dream of is to focus their busy product managers’ attention to build those pieces. In Open Source projects, you can build those pieces together. They still have to go through the internal scrutiny of how and where a new piece fits into the entire platform, and then through testing and code review. It’s a real chance to push the project forward, and have your work shipped in the new release.
I Want To Improve Existing Code
That’s more than familiar, too. You work with the platform, you see that something can be improved. This might be a dataset reader, more params in the REST API, and you can’t stop from thinking of doing that. Or, you look into the source code and see a crazy little bug that bugs you out. Well, you are at your destination. Come on in here, we welcome you and your contributions!
Couple of Success Stories To Inspire You
Automatic Dataset Generation Tool
Go-Bot is a framework for building simple goal-oriented bots in DeepPavlov. Originally it supported training only with the DSTC2 Schema format. While it is quite rich and powerful, converting your data into DSTC-2 Schema might be a challenging task. Fortunately, one of our Open Source community members, Eugene, stepped in and built his own DSTC2-compliant dataset generation tool. After internal analysis and code review, we’ve been happy to release it as a part of our v0.11 release!
Top N Answers In ODQA Model
ODQA (open-domain question-answering) is one of the most popular components of DeepPavlov. It allows the computer to find answers directly in the raw text. However, initially you could only use this model to get the best answer from the candidates found . This made usage of the model rather limited . Thanks to Mapryl’s Top N Answers PR to the ODQA model, now you can get N candidate answers with scores . It was shipped as part of our v0.12 release.
We will publish interviews with our contributors in the blog soon, so stay tuned!
Contributing To DeepPavlov’s Project Family: The Process
Once you’ve chosen what to do, the process is straightforward:
- File a GitHub issue
- Coordinate with us (through the discuss in the issue and in our Contributors Community in Slack)
- Do your piece
- Go through code review
- Get it shipped with the new release of one of our projects
- Oh, and don’t forget to run an interview with us, so that we could share your contribution with the community!
To get a deeper understanding of the DeepPavlov roadmap, you can start by reading the DP DREAM announcement. It gives an overview of directions we are heading to, and helps to figure out where and how your contribution might fit in. We will also keep posting updates in our DP Blog, including more detailed information about the upcoming housekeeping in DP Library. Beware that some of the existing DP Library components will be transformed into the deprecated form, while others will move around within our project family, to better align with our goals.
Once you’ve familiarized yourself with the current state of things, we encourage you to join our brand new Contributors Community in our Slack. While you can simply file an issue by following our Contributor Guide in the docs, code and then file a PR, getting in touch with us can be rather helpful.
We also encourage you to join our regular Community Calls and yearly State of The Union Calls where we will talk about our projects and their development status, and raise your questions in the live conversations with our team.
Big things have small beginnings. We’re just getting started with the Contribution Program, and its first fruits shall inspire both you and us that together we can move the Conversational AI field towards new heights!
Let us know in the comments if you need any help in building chatbots using DeepPavlov. And don’t forget DeepPavlov has a dedicated forum where all kinds of questions concerning the framework and the models are welcome.
We look forward to seeing your contributions!