Intent Classification API, based on GPT-J

What is Intent Classification and Why Use GPT-J?

Intent classification (also known as intent detection, or intent recognition) is about retrieving the intent from a piece of text. This is especially useful in a discussion (i.e. chatbots and conversational AI), in order to understand what a person wants to achieve.

Performing intent classification with modern AI models like GPT-3 and GPT-J, gives very impressive results.

For example, imagine that someone says the following:

Can you please start teaching me Chinese next week?

The intent behind this sentence is "Learn Chinese".

GPT-J is the most advanced open-source NLP model as of this writing, and this is the best GPT-3 alternative. This model is so big that it can adapt to many situations, and perfectly sounds like a human. For advanced use cases, it is possible to fine-tune GPT-J (train it with your own data), which is a great way to perform intent detection that is perfectly tailored to your industry.

Why Use Intent Classification?

In a conversation between an AI and a human, it can be very useful to understand what the person is truly looking for or asking for. Here are a couple of examples:

Triaging Customer Requests

Support teams or sales teams receive tons of customer messages. In order to address them efficiently, it is very useful to first get the intent so one can instantly decide what to do and whether it's important or not.

Product Suggestion

It's sometimes hard for a user to find what he's looking for, especially if there're a lot of products or if the products are complex. In that case, building a chatbot that detects customers' intents and points them to the right product is a very good solution.

Intent Classification with GPT-J

In order to make the most of GPT-J, it is crucial to have in mind the so-called few-shot learning technique: by giving only a couple of examples to the AI, it is possible to dramatically improve the relevancy of the results, without even training a dedicated AI.

Sometimes, few-shot learning is not enough (for example if your intent classification relies on very specific situations bound to your industry only). In that case, the best solution is to fine-tune (train) GPT-J with your own data.

Building an inference API for intent classification based on GPT-J is a necessary step as soon a you want to use intent classification in production. But building such an API is hard... First because you need to code the API (easy part) but also because you need to build a highly available, fast, and scalable infrastructure to serve your models behind the hood (hardest part). It is especially hard for machine learning models as they consume a lot of resources (memory, disk space, CPU, GPU...).

Such an API is interesting because it is completely decoupled from the rest of your stack (microservice architecture), so you can easily scale it independently, and you can access it using any programming language. Most machine learning frameworks are developed in Python, but it's likely that you want to access them from other languages like Javascript, Go, Ruby...

NLP Cloud's Intent Classification API

NLP Cloud proposes an intent classification API based on GPT-J that gives you the opportunity to perform detection out of the box, with breathtaking results. If the base GPT-J model is not enough, you can also fine-tune/train GPT-J on NLP Cloud and automatically deploy the new model to production with only one click.

For more details, see our documentation about text generation with GPT-J. Also see our few-shot learning example dedicated to intent classification and easily test GPT-J intent classification on our playground.