Back to Index

How To Solve It With Code—background on the course; a discussion with Jeremy and Hamel


Transcript

>> So Jeremy, if you don't mind reminding us, why did you start Fast.AI? What was the initial, beyond the grand vision of how you wanted to help people? I understand some parts about wanting to teach people AI, but what is beyond that? What is the end result on people's lives?

>> We saw that AI, we thought it was likely to be the most significant technology for hundreds of years and will impact everybody in society. We felt that could go really badly, if very few people understood it and were part of it, it could lead to all kinds of inequality and loss of opportunity for people, or it could go really well if lots of people were able to use that technology and benefit from it and be part of designing a society that uses it.

So we started Answer.AI to help as many people as possible take advantage of AI. So we did that by creating courses to teach people how to use AI, which at that time basically meant training your own models. We did academic research to figure out how to make it much easier to use AI, and cheaper, and faster.

Out of that came stuff like ULM Fit, which created the foundation of the modern language model movement, and we built software to make it much easier to use AI. So that was the foundation, and that worked really well. Like most of the top practitioners I talked to today tell me that Fast.AI has been part of their journey.

But I guess what's really exciting is we're now at a different stage where you don't have to train your own models anymore, and AI can do a whole lot more stuff than it could when we started Fast.AI. So that's why Eric Ries and I started Answer.AI to basically go to the next level.

Basically, to say, well, we can be more bold now, we can do more with this, we can get funding to build a team to go even further than Fast.AI could. What do you think, compared to Fast.AI, what do you think is going to happen with the audience, or the target persona that you're able to reach in terms of being able to use AI now versus the way it was before?

So now, you don't need to train a model, and in fact, just like there was a point at which you could suddenly start using the internet without knowing anything about TCP/IP and SMTP and whatever, you just like, you know, kind of... That was possible a long time before the iPhone, but in some ways the iPhone was the thing that brought that to most people's fingertips.

I think ChatGPT was the thing that did the same for AI. It meant that now lots of people can use AI without knowing how to code, without knowing how to train a model, without having lots of computers. And that meant that suddenly we've gone from the original Fast.AI target market, which was anybody who's already pretty good at coding will teach you how to use AI, and now our goal is to say, you know, we actually want to basically teach everybody to use AI.

Having said that, there's still a lot of benefit in knowing how to code. And so a lot of people now are using AI that really don't know how to code at all. And so we've decided... So two things. Fast.AI has become, is now part of AnswerAI. And Fast.AI has access to all that additional resources, funding, people working on the company.

And through that, we can now... And they have now built a new kind of course. It's not just a new course. It's a new kind of course. This kind of course has never existed before. It's like a course that is only possible with AI. And it's going to teach people to solve problems that they previously didn't know how to solve, using code and AI together.

So it's called "How to Solve it with Code". That's the name of the course. When I said it's a new kind of course, it's not just going to be me on YouTube anymore. We've literally created a whole new tool with language models built into it, which people will be able to use to work through the material in "How to Solve it with Code".

So we've built a whole new platform for this new kind of course. >> Tell me a little bit about this kind of new kind of course. From a more, like, okay, let's zoom out from the tools. Let's talk about, like, the new way that you can teach something, or the education, the way it's delivered.

Like, how is this actually different? Like, the learning process? >> So Rachel Thomas and I created the first version of the Fast.ai course in 2016. And we did it every year or two. The last one was in 2022. It didn't change, you know? And I was proud of that.

Like, it didn't change. The structure of it, the method of it, it didn't change. And in fact, a lot of the content didn't change much either, because it was very, you know, it was not ephemeral kind of stuff. It was stuff that the basics of SGD and so forth, that lasts forever.

But I haven't done another course since 2022. And the reason why is I felt it doesn't make sense to create the same kind of course when the technology has now shifted and the kinds of people that can use the technology is now shifted. It's so much more accessible. And, you know, with language models, the world's different.

