Invest like the Best – AI Paradigms

Podcasts · Business · Source

Summary

Transcript

Introduction

Patrick: [00:02:13] My guest this week is Jeremiah Lowin. Jeremiah has been on the podcasts a number of times over the years. He's one of my oldest friends who has been a sounding board for me throughout my career. Today, he is the Founder and CEO of Prefect, which helps companies automate and orchestrate their data flows. In full disclosure, Positive Sum is an investor in Prefect.

We didn't plan this conversation. But when OpenAI released ChatGPT, I called Jeremiah for a primer on what's happening under the hood and how best to contextualize this product amidst the growing AI movement. We have these conversations often but this time, I decided to record it, so we can all learn from someone I consider to be a leading mind in the fields of data science and machine learning.

We start off in the weeds and zoom out as the discussion unfolds. Before we transition to the episode, I want to highlight the Founders podcast, which is part of our Colossus network. David Senra, who hosts Founders has devoted his life to learning from history's greatest entrepreneurs.

And every week, he distills the lessons of a different founder. If you want an entry point, I highly recommend starting with Episode 136 on Estee Lauder. I hosted David on Invest Like the Best this summer, and it's hard not to walk away insanely energized after listening to any episode with him.

You can find a link to Founders and that episode in the show notes of this conversation, and you can search all past transcripts on our website, joincolossus.com. Please enjoy this conversation with my friend, Jeremiah Lowin.

Pretrained Transformers: The New Class of AI Model

Patrick: [00:03:38] Can you start by explaining a pretrained transformer? What is that?

Jeremiah: [00:03:43] There is this new class of models, transformer models, some people call them foundational models because they're so important. They're called transformers because what they fundamentally do is transform some sequence of inputs into some other sequence of inputs following a very, very complex series of rules or heuristics. I think the most common way that we're familiar with this is translation.

So you have a string of words in one language and you have a string of words in another language, and the transformer sits there and it can go from one to the other. I think language is a really good place for us to start talking about this because it becomes very clear, very fast that, it's not just take each word, run it through a dictionary and find the equivalent word on the other side and just do them in order.

Orders change, for example, some languages will have genders, some do not. You need to do the translation appropriately. The adjective is going to different places, syntax is different, the grammar.

Idioms, you don't want to just translate them literally, but I'm sure we could find a million and one reasons why translating is just hard. The complexity flows really quickly. And so these transformers are a way of working through this sequence and applying different techniques like paying attention to things that are more important literally, like focusing on things that are more important or applying context in a way that lets you make a decision later in the stream based on what you saw earlier.

This class of models is just incredibly, incredibly powerful. And there are many of them now that are not necessarily publicly available, but they're sitting there waiting to take in some known input: could be text, could be English, could be French, could be an image, could be anything really, could be a time series. And even if we're not ready to necessarily output it into a specific known form, like we take English in, we don't yet know if we're going to put it out in French or we're going to put it out in German or what.

It can take it in and inbuilt, but will cause latent representation, which becomes this really powerful information set that, in a sense, fully describes the input sequence. I guess it isn't necessarily restricted by the fact that it's English. It's amorphous. We can't point to it. We can't interpret it as humans. It's just all the information, and it's ready to now be squeezed out and transformed into some other form. So these large language models are, in many ways, the basis for a lot of the really new things that we are seeing in the AI space today.

Patrick: [00:06:01] Could you say just a bit more about what latent representation means because I'm sure almost everyone listening, which they'll be doing because they're interested in this explosion of AI technologies has played with Midjourney or DALL.E or Stable Diffusion or the GPT-3 chatbot or something.

Like, they've done something. What is most magical about the experience, I think, is the specificity that's possible of the outcome? You might naively think, well, to create a great English to French translator you should just have experts that know how to actually translate and have them encode lots of rules.

It's so obvious that that's not what's happened when you see some of these outputs. This system seems so general purpose. You can get whatever you want despite it being clear that no one on the other side was like, let's make sure this thing can program Spiderman smashing watermelons or something. Say a bit more about what these models are doing when they're "training" on a given dataset?

Jeremiah: [00:06:57] When we talk about the latent representation, we're talking about intermediate steps in how we process data, how we get from A to B, how we get from Spiderman smashing a watermelon to an actual set of pixels and colors and coordinates that represent that with no text at all.

Our goal at every moment is to take the information that's represented at the beginning and end of this pipeline and keep that information intact even as we dramatically change the form of that information from text, which could be a few bites of information. Literally it's the characters and the sequence of characters into potentially thousands or even tens of thousands of color pixel coordinates. This is like a wild degree of transformation. And if we try to go immediately from one to the other, we'll almost certainly fail. That mapping is just impossible with precision.

And again, as we talked about earlier, context starts to matter, especially when we're talking about images, where if I've drawn an eye, the position of the pupil really matters. You can't just say it's kind of in the center of the eye, it's got to be very in the exact right place, and it's got to be lined up with the other eye's pupil so that the person looks like they're looking in the right direction.

Famously, these models are bad at drawing hands, why? Because it's really hard to keep track of how many fingers you've drawn unless you have a really, really intricate sense of context around what you're doing.

What we need to do is we need to get the fact that you wanted a picture of Spiderman. We need to map that into a space that explains to us in the sense that Spiderman is human figure, has hands, is red.

He's got a mask, there's a watermelon involved. He's proximate to it. We need to show the action. We need to sort of extract all that stuff, and we don't do it by going straight to the pixel representation. Instead, we go to what's called the latent space. It's a place where we take all of these concepts, map them out numerically, and I'm being a little bit vague here because I don't know how in depth you want to get, but we map them into this latent space.

What that does is it leaves each concept isolated. If we did a perfect job of this, then we'd actually have a string of numbers where the first number represents, I'm making this up, of course, but how humanly characters, how many hands he has, what color he is, what the color of the watermelon is.

And we could actually tweak those numbers in the latent space. We could take the watermelon from green and then dial it up to 17, which means orange, and then the picture would eventually show Spiderman smashing an orange watermelon. The latent space is where the power of these models come from. It's where we take the input.

We map it into this place where each concept is as separately identifiable as possible. And that makes the job of the output transformation a lot easier because it can grab these concepts and work them all into their final form in just a much easier way than if we handed it the number 17, it was like this number encodes everything there is to know about this model.

