(Editor’s note: This post about AI is part of Dispatches’ Tech Tuesday series. We cover tech because so many of our highly skilled internationals are developers, AI researchers and computer scientists.)
There’s a lot of noise about everything AI right now. Most everyone knows what ChatGPT is and uses it for everything including job interview training, solving math problems and writing their homework. Some people use generative AI in their daily work regularly, like us software developers, who are massively switching from StackOverflow, which was a Q&A platform of choice for many years and collected a huge body of technical knowledge, to GitHub Copilot, JetBrains AI Assistant, or similar bots integrated into their tools of choice, or just to the ChatGPT itself. (As an aside, GitHub Copilot is so awesome that it’s scary).
But to most people, and software developers aren’t excluded, this whole area is still obscure and full of mystery. Basically, it looks like black magic. Also, the terminology is confusing. What in the world is AI and ML — is that the same thing? Are they synonyms? What is generative AI or iterative AI? What are neural networks?
What, in the name of all that’s holy, is RAG?
Let’s begin at the beginning
Or at least, how it began for me.
In Fall 2011, Stanford University opened three computer science courses — Databases, Machine Learning, and Introduction to Artificial Intelligence – to anyone. The courses were free and the interest was huge. I was a software developer with fluent English and of course, I was also interested, so I immediately registered for two out of three – for Databases and Machine Learning.
Databases was something I knew and worked with but was still interested to see how Stanford taught it and what they had that I didn’t know; Machine Learning was taught by Andrew Ng who later started Coursera – the very first massive online teaching platform – and got to be a huge success. I didn’t register for the AI course – I thought I was probably too dumb for that.
Turned out, I was too dumb for ML as well. Don’t get me wrong. I finished the course. I did the assignments and I got a certificate (long expired). But I felt like a complete and utter dummy all the time.
Every assignment was a struggle. The programming languages of the course, Python and R, were both new to me; I was a Java developer and it’s a completely different world. But it was not only that. The very concepts that the course was trying to teach were so … foreign. They seemed completely unrelated to any real-world problems, just purely academical.
And hard. Oh, so hard.
After the course, I happily concluded that I wasn’t cut for the AI/ML world and returned to my cosy software developer nook. I always had enough work to do and it seemed most every country in the world was looking out to get more software engineers.
I moved to Poland, then to Germany. I changed companies once, twice, three times.
But as I continued to write code, those pesky ML models were popping up all around me like mushrooms after the rain.
Every company I joined seemed to now have data scientists – or applied scientists – on staff. They created –or trained – models that were used in most any aspect of the business.
• Models to detect fraud in online transactions.
• To find anomalies in statistical data.
• To improve personalization of a web store.
• To find similar items for a recommendation system.
Then, generative AI appeared and oh my God, everyone and his uncle was trying to beat each other in creating a bot-based search system or support chat or whatnot. And when you understand that something came into your life to stay, the least you can do is learn what it is and how to use it.
So in layman’s terms, what is AI?
Artificial Intelligence
AI is a type of technology that enables machines, like computers, to mimic human thinking and behavior. It helps computers learn from information, make decisions, and solve problems.
Machine Learning
ML is a specific area of AI, targeted at making computers learn and improve from experience without being explicitly programmed for every type of the task.
An ML model is basically a piece of software that makes predictions based on the data. It’s like a program, the input of which is data and the output is called a prediction. The model’s result is called a prediction because it predicts something. Very often, you will encounter an example of cats and dogs problem — the problem of image classification. To a human eye, in most cases, this is not a problem at all. I mean, who cannot distinguish between a picture of a cat and a picture of a dog? Isn’t it, like, obvious?
But for a piece of software, it’s very far from obvious. The computer doesn’t have eyes. What it “sees” is a set of differently colored pixels (and yes, “colored” is a relative term here as well, because “colored” just means encoded – in RGB or some other color encoding system – so it’s just a set of pixels with some associated numbers).
How is the computer to know which pixels stand for what? It could be a cat, a dog, a space ship, or Jabba the Hutt, for all it cares.
The ML models would help the computer to solve the task. The model gets trained on data. It’s a large body of pictures that are classified – that is, it is known whether they are depicting a dog or a cat. This way, the model learns the patterns and acquires a skill of recognizing what it gets. So when it gets a picture from the test data, it has a high probability of detecting a cat or a dog, it makes a prediction.
“Right,” you’re saying, “but what about all this generative AI? How is it related to what you’re talking about? It’s not like it’s predicting anything, right?”
Ah, but it does. Look at this sentence and tell me how it ends:
I have worked many years as a software ___
Did you fill in engineer? Or perhaps developer? Or programmer?
Whatever you did, you just made a prediction. You predicted which word comes next. You may have had several candidates, but you selected the most probable one, based on your experience — that is, on the data that you’ve been trained on.
That is exactly what an LLM does. It predicts what word will come next, and then it feeds this word back with the rest of the sentence and iterates, and iterates, and iterates… until it generates the whole text. (That is a very simplified picture, of course, but the idea is correct.)
Now, what is an LLM?
There are many types of ML models. What we hear about the most these days are LLMs – large language models. Like ChatGPT. And in case you’re not aware, ChatGPT is not the one and only. There are many other models, though they are less known, for example BERT by Google, LLama by Meta, Claude by Antropic. The one used by GitHub Copilot is called Codex and is developed by OpenAI, same as ChatGPT that is so widely known and used now, but Codex is specifically targeted at coding tasks.
LLMs are models that are solving tasks about natural language — text generation, summarization, translation, answering questions. LLMs are mainly text-based, but there are LLMs on steroids — like Gemini by Google — that is already not just an LLM but is multimodal; that is, it can use not just text but audio or video input and generate text-to-speech and images as its output. Frankly, what it does for software developers looks scary as hell. (I guess I have a high chance to see the end of our job as we know it.)
Why should I care?
We, as in software engineers, are sitting in this roller-coaster carriage and you don’t get to see how tight we hold to the rails. But at least we know that essentially, models are code, and the programs that interact with them are code, and maybe our work will change. But until the code learns to write itself completely on its own, we will still have something to do.
For the people of other creative professions — writers, bloggers, designers, even artists and filmmakers — there’s a high chance their skillset will be largely covered by AI. And AI doesn’t sleep, doesn’t have kids, doesn’t get sick and doesn’t demand a paycheck and vacations.
Maybe the professions will still survive in some way or other. But they will probably change … a lot. For the people who are doing business online — marketplaces, travel and hospitality business, real estate, everything — most of the business already uses AI and ML for all kinds of purposes, so one needs to take care to not lag behind.
One should care because life as we know it is no more.
So, about that RAG thing
And the neural networks? And, well, other terms you haven’t even mentioned like deep learning or vector search or semantic search? And what about other generative AI models that do pictures — like Midjourney?
The topics related to AI and ML are unfortunately too numerous to cover in just one article, and they become more complicated as one goes deeper. But we already have the basics, so from here, it’s easy to explore further by diving into the wealth of resources available online, from detailed tutorials and documentation to videos and forums for every level of expertise. Udemy, Coursera and other MOOC platforms have every imaginable online course.
Those are paid, but there are also a lot of free resources available. For example, this 10-min YouTube video by a Googler Jeff Su covers quite a bit more than this article in just 10 minutes and with visuals. And there’s a whole subreddit with links to different free online courses that you can explore on your own.
Seek and ye shall find, right?
–––––––––––
Read more about AI here in Dispatches’ archives.
Maryna Kryvko
Maryna Kryvko is a software developer in Germany. Maryna also writes a programming blog to share her knowledge. She sometimes speaks at conferences, though being an introvert, writing comes more naturally. Maryna says she’s not a professional writer but writing is something she likes, “and I think I can do it pretty well.”