So I didn't feel comfortable creating yet another course that was basically the same, because things aren't the same now. Which is great. So this is like the first beta version of this new kind of course. I think things are going to go a long way from here. But the basic idea is, like, let's make AI part of the learning process.

Not a little add-on chat box in the corner or something, right? But a whole program built in and around AI as part of what is taught and how it's taught. So let's talk about that a little bit more. A lot of people, when they think of AI, they think of it as something they can use to do things for them.

I think a lot of people don't consider them in ways they can use for learning. Can you talk a little bit more about what that means in terms of learning with AI? Yeah, okay. I think the question that I start with is, well, why are we teaching a course how to solve it with code, when we're saying, like, people don't need code as much anymore?

Why is that the first course that we're teaching in this new way? And you don't really need a course to say, like, how do you use ChatGPT? Like, you can get help with prompt engineering and stuff like that. But it's the kind of thing you can, like, make a start on in a half an hour of reading a blog post.

But we've seen again and again, so many of our friends hit a wall with that approach, where they're trying to do stuff that's, you know, they're trying to solve problems and build things that go beyond what ChatGPT can, like, solve in a single step. And it's very impressive what stuff like ChatGPT and Claude can solve in a single step.

But, you know, as anybody who's used these tools for a while has seen, there's lots and lots of stuff they can't, which is not a criticism at all of them. That's just how it is, you know. So you actually do need to go beyond that. You do actually need to learn to code.

But there's -- we've developed a way of combining coding and AI. >> Before we go further, can we linger on that a little bit of why is, like, ChatGPT plus coding so exciting? Like, the combination of them. How does it expand the problems you can solve? >> It's amazing.

So if you know a bit of coding, right, and if you have a good way, and we've built this way, a good way of combining coding and AI, you can take the stuff that the language model is giving you and tweak it, modify it, pull it apart, recombine it, and then interactively do that with the AI to form a dialogue in which you're constantly feeding back, oh, this was a bug, or this actually doesn't quite solve the problem I had in mind, or whatever.

But not just with more and more prompting. As we've all seen, you get into this really annoying loop where you're trying to get the AI to write a bit of code and you know what it needs to do, and it's so hard to sometimes get it to do what you want.

Just write the damn code. It's just so great when you can just dive in and add a couple of lines of code yourself here, and then have the AI add a couple of lines of code there, and now it's man and machine combining together. And at least at this stage of history, that's vastly more powerful than machine alone.

So that's what this tool we've built and this course we've built is all about, which is-- And a lot of people think that coding with AI is just about building SaaS apps or building software, but do you think it goes beyond that into just solving everyday problems that people might have?

Yeah, yeah. That's why this is called How to Solve It with Code. It's about how to solve problems. And actually, when you're creating an app or a dashboard or whatever, that consists of solving lots of problems. But lots of things do as well. Like if you're doing a data journalism exploration of organized crime company links based on thousands of PDFs, or if you're trying to segment pathology slides, or if you're trying to understand the change of the word literally over time in usage through studying texts online, or whatever stuff you're doing.

Or if you have an office job and you have to make that dreaded weekly report. Exactly. You've got to do your TPS reports, whatever, and they have to be done by Friday at 11. Otherwise, there'll be questions being asked. So these are all problems to be solved. And they generally consist of sub-problems to be solved.

And so if you know how to solve problems with Code plus AI, then it's this big unlock, basically. And you don't hit this wall where you're just prompting ChatGPT and getting into this bigger and bigger hole of technical debt as it writes more and more code that you don't understand.

And it's increasingly complicated. And it's full of weird bugs that you don't even know were there because you don't really know what it's building for you. When you and the AI are working hand in hand, then you create things which you understand exactly what's there, you understand exactly why it's there, it's combining your knowledge or understanding the constraints, your understanding the opportunities, your creativity, together with the AI's massive knowledge base and understanding of syntax and all that.

So it sounds like combining AI with code just gives you superpowers in terms of using AI for a lot of different purposes. And we've seen a lot of different tools becoming popular, things that promise to allow you to write code without knowing anything about code. But I think people are getting a bit stuck in those.