Patrick: [00:09:43] Is it fair to say that in each of these things, there's input, there's output, the thing being tapped in the middle is like a mathematical representation of -- as granular a set of concepts as possible, that effectively what's happening is it's like a universal translation layer because we've taken stock of everything possible in the world?

And I want to talk about where that data comes from to make that core representation possible. And then we're effectively just tapping that core thing and the models themselves are getting better and smarter about how to combine those disparate elements.

Jeremiah: [00:10:20] That's exactly right. If we go back in generation of models actually it becomes maybe a little bit easier to see this tangibly. So there were these models called GANs, which sort of predated the diffusion models that are very popular right now. But one of the cool things about them is that you could actually explore the latent space very, very, very easily and very quickly.

When you see these models and you'd see them in sort of UI, you see it gets dialed, it's like smile. Do you want more smiler or less smile? Hair lengths, do you want more or less? And what that's really doing is it's going into the latent space where these models were very, very, very good at identifying latent vectors or latent dimensions, we would say, that correspond very, very, very closely to observable things in the output.

I was giving sort of a fictitious example before, but in this case, it's very real. I'm literally changing the number along that dimension of the mathematical representation of the information.

The image you would get if the person on the other side would have longer or shorter hair, darker or a lighter hair, glasses, or no glasses, they'd be smiling more or not, they'd be looking left or looking right. And those are all playing with the latent space, which helps us map all of these different very, very, very qualitative characteristics of the output into a separately identifiable mathematical space. That's absolutely what it is.

Patrick: [00:11:29] In those examples, each variable I picture it like a slider or like a -- okay, so you're saying in this output, a certain variable is relevant, and I can tweak it. Am I right in saying that at a certain level as these get more advanced, the ability of the human mind to understand or interact with the variables or just the ability period starts to go away, and we just have to say we don't really know what's going on because it's gotten so detailed? It's ever more black box?

Jeremiah: [00:11:56] Here's where I think this starts to get really interesting. I wouldn't go as far as you there. I think we understand exactly as much as we did in the example that I just gave with some of these newer models.

I think that it's a nice feature of those models that in that latent space, we were able to identify dimensions that gave us specific sliders for a smile. Whereas in more modern diffusion model, the latest space is still enormous, that picking one number that represents the smile is silly. However, that doesn't mean that the model is less interpretable. It just means that it's more complicated. It works in exactly the same way.

I think one of the cool things that I expect to see in the near future is the reemergence of exactly that. So just because we, as a human, can identify a single number that changes the smile and gives us a smile slider, that doesn't mean that a machine can't look at that vector and figure out what combination of numbers make someone smile more or less. And I think the proof of that is that if you took a prompt into an image-generating AI and said, show me Spiderman smashing watermelons comma with a big smile. You'll get it. And if the AI is capable, you'll actually get very similar to the original image just for the smile.

And I think that what that means is that it is possible for us to go in and tweak these things. It just might be that the manner that we do it isn't as explicit as finding the single number in the vector and raising it. One of the best ways for people to think about what this is and how interpretable it is, to me, is looking at clouds. So if you and I are looking at a cloud and I'm like that cloud looks like a duck. Might take you a second, but then you think, oh, yes, I see it looks like a duck it. And then, someone else comes along, like, no, no, no, it's a rat.

They're probably just as right because the truth is, the clouds looks like nothing. But that's kind of what this is all about. You're taking something that's kind to resembles something and you're mapping it into an understandable space. And in fact, what these division models do in a very concrete way is they do that many, many, many, many times over, they say it's a duck. Okay, now it looks like a duck. You know what make it look more like a duck, if the beak was a little more pronounced. Make that change. Okay, now it's even more like to duck. Oh, it's swimming. Okay, maybe that other cloud is water and you emerge from the latent space this very tangible characteristic.

History of the Field and Its Major Players

Patrick: [00:14:00] How do you think about the history here? Like this isn't all happening in the vacuum. This is all human controlled. There's big companies involved. There's names like OpenAI and Stability AI and DeepMind and Google, these are very tangible things that are happening. If you were drawing a single PowerPoint page timeline, the big companies that have mattered and when, how would you tell the high-level version of the history here?

Jeremiah: [00:14:23] I think you just mentioned most of the companies, I would throw a lot of universities in as well. When I started getting involved in this, which is probably in 2009, I'd be looking at the University of Toronto, University of Montreal. You'd be looking at NYU where you got Lacuna Space. You'd be looking at Stanford as well. So a lot of this research began there. And then as it went through commercial iterations, became more and more pronounced at first the large cloud providers like Google, in particular, Facebook as well.

And now you're seeing dedicated AI companies, like the ones that you mentioned. So I think that we go back, what, 15, maybe even 20 years since this more modern version of machine learning has come along. And what's really cool to see is the core idea has not dramatically changed. We take an input, we run it through some sort of latent representation, transformation of that input to make it more malleable and more interesting to work with and then we output it somewhere. The ingenuity that's been applied here is, first of all, to make these models bigger. It's not as easy as just saying I want a bigger model.

Now we have to talk about memory and moving stuff around and GPUs. There's real infrastructure challenge there. That's one thing that had to be solved. Feed as well, but there's also the transformations that we're applying. Take Stability AI's model, Stable Diffusion, as an example. The light bulb that makes Stable Diffusion different than, say, DALL.E, which was released in close proximity to it, I think, just a month or two before is that both of them are these diffusion models, which means they do the thing I described with the cloud.

They start with random SMA iteratively pull an image out of it over many, many, many stages until they have something real. DALL.E operates in the actual pixel space. It starts with literally a random image. It's literally during the cloud thing. It's watching it, and it's refining it over time. Stable Diffusion does the exact same thing, but it doesn't get in that latent space. That's very difficult for us to conceptualize as humans. It turns out that, that gave it much more expressive power because as it's doing its diffusion process, as it's learning and figuring out what's in this image, it is not bound by the same spatial constraints that the image has, for example, having two eyes and having five fingers.

Now I know I'm saying that and sometimes it's not good at doing five fingers. There's complexity here still. But DALL.E has to emerge, figure out what's in the image and generate five fingers at the same time. Stable Diffusion, it merges what’s in the image and then actually figures out that it needs to generate five fingers at the end. That little, little insight about moving the diffusion from the pixel space vector to the latent space vector is, for all intents and purposes, the chief difference between these two models that has profound impact in quality and expressiveness.

