What I learned in 6 months at an AI company
Tags: machinelearning, ai, development, career
Published: 2020-05-21 17:04:39

Back in January I joined a company called [DataRobot](https://datarobot.com) as a Developer Advocate. My job is to inspire, enable, and represent developers using our machine learning (ML) products. 
If you're not familiar with DataRobot, we provide artificial intelligence (AI) products and solutions to some of the world's largest and well known enterprises and governmental organizations. 

Before joining, I had no meaningful experience in ML, data science, or AI. The farthest I got to ML was building an AI powered chatbot for a product I used to work with. I just knew that ML was _hard_ 😅. 
Since then I have built a few AI powered apps of my own, so I feel like I can talk a bit more about it. This article describes some of the things I learned in my first half year in the AI and ML industry - going from complete newbie to someone who can leverage ML in apps.

# AI is everywhere! 🗺

![hong kong city Photo by Alexandre .L on Unsplash](https://dev-to-uploads.s3.amazonaws.com/i/phc3j2dzlfhxxbb4txv5.jpg)

I used to dismiss ML as _just another hype_, in the same bucket as blockchain or virtual reality. I thought it was mostly confined to Big Tech, academia, and hobbyists, definitely not something you'd interact with on a daily basis.

This was mostly true... **about a decade ago**. Boy, was I wrong.

The reality is, many organizations you interact with on a daily basis use ML in some way in their business, without you even realising. Your bank might use ML for fraud detection, your supermarket to forecast how much flour to stock, or a factory might use it to detect defects in the products they produce before they get to you. 

Where ML especially shines is with economies of scale. When you have huge amounts of data to run through - imagine the number of transactions a bank or a large retailer might process, and even savings in the low single digit percentages compound dramatically. 
These are only a few examples, but ML is often good fit in many areas where you want to automate and augment tasks that would otherwise be hard, or tedious for human workers... Now where have I heard this one before? 🤔 

There's a reason why we call the current rise and rise of AI __the Fourth Industrial Revolution__.

# Machine Learning is super hard... 😱

![bicycle race Photo by Florian Schmaezz on Unsplash](https://dev-to-uploads.s3.amazonaws.com/i/kh216otassrzd8qalp5r.jpg)

**As an industry, ML is evolving rapidly**. It's a moving target on all fronts - algorithms, frameworks, hardware, to use cases ranging from academic projects like AlphaGo, to self driving cars, to medical and health research. There's lots of hard science at work pushing the boundaries of what's possible. All of this progress is incredibly difficult to keep track of, and ensure you're really following the best practices.

Beyond all the technical difficulties of the bleeding edge, you have some great __operational challenges__ as well. For example, once you've trained a model, how do you ensure that your model _remains_ accurate over time. This is crucial, especially when data you're using starts to change in ways you haven't foreseen, and your models aren't reflective of the real world. 

Last but not least, there are also __challenges with governance and AI bias__. Most AIs are seen as black boxes where you can't know why a certain answer was given. If a laboratory wants to use AI to help produce a diagnosis, they can't risk relying on a black box when human lives are at stake.

# ...but using ML doesn't have to be a struggle 🦸‍♀️

![View over the mountains Photo by Simon Berger on Unsplash](https://dev-to-uploads.s3.amazonaws.com/i/oxa2je9zu5zc7mf1ayah.jpg)

Luckily, **today's bleeding edge is more accessible than ever**. We've solved many hard things. 
You don't need a degree in electronics to use a computer, or a networking degree to be a web developer, you don't need a data science degree anymore to build and deploy AI. The whole AI industry is moving towards democratization, and enabling everyone to work with, and benefit from AI.
There are awesome tools out there that let you build and leverage leverage models, and you don't even need to touch the frameworks like Tensorflow or Pytorch yourself.

Take **Automated Machine Learning (AutoML)** for example. AutoML is DataRobot's product and an associated technique that lets you train dozens of ML models using a variety of algorithms on a single dataset, pitting them against each other in order to determine which model is the best for your data. What used to take days can now be accomplished in mere minutes. New and refined algorithms are constantly being added to AutoML tools, making the models they produce ever better and better. All you need to do is to press a button. 

We have also made some serious progress towards overcoming operational and governance challenges I mentioned earlier. We have tools available that let you **monitor your ML models** in the wild and that let you know if a model is at risk of becoming inaccurate due to changes in underlying data (we call that data drift). 
Our models are also not black boxes anymore, and we can explain with increasing confidence why a given model has returned a certain prediction. Unsurprisingly, this field is called **Explainable AI**.

# Difficulties with Data Dealing 🐘

![Playing cards Photo by Amanda Jones on Unsplash](https://dev-to-uploads.s3.amazonaws.com/i/s4c1ip7zf3qo3w4lqqr0.jpg)

For all the problems we've solved already, one thing remains clear - we need data for machine learning, and obtaining that data for ML is difficult. 

Datasets need to be representative of your problem domain. In very few cases are you able to apply a dataset from the web that works well for your own use-case. Face and object detection is a good example of where that works - that's why many companies are in the business of providing AI-powered image and speech recognition software and services. 

Often you will also need to combine multiple data sources from various sections of the business into a single learning dataset (unless you're lucky and have a data warehouse at hand already).
For this, SQL rules the world. Sometimes you need to revisit your SQL knowledge because you have obviously forgotten everything apart from the most basic commands in the last 8-ish years. Speaking for a friend, of course. 😇

Finally, and this might be pretty shocking for developers, but sometimes constructing a good training dataset also requires lots of human effort at some point in the process. Whether you're manually classifying a dataset you're preparing, or validating the output of a script - it's eyes before AI. 👀

# The Pervasive Popularity of Python 🐍

![A man teaching snakes programming - meme](https://dev-to-uploads.s3.amazonaws.com/i/ua8x1rm4km9wgqzgbtqn.png)

[Python](https://python.org) is one of the most popular programming languages. I knew that, yet it still surprised me. This shouldn't be strange as it's the one language that caters to both data scientists as well as developers (as opposed to say Java, R, or Matlab). Python lets you build both apps, and manipulate large sets of data with the same syntax.

One of Python's strongest suits is it's readability. Python reads like English - it's probably the most English-like out of all programming languages. This makes it incredibly accessible for learning. It also has a mature set of libraries for a wide range of use-cases, from web development to scientific computing, giving it a broad appeal.
Yet, not everything about Python is perfect. The language is almost 30 years old, some 5 years senior to Java, JavaScript, and PHP, and this age shows. One of my pet peeves is the situation with dependency management. Sure, it comes with a package manager with PyPI, but the only way to ensure you're isolating your environment properly is by using an archaic combination of console commands to create and initialise Virtualenv. I find Virtualenv so confusing [that I have a gist I can refer to each time I deal with a new project](https://gist.github.com/zmarkan/50844676b14aebafa15f212361863db9) 🙈.

Finally, the ways developer and data scientists might use Python are *vastly* different. Sure, the syntax is the same, but the ecosystems vary wildly. From the libraries and frameworks you might use for either development or data science, all the way to tools used and best practices followed.

For example, data scientists love their [Jupyter notebooks](https://jupyter.org/) 📓. They are a sort of dynamic, executable documentation, where you write part markdown and part code, and then execute it alongside the documentation - rendering spreadsheets and graphs side by side! They are the preferred way to interact with [Kaggle](https://kaggle.com) competitions and datasets. This concept is great for experimentation and therefore ideal for data scientists, yet not at all suited for building and maintaining production software - something I cherish more as a developer. What's more - all that fancy dynamic approach generates some extremely hard to review JSON code, if you ever decide to host that on GitHub 😬.

# What about the Rise of the Robots? 🤖

![Humanoid robot Photo by Franck V. on Unsplash](https://dev-to-uploads.s3.amazonaws.com/i/l4uaj7oepbrt2grm7f8i.jpg)

You've probably encountered film, books, or games talking about the rise and revolt of intelligent machines - the Matrix, Terminator, 2001: A Space Odyssey, and many others. It's easy for media to paint a bleak picture.

Yet, from what I've seen so far, we have little to fear from the AI that we currently possess. Indeed, AI is developing at a rapid pace - some of the brightest people I know are working hard on pushing the boundaries. 

At the same time, it's become more and more accessible for you and me to build - and benefit from - AI, and we have some amazing tools available that make it easy to approach.

So, if you'd like to see what the bleeding edge looks like and what it can do, we recently opened a trial for DataRobot for developers. If you'd like to try out the latest and greatest of ML tools, please reach out to me for access to DataRobot trial - at zan@datarobot.com, quoting dev.to in the subject.

That's just a few thoughts on my perspective after 6 months in the AI industry. There has been a lot of learning, and a lot of surprises, and I'm more enthusiastic about the future than ever, and how dramatically our lives will change because of it. 
What about you? What are your thoughts and perspectives on AI and the tools that are available? Let me know in the comments!