And can you talk a little bit about what you've observed and sort of explored? >> Yeah. Yeah. The thing I've observed is that there's this huge excitement. There's folks that don't know how to code at all or barely know how to code jump on to Claude or ChachiPT or whatever.

And within 15 minutes, they've built an app for their kid, which they've had in their mind for years. And it's like Keanu Reeves and the Matrix. Like, I know code. >> Yeah. >> It's very exciting. And they've gone from zero to mark five. And then the kid's like, oh, thanks, dad.

That's nice. But when I click this button, it doesn't actually do anything. It's like, oh, all right. How do I fix this? Prompt, prompt, prompt, prompt, prompt. Okay. The next bit takes twice as long. Just to fix that one damn button. And then the kid's like, oh, yeah. My friend Hamill wants to do it as well.

We want to have a leaderboard. It doesn't work great to build and build and build. And, you know, this is how -- like, you look at the real world of, like, who's building the apps that we're using every day. They're not built by people using -- who can't code using just chat GPT.

They're just not, you know, like 99.99% of the time. Because we're not there. That's not where the technology is right now. >> They're not using AI at all. They still know how to code. And they might be using AI, but not exclusively using AI. >> Right. And nobody's really built the tool specifically designed to really harness the best of humans and the best of AI.

So that's what we're showing people as a process and a tool. For doing that. So, like, Google CEO said that the most recent few months, 25% of their code is generated by AI. And so, yeah, it's a good example, right? Like, they know quite a lot about AI at Google.

And it's not like they've replaced all of their code with AI. But they're also not using it. Like, it's not -- they're avoiding it either. Like, this is where we are with the technology today. It's great to know both. But, like, most of the labs, big labs have been focused on building AGI.

They're really focused on building AI that stands alone. And we're one of the very few groups that are entirely focused on building stuff that combines humans and AI together in the best possible way. So, that's why, you know, we've created this very new kind of course and very new kind of tool to power the course.

>> And tell me a little bit more about the tool and the gap that it fills. Specifically, you know, like, you have all of these tools, like Cursor, Cloud, and they write code for you. And you can imagine someone saying, okay, I'm going to try to learn about the code by reading what it's producing or asking questions.

But I suspect there's something -- there's still a gap. So, like, you made this tool and this platform for a reason. Can you talk about -- >> Sure. So, the platform for now, at least, we're calling SolveIT. So, as part of this course, you'll get access to SolveIT. And SolveIT supports a very particular kind of workflow or a variant of a very particular kind of workflow, which already nearly all of the best developers I know use.

I find most folks who have been programming for more than 20 years or so and are at the very top of their game, they have a workflow that very heavily uses a very highly interactive approach. And so, you know, so, for example, if you look at three blue, one brown videos, which are very popular and very good, Grant Sanderson has demonstrated that the way he builds those is very interactively.

He's got this code over here, and he types in a bit, and immediately he sees the results, you know. Peter Norvig, who ran research at Google, you know, very heavily used this kind of, you know, similar kind of style of trying things and getting immediate feedback. It's extremely different to what something like Cursor Compose or Clawed Artifacts or whatever use, where it spits out like 200, 300 lines of code.

Like, there's no exploration there. There's no learning going on there as you gradually build up your solution. So, SolveIT is designed to kind of be something that creates one or two lines of code for you. And then you write, you know, maybe one or two lines of code yourself.

And then, like, you gradually ping pong back and forth, you know. And so, you end up with something that's generally a lot less lines of code than you would have had if AI had spat out this big thing for you. Why is that? Because, to be honest, like, these language models have not been trained to create -- they can't yet create particularly high-quality code, particularly concise code.

And also, like, the nature of language models is that they spit out the kind of code they've seen before. So, often, like, it'll have, like, all kinds of unnecessary stuff that, like, you would need in some different environment. And so, it just ends up being overly complicated and not really customized for your particular problem that you're solving.