That is the type of thing, if you look back in time that you see over the last 20 years, you see these -- I don't want to call them small changes because I think that belies the energy it takes to figure them out, test them, that don't work, dedicated resources to them. So they're not small changes by any means, but they are not necessarily sea changes in architecture as much as they are refinements and enhancements of this neural net transformation, modern machine learning paradigm.

Patrick: [00:17:38] Can you say just a bit about the technology precursors that have made this possible because I think there was a narrative for a long time that AI was an aborted set of innovations. Everyone was expecting so much of it. There were long periods where we didn't see the sort of explosion of advancements that we've seen in the last -- I mean it's literally only been like six months it's crazy to think about how quickly it's going. Like one of these bamboo samples.

Where I think the routes are being laid for like months and months and the whole thing grows in a couple of days. It seems to me like the Internet is an important precursor for connectivity, mobile is for data gathering, cloud is for storage and compute and all these things. What else is required, like without what else besides those three things, would this not be possible because I think the foundations are important here?

Jeremiah: [00:18:24] I've been thinking about this a lot myself. I'm not sure if I have a great answer that explains exactly what the catalyst just curious for your take. If I can turn this around on you for a second. What I would throw out is this, these generative models are really, really, really powerful because they feel more powerful. Because I as a user can control what's happening in a way that's meaningful to me and interesting to me, and it's somehow mine. And I think they, therefore, get a degree of engagement that, for example, a model that can only generate faces, which we've had very good versions of that for about five years.

Or a model that can only read addresses on an envelope, which we've had for probably 30 or 40 years. Your earliest [ congruential model ] that's for handling stuff like that. It's not as interesting. It's extremely useful, but it's very purpose-driven. It's very specific. And so imagining its application in a wide range of fields and its delivery as an API, it's like, yes, it's great, but how many users are there for this. And I think one of the things these generative AIs have done is open up our imaginations of how we can apply the software in a really, really, really interesting way. Obviously, there's availability of GPUs and the dataset collection, which is critical.

There are absolutely some insights that made it possible to build this type of model. But I think part of what we're seeing is a very special connection with an opportunity for people to interact with this in a very, very, very unique way. Maybe it's like how when movies are released, there's like Bug's Life and there's Antz. When a good idea is out there, like a lot of people are going to find out and [ jump ] on to it. And I think that this is just one of those ideas that was like, yes, these generative things are amazing. Now other thing is these large language models that we have mentioned earlier in this conversation.

Well, they've been sitting there for a long time, measured in years. It turns out they didn't cover so much information that we are still figuring out how to leverage that fact. In a funny way, these image generation technologies would be nothing if they couldn't figure out what to do with the words that are being put into them. So that's also one of the huge unlocks here is that we've gotten so good at processing text into a latent space where it can be transformed into something else, whether it's a different language, a voice that's synthesized or an image, that's been a huge unlock. And I think it would be wrong of us to ignore that fact because without those models, sure, I can generate a lot of images, but guiding them to something that's semantically aligned with the input, I don't know if we'd be able to do that without this advancement in text understanding.

Under the Hood of AI Models and Architecture

Patrick: [00:20:48] I'm curious about two pieces of this and what is actually going on. One is training and the other is the models themselves. And the best I can ask the second question or frame up the second question about the models is, we've all seen Midjourney V1, 2, 3 and now 4. We've seen DALL.E. We're about to see GPT-4, which by all accounts is hard to believe. I mean GPT-3 is hard to believe, GPT-4 apparently is 10x harder to believe. There's teams behind these things. What is happening between model iterations? What are people doing to make these things better? Maybe I'll start with that question. When I see GPT-4 come out and GPT-3 has been out for, what, two-and-a-half years or something, what is happening? Who is doing what? Is this human-directed? Is the model itself creating the improvement in model iteration? What is going on?

Jeremiah: [00:21:37] It's a tough question to answer because I think it's different in every case. What constitutes an improvement could be wildly different. For a lot of these companies and a lot of these models that we have visibility into, we actually don't necessarily know exactly what's going on. But if you look at the releases and you look at the associated papers or blog posts, you will usually see some claim of why is this better. Like what have we done? There's two easy ones, more data and more training. Just look at it for longer. And I think if you want to see that happening -- I guess, in real time isn't quite true anymore. But if you wanted to see that happening in real time, there was an open-source version of DALL.E that was released.

DALL.E-2 was announced and very shortly after an open source version of it, which I think at the time called DALL.E Mini and now it's called Craiyon with AI in the middle. And you could watch this model train over time because literally, it was training over time. And it is significantly better today than it was at the beginning. The beginning was like noticeably worse than the full DALL.E-2 model. But you can watch it. And you can see it continue to train and continue to improve. And in fact, if I remember right, for your curiosity, there's a notebook where you can actually see each check-pointed model. I think they do it each week maybe.

And it's the same set of prompts, and you can watch the model improving over time on a given prompt. It was like hundreds of them. And it's just fascinating to watch. You're watching the latent space development. You're also watching the transformer development that's really, really cool to see. So those are the two easy ones. More trading, more data. But that's not what leads us to announce a new model. That's what makes these models that are possibly a new version of these models. I believe I'm not sure, for example, Stable Diffusion 1-4 to 1-5 was principally a new weights update, which is to say a new training update, not an architecture update. The architecture updates are more interesting. And ChatGPT, which was released just a few days ago is blowing my mind in all kinds of ways.

I think it's really incredible. GPT-3.5 might not be a terrible way to think about it. It involves a new form of reinforcement learning. Reinforcement learning is when you take a model and you train it in a way where it takes a series of actions, and then you tell it at the end how good its actions were. We often talk about two different ways of training machine learning models supervised, which means you give it an input and you tell him what the output is supposed to be, and it's got to figure that out. Unsupervised, where you give it an input and you're someway judging the output, but we don't necessarily know in advance, and it's got to just work out on its own.

And then the third one, which a lot of times gets ignored, but is really, really, really tricky, which is reinforcement learning. And why is it so tricky? Well, because how do you tell something if it did a good job of walking. Do you tell it every time it takes a stumble then it's screwed up and then it should start over? Do we allow the stumble, or we only judge it on how quickly it got to an endpoint? How do you actually reinforce a series of actions over time. So one of the ways that ChatGPT does so good is that OpenAI came up with a new, more efficient, much faster to converge and requiring less data form of reinforcement learning.

