AI Engineering

July 10, 2024

The explosion of generative AI since the introduction of ChatGPT and how it is changing the world has led me to see AI as a technological breakthrough much like the computer, the iPhone, the internet, and automobiles were in their time. I do believe that AI has the potential to change the world, and I'm excited to have the opportunity to be a part of this technological revolution.

But how can I, as a web developer, take part in it? I think that the recent explosion of generative AI with language models like ChatGPT have really brought tremendous value and opportunity to change the world in ways that nobody could have imagined before. Generative AI has found its way into software engineering, journalism, art, film, music, healthcare, food, science, and finance among many other industries.

Since the introduction of the ChatGPT API, with many others following suit, developers can now build solutions to many challenging problems that all of these industries have, and in record time, with significantly less money and resources than was previously needed.

There is a new role emerging out of all of this called "AI Engineer". Currently, this title refers to someone who builds AI models and systems from scratch. They're also called research scientists or machine learning engineers. These are the people who are responsible for AI research, training, evaluating, and building foundational AI models. But now, this title is more referring to a new breed of full-stack software engineers who are building ON TOP of foundational models like ChatGPT, Claude, and Gemini to build integrated AI solutions that solve real problems.

So what do AI engineers do? Is it just integrating with cloud APIs? Well the answer would be, not quite. Just because I can build an app that integrates with an S3 bucket doesn't necessarily make me an AWS engineer. There is a lot more involved in AI engineering. Here are just a few of the responsibilities of an AI engineer:

  1. Building AI-powered apps: Build scalable applications that effectively integrate with AI APIs like ChatGPT, or Watson STT/TTS.

  2. AI Workflow Development: Create complex AI-driven processes using RAG architecture, autonomous AI agents, and tools like LangChain, LangSmith, LLamaIndex, and vector databases like Pinecone and Chroma.

  3. Prompt Engineering: Develop and optimize prompting strategies for various AI tasks and models.

  4. LLM Evaluation: Design and implement frameworks to assess LLM performance for specific use cases.

  5. Model Fine-tuning: Prepare datasets and implement pipelines for fine-tuning LLMs on specific domains or tasks.

  6. LLMOps: Manage infrastructure, monitoring, and CI/CD pipelines for LLM-powered applications in production.

In other words, AI engineering is a new sub discipline within software engineering much like data engineering and DevOps. There couldn't be a more exciting time to be in software engineering!

"In numbers, there's probably going to be significantly more AI Engineers than there are ML engineers / LLM engineers. One can be quite successful in this role without ever training anything."—Andrej Karpathy

It is claimed by some that this will likely be the highest-demand engineering job of the decade.

I've personally decided to shift from general front-end engineering and transition into AI engineering. But I've actually realized that my path to AI engineering didn't start now. It actually started back in 2015 when I worked at IBM Watson building AI-powered prototypes and experiences. When I saw first hand how I could extract concepts, entities, and sentiment from unstructured data in real-time for the first time, my mind was blown. I went into IBM as a young front-end developer, and emerged as a senior front-end engineer. More importantly, IBM taught me how I could effectively solve real-world business problems using cutting-edge, innovative AI technology by integrating Watson APIs.

And now with the emergence of generative AI, I can continue doing this, but now with much more powerful tools and architectures at my fingertips to build scalable, complex, production-grade applications that solve hard, real-world problems. While I can't title myself as an AI engineer right now because of the confusion with AI engineers essentially being research scientists and machine learning engineers, I certainly do consider myself to be an AI engineer.

For those who are interested to know more, this post is one of the best that I've read on the rise of the new AI engineer: https://www.latent.space/p/ai-engineer