So, yeah, you know, this is really all about harnessing this much more interactive approach that really pretty much all of the world's top practitioners use. So, like, if you watch Andrej Karpathy's videos, for example, or, you know, or watch how George Hotz builds, you know, TinyGrad, like, with all the things you see, it's, like, type, type, type, type, type, try, check this, see what happens, like, two lines of code, two lines of code.

You know, that's the process that we're supporting, but it's one where AI is part of, you know, helping to generate that code, part of helping to check that code, and teaching you, also, like, what, for the bits where the AI has written some code for you, is, like, make sure you really understand that code, and why it's written that way, and what it does.

You know, so, some people might think that, hey, writing one or two lines of code at a time, and understanding these one or two lines of code, sounds a lot slower than, you know, having 200 lines of code written at once. It does, doesn't it? I happen to have the privilege of knowing that you've used this system to write real software, and so, what is your observation?

Yeah. Is it, like, a lot slower, because you're, like, writing one or two lines? Well, we've done it together, haven't we? So, yeah, so, you've seen it. So, yeah, so, yeah, it, it, it, it, it, honestly, for anybody who's been doing the, like, Cursor Compose, you know, Claude Project thing of writing hundreds of lines of code, I have a feeling this is going to feel terrible at first.

You're going to feel like, why did I just create two lines of code when I could have created 200? But, like, to me, it feels like the difference between telling a kid in grade one, hey, here's a calculator, here's how you add and subtract, okay, that's it, school's over, you know, go start your career, versus saying, like, you know what, we're actually going to teach you to add yourself, and we're actually going to teach you to subtract yourself, and, and actually, you'll, it turns out that that's going to build, and build, and build, and, you know.

So, you'll still use the calculator, you just use it in a way more powerful way. Yeah, yeah, yeah, though, and so, and, and it is slower for a bit, right, but then the kid that never actually learned any math, rather than being taught to use a calculator, has a huge limit on what they can do, you know, or else the kid who actually learned math can create things, you know.

So, yeah, it, and, and they end up much faster, right, because they're the ones who are, like, oh, you don't need to go and spend six months doing all those calculations, you know, summing manually all the numbers from one to a million, because that's a shorthand, which is this closed form, you know, solution, which I can do in five seconds.

So, this happens all the time. So, when you build the code up slowly, you end up much faster than the person who does it 200 lines at a time, and you never hit the wall of, like, okay, that's as far, I'm now stuck, I can't go any further, because I don't understand the codes that's there, and I can't get chat GPT to solve this issue, and so, okay, that's the end.

And I've seen, like, people, when they go from, like, zero to mark five so quickly at the start of their coding journey, and then they hit these walls, they become really despondent, you know, this despair hits, and they also feel embarrassed about it, because they're out there on social media, and telling their friends, I can code, you know, the days of software developers are behind us, you know, like, we can just use AI now, and then they hit these walls, and it's embarrassing, almost, you know, it shouldn't be, right, but it can feel that way, because it feel like, oh, everybody else seems to be able to use these tools to do whatever they like, I guess it's not for me, I guess coding is not for me, you know.

>> And so, I understand, like, the best software developers, they use this iterative approach, where they write one or two lines of code, and they understand, you know, kind of, they're able to interact with that code, and kind of build it up over time, and it's a lot faster.

>> Yeah. >> One, I think, even, like, so, I buy into that as the best approach. I think something that's really interesting is, it happens that that approach gives AI further superpowers, because you have built up a conversation. >> Right. >> That, I think that part is not intuitive, and no one knows about that.

>> Right, right, because there aren't tools, there aren't tools that do that, right. So, yes. So, Solve-It knows about all of those interactions, and the interactions are extremely dynamic, and we actually have built a new way of thinking about working with language models, which we call dialogue engineering, as opposed to prompt engineering, which we'll have a lot more to say about over the coming months and years.

This is, Solve-It is the first time we've publicly released a tool that's built around the principles of dialogue engineering, although we've been using it internally at Answer.ai for quite a long time now, and everything we've built in this course, for example, has been built using these tools. So, it's been a bit of a bootstrapping process here.