So for them, I don't know about the underlying architecture exactly, but in this case, it's the training of the model and their ability to deliver quality results in a short amount of time. Thanks to this new form of training, and they will also leverage other AIs to help train it. So there's other AIs that are judging its output that are assigning the reinforcement scores better than going into the training. So it's a fascinating way of setting up the training process. So that's one way that you can see this advancement.

Another way is through new architectures entirely. So DALL.E and DALL.E-2 are completely different architectures. I'm forgetting as we speak right now, what DALL.E-1 was? It's not a diffusion model. But DALL.E-2 is a diffusion model. It's very different than DALL.E-1 and it's capable of a much higher level of fidelity, but that's a massive risk to take. If you think about it, someone's got to go do that research. There's a lot of different choices you can make. So I think a lot of the expertise is actually somewhere in the intuition of being able to look at a model and understanding if I nudge this in a certain direction. But if I take our architecture in a certain direction, that will deliver results.

Because you understand what the limitations of each model is, and you are trying to advance them in a concrete way with a new architecture with a new model. I mentioned earlier, Stable Diffusion comes along and says, yes, we can do diffusion models but instead of operating on the pixel space we're going to operate on the latent space. That turns out to be on its own, this revolution. Midjourney, we don't know exactly. But what we do know about Midjourney is that the aesthetic quality of its images is extraordinary and always has. It's very hard to get Midjourney to put out something bad. I don't know if that's because they didn't show any bad images in the training set. I actually think that that's not necessarily case because if all yet to do to get quality outputs, show something about the quality inputs that would belie the complexity of the model.

I suspect that there's something that they've done there to guide always to high quality. They found some way to build, whether it's an architecture or some sort of guidance along the way to guide things to that output, and that's their secret sauce. The reason it's such a hard question to answer is you can make advancements in these things in so many different ways right now that generalizing that is probably impossible at this time.

Patrick: [00:26:25] Can you say a little bit more about what is actually happening during training. It's become a word that everyone just kind of says, yes, the model's training. It's training, it's training. GPUs, GPUs, GPUs. What is literally going on in a generalized sense?

Jeremiah: [00:26:40] When we think about the models, the model has two components, principally. It's got the architecture itself, which is to say, okay, you give us this vector, we're going to transform in the following way. 17x we're going to run a bunch of diffusion steps on it we're going to give you an image. That's the architecture. And then there's the parameters of that architecture, which I usually called the weights. And this could be 10 billion or 100 billion numbers. And these numbers go into that architecture, and they tell that architecture how to behave.

They literally weigh different parts of it. When we're training the model, we have the architecture, but the weights are all random. They're all garbage. And if you ask it for a Spiderman and a watermelon, you're going to get literally just garbage noise, nothing you can't see anything because it has no idea how to take that input. I mean, don't get me wrong. It knows how to take that input and literally run it through the architecture, but the architecture has no knowledge embedded in it.

It doesn't do anything interesting. Training is the process of changing those weights, literally the numbers. Those potentially billions of numbers changing them so that they encode information in a way that when you run an input through the model, you get an output that is sensible. There's many ways that we do that. I just referenced a couple of the high level like supervised training, unsupervised training. But what all of them have in common is that we run something to the model. We look at it. We have some way of deciding if it was good or not good, and we have some other way of deciding what could make it better. I'm vastly generalizing here, but this is really what happens.

And then, part of what makes these model so interesting is we can actually go back to each of those 100 billion numbers and figure out which one would impact the output in what way. Now I'm not saying that we end up with Jackson Pollock painting onto the other end, and we're like, oh, if you make this '17 and '18, it will be Spiderman. But we are saying if we get this complete range of noise at the other end, we can go back in and we can say, okay, literally, mathematically, we know that if we nudge these numbers up and these other numbers down, we'll end up with still noise to be clear, but noise that's slightly closer against whatever our objective function is to what the person wanted.

And we do that hundreds of times, thousands of times, millions of times hundreds of times, billions of types. Training is a very, very, very slow iterative process. And for a long time, you don't even know if it's working. The math tells you it's working. But we're talking about image generator. You may not actually see a sense of output for a very long time after training. And if we can take up that notebook on the DALL.E Mini project, you can watch it training the outputs are kind of nonsensical in the beginning. And it takes a few weeks until we even start to see shapes even really emerging, but you can see clear progress.

So training is the way of taking a mathematical expression of the fidelity of the model and figuring out as the model is looking at data, how to tweak all of the weights to get better and better and better results. So that's when we're waiting for something to train when we're deploying GPUs to train it. That is the process that's happening. It's extremely compute-intense, and it takes a long time.

How to Think About Scale and Constraints

Patrick: [00:29:31] You talked about the role of scale in all of this. Just in terms of like the real-world impact it will have of who controls these models and who can create a marginal model that's interesting or useful? If you had asked me six months ago, I would have said, it seems as though OpenAI is the hegemon here. Like they've spent all this money and money is a major barrier to entry, money and time, to train these things. All the benefits are going to accrue to the scale players, whether that's an OpenAI or whether that's Google that has all this great data and the resources to spend on training.

And then all these alternatives have started to come out, which begs the question, what is going on? Is capital really scale-constrained here for new entrants? Will we have 100 DALL.Es competitors? Or will there always just be a couple. How do you think about the power-dynamics of who can build these things and how that will play out?

Jeremiah: [00:30:25] I think it's very early to make predictions on that dimension because we don't really know yet what the constraints are. Here's something I feel very confident about. The things that we're calling state-of-the-art today will be obsolete 12 months from now. I don't mean because more training will happen. I mean new architectures, new applications, completely new things. So in a funny way, I don't think capital is a constraint on any one iteration of this.

So if you need to spin up and say, 4,000 day 100s GPUs, order of magnitude that's $40 million a year of cost. It's a lot of money for some guy, but for a well-funded company that knows what it's doing that's a very reasonable, in fact, maybe even a very small cost, and it's a retail cost, by the way. Just for reference, the number I'm giving is the number that the Stable Diffusion trained their original model on. And the reason it's interesting is I think at the time, it made it the 10th most powerful supercomputer in the world.

We're not talking about astronomical something, it probably cost more to staff the team in a sense that's going to come up with all this research. Because remember, it’s not like we take a group of people and they instantly come up with the right idea. We have a group, they make a bet, months later, we have an answer. We know if it works, we go back. It's a very iterative process.

