I’m getting close to deploying a bot to production, and in the final debugging of our bot I am wondering if there are any tools, libraries or techniques that people would be willing to share to raise the visibility of transparency around which story has been used by a model to make a prediction.
The problem I am having is that as the number of stories and functionality increases in a bot, it becomes more time consuming to track down which story has caused a misfire.
I have used interactive mode and created around 8 interactive stories, including happy path and unhappy path, and I have carefully looked for collisions in the stories and curated them out. This leads to better but still imperfect results. I know that I will need to spend some time tuning the pipeline settings, but before I invest a lot of time in that, I would like to know if anyone in the community has general advice for approaching this area (e.g. reverse troubleshooting from incorrect responses back to specific stories that have caused the prediction).
An ancillary question is whether or not this goes beyond stories, and into the model file that is produced for Rasa - and if there are transparency tools for inspecting the model files and understanding why a prediction was made.
Any advice would be much appreciated.
I think based on the API documentation that the following endpoint is close to what I am asking about, but it doesn’t quite match a current intent/prediction to a story:
This endpoint seems to retrieve an entire history of a previous conversation (a conversational record) in story format. But again, in the background the model and story that was the basis of the predictions behind any given conversation, is it possible to trace a prediction back to a story of origin? Are there any relevant API endpoints or does the tracker itself contain all of the relevant information?
I am only beginning my investigation into this aspect of Rasa so any pointers would be much appreciated.
I have been able to in part answer my own question with further research today.
The prediction step is controlled via the policy settings in rasa and within the model it has it’s own vector representation - which is not currently inspectable.
It is possible to inspect the NLU aspect of a model using the rasalit tool that I was able to download and run locally to inspect my model: GitHub - RasaHQ/rasalit: Visualizations and helpers to improve and debug machine learning models for Rasa Open Source
Overall I found the tools in rasalit very interesting but unfortunately there isn’t a “story of origin” tool that is available. I think this could be because the training step expands and randomizes stories at augmentation so perhaps it is currently too difficult to build or represent a relevant transparency tool for “story of origin”.
I will move on to attempting to tune the pipeline settings as I believe this is the area of most influence in prediction steps for any given model.