Yeah. When language models can see examples of questions and answers that have gone well, you know, in a process that's working well, it has this amazing self-reinforcement loop, effectively, that happens. There's something, it's based on something in the literature called in-context learning, but with dialogue engineering, it takes this idea of in-context learning a lot further, where there's actually this feedback loop that happening.

So, yeah, Solve-It is explicitly built to support this really strong positive feedback loop, where the user is helping the AI for its next step, and the AI is helping the user for their next step. And I think that's the part that is exciting, is the AI, is actually making the AI do things that are not possible in traditional approaches.

Oh, absolutely. Like, just using cursor, or whatever, or really anything else. Like, the level of difficulty of problem that you're able to solve, and the complexity that the AI can solve, is much higher, and almost somewhat unbounded. Yeah, yeah, yeah. I mean, I've been coding every day for over 30 years, and coding a bit for over 40 years, and I constantly try to become better at it, always reading, and learning, and practicing.

So, I've become a good coder. But with this dialogue engineering approach that we're building into Solve-It over the last few months, I've been able to build things that I could not build before. And it's definitely stuff that ChatGPT, GPT-4, O1 Preview, Sonnet, none of them can do on their own, because I try.

It's only by combining the human, plus the AI, that I've been able to build this. And so, it's been interesting for me. Like, I would say, even for a quite experienced coder, if you're prepared to be a bit patient, and humble, and learn some new things, you might find this course interesting as well.

Because for me, it's showing a process which I found has given me superpowers. And so, it sounds like we're going to be teaching students this kind of unique technique called dialogue engineering, where they can really, you know, let the AI do a lot more than any other approach that I've seen.

What are some examples of problems you've tackled with dialogue engineering that you suspect would be very difficult otherwise? >> I'm trying to think. I'm not very good at remembering specific examples of things. The kinds of things that I find very often Well, so, okay. Well, here's a good example, actually.

Our dialogues contain messages. This is just something that, you know, happened somewhat recently. And, you know, I realized it would be nice to not, like in a chatbot, not always add messages to the bottom, like normally happens with chatGPT. But sometimes I'd actually like to, I wish I'd asked a question earlier, you know, and then that becomes kind of part of the dialogue.

And so, I wanted the ability to insert a message between two messages. And I, it's like, how do I do that? Because my messages have like a primary key, which is an integer, you know, and like you can't insert something between two integers. And I was like, oh, maybe I should make the primary key a float.

Gee, that would be weird, you know. But then I could insert it between two messages by taking the average of the two float keys. And so, I started this conversation, you know, where I was like, hey, here's some code I've got. You can see the issue with the primary key.

I can't insert messages between them. I was thinking of making it a float instead. Is that, like, possible? And the AI is like, oh, yeah, that's not actually unheard of at all, you know. You could use something like this. And I was like, okay, well, is this a known technique, you know?

Does it have a name? And it's like, oh, it does actually. It's called fractional indexing. I was like, I've never heard of it. And I looked it up. And so, then I came back and I was like, oh, okay, here's some lines of code to implement this fractional indexing idea.

Or here's a library I found. How does that look? You know, so I ended up, you know, with this better understanding of a whole new kind of data structure and algorithm that I'd never heard of before. And I ended up building, you know, something that I didn't really know existed.

And it also gave me the confidence to kind of follow up this idea. Because it's got to be like, hey, can you make a float a primary key and use the average of keys to add things? Like, you can't really search Stack Overflow for that. It's very conceptual. And to try and do that in kind of like a classic chat GPT kind of environment, you don't have that ability to build the code as you go and get the kind of feedback as you go.

It's really, you have to beg, you know, the model to create the code for you. And also, then my, you know, the way we've built this is then the code is that you're working on together is working in your environment, you know, that has everything set up the way you want it.

So, yeah, that would be an example of something I created recently, which I guess I could have created anyway, but my version would have been, honestly, a lot less good than the one we created together. So, it sounds like dialogue engineering not only makes you smarter, it makes you faster, it also makes the AI smarter.