Time, energy and intuition and ingenuity are, I think, really the constraints on this, really wanting to improve this and wanting to perform with it more so than just raw capital, especially depending on what happens with the price of Bitcoin. There could be a lot of GPUs on the market. As a matter of fact, maybe not a 100s, but processing power is probably not the limiting factor here or access to it, I think, at the end of the day.

As for who controls it and how many of these things will see, I think that's one of the big and fascinating open questions that we'll be watching. And yes, it's kind of reason I don't know, but also in a more realistic sense, do we need 17 different diffusion models in the world? Or is Stable Diffusion opensource version, the solid base that we then build 1.1 million fine-tuned industry-specific or personalized models on top of because remember these models are very much a combination of models.

There are text-processing parts, there are image-processing parts, there are latent parts, diffusion part. So what a lot of people are doing right now is they’re taking, for example, the Stable Diffusion model, which is open source, and they're tacking on to it, some other transformation they want to do or they're going in and they're fine-tuning the weights themselves. So Stability AI has done the hard work, if you will, the month-long process of generating the waste that characterize the Stable Diffusion model in its canonical form.

And then folks are going in and they're saying, "You know what, I really want this to only output things that look like a Van Gogh painting, and they go in and they fine-tune it. They tweak the way it's a little bit more, and they train it for a little bit. And now the things are only capable of putting out Van Gogh paintings.

And it probably does that better than if you just tack on, in the style of the Van Gogh to a prompt the original model. So I can easily see that as being the accessible way of extending these models into specifics. And you have this canonical base, whether it's open source or via API, and you're doing fine-tuning for whatever your application is, I would be shocked if that's not a major, major, major way that this shows up in the world.

Patrick: [00:33:25] Where does an electricity analogy fall apart? I always like the way of describing APIs that it's like an electrical outlet that all you know is that whatever you plug into that thing is going to get a certain kind of power to it. Whatever application you want to design on the other side of that outlet, do whatever you want, this is what's going to come through the outlet.

Is it fair to think about this almost like utilities 10 years from now where on the other side of that outlet is just these models? There's a diffusion model. There's a couple of forms of electricity, but basically like it's just the utility that's being built and maybe that makes OpenAI the biggest company in the world. Is that analogy oversimplified?

Jeremiah: [00:34:02] I think it depends on what actually the utility is producing. So is the utility producing an API that takes in text and returns images, then probably not because that feels too close to the end product. That would be like if the outlets in my house shown light. It's too close to what I'm actually trying to do with. It's not a raw material. Do they produce weights? Do they produce the latent representations? I think that would be incredibly interesting, but also incredibly difficult to actually do anything with.

I don't know at this time what the right utility metaphor is. One thing that I could believe is that there are a few versions of this where, yes, we do believe that the utility metaphor applies and it is producing images or a cap on, for example, like an AI that you can converse with, a search engine would be a good example of this. Is Google a utility that provides links? If so, then absolutely, I see the metaphor to these. But I'm hesitant to equate an API. APIs are more interactive than power outlets.

Power outlets are one way. I know what I'm getting out. The best I can do is I know this is different voltage or temperature, whatever and I have to mix and match appropriately. APIs, I think, are more two-way because typically in the API, I send information and then I get something back that's useful to me. And really what I'm doing with APIs, I’m outsourcing the business logic for some form of processing.

And I think that these companies are going to be well suited to do that because I'm going to send a text, I'm going to get back an image. I'm going to send a text, I’m going to get back a response. I'm going to send a search query; I’m going to get something back.

But I think it's too early to say like what role do the large players -- it could be that they just, huge air quotes around just, that they just provide the training on the canonical models over time, whether these foundational models or what we would call foundational models and then every company, every industry has their personalized version of it for whatever their purpose is.

Patrick: [00:35:48] You told me that you've been coding using GitHub Copilot for a little while. And I think we need -- have you described that experience because it's one thing to create Spider-Man smashing the watermelon, which I did as we’re talking and it's pretty incredible what you can get. And that's a plaything and it's silly and it's funny, and you do it every so often.

But building source code for something as you were doing in a way that's much faster and better as a result of this technology is a nice-interesting tangible example of why it's so powerful. Maybe just describe what Copilot is and how you've been using it. And what you've noticed about it, what it felt like to use it?

Jeremiah: [00:36:22] So Copilot is a GitHub product, which essentially writes code for you. That's what it does, and it does it surprisingly well. It was certainly the earliest of these generative AIs to hit the public just because of the demographic that it's approachable too, I think, didn't get quite the attention that Spider-Man smashing the watermelon does. But it's very much in the same vein. What it does is, you write some code.

And for many, many, many years, the software that we used to write code has been able to suggest what it thinks the next word is or autocomplete basically, whatever your variable name you're typing. What Copilot does is it actually just goes and writes lines and lines and lines of code that it believes are what you're trying to do. I recently had a project, and I was like I’m going to try this thing and let's give it a shot. And I was absolutely shocked at the quality of the code that it produced but also how useful it was.

I was very tempted to view it in the way that I think we all are, which is how will this handle my edge cases? How will this possibly be able to understand that this one route that I need to call is a very unique way of being called, and it's definitely not going to do that? And therefore, this is always a time. I had a similar argument with my father all the time about my car, which drives itself. And he's constantly worried about, well, how will it know -- the other day, he’s like, "What if a school bus has stopped but the stop signs in all the way out?"

Will it even know? Will it be able to recognize it? What would happen if I wrote on a sign myself, "Don't go on this road, it's icy," will the cars go there? I'm like, probably it will, but you're looking for the AI to perform in the situations where actually I don't want the AI to perform. I want the AI to perform when I'm driving on the New Jersey Turnpike, and it's a straight line and I just need to hold the car in that line. I'm looking for the AI when I’m stuck in traffic on the way to my kid's school.

And similarly, in code, I'm looking for the AI to perform -- once again, I'm writing a code API and I just need to pass arguments from my user back into my sort of what I'm writing, whatever boilerplate I’m writing, I’m writing tests, I’m writing documentation. These are things where every single time you do it, it's a little bit different. It's easy to characterize New Jersey Turnpike as a straight shot for the entire state. But every time you do, it's a little bit different, some guy cuts you off in a little bit of a different way.

