What I learned building an ML powered enterprise chatbot platform
For the past few months my team and I have been hard at work building an enterprise grade machine learning powered ‘chatbot’ platform. Along that journey, we’ve gained a tremendous amount of insight on topics ranging from multi-class classifiers and NLU all the way to scalable cloud architectures. I can tell you there hasn’t been a single day without challenges to be solved and important decisions to be made. But that’s all part of the fun in building complex software products. In light of that, I thought I’d share a few key learnings and insights.
Do your research
When building complex software systems, continuous research should be an integral part of your project. Define you goals and list out the problems you’re trying to solve. Then start by doing background research on these topics; See what’s out there, look at relevant technologies, frameworks, articles. Read. Make sure you document and summarise your findings to help guide your thought process. This will help you narrow down your research direction and allow you to dive deeper. Once you’ve chosen your direction, you’ll want to divide and conquer to gather the foundational knowledge and data that will allow you to build your system. You'll want to experiment and tinker as you do your research.
Experiment, tinker
Indeed, this isn’t your typical software project. It's filled with unknowns and millions of moving parts. So where do you start? Break down your problems into manageable experiments with clearly defined hypotheses. Expect that your experiments will fail. In this step, you will be prototyping very specific software components / algorithms that will help you validate feasibility and guide you in your research. Once you have a working prototype, run experiments and collect data. If some fail, modify your process and try again. Don’t get bogged down on architecture. The purpose here is to quickly get some code running to test your hypotheses. In other terms, you're validating that you’re going in the right direction as you progress with your research.
Build soon, iterate often
In line with the above comment, you’ll want to verify that your heading in the right direction, and if not, you’ll want to correct course early and quickly. In fact, course correction will be unavoidable, which means you’ll need to be adaptive and responsive. The best way to accomplish that is by building early, experimenting and iterating often. As you iterate, problems will be solved, hypotheses will be validated, and improved methods will be uncovered. Outcomes of these iterations will allow you to improve your algorithms, define and refine your architecture and avoid costly dead ends.
--
When we built version 1 of bbx.ai, we iterated at many levels. We started small with the implementation of the syntax parser, we then experimented with multi-class machine learning classifiers for intent identification, and so on and so forth. The system was built layer by layer through experimentation and iterations. We also applied similar principals with the higher level cloud architecture, where we tested different platforms and eventually converged to what we considered to be the best solution for our needs.
Here’s to building amazing AI powered products!
Alex is the 'Chief Bot Officer' at Boomworks and creator of bbx.ai.