Member-only story
Techniques to design NLP systems for Production
Due to novelty of problems in field of deep learning and its applications, its really odd to find reusable computational pattern applicable to a set of data science problems having a common structure, and representing a best practice for handling such problems.
In software engineering, a software Design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Production NLP systems can be complex. When building an NLP system, it is important to remember that the system you are building is solving a task and is simply a means to that end.
During system building, all stack-holders be it
- the engineers
- researchers
- designers or
- product managers
have several choices to make. Putting the building blocks of NLP (as sequence-to-sequence models, word embedding, attention mechanism) together to come up with complex structures to suit your needs will require some pattern thinking and a language to describe the patterns.
In this blog, I will describe a few common design and deployment patterns of production NLP systems. These are choices or trade-offs…