There's a puddle on the road. It's raining. There's a little bit of traffic, there's not. The exit is closed, the lane is closed. It's always something a little bit different. This is, I think, where AI is at the stage we are today in history itself. They are really, really, really good at taking well-defined situations that have some degree of randomness or idiosyncrasy to them and navigating them in a really, really, really solid way.

I don't think we're at a point yet where we have any reasonable expectation of the AI actually going and figuring out every possible indicator. And I don't think that's what we're looking for now. And in fact, I think the people who are looking for that are just going to be disappointed for a long time.

When we talk about AGIs, generalized intelligence, that are going to take over the world, that's the sort of stuff that they're going to be able to do in theory. If we ever see them, we are so far from that. And that's why when I think people pointed some of these AIs and like, well, this is the one that's going to take over the world.

I'm like, this thing could barely power a toaster if it hadn't seen one before, this is not really the threat that you think it is. It's going to be humans who misuse this that pose a threat. I'm sure we can talk about those sort of ethical concerns in a moment. What Copilot has really done is it's just freed up my time to focus on the aspects of my code and the APIs that I'm writing, which are uniquely interesting and idiosyncratic and deliver a core value and someone's going to define what exactly this thing does.

And then I get to hand off to it, filling in the blank spaces around that. And I've gotten to the point where a couple of times I have been writing code and I’ve waited for a second for it to do the autocomplete and it hasn't for one reason or other. And I get frustrated and I'm like, "Come on Copilot, you know this, you did this on the last function. Why aren't you filling it in?" And every single time I've done that I'm like, "Wow, this is a partner to me right now." I’m pair programing with AI in a way that I absolutely didn't expect to at this stage. So it’s a really pleasant surprise.

How to Build Great AI Products and Other Considerations for Entrepreneurs

Patrick: [00:40:16] I was joking with you that you're not allowed to do what I'm about to ask about. But if you were not running Prefect, which itself is infrastructure to this whole world, which I think is great. And you were forced to go start an AI company, is cliché and ridiculous as that sounds. How would you approach that problem? What would be the things that you would be thinking about?

And I'm thinking about all the entrepreneurs out there that are interested in this space and have the technical capabilities to attack something but would want to create something that's actually useful to users.

How would you think about the problem of, okay, what would be a great set of models or set of thinking for how to start a valuable AI-based company that's built on top of these new enabling technologies because so much of "start-up” history is explosions of applications or systems on the back of new enabling technologies, this appears to be one? How would you approach this particular one as an entrepreneur?

Jeremiah: [00:41:10] So we need to find the problem to solve. And I think when you have a new technology like this, it's extremely tempting to add to the solution that you already see. And we're already seeing that in the AI space. First of all, it's amazing that the Stable Diffusion model is open source because it means that you really can't just build a full stack thing and control it and we're seeing just a massive amount of experimentation. And we've seen some early business successes.

Avatars, AI-generated avatars for Twitter, they're all these things that people are paying money for because it is a valuable product. But none of these things are going to be start-ups. First of all, they're indefensible in a lot of ways. They don't represent any gathering of information or data or anything that would lead the business to be dominant over time. Are they really solving a problem or are they just delivering cooler versions of the solution that these foundational models already represent in the forms that they've been delivered to us?

So I think instead, what you need to go look for is a problem. I think that the first class of problems that will be subsumed are the ones which is generating stuff is hard, so generating text is hard. Of course, we're going to use AIs to do text generation for marketing, for copy, for whatever it is. Image generation is hard. There are lots of people who need to communicate through image because that’s hard as well.

Architects, visualizations, theme park designers, all the stuff where you need to be able to communicate something to somebody rapidly, iteratively and these models actually make it possible to do that storytelling in a new way. I think that given how many companies and industries there are already today that are engaged in some form of storytelling, Disney probably being the king of all of them.

I wouldn't go put my start-up in their way. I think the problem to be solved here and with these models are capable for moving frictions is interactivity. So I go look at very boring places where a lot of time is spent figuring things out and the first thing that comes to my mind is customer support and customer success, where we don't even have to come up with a problem because literally, the point of the company is to solve the problem that the user asked, the problem is almost certainly going to be idiosyncratic and unique to that user and going to require some degree of customized response.

The person is very frustrated, which means the faster we can get them an answer, the better, but also they're not going to have a lot of patience for low-quality responses. There's a 2-way friction there. That person actually doesn't care how we get them to answer. They just want the answer. We, speaking from Prefect's own knowledge, we have an extraordinary customer success team. Fortunately, we don't have a lot of unhappy users, but we definitely have users to need assistance or need help or are doing onboarding or need to deploy stuff.

And I see the value that can happen. I can also imagine how awful it would be to not engage with them. And one of the things we spend a lot of time thinking about is how will we scale this because we can't possibly grow that team in a linear fashion as our customers are growing, and customers are skyrocketing.

We've already experimented with putting a GPT power bot in our Slack to handle, let's call it, the first 80% of questions that are probably somewhere in our documentation or somewhere in our knowledge bank or somewhere in our own collective knowledge, but we don't necessarily want to task a human with taking the time to repeatedly identify what the person is asking, go off into a knowledge base and deliver the answer.

And that's a perfect place to deploy one of these technologies that can do the 2-way understanding of remove the friction on the person's part of actually having to communicate information appropriately and remove the friction on our side of actually doing the knowledge discovery.

Patrick: [00:44:26] Use that as an example for how these things could be made, turned from general to particular. So you said something important there. GPT-3 powered bot, meaning it's a bot is something performing a function in a very particular, specific environment, in this case, a Prefect user that's got a question, what literally is happening for you and your team to take a generalized model and use it to "power" a specific use case?

Jeremiah: [00:44:51] There are 2 different technologies that we can deploy. The first is we've got this massive, generalized model that's capable of taking a question, producing an answer. You first need to tell what kind of answer are we looking for. You and I were joking earlier with the ChatGPT that I asked it a question and then I threw it an instruction at the end, answer as if you were a pirate, yes, it does. It pretends as a pirate, but answers the question still, which is incredible and mind-blowing.

We want our AI, our chatbot to have a specific way of answering questions, a personality, if that's not too loaded of a word. We want it to be brief and direct. We want to have links to documentation where possible. So the first part as power bot is actually teaching it what sort of answers we want. What we don't want is, we don't want something to say, "Hey, how do I write a Prefect workflow and for it to tell a joke?" That would be bad even if the joke was about Prefect workflows, that would be bad. And almost certainly wouldn't do that, to be clear.

