Techniques to design NLP systems for Production

Nikhil Verma
6 min readAug 16, 2020

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…

--

--

Nikhil Verma

Knowledge shared is knowledge squared | My Portfolio https://lihkinverma.github.io/portfolio/ | My blogs are living document, updated as I receive comments