back to indexFrom Software Developer to AI Engineer: Antje Barth

00:00:00.000 |
Hi everyone! I'm so excited to be part of this conference and share with you five practical 00:00:21.440 |
steps from software developer to AI engineer. And if anyone is wondering here this avatar on the 00:00:29.000 |
slide, this is what happens if you ask AI to make you look a little bit more agentic. Alright, 00:00:36.280 |
let's get started. So I'm pretty sure everyone is familiar with this image here and the post from 00:00:41.800 |
SWIX that defines the new role of the AI engineer. And as you've experienced probably daily in your 00:00:49.640 |
jobs, you don't need to be a full ML researcher anymore or data scientist. Things that took months or 00:00:57.000 |
years before to get AI projects into production is now able to bring just a couple of API calls. 00:01:06.280 |
Super exciting. But still, if you're working with AI, it still makes sense to understand the basics of the 00:01:16.280 |
technology. And this involves a couple of things, right? So you have to understand at a basic level 00:01:23.560 |
how foundation models work, why they're sometimes producing output that you don't expect in your 00:01:30.040 |
application code, right? You have to understand how you can customize the models, how you can, you know, 00:01:37.240 |
for example, sometimes fine-tune models to adapt them to your specific use cases and data sets, 00:01:42.520 |
how to include functions in your application code to give them access to additional systems. 00:01:48.520 |
The good news is if you're just starting on this journey to become an AI engineer, there's plenty of 00:01:55.960 |
resources now these days available to you to learn. And I wanted to call out one specific course here, 00:02:03.240 |
which is called Generative AI with Large Language Models. A few colleagues in mind, we actually 00:02:09.160 |
collaborated with Andrew Ng and the team at deeplearning.ai to put this course together 00:02:14.600 |
and help you understand the fundamentals of Generative AI to help you build real-world applications. 00:02:22.520 |
If you're curious, it's available on deeplearning.ai and on Coursera. 00:02:27.000 |
Now, the second step in this journey is to start get hands-on with the AI developer tools 00:02:40.520 |
And I think we're all seeing this quote here and we experienced it in our daily jobs that how we do work, 00:02:50.120 |
how we develop applications has changed a lot. These days, we can literally use natural language 00:02:58.360 |
inputs to interact with applications and really, English has become one of the most popular and 00:03:06.760 |
hottest programming languages. I think we can see this happening. For example, you can go these days from 00:03:14.840 |
English, English to code, by asking AI to, for example, rewrite a readme file. 00:03:20.840 |
We can also do code to English, for example, asking AI to document functions in our code. 00:03:34.920 |
But this is not all. If we look at the software development life cycle, I think many of us can 00:03:40.680 |
agree that the majority of time we usually spend not writing valuable code, but all the other things 00:03:47.320 |
around it. So sometimes up to 70% of unvaluable tasks, which is writing boilerplate code, writing 00:03:56.040 |
documentation, trying to maintain old code bases. Right? And sometimes we only have like a fraction of the 00:04:03.000 |
of the time, maybe 30%, that we're spending on actually what, you know, creates joy in kind of 00:04:07.800 |
the creative tasks in software development. And this is what led us at AWS, this inspired us to create 00:04:17.240 |
Amazon Q. Amazon Q. Amazon Q is a generative AI powered assistant specifically developed for software 00:04:25.560 |
development. And this is much more than just a coding assistant. Q developer actually uses agents to perform 00:04:35.960 |
much more complex tasks and help you automate those. For example, feature development and also code 00:04:43.240 |
transformation. Think about working with old Java based code bases that you need to migrate maybe to 00:04:50.440 |
your newer Java version. And to show you how this works, I asked my colleague, Mike Chambers, 00:04:57.400 |
to put together a quick demo. Let's have a look. 00:05:00.040 |
Mike Chambers: With Amazon Q installed inside of my IDE, I can go to new tab and I can start a conversation with 00:05:09.480 |
Amazon Q developer and I can do the kinds of things that maybe you'd expect, such as how can I create 00:05:15.320 |
a serverless application? And how do I get started? And the chat session brings back a list of instructions 00:05:22.920 |
of what I should do, starting off by installing AWS SAM CLI, how to do that, where to get that from, 00:05:30.360 |
and how to step through the creation of a project. Now, if I've done that, then serverless SAM, for example, 00:05:37.160 |
might actually come back with some generated code. And here is that code. Maybe I don't quite know what 00:05:42.760 |
this code does. So I can right click on the code and send it to Amazon Q asking Amazon Q to explain. 00:05:52.760 |
And the code then will go into a prompt along with explain and generate an answer. And this is great 00:05:58.840 |
for code that's been generated for us. But also imagine code for legacy systems, something that was 00:06:04.920 |
worked on years ago by somebody else, where you can get Amazon Q to help explain it. We can also get Amazon 00:06:12.280 |
Q to generate code. Now, this is, again, probably the kind of thing you'd expect. I can put in a comment 00:06:18.920 |
line inside of my code. In this case, I want to create an input checking function. I'm going to give 00:06:24.840 |
it some more definition here that I actually want it to trim any string that's being sent into this 00:06:30.120 |
function. And yes, Amazon Q can generate this small function. Well, that's great. But what about if I've got 00:06:38.280 |
more code that I need to have generated? Well, I can go to the chat and put in /dev. And I can put in a 00:06:45.960 |
much more comprehensive description of something that I would like. In this particular case, I'm going 00:06:50.920 |
to ask for it to write a function to search by category in DynamoDB with a bunch of details about 00:06:58.920 |
the way that I want the output to be formatted. So this is much more than just a single or a few lines 00:07:05.880 |
of code. And in this particular case, what's going to happen is it will come back again with a step-by-step 00:07:11.800 |
list of what's required. So I need to add in template.yaml. It's recommending that I create 00:07:19.320 |
search by category.mjs and many more things. But this isn't just a big shopping list of things that 00:07:27.800 |
I need to do. This is actually a plan. And it's a plan that Amazon Q can actually follow for us. So it generates 00:07:35.800 |
some code as a change set something that we can look at the difference between our current code 00:07:42.760 |
and what it suggests. And if we like that, we can actually click on the insert code button. And it 00:07:49.080 |
will add all of that code into our project way more than just a couple of lines. So Amazon Q developer is 00:08:02.280 |
All right. If you're curious to learn more about Amazon Q, Amazon Q developer, we have a couple of 00:08:09.480 |
more sessions throughout this day. So make sure you're checking those expo sessions. And we also do have a 00:08:15.480 |
session at our AWS booth here. You can also visit our Amazon Q developer center for much more examples what you can do with it. 00:08:23.320 |
All right. Let's come to step three. And this is where the fun starts. Start prototyping and building with AI. 00:08:33.080 |
And the fun includes a couple of steps, right? Everyone developing with AI knows this. 00:08:39.640 |
It starts all with defining your use case. And then really, you're on this road, trying to choose from 00:08:46.120 |
different models. You're trying to, you know, customize them to your use case, decide whether it's prompt 00:08:51.960 |
engineering, whether you do rec, whether you need to do a little bit of fine tuning there with your data. 00:08:57.720 |
And of course, across the whole development workflow, you have to incorporate responsible 00:09:03.960 |
AI policies, making sure data is private and secure, and also implementing guardrails into your application. 00:09:11.240 |
And then when you're integrated, another fun part, obviously working with the agents, what we're hearing a lot 00:09:17.320 |
here throughout this conference and the fun topic of, you know, how to keep them up to date. 00:09:22.840 |
GNI ops. I think there's a lot of terms for that. MFM ops, LLM ops. So really kind of a lot of things to consider here. 00:09:30.680 |
I want to dive in briefly into the topic of models to choose. And this is really an important topic. 00:09:38.920 |
When you're evaluating models, you have to really evaluate them thoroughly, because most likely, 00:09:45.160 |
there's not just going to be one size fits all for you. In fact, if you look at all your use cases 00:09:52.680 |
you want to implement, there's likely no one model to rule them all. 00:10:00.200 |
And this is why we developed Amazon Bedrock. Bedrock is a fully managed service that gives you access to a wide 00:10:08.520 |
range of leading foundation models that you can start experimenting with, implementing into your 00:10:15.400 |
applications. It also integrates the tooling you need to customize your model, whether it's fine tuning, 00:10:23.800 |
also to include reg workflows, to build agents, and of course, everything in a secure environment where 00:10:33.880 |
And speaking of choice, just to give you a quick overview, as of today, this is the selection of 00:10:43.080 |
models you can choose from. We're working with leading companies such as AI 21 labs, Entropic, 00:10:50.200 |
Coher, Meta, Mistral AI, Stability AI, and we also offer our own Amazon Titan models for you to choose from. 00:10:58.600 |
And I'm super excited just to call this out. Last week, together with Entropic's launch, 00:11:04.600 |
we integrated Cloud 3.5 Sonnet on Amazon Bedrock as well, so you can also, since last week, use this model. 00:11:13.640 |
Super exciting. Now, with choice also comes responsibility, right? And we continuously 00:11:22.040 |
innovate and trying to make it easier for you to build applications across the different model types. 00:11:28.760 |
And just a few weeks ago, we introduced a new unified Converse API on Amazon Bedrock. 00:11:36.920 |
And what does this do? The unified Converse API helps you with a new unified method structured invocation, 00:11:44.600 |
meaning you can use the same parameters and bodies regardless of which model you choose. 00:11:51.720 |
And we are on the platform side. We're handling this translation if parameters are called different for 00:11:58.200 |
the different models, handling the system user assistant prompts for you, and also giving you a 00:12:03.160 |
consistent output format. And as well, having native function calling support in here. But let me show 00:12:09.160 |
you how this looks in code. So here's the Python example that shows how you can use the new API. 00:12:16.280 |
This is Python, so we're starting by just integrating the Python SDK client here. And then you can define 00:12:24.200 |
this list of messages. And here's, for example, where you put in your user message prompts. You can put in 00:12:30.760 |
system prompts as well. And then this message list, you can just pass in this single API call using the 00:12:38.200 |
Converse API here. In the model ID, you can choose which model you want to test. Here I'm using an 00:12:43.960 |
entropic model. And then pass the messages and also the inference parameters. And again, in this API, 00:12:51.240 |
all those parameters are standardized, and we're going to make the work behind the covers to convert this to 00:12:58.760 |
the specific format that the model is expecting. So you have an easy way to work across different models. 00:13:05.080 |
Similarly, here for function calling, we do have the support built in that with the models that support it. 00:13:13.080 |
So how we implement this is by defining a tool list. So tool here equivalent to the functions you want to give 00:13:22.280 |
access to. And then when you're doing the Converse API call, you can pass this list of tools. 00:13:28.280 |
All right. If you want to find out more about Converse API, here's a link to our generative AI space on 00:13:36.600 |
community.aws, which has a lot more tutorials, code examples, not just for Python, but across different 00:13:43.560 |
languages as well. So check it out. The author here, Dennis Traub, is also somewhere in the audience 00:13:49.640 |
here this week. So if you want to connect with him, talk about different code examples and how to use 00:13:54.040 |
the API, feel free to reach out. All right. Now let's integrate AI into our applications. And this can 00:14:03.320 |
be a whole session in its own, but I want to focus on one of the hottest topics right now that we're 00:14:08.360 |
discussing during the conference, which is, of course, agents. And I have one more demo here, and I asked my 00:14:16.120 |
colleague Mike last time to put together an exciting demo to show you what you can do with agents. 00:14:27.720 |
To be able to create agentic workflows right inside of the AWS console and inside of the service. It works 00:14:35.080 |
fully serverless, and I've used it to create an agent that plays Minecraft. Let me show you how I did it. 00:14:41.960 |
If we jump into the AWS console, go down the menu on the left-hand side to agents, you can see the 00:14:48.040 |
agent screen here, and I can open up my agent, my Minecraft agent. Now, if I just go into agent builder 00:14:54.840 |
and just expand the screen out a little bit, you get to see some of the parameters that I used to create 00:14:59.960 |
this agent. So you can see the large language model I used, in this case, Claude3 Haiku. And you can also see 00:15:05.960 |
this, the instructions for the agent. Now, this is not some notes for myself. This is actually prompt engineering 00:15:12.040 |
that we're doing to explain how we want the agent, in this case, the Minecraft bot, to play the game. 00:15:17.880 |
And then we also have to add some tools in, right, some Minecraft tools. So we do that through actions 00:15:23.480 |
and inside of action groups. So I've got a couple of different action groups. We've got Minecraft actions 00:15:28.040 |
and Minecraft experimental. Let's have a look at actions. And inside of here, we can see some really 00:15:34.520 |
simple things, some actions that the bot will be able to do. And these are all linked up to code. 00:15:40.360 |
So we've got the action to jump. We've got the action to dig. And you can see the description here 00:15:45.560 |
for action to dig. It's got some instructions. Again, this is prompt engineering. And then we've got some 00:15:51.000 |
parameters that we can select, collect. In fact, we require these parameters. So the bot needs to get 00:15:56.920 |
these for us. If I scroll down a little further, there's a couple of really simple actions in here. 00:16:02.120 |
Action to get a player location, and action to move to a location. I want to show you those in action, 00:16:10.600 |
because the bot can actually problem solve and reason its way to be able to use these tools to solve 00:16:17.560 |
simple problems. Let's jump into the game. And so it is nighttime. So let's set it to be the daytime. 00:16:24.040 |
So that we can see what's going on. So set time to day. Okay. And there in the middle of the screen, 00:16:30.200 |
you can see Rocky. Rocky is the bedrock agent running inside of the game. And we can talk to it. We can 00:16:36.840 |
have a chat session. But what about if we want it to come to us? Now, there is no tool to come to us. 00:16:44.200 |
So I'm just going to back up a little bit further, make it a little bit more of a challenge. And I'm 00:16:48.040 |
going to say, come to me in chat. And what's going to happen now is that the agent's going to reason 00:16:53.960 |
through a whole set of actions. It's going to look to see who requested that. It's then going to take 00:16:59.160 |
that name, and that's my name. And it's going to find the location of that player. And then it's going to 00:17:05.160 |
map a path from where it currently was to me. All of those things happened all in that blink of an eye. 00:17:11.960 |
And there's agentic workflows making all of that happen. This is super exciting. I'm discovering new 00:17:17.480 |
things that this bot can do every day. But with that, it's back to you. 00:17:22.120 |
All right. Thank you, Mike. If you're curious to know how we did this, check out our booth session. 00:17:29.480 |
We're running the demo there as well. And we have another session in the agent's track later today. 00:17:35.080 |
So make sure you're popping in there if you want to know more. And, of course, you can find the project 00:17:40.360 |
code for this on GitHub. So if you want to play it on your own in how you can integrate agents into a fun 00:17:47.880 |
thing, check out this project. All right. We're almost there. So the last step I really want to call out is 00:17:55.320 |
stay up to date. There's so much happening in this space, as you all know. And a really good way to do 00:18:01.400 |
that is to engage with the community. Speaking of community, I have one last announcement to make. 00:18:08.840 |
And I'm super excited to announce that we're transforming our AWS loft here in San Francisco 00:18:16.200 |
into the AI engineering hub for the community. So we're super excited to host workshops, events, 00:18:23.800 |
and meetups there. If you want to suggest a couple of topics you're most interested in to make those 00:18:29.720 |
events most valuable to you, fill out this quick survey here. Also, if you're interested in speaking 00:18:35.480 |
or hosting a meetup yourself, you can let us know. And also, we do have another event tonight, 00:18:42.760 |
which I think we're reaching capacity or just have reached capacity. But we do have a happy hour with 00:18:49.080 |
Entropic tonight at the loft. In case you didn't make it anymore and we're at capacity, don't worry. 00:18:56.840 |
We're working on putting together much more events like this in the upcoming weeks and months. So keep an 00:19:02.760 |
eye out for those. And with that, I'm coming to the end of my presentation. This wraps it up the five 00:19:09.960 |
practical steps to become an AI engineer. And let's innovate together. And I'm looking forward and I'm 00:19:17.720 |
excited to see what you built with AI. Thanks so much. Make sure you're checking out the rest of the 00:19:24.840 |
sessions here and also pop by our booth outside. Thanks so much.