But I'm using it as a counter-example, the fact that we do want to ask that in a specific way. We want it to deliver the message, and we also want to deliver a link to documentation so that these users can go and serve themselves and continue their own knowledge journey.

So we have to teach that. Now that's not training. That's like through examples. That doesn't change the original models, through examples. We can also, if we choose to if we want to take this further, we can actually do the fine-tuning thing that we talked about before.

We used image generation and in the style of Van Gogh as an example, you can actually go train. We can also fine-tune these models, these language models on our own data store. We have a proprietary data store, which is extremely, extremely rich of user questions, our own responses, our internal discussions, our internal design documents, which we would never make it public.

They got all kinds of stuff in them, but we can absolutely take sections of them, send them off to one of these bots and let it decide information in a clean and accessible way for our users. That's what it means to take one of these licensed models, these generalized models and apply specifically for ourselves.

Patrick: [00:46:45] Can I ask that question one more time just to make sure I understand it, and I'm going to make it really simple and selfish. Let's say I wanted to create a little chatbot that was in the front of the Colossus website where we've got, I don't know, 500 very long transcripts of conversation, let’s say we have 1,000, we might be getting close to 1,000 now. And I wanted to have the chatbot, say, "Well, what are you interested in?” I say, "I'm interested in enterprise software." "Oh, like what about enterprise software are you interested in?"

These 3 things and I will be like, well, I suggest you should go listen to this conversation with Chetan Puttagunta. What would I do to take the proprietary thing I have similar to the resources you just described, the Prefect has, I've got 1,000 transcripts, let's say, so literally, what are the steps that I would take? I'm going to do this, if you tell me, I'll tell Joe, our engineer to go build this. What would he have to do? How hard is it? What are the steps?

Jeremiah: [00:47:37] There are 2 steps here. One, we need to point it out your data. I mean to show that this is the corpus that we're interested in. And the two, we need to literally just show it, what does it mean to answer a question? So I would actually say we would go a step further than that. We wouldn't just say to it, go listen to this. We would have it say, “Oh, Chetan says the following on open-source business models. And by the way, he did the podcast with Jeremiah and they disagreed on this point."

And so this is the point of contention in open source business models. And yes, it could link out to them. But I think the principal thing here is not just the search engine replacing, not just the natural language search engine replacing, like I know there's a podcast over here and I'm here with the question, get me over there. It's actually the retrieval mechanism. I don't have to go to the podcast in a sense to find out if my answer is in it.

The AI will have already read all the information, and it's going to deliver a synthesis of that information to me that I can make use of and now if I choose, I can go further into the system. And I think that is -- when we talk about those latent space and those representations of information, the real power here is about getting us to information. I think going back to like what was the amazing thing we Googled it, it wasn't that I type in a thing and it goes to the web page. That's how I experienced the technology in Google.

But the real value add was that they figured out how to know which webpage to take me to. It's not that I type in the word car and I go to the page that has the word car on it at most times. It's that I go to the page that other pages where the word car pointed to the most. And that little light bulb, which I'm sure is a million times more complex today than it was at the beginning, but that was the insight.

And when we look at these models and how they're doing the information synthesis, there is still this core idea of it's less interesting for them just to take you somewhere. And it's more interesting to think how do we teach it and what is interesting to me. And so that's where your energy would be, as you set up examples for the spot, you literally ask a question, you give some example answers of what you're looking for. You point at your data, and you teach it what is a high-quality response to a question like this.

Patrick: [00:49:30] Do you think then that the most defensible products or businesses that might be built all have a component of incorporating existing and ongoing customer data or feedback? Is that the “moat” that might exist?

Jeremiah: [00:49:44] There has to be 2 places that the secret sauce comes from. One comes from a proprietary data set that you simply can’t access otherwise. That could be that the data is not accessible publicly. And using Google as an example, that could be that no one can collect all of the data or in the right form as possible, since the web is obviously public and anyone in theory could go and index every page on it.

I think one of the places is having this moat of proprietary data, which you are then making it available to people in this consumable way. But I do think the other one is going to be some secret sauce in the models themselves. We're theorizing here that Midjourney is doing something incredible in the model to guide to these high-quality answers.

Not only do I think that that's going to be a critical part of this, I think that that's going to be one of the major steps forward here because right now, I think that we have a little bit of a wrong way precision of these image generation technologies.

Like we're doing all the stuff called prompt engineering, which for anyone who has not seen this term before, it's the idea that if you just type Spider-Man smashing a watermelon into one of these things, yes, you probably get something that very literally looks like that.

But then the meme, I think, is that you throw in a bunch of, trending on ArtStation, 8K, 4K, HD, whatever, then you have to put all these what I call negative prompt, things you don't want the model to do, know that anatomy, get the right number of fingers, like all this stuff and you really have to be very, very, very precise.

Now the model is still doing an incredible thing. It's taking that miscellaneous words and producing a very coherent image on the other side. But that is not the future that I want to live in, where every single time you talk to one of these things, you have to say all that to it.

That is going to be a major opportunity that it hasn't yet unsolved of how you guide to a high-quality outcome without requiring users to jump through all these hoops because if you think about using Google today, if you're looking at over someone's shoulder, what would make them a good user of Google or a bad user of Google? A good user of Google probably uses the smallest number of words that bring their results to the top.

They're precise, they're efficient. They know how to create their query in a way that Google understands, and Google's gotten really good at making that possible. A good user of, for example, Stable Diffusion today is exactly the opposite. It's going to be like to paragraph into the thing to get what they want out. Now that may be necessary. It may be that using something of this degree of power will always require some proportionate degree of precision on the input.

But what I don't expect to see is these hacks basically, trending on ArtStation, 8K, 4K become necessary. That's not a good prompt engineer. That's literally someone hacking the system to go into the latent part of the system that they want to be in, the high-quality latent area of the system. These models are as capable of generating garbage as they are generating high-quality things.

That's just a different area of latent space. They learn what bad stuff is so you tell them to stay away from it. That's another dimension of defensibility here is how -- is the user interface, so to speak, that you expose to users? And how easy you make it for them to get what they are searching for.

What Jeremiah Is Watching Closely

