Hi everyone! I am currently using Rasa since more than 2 years just for NLU scopes. For my needs the intent classification task is just enough and Rasa works perfectly (supervised_embeddings policy). The problem is Rasa has decided to move on the DIET classifier, that is nice but it is slower in training and too much for my needs. The supervised_embeddings policy is great and I am wondering why Rasa decided to deprecate this feature. I am evaluating the possibility to keep the old Rasa version but it could become a technical debt in the future. For this reason i am looking for other alternatives and I would appreciate an advice about what I could do in my situation, because Rasa is moving on different goals.
Hi Marco,
DIET, technically, is a superset on top of the supervised embeddings that we had earlier. The main thing that we added is a transformer layer as well as support for entities. The algorithm whiteboard video series on youtube explains it in more detail (here and here).
If you’d like to get similar performance that mainly means that we need to configure DIET to not use the new features. This should also make the algorithm as fast as before. You can find more details on all available settings in the docs but I’ll list some settings which I think should make the biggest difference.
- name: DIETClassifier
epochs: 100
entity_recognition: False
number_of_transformer_layers: 0
There may be some minor differences that cannot be prevented. The main thing that comes to mind is that we do keep our library up to date with Tensorflow which we don’t do for old versions of Rasa.
That said, if you could share any details on the speedup/slowdown and performance difference between Rasa 1.x and 2.x I’m all ears.
If case it’s of interest, in this video we compare the old EmbeddingIntentClassifier
with DIET. On our end it certainly seemed like DIET
had preferable characteristics.