In this series, we will shed light on the extraordinary community work done by our Rasa Superheroes, take a deep dive into what inspired them, and find out if they have any tips or advice to share with aspiring community builders and conversational AI enthusiasts. For our fifth instalment, we get to know Julian Gerhard.
Since early 2019, Julian has been proactively answering (lots of!) community questions on our forum, helping community members find solutions to their issues, supporting our team to fix bugs, collaborating on various projects, testing, donating data, sharing early version feedback and even finding time to contribute code to Rasa Open Source!
His code contribution Flexible handling of non-existent message_attribute for given training sample #4483 still lives on the latest version of our code. It helps us to better handle data inside pipelines which use spaCy models in them.
He doesn't just support us on the code side, he's very active on our community forum too - getting involved in projects and offering his help to others. We were even approached by a community member at a Rasa Chapter meetup, letting us know that he had helped them with their Final Thesis. (more on that in the spotlight interview!)
His most notable projects, developed his own voice controlled avatar using Rasa which is proudly located on our community showcase, and a Smartspeaker which will be the topic of his talk at the upcoming L3-AI conference!
In the beginning of his career, he focused on Full Stack-Development, now on Artificial Intelligence as the CTO of SUSI&James GmbH, a startup focused on digital voice assistants and artificial intelligence. Let's find out more about his journey until now and why he's gravitated towards the Rasa community...
Hi Julian! Could you introduce yourself, what's your origin story? :D
Originally I come from a study as a teacher for philosophy, theology, biology and German. However, in the course of time my love for technology has prevailed and I started to deal with practical computer science. During my studies I became aware of computational linguistics - for me the perfect mixture of language and technology and decided without further ado to focus on it. Over the years, I have worked in this field on my own, as an employee of larger companies and most recently of a tech start-up. In the beginning I focused on FullStack-Development, later on artificial intelligence until today.
Do you feel that that your German studies has helped you in the NLU aspect and understanding those challenges?
Absolutely. I notice this, for example, whenever I think about possible formulations in the course of a conversation. Take a normal slot filling - in German there are usually a lot of expressions that one would have to take into account. But a knack for linguistic diversity will help you in any case.
What inspired you to get into conversational AI?
I have basically always loved language. I believe that elaborate articulation can be a lot of fun - across languages. Language is incredibly alive. What I like about technical language is the possible precision, about colloquial language the variety, about dialect the development. I often pause and ask myself: Why do you use a word the way you use it? Basically, with Conversational AI and NLU we simulate nothing else but the first language acquisition of a machine. This is incredibly exciting, because here I have the opportunity to uniquely combine teaching with my affinity for technology. The second important aspect is the unexpected. We believe that we can deal with human behaviour in conversations - in truth, humans often behave unpredictably. My goal here is to create concepts for real benefit through the support of artificial intelligence.
Making your first contribution to a huge project can be quite daunting. Do you remember how you got started and do have any advice for folks making their first code contribution?
I got started through simple research and a lot of experiments. In the search for a suitable framework, one inevitably comes across the more familiar ones like DialogFlow, LUIS and Wit and some other OpenSource solutions. In terms of flexibility, adaptability and dogma, Rasa suited me and my situation best. The use cases of the community are very different and also not. Basically, we try to generate a value-added user experience, and we encounter the same hurdles regardless of domain. Sometimes, you notice patterns of inadequacies and you start to experiment. At best, mine has a good idea to compensate for one of the shortcomings, and I for one consider it more than appropriate to share, evaluate and, if necessary, hand over that idea.
I have technical and non-technical advice. The non-technical advice is to dare to share and discuss your idea. Together you can create more value. I personally like to pitch an idea and see what is done with it. If one idea in 10 is pursued, I'm already happy and satisfied. As part of the community, you can expect everyone else to be sensitive to your ideas, so if an idea isn't that good, you can communicate it in a way that's appropriate. Everyone learns from this. The technical advice is: test, test, test. Learn to write tests and keep the quality of your code high. Rasa OSS offers all the tools you need to do this.
You have been an incredible support to the Rasa community since early 2019. From contributing code to improve Rasa Open Source, to helping others on the forum, GitHub, workshops and more. What encourages you to do this?
On the one hand, in my view a community lives from giving and taking. Basically I find it important and appropriate to help others if possible. I think every developer knows this: How much time could have been saved if the corresponding comment, snippet or tool had been known earlier. Sometimes the help is also selfish. I want to have a feature in the core of Rasa that I can use for my own purposes. I think that others could benefit from it as well. These are good prerequisites. Unfortunately, this doesn't happen just because I want it - so I have to do something about it. Finally, of course, there is the challenge. I do not like to accept that something is not feasible. Unity, Rasa on IoT-devices and e.g. my Transformer architectures as part of the NLU configuration were sometimes very demanding. That inspires me, that creates long-term motivation for me. I am triggered most of all by saying: I don't think that's possible.
We were even approached by a community member at one of local community chapter meetups in Berlin who informed us that you even helped them with their Final Thesis! Could you let us know how that came about?
Someone had set up an ambitious project to maintain something like a digital classbook and asked about it in the forum. Unfortunately, the project was based on a very old Rasa standard and was then mixed with features from newer versions. All in all, this led to a dysfunctionality and I cleaned up the whole project without further ado, set it up anew and explained to the person concerned what they could and should do and how.
The idea was to develop something like a digital assistant for students that could answer questions such as: "Where do I have my next lesson" or "When do I have physical education again". To do this, it was necessary, among other things, to connect the Rasa Bot to an external school system for which authentication was required. Basically, Theresa asked a question about this in the forum, and over a longer period of back and forth we found out that the question can only be answered case-specifically. I asked her to show me the code and together we decided to rebuild the system in the new Rasa version. I also added some basic structure to the project so that Theresa could continue working without my help afterwards. At that time I just didn't realize that this was a thesis.
You've created several inspiring projects that incorporate Rasa Open Source in different ways, where does the inspiration come from to chase those creative ideas?
As already mentioned, it is often the challenge. Then there is of course the learning curve. Working on such projects takes you through unknown territories. It virtually forces you to learn things anew and understand how they work. A prominent example: If you work with SmartSpeakers for a while, you eventually notice that their design follows a pattern. I find it incredibly exciting to wander along this path and to discover: Someone before me had the same thoughts - it makes sense that it is done the way it is done and now I understand why. In addition, I also like to show others: Dare to tackle things.
We recognize Rasa Superheroes as those who have the power to bring people together! We see you often involving others community members in your projects - is it a hobby and something you enjoy bringing people together for something creative like this?
Well, I think that you can achieve a lot together. There are natural limits even for ambitious and experienced people. I sometimes imagine How great it would be if someone shared my passion - how much could we achieve? If I am right, Alan and Alex founded Rasa out of this thought. Yes, I love bringing people together in this way. Unfortunately it doesn't always work out. Conveying an idea / vision is not always easy and a perfect match is rare. Sometimes it is also about undiscovered potential. People can develop an incredible potential if you give them responsibility or work with them. I try to encourage this if possible.
There are still so many challenges and learnings to be made in the conversational AI domain- do you have a memorable piece of advice to share from your early days of building chatbots?
What has always annoyed me is the expectation of AI systems, then and now. In the chatbots between - say 2015 and 2019 - it was often about simple question/answer scenarios and first, simple autonomous executed tasks. The so-called intent classification is based on the assumption that a set of examples of an intent can be used to identify it more or less clearly. To be honest, even a simple "I don't want to book a plane ticket to Shanghai" could trick most systems, let alone entering complex multiple intents. I agree with Alan's view on CDD, because I believe that in the end we will only be able to reproduce behaviour from real conversations.
If you could go back to when you were first exploring conversational AI and building bots, what tips would you give to your past self?
In the past, I liked to approach larger projects or tasks in such a way that I created a rough concept and then "simply" started coding. This was based on the assumption that as an individual I don't know all the necessary steps to prioritize anyway, and then have to react in an agile manner to unforeseen situations if necessary.
In the meantime, I would advise everyone to do the same: Do it like a chef. I love to cook very, very much and a lot and professional cooks have a simple but efficient concept to deal with scalability and complexity: The mis-en-place. Before I approach a project today, I prepare everything I need for it. I consider every important pillar and have already familiarized myself with the necessary tools beforehand. I find it amazing how much more productive I am with this method. Of course there are other approaches and most of them certainly have their raison d'etre - but that is what I would recommend to my younger self.
How do you think technologies like Rasa Open Source can change the world?
I consider Rasa OSS to be one of the best ways to simplify human-machine communication. The question is when and why we interact with a machine at all. Usually, it is all about automation and simplification of processes and in the course of this it is only natural that humans want the same quality as the gold standard provides - and that is still the human. So if I can build an application with Rasa that offers this automation and in the best case simplification with high quality - then I have already changed a small piece of the world - haven't I?
Thinking about where we are right now and looking to the future, what are some of the biggest trends you see in conversational AI?
I think we are heading more and more into the field of individualization. My GoogleAssistant tells me that my route is very busy today, Bixby tells me where I parked my car and Alexa summarizes the events of the day. On the application level, I'm happy about experiments in the field of "proactive assistance" - my AI tells me that I haven't been to the dentist for a while and could make an appointment directly, or help me with my tax return. Furthermore, it will be about character building. Children, for example, prefer to talk to an avatar, a figure, rather than a small box filled with electronics. The AI behind it can already answer questions in a sensitive way. What is missing is bilateral emotion and character. But character building and emotionalization require many factors, so the field is anything but simple but incredibly exciting. On the technical level, it will certainly be about a better understanding of language, away from the surface, to the deep analysis of connections and certainly also of inference, e.g. in the area of common sense.
Julian will give a talk at our upcoming conference on Building a SmartSpeaker powered by Rasa at 5:00pm CEST on June 18. Register for free here!
Want to nominate someone for a spotlight? Send us an email firstname.lastname@example.org.