Patrick: [00:52:50] What are you watching most closely? You and I have been texting back and forth on the ChatGPT the last few days and every time one of these new things comes out, we talk a lot about it. But if you zoom out a little bit and look forward, and I know some of this is unknown, but we don't know what's going on with perfect clarity but 6, 12 months, that kind of horizon, where do you have alerts set up? So if something happens, you want to be the first to know about it.

Jeremiah: [00:53:10] There are a couple of things I'm looking for right now. I'm looking for video generation, which is we're just starting to see the first little examples of it come out, I think that's fascinating. By looking for text generation, which is more interactive and interesting. So if you do play with this ChatGPT then, and by the way, I'm in love with the fact that these are all accessible to the public or to paying customers in some way, which is just incredible to have access to this technology. If you look at ChatGPT, it does amazing things.

If you ask it the same question over and over, you don't just get the same answer, you get the same answer. It's the same. You're very clearly keying into a very specific node, and it's like understanding. And that is a good thing from the point of view of information retrieval, but that's a bad thing from the point of view of, "Am I in a conversation with this thing or is it just a really good search engine?" That's something that I'm hoping we'll see in the near future.

By the way, I say that not to take away from the just incredible achievement that this is, but that's what I would love to see improve on that side. The thing that I’m most interested in though, is either of these things. I am most interested at this moment in time, in something called neural rendering, which is a representation of basically 3D scenes like letting you explore them.

And so there's a company, for example, Luma Labs, which is commercialized, something called NeRF, a neural rendering field. There's a fantastic video made by Wren from Corridor Digital recently that made this available to a lot of people in a way that I think was previously inaccessible.

I think that these technologies are really, really, really incredible because one of the biggest problems we have right now in terms of representing not just on image or video or text, it's like how do we actually take scenes, entire scenes and make them interactive.

How do you walk around something? Doesn't have to be in VR. It could be for like video effects for making a movie, for filming a TV show, for a presentation, the high-fidelity capture of visual information is still very, very, very hard.

And you and I have talked about engines like new advances in Unreal Engine, for example, that make that possible, which are incredible. But there's this new class of technologies, no surprise, which are AI-based renderers that can capture a scene in extraordinary fidelity and then represent it back, for example, in your browser. I'm extremely excited about these technologies because I think that they will make possible things like video calls where I don't need this webcam staring at me. I just want to sit in my chair.

I don't need to fiddle with my mic and everything because I can just walk around it, and it’s just capturing everything and it's able to transmit it in a high fidelity or I've seen very simple examples of this where my webcam’s above my monitor, but here you are in the center of it.

So you probably think this entire conversation I'm not looking at you, but I swear to you, you have my full attention. And video has got a demo where they just make your eyes at the camera where they are in a natural way, it's extraordinary. It makes such an enormous difference.

And I think it's really cool. And there are all these little things that have to do with neural rendering and transformations that I think are amazing to be clearly I think is very different than the thing that I was talking about before.

But that's where my attention is right now on the AI powered, how are these technologies going to transform because all of us interact with generated worlds all the time, whether it's in a game, a movie, a TV show, even VR, the ability to communicate these virtual worlds into the real world is I'm very excited.

Patrick: [00:56:20] My last question is, do you think that these old tool kits, it's funny to call them old given how advanced they are, but something like Unreal Engine 5, let's say, which if you look at the output, it's clear, it's capable of producing anything anyone could imagine.

But if you said to me, go build a video of Spider-Man smashing the watermelon in Unreal Engine, I couldn't do it. Do you think that, that bridge will get crossed because of these technologies where AI will learn how to use other toolkits and allow a simpleton like me to engineer using the toolkit like Unreal Engine 5 to create the outcome that I want? Is that relevant?

Jeremiah: [00:56:55] Absolutely. I think the questions will be in the form of, say, Unreal Engine 5, for example, will you use Photoshop to make images that are collages or we use literally go to a Stable Diffusion UI or a Stable Diffusion going to be baked into Photoshop in an interesting way? I think we need to separate the technology from the interface in order to answer that question. I have no doubt that you'll be able to say, I want to be projected onto my tabletop, a castle with a dragon so that my kids can play.

No doubt, but that is a very, very, very possible thing and they'll be interactive, and they'll use their own little action figures to interact, 100%. The fascinating thing to me in terms of watching just those technologies progress is with what fidelity can we generate these scenes? So right now, we're on the verge, I think, of a major achievement in image generation, which is all hands will have 5 fingers. I know that sounds ridiculous. That's where we are as far as like what are we trying to achieve.

So when I think about the world itself and capturing the world in all of its beautiful detail, reflections are really hard. Light bounces a million times and captures all the detail, gives rise how interesting the world is to look at it.

That's really hard to program into something like Unreal Engine, that’s some very expensive computations to produce, but a neural renderer uses an AI to encode that all in a latent space and can do it more easily and more quickly. And so this is one of the reasons I'm very interested in these neural fields as they advance exactly in the areas that our current technologies struggle with. By using heuristics having to do all the explicit computation.

Patrick: [00:58:19] My main conclusion from all this is I want to fund a company called "Latent Space". It seems like at the end of the day, that is this incredibly powerful substrate that is merging into the world, and we're figuring out how to both create the substrate but then tap it.

Also, this is just a killer of friction between our minds and outcomes or outputs, and that is incredibly exciting. I can't remember a time when I've been as glued to my screen around changing technology in my whole life, and how cool it is and how lucky we are that we get to watch it, and I really appreciate, as always, when there's something technical to understand my ability to call you and have you explain it to me. Thank you.

Jeremiah: [00:58:58] I totally agree with you. The latent space, it's like if I asked you, "Hey, Patrick, what are you thinking about? Don't tell me what you're thinking about, show me your thoughts, show me what you're thinking about.” That's the latent space, and that's why it's so powerful because you can choose anyone of 1,000 different ways to turn that thought into words, you could draw it for me. By the way, you actually could draw Spider-Man smashing watermelon, which is take you a really long time and you have to learn technique to do it.

So what if we could take that latent idea that you have and use a machine to accelerate that? And I think that's why we're so fascinated by this is we're seeing that play out in real-time. Anytime you want to train a chatbot on me, just make it ramble for a long time, throwing a couple of puns. You don't actually conclude anything, and that's what I'm here to do anytime. So thank you.

Patrick: [00:59:40] Thanks, my friend.

Jeremiah: [00:59:41] Anytime.