W4D2 - Machine Learning is Not *That* Hard for Software Engineers

I try to keep a positive vibe through my posts, but that changes today. Today I am going to rant.

I read Machine Learning is Still Too Hard for Software Engineers by George Mathew, having discovered it at the top of Hacker News. 

Now, where do I start?

The author described how, to do something basic like image classification, you have to:

Understand concepts like tensors, loss functions, transfer-learning, logistic regression, network fine-tuning, hyper-parameter search, over-fitting, active learning, regularization, and quantization.

This is like telling a software engineer, to set up a database, you have to (special thanks to ChatGPT):

Understand concepts like indexing, transaction logs, replication, query optimization, database tuning, parameter indexing, redundancy, real-time processing, data normalization, and compression.

No it’s literally a pip install and then this (from sqlite docs):

  import sqlite3
  con = sqlite3.connect("tutorial.db")
  cur = con.cursor()
  cur.execute("CREATE TABLE movie(title, year, score)")

Next the author talks about the need for Exploratory Data Analysis (EDA), which involves a closer look at your data to figure out if work is needed before say feeding it to a model (like maybe you need to scale first so there’s zero mean and standard deviation of one).

Not sure where dude’s been but there’s a million blog posts on using ChatGPT to do EDA (even OpenAI called it Advanced Data Analysis at one point!). It’s also highly curious that data quality issues come under the header ‘Software’.

Finally, infra. Apparently “once you’ve figured out the ML and software bits, you’ll need cloud infrastructure expertise”.

I mean, the docs for AWS SageMaker and AWS Lambda read equally obtuse to me.

There are startups that are trying to make this better. Modal so you don’t have to read AWS docs. Modular so you can write Python vs CUDA.

Yes, they’re new but come on, man, we’re all trying to make this better. Don’t go off talking about how hard ML is and then go “Want to build your own classifier in just minutes?” (which is behind a login page to boot).

It’s lipstick on a pig. Don’t do this.

I had the privilege of working with Thomson Nguyen at Square, he had the following analogy. A car is a very complicated machine, but to drive it you only need to know a couple of things: steering wheel, gears, pedals. Same thing for ML.

That doesn't mean you stop there. Get started, keep going, and don't let perfect get in the way of being good.

Now let’s go build.