Machine Learning Literacy for Developers


A lot is happening in the space of AI/machine learning/data science. The constant influx of information just about GPT is enough to overwhelm anyone who is less familiar with the topic.
However, we are at an interesting point. Many efforts are trying to "Democratize machine learning" by
  • Simplifying infrastructure provisioning → a fancy way of saying that you don't have to install/setup software manually. I have used and I love FloydHub.
  • MLSaaS → AWS, Google and various cloud providers provide API to do language translations and image recognition.
  • Auto ML → automating machine learning itself. Tools like MindsDB even bring it directly to your database.
  • Community → most of the famous ML papers have open source implementations.

What Does It Mean for Developers

As a developer I have been a consumer of Machine learning. I used language translation and context detection, speech to text, text to speech while building languagelearners.club.
Besides, I have played around with jupyter notebooks to do small prototypes and visualization. Setting up environments and doing it on my machine was always a turnoff though, I did experiment with running training models on a "remote machine" (via SSH mainly) and the experience is much better but still a long way to go in matching the developer experience I have with other tools that I use.
Enter FloydHub
The other day, I ran into "Artistic style transfer" paper on Two Minute Papers (https://www.youtube.com/channel/UCbfYPyITQ-7l4upoX8nvctg) and I wanted to give it a go.
I tried setting open source implementations of the paper I found on macOS and Raspberry Pi but it was frustrating and didn't work. Then I ran into FloydHub in README of this project https://github.com/anishathalye/neural-style.
Roughly, it works like this
## Syntax
# floyd <parameters like gpu, dataset> '<your python command>'
## Command
floyd --gpu 'python ./train.py'
Floyd CLI will then upload the project to floyd cloud (a lot like docker context), setup the environment and train the model for you. You can also run multiple jobs in parallel training various models together. Wow 😮
I had a lot of fun with this one merging my image with noodles, mosaic, starry night and what not.
notion image


This post is not about throwing everything away and jumping on the deep learning bandwagon and dropping everything else. This is about getting the best out of available resource while thinking of building products.
The products in MLSaaS, Auto ML, ML platforms, education space are only going to better and this is an exciting space to keep an eye on.