How to Approach Creating AI Models

Putting the Drive into the Train

Approaching AI
There’s more to AI than just creating models.
Author

Salman Naqvi

Published

Friday, 27 May 2022

This article was rewritten on Monday, 31 October 2022.

A picture showing cogs and gears.

Introduction

How you approach making models is crucial. The way AI methods are used in today’s landscape is very different. AI methods are created to solve small, atomic problems. And we’ve got most of the methods to handle these small tasks hammered down. Therefore, applied AI is not about creating models; it’s only a small part of it. It’s 80% problem solving and 20% implementing (I would not be surprised if it actually followed the 80-20 rule1).

Think of AI methods as a tool; think of it as a pencil. You can use pencils to draw, take notes, poke holes, and much more. There are also dozens of pencils out there. But what point is there in using any of those pencils if you don’t even know how to properly use a pencil in the first place? The art of creating pencils has already been perfected too.

One highly successful approach is the Drivetrain Approach, created by Jeremy Howard — who’s widely known for his fastai course and library —, Margit Zwemer, and Mike Loukides.

The goal of the Drivetrain Approach is to not just use data to generate more data — data that is in the form of predictions. But rather to use data to also generate actionable outcomes.

The official blogpost goes into much more depth here.

In this post, I’ll be providing a short overview of my understanding of this approach by applying it to the Elements of AI course’s final project (this online course was created by the University of Helsinki and Reaktor).

Overview of the Drivetrain Approach

There are four main steps to this approach:

  • Define the objective
  • Consider your possible actions
  • Consider your data
  • Create the models

Define the objective

Write out what you are really trying to achieve. What is your goal? Writing it out puts it in a tangible manner.

Consider your actions

Think about what actions you can take to achieve your objective.

Also think about what would happen if you did those actions.

What would happen if I did x? Would y really be a good idea? What if z worked out too well? Will x lead to y? What would happen if x turned out poorly?

Consider your data

Think about the data you already have and how it could be used.

Think about any further data that is needed and how it could be collected.

Create the models

Create models. But create models that produce actions. Actions that produce the best results for your objective.

Endangered Language Chatbot

The final project of the Elements of AI course asked me to come up with my own AI method that would solve a problem, and how it would do so.

The problem I tackled was the endangerment of languages. The solution I came up with was to create a chatbot that could converse in these endangered languages. I created an overview of how this could be done.

The overview can be read here.

Let’s tackle this problem through the Drivetrain Approach.

Define the objective

The objective is to preserve languages that are in danger of going extinct. Through preserving languages, histories and cultures can be preserved.

Consider your actions

One way this could be done is to create a chatbot that could converse in endangered languages. However, this would be a monumental task considering the amount of data needed to achieve this.

Another action that could be taken is to create an information retrieval (IR) system of sorts. A corpus of written text of the language could be provided, from which insights about the language’s history, culture, and way of conversing could be gained. In turn the language is preserved.

The latter action may be easier to achieve.

Consider your data

The obvious source of data would be a corpora of text.

However, a major problem arises for those languages which are only spoken. Audio recordings of conversations would have to be made which would take a lot of time and effort. This would be especially difficult for those languages where very few speakers remain.

Even if a language does have written text, gathering enough text for the language can also be a problem: the language may not have much written text. This may especially be the case for endangered languages. Again, one solution is to manually create texts — using an NLP method to create these texts is not viable.

In short, for some languages, there may be no choice other than to manually create the data that would be fed into the system — this manual creation also has the chance to skew the performance of the model.

An elderly man blowing a whistle.

Kuş dili, a whistled language spoken in Turkey. How would such a language be preserved? Image Source

Create the model

Either a chatbot needs to be created that speaks as accurately as a native speaker, or an IR system needs to be created that gives meaningful, correct insights into a language and its associated culture.

This step may either be easy or hard, depending on the language. Most NLP or IR systems have been built on a few, select languages. Perhaps this step may be easy for those languages that are similar to languages on which NLP or IR systems have already been built on. It will most likely be harder for those languages which are not.

Conclusion

This concludes my understanding of the Drivetrain Approach, through an example.

Approaches are crucial: you can have state-of-the-art tools, but they are useless if not correctly applied. The approach you take can either make it or break it. Putting it into a concrete, organized, tangible manner goes a long way.

If you have any comments, questions, suggestions, feedback, criticisms, or corrections, please do post them down in the comment section below!