What about other people you might be working with? If you're using a dialogue engineering approach, does it change the way that other people may be able to read your code or understand what you're doing? Yeah, it's been great. It's been great. Yeah. So, we share this a lot at AnswerAI now.

We share our dialogues with each other. So, here's the thing I built and here's how I built it. And we give each other our dialogues. And then we can build on top of each other's dialogues by adding more code and more prompts and, you know, sometimes in the middle.

And, you know, the version that we'll be using of SolveIT for the course is quite simplified from the internal tool we've developed, you know, to give people this kind of, like, get them going with it and not be overwhelming. But over the coming months and years, you know, particularly this group of people in this first cohort, they're going to form this first community that we're going to build out together.

So, they're going to be the first group of people that understand dialogue engineering. And just like I think you were part of our first FastAI cohort, I have all the folks from that first cohort, as we see, I still know and hang out with. And, you know, I think that community is going to be exciting to see how together we build this new way of thinking about human plus AI together.

I do want to add, though, that this is not designed to be a replacement for something like Claude Artifacts or Cursor or whatever. Like, there will be times where you do just want to say to Claude, like, just one-shot it. Just make this. If it does it correctly first time and you don't really need to add new things to it and a leaderboard and blah, blah, blah, right?

It's like, I have a specific thing I need right now. It's not going to be too complicated. It just builds it. It works first time and I use it for, you know, the kind of thing that, like, Repl.it works pretty well for as well. >> Let's linger a little bit on the dialogue engineering and how it makes it easier for other people to understand your code.

Can you talk about why? Like, versus, like, normal, like, traditional ways of writing code. >> Because, you know, when you -- yeah. So, here's the thing. Reading a finished piece of code is intimidating. Because it tells you nothing about how it's created. You know? It's like the difference between watching Bob Ross paint versus saying, here's the Mona Lisa.

It's like, hey, here's the Mona Lisa. Are you inspired? Okay. Go make a beautiful portrait. It's like, I don't know how to do that. Or it's like, okay, here's Bob Ross. And he's like, okay, well, I put a bit of paint here and I wash this over there and then we can use the edge of this brush here.

So, with dialogue engineering, you end up with a dialogue. So, you see the whole process of building it and you understand, like, why was this done this way? What does this thing here mean? Why was this library selected? It's -- yeah, it's a really nice thing then to not just share with your team, but to also have available for yourself six months later when you've totally forgotten.

And so, yeah, it's -- >> It sounds like you understand your own code better. The AI understands the code better. And your coworkers and colleagues understand the code better as well. >> Yeah, students or whatever. Yeah, yeah. Exactly. So, we're very -- we're really at Answer.AI, as you know, Hamel, we're all in on this.

You know, we've been using it ourselves for months. And we're like, holy crap, it's changed our life. So, we want to start bringing everybody else into our world that we're so excited about. >> You know, because I know you and work with you, I think I have some appreciation of, like, you know, this is only the tip of the iceberg.

You know, these methods of dialogue engineering are really powerful. >> And this course is just the tip of the iceberg, too, right? There's going to be a lot more courses. So, you know, we're planning, for example, a kind of full stack startup engineering course, you know, and where we'll be building on these ideas to be like, here's how we can use dialogue engineering to create a company, you know, to do all the system administration, to handle all the email, to build the marketing materials, to write the web application, so on and so forth, you know.

>> And you can say that with confidence, because you've been building Answer.AI with this exact system. It's not like you're just -- this is not a -- this is not a prediction. This is actually happening right now. >> Correct. Exactly. So, yeah. So, we'll be giving the rest of the world a bit of an insight into how Answer.AI is able to do such an extraordinary amount with such a small number of people so quickly, which I know a lot of people are like, how the hell do you do this?

You know, you guys must be, like, geniuses. Sure, okay, we can be geniuses, but I don't think that's the main reason I think we're building some powerful processes, which we're keen to share. >> That's all the questions I asked. >> Thank you very much, Hamel. That's great. I will see you over in chat.

>> Okay. All right. See you.