top of page

Code-Free Machine Learning

TL;DR
I designed an interface for non-programmers to learn how to create, test, and improve machine learning models, saving my client time and money.

The following is the fourth and final mini case study in a series about a single project.  For more context: read the first, second, and third case studies.

​

Why Code-Free?

 

My clients had a problem: they couldn’t tell whether the machine learning (ML) models they were creating were any good. 

 

They were using data whose preparation requires expertise and an algorithm whose output calls for skilled manual validation.

 

But the people in the company with these specific skills and expertise (we’ll call them “subject matter experts”) weren’t the same people who could create and test ML models (we’ll call them “data scientists”).

 

In other words, the company’s subject matter experts (SMEs) didn’t know how to code and its data scientists didn’t know enough about the subject to prep data and evaluate performance. My clients had already made an attempt to train one group in the skills of the other, but decided that it would take too long and become difficult to scale.

​

The challenge was clear: how might we find a way for users to create, test, and share ML models without writing a single line of code?

Screen Shot 2020-07-06 at 7.34.03 AM.png

As I read through the code, I couldn't tell where an object called the corpus (the processed data that is used to train an ML model) was stored. When I inquired, it turned out that it wasn't.

 

“So if you want to use the same corpus to train a different model, you’d have to recreate it?” I asked.

 

The answer was yes, since corpus creation was near instantaneous, storing and deploying it from storage would require more effort than recreating the same corpus again from scratch. 

 

Software engineers sometimes have a tendency to take a “less is more” approach, at least when it comes to lines of code. But in this instance the succinct code obscured the line between two distinct objects: a corpus and a model. While the distinction was clear to the data scientist who showed me the code, the SME I spoke to had difficulty articulating the difference between the two objects, since he’d never interacted with them separately.

 

This resulted in confusion about what levers and dials he had at his disposal at each point in the process, which ultimately hindered him from improving the performance of the models he was building.

Sometimes Less Is Less

 

To borrow a technique from weight loss commercials, here’s the “before”:

The Rooms Where It Happens

 

Below is a highly simplified flowchart I created of the company's ML process. The green trapezoids signify manual input, or stuff a user can control.

Screen Shot 2020-07-08 at 12.47.50 PM.pn

Putting into action my insight about the source of the SME's confusion, I decided to dedicate separate “rooms” in the interface for each type of artifact in the ML process: corpus, model, and test results.

 

I designed each room to lead the user through the creation of its designated artifact, prominently displaying its current status and calling attention to the factors that can be controlled every step of the way. 

 

Because this interface will be the ML training ground for subject matter experts, I left ample space for user notes and created a detailed activity log to help users orient themselves within the ML process, and to facilitate both sharing and record-keeping.

​

Allow me to take you on a tour.

Room #1: Corpora

Room #2: Models

Room #3: Tests

Final Thoughts

​

Since I had only one week to build the interface presented in this case study, and no chance to test it with users (yet), many questions remain.

 

How well would SMEs with a basic understanding of ML concepts be able to use this interface? A handful of user tests should answer this question.

​

How about a user with no understanding of ML? The company's strategy depends on this question. As is, this interface is a lab without an instructions manual.

​

The question of the product's learnability extends beyond how easy it is for users to accomplish a task for the first time into how easy it is for users to figure out what they're trying to accomplish, and why.

 

Building an ML instructions manual into the interface itself would be an interesting next challenge.

bottom of page