Hello, everyone.
Welcome to the Latent Space Podcast.
This is Alessio, founder of Kernel Labs, and I'm joined by Swix, editor of Latent Space.
Hello, hello.
We're here in the studio with Jeff Dean, chief AI scientist at Google.
Welcome.
It's a bit surreal to have you in the studio.
I've watched so many of your talks and obviously your career has been super legendary.
So, I mean, congrats.
I think the first thing must be said, congrats on owning the Pareto Frontier.
Thank you.
Thank you.
Pareto Frontiers are good.
It's good to be out there.
Yeah, I mean, I think it's a combination of both.
You have to own the period of frontier.
You have to have frontier capability but also efficiency, and then offer that range of models that people like to use.
And some part of this was started because of your hardware work.
Some part of that is your model work.
I'm sure there's lots of secret sauce that you guys have worked on cumulatively.
But it's really impressive to see it all come together in this steadily advancing frontier.
Yeah, I mean, I think as you say, it's not just one thing.
It's like a whole bunch of things up and down the stack.
And you know all of those really combine to help make UNOS able to make highly capable large models, as well as you know software techniques to get those large model capabilities into much smaller, lighter weight models that are, you know, much more cost effective and lower latency but still, you know, quite capable for their size.
Yeah.
How much pressure do you have on having the lower bound of the private frontier too?
I think the new labs are always trying to push the top performance frontier because they need to raise more money and all of that.
And you guys have billions of users.
And I think initially when you worked on the TPU, you were thinking about If everybody that use Google, we use the voice model for three minutes a day, they were like you need to double your CPU number.
What's that discussion today at Google?
How do you prioritize frontier versus we actually need to deploy it if we build it?
Yeah, I mean, I think we always want to have models that are at the frontier or pushing the frontier, because I think that's where you see what capabilities now exist that didn't exist, at the sort of slightly less capable, last year's version or last six months ago version.
At the same time we know those are going to be really useful for a bunch of use cases, but they're going to be a bit slower and a bit more expensive than people might like for a bunch of other broader use cases.
So I think what we want to do is always have a highly capable, affordable model that enables a whole bunch of, you know, lower latency use cases.
People can use them for agentic coding much more readily and then have the the high end.
You know a frontier model that is really useful for deep reasoning, solving really complicated math problems, those kinds of things.
And it's not that one or the other is useful.
They're both useful.
So I think we like to do both.
And also, you know, through distillation, which is a key technique for making the smaller models more capable, you know you have to have the frontier model in order to then distill it into your smaller model.
So it's not like an either or choice.
You sort of need that in order to actually get a highly capable, more modest size model.
I mean, you and Geoffrey Hinton came up with this solution in 2014.
Don't forget, L'Oreal vinyls as well.
A long time ago.
I'm curious how you think about the cycle of these ideas, even like sparse models, and You know how.
How do you reevaluate them?
How do you think about in the next generation of model, what is worth revisiting?
Like a.
Yeah, they're just kind of like a.
You know, you worked on so many ideas that end up being influential but, like in the moment, they might not feel that way necessarily.
Yeah, I mean, I think distillation was originally motivated because we were seeing that we had a very large image data set at the time 300 million images that we could train on with, I forget like 20000 categories or something so much bigger than ImageNet.
And we were seeing that if you create specialists for different subsets of those image categories, you know this one's going to be really good at sort of mammals and this one's going to be really good at sort of indoor room scenes or whatever, and you can cluster those categories and train on an enriched stream of data.
After you do pre-training on a much broader set of images, you get much better performance.
If you then treat that whole set of maybe 50 models you've trained as a large ensemble.
But that's not a very practical thing to serve, right?
So distillation really came about from the idea of okay, what if we want to actually serve that and train all these independent sort of expert models and then squish it into something that actually fits in a form factor that you can actually serve.
And that's not that different from what we're doing today.
Often today, instead of having an ensemble of 50 models, we're having a much larger scale model that we then distill into a much smaller scale model.
Yeah, a part of me also wonders if distillation also has a story with the RL revolution.
So let me maybe try to articulate what I mean by that, which is RL basically spikes models in a certain part of the distribution.
And then you have to sort of well, you can spike models, but usually sometimes it might be lossy in other areas and it's kind of like an uneven technique.
But you can probably distill it back.
And you can.
I think that the sort of general dream is to be able to advance capabilities without regressing on anything else.
And I think that that whole capability merging without loss I feel like some part of that should be a distillation process, but I can't quite articulate it.
I haven't seen much papers about it.
Yeah, I mean I tend to think of one of the key advantages of distillation is that you can have a much smaller model and you can have a very large training data set and you can get utility out of making many passes over that data set because you're now getting the logits from the much larger model in order to sort of Yeah, sort of coax the right behavior out of the smaller model that you wouldn't otherwise get with just the hard labels.
And so you know I think that's what we've observed is you can get you know very close to your largest model performance with distillation approaches.
And that seems to be a nice sweet spot for a lot of people, because it enables us to kind of for multiple Gemini generations.
Now we've been able to make the sort of flash version of the next generation as good or even substantially better than the previous generation's Pro.
And I think we're going to keep trying to do that because that seems like a good trend to follow.
Dara asked, so the original map was Flash Pro and Ultra.
Are you just sitting on Ultra and distilling from that?
Is that like the mother load?
I mean, we have a lot of different kinds of models.
Some are internal ones that are not necessarily meant to be released or served.
Some are, you know, our pro scale model and we can distill from that as well into our flash scale model.
So I think, you know, it's an important set of capabilities to have.
And also inference time scaling can also be a useful thing to improve the capabilities of the model.
Yeah.
Yeah.
Cool.
Yeah.
And obviously, I think the economy of flash is what led to the total dominance.
I think the latest numbers like 50 trillion tokens.
I don't know.
I mean, obviously, it's changing every day.
Yeah.
Yeah.
But, you know, by market share, hopefully up.
No, I mean, there's no, I mean, there's just the economics wise, like, uh, because flash is so economical, like you can use it for everything.
Like it's in Gmail now it's in YouTube.
Like it's, it's in everything.
We're using it more in our search products of various AI mode reviews.
Oh my God.
Flash powers AI mode.
Oh my God.
Yeah.
That's yeah.
I didn't even think about that.
Um, I mean, I think one of the things that is quite nice about the Flash model is not only is it more affordable, it's also a lower latency.
And I think latency is actually a pretty important characteristic for these models, because we're going to want models to do much more complicated things that are going to involve generating many more tokens from when you ask the model to do something until it actually finishes what you ask it to do.
Because you're going to ask now not just write me a for loop, but write me a whole software package to do X or Y or Z, And so having low latency systems that can do that seems really important.
And Flash is one direction, one way of doing that.
Obviously, our hardware platforms enable a bunch of interesting aspects of our serving stack as well, like TPUs.
The interconnect between chips on the TPUs is actually quite, quite high performance and quite amenable to, for example, long context kind of attention operations.
You know having sparse models with lots of experts.
These kinds of things really, really matter a lot in terms of how do you make them servable at scale.
Does it feel like there's some breaking point for, like the protoflash distillation, kind of like one generation delayed?
I almost think about almost like the capability asymptote in certain tasks.
Like the pro model today is a saturated some sort of task.
So next generation, that same task will be saturated at the Flash price point.
And I think for most of the things that people use models for at some point the Flash model in two generation will be able to do basically everything.
And how do you make it economical to like keep pushing the pro frontier when a lot of the population will be okay with the flash model?
I'm curious how you think about that.
I mean, I think that's true if your distribution of what people are asking people or the models to do is stationary.
But I think what often happens is, as the models become more capable, people ask them to do more.
I think this happens in my own usage.
I used to try our models a year ago for some sort of coding task and it was okay at some simpler things, but wouldn't work very well for more complicated things.
And since then, we've improved dramatically on the more complicated coding tasks.
And now I'll ask it to do much more complicated things.
And I think that's true not just of coding but of now.
Can you analyze all the renewable energy deployments in the world and give me a report on solar panel deployment, or whatever?
That's a very complicated, more complicated task than people would have asked a year ago.
And so you are going to want more capable models to push the frontier in the sense of what people ask the models to do.
And that also then gives us insight into, OK, where do things break down?
How can we improve the model in these particular areas in order to make the next generation even better?
Yeah.
Are there any benchmarks or like test sets they use internally?
Because it's almost like the same benchmarks get reported every time.
And it's like, all right, it's like 99 instead of 97.
Like how do you have to keep pushing the team internally to it?
Or like, this is what we're building towards.
Yeah, I mean, I think benchmarks, particularly external ones that are publicly available, have their utility, but they often kind of have a lifespan of utility where they're introduced and maybe they're quite hard for current models.
I like to think of.
The best kinds of benchmarks are ones where the initial scores are like 10 to 20, or 30 maybe, but not higher.
And then you can sort of work on improving that capability for uh, whatever it is that the benchmark is trying to assess, and get it up to like 80 90, whatever.
Uh, I think once it hits kind of 95 or something, you get very diminishing returns from really focusing on that benchmark, because it's either the case that you've now achieved that capability or there's also the issue of leakage in public data or very related kind of data being in your training data.
So we have a bunch of held out internal benchmarks that we really look at where we know that wasn't represented in the training data at all.
There are capabilities that we want the model to have that it doesn't have now.
And then we can work on assessing how do we make the model better at these kinds of things.
We need different kind of data to train on that's more specialized for this particular kind of task.
Do we need you know, a bunch of you know architectural improvements or some sort of model capability improvements.
You know, what would help make that better?
Is there such an example that a benchmark inspired an architectural improvement?
I'm just kind of jumping on that because you just...
I mean, I think some of the long context capabilities of the Gemini models that came, I guess, first in 15 really were about looking at.
Okay, we want to have Immediately everyone jumped to completely green charts.
I was like, how did everyone crack this at the same time?
Right.
I mean, as you say, that single needle in a Haystack benchmark is really saturated for at least context lengths up to 128k or something.
I think most people don't actually have much larger than 128k these days, or 256 or something.
We're trying to push the frontier of 1 million or 2 million contacts.
I think Google is still the leader, 2 million.
Yeah, which is good because I think there are a lot of use cases where putting 1000 pages of text or putting multiple hour-long videos in the context and then actually being able to make use of that is useful.
The single needle in a haystack benchmark is sort of saturated.
So you really want more complicated, sort of multi-needle or more realistic.
Take all this content and produce this kind of answer from a long context that sort of better assesses what it is people really want to do with long context which is not just you know.
Can you tell me the product number for this particular thing?
Yeah, it's retrieval.
It's retrieval within machine learning.
Yeah, it's interesting because I think the more meta level I'm trying to operate at here is you have a benchmark.
You're like, OK, I see the architectural thing I need to do in order to go fix that.
But should you do it?
Because sometimes that's an inductive bias, basically, that you're in.
And it's what Jason Wei, who used to work at Google, would say.
Exactly the kind of thing like, yeah, you're going to win short term.
Longer term, I don't know if that's going to scale.
You might have to undo that.
I mean, I like to sort of not focus on exactly what solution win should drive.
But what capability would you want?
And I think we're very convinced that you know.
Long context is useful, but it's way too short today right yeah, like i think what you would really want is can i attend to the internet while i answer my question?
Right, but that's not going to be solved by purely scaling the existing solutions, which are quadratic.
So a million tokens kind of pushes what you can do.
You're not going to do that to a trillion tokens, let alone a billion tokens, let alone a trillion.
But I think if you could give the illusion that you can attend to trillions of tokens, that would be amazing.
You'd find all kinds of uses for that.
You would have attend to the internet.
You could attend to the pixels of YouTube and the sort of deeper representations that we can form for a single video.
But across many videos.
You know, on a personal Gemini level, you could attend to all of your personal state with your permission.
So like your emails, your photos, your docs, your plane tickets you have.
I think that would be really, really useful.
And the question is how do you get that?
Algorithmic improvements and system level improvements that get you to something where you actually can attend to trillions of tokens in some meaningful way.
Yeah.
But I think I did some math and it's like if you spoke all day, every day, for eight hours a day um, you only generate a maximum of like a hundred K tokens, which like very comfortably fits.
Right, but if you then say okay, I want to be able to understand everything people are putting on video.
Well also, I think the classic example is you start going beyond language into, like proteins and whatever else is extremely information dense.
Yeah, I mean, I think one of the things about Gemini is multimodal aspects is we've always wanted it to be multimodal from the start.
And so you know that sometimes to people means text and images and video, sort of human like an audio, audio human-like modalities.
But I think it's also really useful to have Gemini know about non-human modalities like LIDAR, sensor data from say, Waymo vehicles or robots or various kinds of health modalities, x-rays and MRIs, and imaging and genomics information.
And I think there's probably hundreds of modalities of data where you'd like the model to be able to at least be exposed to the fact that this is an interesting modality and has certain meaning in the world where, even if you haven't trained on all the LIDAR data or MRI data you could have because maybe that's not doesn't make sense in terms of trade-offs of what you include in your main pre-training data mix, at least including a little bit of it is actually quite useful because it sort of tempts the model that this is a thing.
Yeah, yeah.
Do you believe?
I mean, since we're on this topic and something I just get to ask you all the questions I always wanted to ask, which is fantastic are there some king modalities, like modalities that supersede all the other modalities?
So a simple example is vision can, on a pixel level, encode text.
And DeepSeq had this DeepSeq OCR paper that did that.
Vision has also been shown to maybe incorporate audio, because you can do audio spectrograms and that's also like a vision capable thing.
So maybe vision is just the king modality and like Yeah, I mean vision and motion are quite important things, right.
Motion?
Well, like video as opposed to static images.
Because, I mean, there's a reason evolution has evolved eyes like 23 independent ways.
Because it's such a useful capability for sensing the world around you.
Which is really what we want these models to be able to do is interpret the things we're seeing, or the things we're paying attention to, and then help us in using that information to do things.
Yeah.
I think motion, you know, I still want to shout out, I think Gemini still the only native video understanding model that's out there.
So I use it for YouTube all the time.
Nice.
Yeah, yeah.
I think people are not necessarily aware of what the Gemini models can actually do with video.
I have an example I've used in one of my talks.
It was like a YouTube highlight video of 18 memorable sports moments across the last 20 years, or something.
So it has like Michael Jordan hitting some jump shot at the end of the finals and some soccer goals and things like that.
And you can literally just give it the video and say can you please make me a table of what all these different events are, what the date is when they happened and a short description of the event?
And so you get, like now, an 18 row table of that information extracted from the video, which is, you know, not something most people think of as like a turn video into sequel, like table.
Has there been any discussion inside of Google of, like you mentioned, tending to the whole internet, right?
Google.
It's almost built because a human cannot tend to the whole internet and you need some sort of ranking to find what you need.
That ranking is like much different for an LLM, because you can expect a person to look at maybe the first five, six links in a Google search, versus for an LLM should you expect to have 20 links that are highly relevant.
Like how do you internally figure out?
You know, how do we build the AI mode?
That is like maybe like much broader search and span versus like the more human one.
Yeah, I mean, I think even pre-language model-based work.
Our ranking systems would be built to start with a giant number of web pages in our index.
Many of them are not relevant.
So you identify a subset of them that are relevant with very lightweight kinds of methods.
And now you're down to like 30,000 documents or something.
And then you gradually refine that to apply more and more sophisticated algorithms and more and more sophisticated sort of signals of various kinds, in order to get down to ultimately, what you show, which is the final 10 results, or 10 results plus other kinds of information.
And I think an LLM-based system is not going to be that dissimilar.
You're going to attend to trillions of tokens, but you're going to want to identify what are the 30000-ish documents with the you know maybe 30 million interesting tokens.
And then how do you go from that into what are the 117 documents I really should be paying attention to in order to carry out the tasks that the user has asked me to do?
And I think you know you can imagine systems where you have know a lot of uh, highly parallel processing to identify those initial 30 000 candidates, maybe with very lightweight kinds of models.
Um, then you have some system that sort of helps you narrow down from 30 000 to the 117 uh, with maybe a little bit more sophisticated model or set of models, and then maybe the final model is the thing that looks at 117 things.
That might be your most capable model.
So i think it has to.
It's going to be some system like that that is really enables you to give the illusion of attending to trillions of tokens, Sort of the way Google search gives you.
You know, not the illusion, but you are searching the internet but you're finding you know a very small subset of things that are that are relevant.
Yeah.
I often tell a lot of people uh, that are not steeped in like Google search history, that uh well, you know, like Bert was like, he was like basically immediately inside of Google search.
Uh, and that improves results a lot, right?
Like I don't.
I don't have any numbers off the top of my head but, like I'm sure you guys, that's obviously the most important numbers to Google.
Yeah, I think going to an LLM-based representation of text and words and so on enables you to get out of the explicit, hard notion of particular words having to be on the page.
But really getting at the notion of this topic, of this page or this paragraph is highly relevant to this query.
I don't think people understand how much LLMs have taken over all these very high traffic systems.
Very high traffic.
It's Google.
It's YouTube.
YouTube has this semantics IDE thing where it's like every token or every item in the vocab is a YouTube video or something that predicts the video, using a code book, which is absurd to me for YouTube size.
And then most recently GROK, also for XAI, which is like I mean I'll call out.
Even before LLMs were used extensively in search, we put a lot of emphasis on softening the notion of what the user actually entered into the query.
Do you have a history of what's the progression?
Oh, yeah.
I mean, I actually gave a talk in, I guess, Web Search and Data Mining Conference in 2009, where we never actually published any papers about the origins of Google search.
But we went through sort of four or five or six generations.
Four or five or six generations of of the search and retrieval system from about 1999 through 2004 or 5.
And that talk is really about that evolution.
And one of the things that really happened in 2001 was we were It's working to scale the system in multiple dimensions.
So one is, we wanted to make our index bigger so we could retrieve from a larger index, which always helps your quality in general.
Because if you don't have the page in your index, you're going to not do well.
And then we also needed to scale our capacity because our traffic was growing quite extensively.
And so we had a sharded system where you have more and more shards as the index grows.
30 shards.
And then if you want to double the index size, you make 60 shards so that you can bound the latency by which you respond for any particular user query.
And then as traffic grows, you add more and more replicas of each of those.
And so we eventually did the math that realized that in a data center where we had say, 60 shards and 20 copies of each shard, we now had 1200 machines with disks.
And we did the math and we're like hey, one copy of that index would actually fit in memory across 1200 machines.
So in 2001, we introduced, we put our entire index in memory.
And what that enabled from a quality perspective was amazing, because before you had to be really careful about how many different terms you looked at for a query, because every one of them would involve a disk seek on every one of the 60 shards.
And so as you make your index bigger, that becomes even more inefficient.
But once you have the whole index in memory, it's totally fine to have 50 terms you throw into the query from the user's original three- or four-word query, because now you can add synonyms like restaurant and restaurants and cafe and.
Bistro and all these things, and you can suddenly start sort of really getting at the meaning of the word, as opposed to the exact semantic form the user typed in.
And that was 2001, very much pre-LLM, but really it was about softening the strict definition of what the user typed in order to get at the meaning.
What are like principles that you use to like design the systems, especially when you have?
I mean in 2001, the internet is like doubling, tripling every year in size.
It's not like a you know, and I think today you kind of see that with LLMs too where, like every year, the jumps in size and like capabilities are just so big.
Are there just any, you know, principles that you use to like, think about this?
Yeah, I mean, I think first, whenever you're designing a system, you want to understand what are the sort of design parameters that are going to be most important in designing that.
So how many queries per second do you need to handle?
How big is the index you need to handle?
How much data do you need to keep for every document in the index?
How are you going to look at it when you retrieve things?
What happens if traffic were to double or triple?
Will that system work well?
And I think a good design principle is you're going to want to design a system so that the most important characteristics could scale by factors of 5 or 10, but probably not beyond that.
Because often what happens is if you design a system for X and something suddenly becomes 100X, that would enable a very different point in the design space.
That would not make sense at X but all of a sudden at 100X, makes total sense.
So going from a disk-based index to an in-memory index makes a lot of sense once you have enough traffic, because now you have enough replicas of the sort of state on disk that those machines now actually can hold a full copy of the index and memory.
And that all of a sudden enables a completely different design that wouldn't have been practical before.
So I'm a big fan of thinking through designs in your head, just kind of playing with the design space a little, before you actually do a lot of writing of code.
As you said, in the early days of Google, we were growing the index quite extensively.
We were growing the update rate of the index.
So the update rate actually is the parameter that changed the most, surprisingly.
So it used to be once a month.
And then we went to a system that could update any particular page in sub one minute.
OK.
Yeah, because this is a competitive advantage.
Right.
Because all of a sudden, news related queries.
If you've got last month's news index it's not actually that useful for topical.
News is a special beast.
You could have split it onto a separate system.
Well, we did.
We launched a Google News product.
But you also want news-related queries that people type into the main index to also be sort of updated.
Yeah, it's interesting.
And then you have to classify whether the pages you have to decide which pages should be updated at what frequency.
Oh yeah, there's a whole like A system behind the scenes that's trying to decide update rates and importance of the pages.
So even if the update rate seems low, you might still want to recrawl important pages quite often, because the likelihood they change might be low, but the value of having them updated is high.
Yeah, yeah, yeah.
This mention of latency and saving things to disk reminds me of one of your classics, which I have to bring up, which is latency numbers.
Every programmer should know.
Was there just a general story behind that?
Did you just write it down?
I mean this has like sort of eight or 10 different kinds of metrics that are like how long does a cache miss take?
How long does branch miss predict take?
How long does a reference domain memory take?
How long does a dissonance take?
How long does it take to send a packet from the US to the Netherlands or something?
Why Netherlands, by the way?
Or is that because of Chrome?
We had a data center in the Netherlands.
So I mean, I think this gets to the point of being able to do the back of the envelope calculations.
So these are sort of the raw ingredients of those.
And you can use them to say, OK.
Well, if I need to design a system to do image search and thumbnail-ing or something of the result page,
How would I do that?
I could pre-compute the image thumbnails.
I could try to thumbnail them on the fly from the larger images.
What would that do?
How much disk bandwidth would I need?
How many disk seeks would I do?
And you can sort of actually do thought experiments in you know 30 seconds or a minute with the sort of basic, basic numbers at your fingertips.
And then, as you sort of build software using higher level libraries, you kind of want to develop the same intuitions.
For how long does it take to, you know, look up something in this particular kind of hash table i use?
Or you know how long will it take me to sort a million numbers or something?
Yeah,
The reason I bring it up is actually for I think like two years now I've been trying to make numbers.
Every AI programmer should know.
I don't have a great one because it's not physical constants like you have physical constants in here.
But I do think a simple one would be number of parameters to disk size.
If you need to convert that, which is a simple byte conversion.
That's nothing interesting.
I wonder, if you have any, if you were to update your.
I mean, I think it's really good to think about calculations you're doing in a model either for training or inference.
Often a good way to view that is how much state will you need to bring in from memory?
Either like on chip SRAM or HBM from the accelerator attached memory or DRAM or over the network.
And then, how expensive is that data motion relative to the cost of say, an actual multiply in the matrix multiply unit?
And that cost is actually really, really low, right?
Because it's, you know, order, you know...
Depending on your precision, I think it's like sub one picodule.
Oh, okay, you measure it by energy.
Yeah, I mean it's all going to be about energy, and how do you make the most energy efficient system?
And then moving data from the SRAM on the other side of the chip not even off the off chip, but on the other side of the same chip can be, you know, 1000 picajoules.
Oh, yeah.
And so all of a sudden, this is why your accelerators require batching.
Because if you move say, the parameter of a model from SRAM on the chip into the multiplier unit, that's going to cost you 1000 vehicle tools.
So you better make use of that thing that you moved many, many times.
So that's where the batch dimension comes in.
Because all of a sudden, if you have a batch of 256 or something, that's not so bad.
But if you have a batch of one, that's really not good.
Yeah, yeah.
Right, because then you paid 1,000 picajoules in order to do your one picajoule multiply.
I have never heard an energy-based analysis of batching.
Yeah.
I mean, that's why people batch, right?
Ideally, you'd like to use batch size one because the latency would be great.
Yeah, the best way.
But the energy cost and the compute cost inefficiency that you get is quite large.
Is there a similar trick like you did with putting everything in memory?
I think, obviously, NVIDIA has caused a lot of waves with betting very hard on SRAM with Grok.
I wonder if that's something that you already saw with the TPUs right that you had to serve at your scale.
You probably saw that coming.
What hardware innovations or insights were formed because of what you're seeing there?
Yeah, I mean, I think TPUs have this nice sort of regular structure of 2D or 3D meshes with a bunch of chips connected.
And each one of those has HBM attached.
I think for serving some kinds of models you pay a lot higher cost and time latency bringing things in from HBM than you do bringing them in from SRAM on the chip.
So if you have a small enough model, you can actually do model parallelism.
Spread it out over lots of chips and you actually get quite good throughput improvements and latency improvements from doing that.
And so you're now sort of striping your smallish scale model over, say, 16 or 64 chips.
But if you do that and it all fits in SRAM, that can be a big win.
So yeah, that's not a surprise, but it is a good technique.
What about the TPU design?
Like how much do you decide where the improvements have to go?
So like this is like a good example of like is there a way to bring the thousand joules down to 50?
But is it worth designing a new chip to do that?
The extreme is when people say oh, you should burn the model on the ASIC, and that's the most extreme thing.
How much of it is it worth doing in hardware when things change so quickly?
What's the internal discussion?
Yeah, I mean we have a lot of interaction between say, the TPU chip design architecture team and the sort of higher level modeling experts, because you really want to take advantage of being able to co-design what should future TPUs look like, based on where we think the sort of ML research puck is going.
In some sense because you know, as a hardware designer, for ML in particular, you're trying to design a chip starting today.
And that design might take two years before it even lands in a data center.
And then it has to sort of be a reasonable lifetime of the chip to take you three, four or five years.
So you're trying to predict two to six years out.
What ML computations will people want to run two to six years out in a very fast-changing field?
And so having people with interesting ML research ideas of things we think will start to work in that time frame or will be more important in that time frame, really enables us to then get interesting hardware features put into TPU n plus 2, where TPU n is what we have today.
Oh, the cycle time is plus 2.
Roughly.
Wow.
Because I mean sometimes you can squeeze some changes into N plus one, but you know bigger changes are going to require the chip design be earlier in its lifetime design process.
So Whenever we can do that, it's generally good.
And sometimes you can put in speculative features that maybe won't cost you much chip area, but if it works out, it would make something 10 times as fast.
And if it doesn't work out well, you burned a little bit of tiny amount of your chip area on that thing, but it's not that big a deal.
Sometimes it's a very big change and we want to be pretty sure this is going to work out.
So we'll do like lots of careful ml experimentation to show us uh, this is actually the the way we want to go.
Yeah, is there a reverse of like?
We already committed to this chip design so we cannot take the model architecture that way because it doesn't quite fit.
Yeah, I mean, you definitely have things where you're going to adapt what the model architecture looks like so that they're efficient on the chips that you're going to have for both training and inference of that generation of model.
So I think it kind of goes both ways.
Sometimes you can take advantage of lower precision things that are coming in a future generation.
So you might train it at that lower precision, even if the current generation doesn't quite do that.
Yeah.
How low can we go in precision?
Because people are saying like ternary is like useful.
Yeah.
I mean, I'm a big fan of very low precision because I think that saves you a tremendous amount of energy, right?
Because it's picojoules per bit that you're transferring.
And reducing the number of bits is a really good way to reduce that.
You know, I think people have gotten a lot of luck mileage out of having very low bit precision things but then having scaling factors that apply to a whole bunch of those weights.
Okay.
Interesting.
So low precision, but scaled up weights.
Yeah.
Huh.
Yeah, never considered that.
Interesting.
While we're on this topic I think there's a lot of this is the concept of precision at all is weird when we're sampling.
At the end of this we're going to have all these chips that all do very good math, and then we're just going to throw a random number generator at the start.
So I mean, there's a movement towards energy-based models and processors.
I'm just curious if you've, obviously you've thought about it, but what's your commentary?
Yeah, I mean, I think there's a bunch of interesting trends.
So energy-based models is one.
Diffusion-based models, which don't sort of sequentially decode tokens, is another.
Speculative decoding is a way that you can get sort of an equivalent, very small batch factor.
Like you predict eight tokens out, and that enables you to sort of increase the effective batch size of what you're doing by a factor of eight.
And then you maybe accept five or six of those tokens so you get a 5x improvement in the amortization of moving weights into the multipliers to do the prediction for the tokens.
These are all really good techniques and I think it's really good to look at them from the lens of uh energy, real energy, not energy based models um and, and also latency and throughput.
Right, if you look at things from that lens, that sort of guides you to solutions that are going to be uh.
You know better from uh.
You know being able to serve larger models, or you know equivalent size models, more cheaply and with lower latency.
Yeah.
Well, I think it's appealing intellectually.
I haven't seen it really hit the mainstream, but I do think that there's some poetry in the sense that we don't have to do a lot of shenanigans if we fundamentally design it into the hardware.
Yeah.
I mean, I think...
There's also sort of the more exotic things like analog based computing substrates as opposed to digital ones.
I think those are super interesting because they can be potentially low power.
But I think you often end up wanting to interface that with digital systems and you end up losing a lot of the power advantages in the digital to analog and analog to digital conversions you end up doing at the sort of boundaries and periphery of that system.
I still think there's a tremendous distance.
We can go from where we are today in terms of energy efficiency with sort of much better and specialized hardware for the models we care about.
Yeah.
Any other interesting research ideas that you've seen, or maybe things that you cannot pursue at Google that you would be interested in seeing researchers take a step at?
I guess you have a lot of researchers.
I guess you have enough.
Our research portfolio is pretty broad, I would say.
I mean, I think...
In terms of research direction.
There's a whole bunch of open problems in how do you make these models reliable and able to do much longer, more complex tasks that have lots of subtasks.
How do you orchestrate maybe one model that's using other models as tools in order to build things that can accomplish, you know, much more significant pieces of work collectively than you would ask a single model to do.
So that's super interesting.
How do you get more verifiable, you know, How do you get RL to work for non-verifiable domains?
I think it's a pretty interesting open problem because I think that would broaden out the capabilities of the models, the improvements that you're seeing in both math and coding, if we could apply those to other less verifiable domains, because we've come up with RL techniques that actually enable us to do that effectively.
That would really make the models improve quite a lot, I think.
I'm curious, like when we had Noam Brown on the podcast.
He said they already proved you can do it with deep research.
You kind of have it with AI mode.
In a way, it's not verifiable.
I'm curious if there's any thread that you think is interesting there.
Like what is it?
Both are like information, retrieval of jason.
So i wonder if it's like the retrieval is like the verifiable part that you can score, or what are like yeah yeah, how would you model that, that problem?
Yeah, I think there are ways of having other models that can evaluate the results of what a first model did.
Maybe in retrieving, can you have another model that says, are these things you retrieved relevant?
Or can you rate these 2000 things you retrieved to assess which ones are the 50 most relevant or something?
Um, I think those kinds of techniques are actually quite effective.
Sometimes that can even be the same model just prompted differently to be a critic as opposed to a uh, actual retrieval system.
I do think like there is that weird cliff where like it feels like we've done the easy stuff and then now it's.
But it always feels like that.
Like every year, it's like oh like, we know what we know, and the next part is super hard and nobody's figured it out.
And exactly with this ROVR thing where, like everyone's talking about well okay, how do we do the next stage of the non-verifiable stuff?
And everyone's like, I don't know, I'll then judge.
I mean, I feel like the nice thing about this field is there's lots and lots of smart people thinking about creative solutions to some of the problems that we all see.
Because I think everyone sort of sees that the models are great at some things and they fall down around the edges of those things and are not as capable as we'd like in those areas.
And then coming up with good techniques and trying those and seeing which ones actually make a difference is sort of what the whole research aspect of this field is pushing forward.
And I think that's why it's super interesting.
If you think back two years ago, we were struggling with GSMAK problems.
Fred has two rabbits.
He gets three more rabbits.
How many rabbits does he have?
That's a pretty far cry from the kinds of mathematics that the models can consult.
And now you're doing IMO goals in pure language.
Yeah, pure language.
So that is a really, really amazing jump in capabilities in a year and a half or something.
For other areas, it'd be great if we could make that kind of leap.
And we don't exactly see how to do it for some areas, but we do see it for some other areas and we're going to work hard on making that better.
Like YouTube thumbnail generation.
That would be very helpful.
We need that.
That would be AGI.
As far as content creators go.
I guess I'm not a YouTube creator, so I don't care that much about that problem, but I guess many people do.
Yeah, it doesn't matter.
People do judge books by their covers as it turns out.
Just to draw a bit on the iMogul, I'm still not over the fact that a year ago we had alpha proof and alpha geometry and all those things.
And then this year we were like, screw that, we'll just chuck it into Gemini.
What's your reflection?
Question about the merger of symbolic systems and LLMs was a very much core belief.
And then somewhere along the line, people just said, nope, we'll just all do it in the LLM.
Yeah, I mean, I think it makes a lot of sense to me because you know, humans manipulate symbols, but we probably don't have like a symbolic representation in our heads, right?
We have some distributed representation, that is, neural net like in some way, of lots of different neurons and activation patterns firing when we see certain things.
And that enables us to reason and plan.
And, you know, do chains of thought and you know, roll them back.
Now that approach for solving the problem doesn't seem like it's going to work.
I'm going to try this one.
And you know, in a lot of ways we're emulating what we intuitively think is happening inside real brains in neural net-based models.
So it never made sense to me to have completely separate, discrete symbolic things and then a completely different way of thinking about those things.
Interesting.
Yeah.
I mean, it's maybe seems obvious to you, but it wasn't obvious to me a year ago.
Yeah.
I mean, I do think like that IMO with you know, translating to lean and using lean, and then the next year, and also a specialized geometry model.
And then this year switching to a single unified model that is roughly the production model, with a little bit more inference budget is actually quite good, because it shows you that the capabilities of that general model have improved dramatically and now you don't need these specialized models.
This is actually sort of very similar to the 2013 to 16 era of machine learning, right?
Like it used to be, people would train separate models for lots of different.
Each different problem, right.
I have, I want to recognize street signs and something.
So I train a street sign recognition model, or I want to decode speech recognition.
I have a speech model.
I think now the era of unified models that do everything is really upon us.
And the question is how well do those models generalize to new things they've never been asked to do?
And they're getting better and better.
And you don't need domain experts.
So I interviewed Itay, who was on that team.
And he was like, yeah, I don't know how they work.
I don't know where the IMO competition was held.
I don't know the rules of it.
I just train the models.
I do the training models.
And it's kind of interesting that people with this universal skill set of just machine learning, you just give them data and give them enough compute and they can kind of tackle any task, which is the bitter lesson, I guess.
I don't know.
Yeah.
I mean, I think general models will win out over specialized ones in most cases.
So I want to push there a bit.
I think there's one hole here, which is like there's this concept of like maybe capacity of a model.
Like abstractly, a model can only contain the number of bits that it has.
And so, you know, God knows like Gemini Pro is like one to 10 trillion parameters.
We don't know.
But the Gemma models, for example, right?
Like a lot of people want the open source local models that are, and they have some knowledge which is not necessary, right?
Like they can't know everything.
Like you have the luxury of, you have the big model, and big model should be able to capable of everything.
But like when, when you're distilling and you're going down to the small models, you know you're actually memorizing things that are not useful.
And so like, how do we, I guess, do we want to extract that?
Can we, can we divorce knowledge from reasoning, you know?
Yeah, I mean, I think you do want the model to be most effective at reasoning if it can retrieve things right.
Because having the model devote precious parameter space to remembering obscure facts that could be looked up is actually not the best use of that parameter space.
You might prefer something that is more generally useful in more settings than this obscure fact that it has.
So I think that's always a tension.
At the same time, you also don't want your model to be completely detached from knowing stuff about the world.
It's probably useful to know how long the Golden Gate Bridge is, just as a general sense of like how long are bridges right?
And it should have that kind of knowledge.
It maybe doesn't need to know how long some teeny little bridge in some other more obscure part of the world is, but it does help it to have fair bit of world knowledge, and the bigger your model is, the more you can have.
But I do think combining retrieval with sort of reasoning and making the model really good at doing multiple stages of retrieval and reasoning through the intermediate retrieval results is going to be a pretty effective way of making the model seem much more capable.
Because if you think about say, a personal Gemini Like we're not going to train Gemini on my email probably.
We'd rather have a single model that we can then use and use being able to retrieve from my email as a tool and have the model reason about it and retrieve from my photos or whatever, and then make use of that and have multiple stages of interactions.
That makes sense.
Do you think the vertical models are like an interesting pursuit, like when people are like oh, we're building the best healthcare LLM, we're building the best law LLM are those kind of like short term stopgaps or No.
I mean, I think vertical models are interesting.
You want them to start from a pretty good base model, but then you can sort of view them as enriching the data distribution for that particular vertical domain.
For health care say, we're probably not going to train.
Or for say robotics, we're probably not going to train gemini on all possible robotics data we you could train it on because we wanted to have a balanced set of capabilities.
So we'll expose it to some robotics data.
But if you're trying to build a really, really good robotics model, you're going to want to start with that and then train it on more robotics data.
And then maybe that would hurt its multilingual translation capability but improve its robotics capabilities.
And we're always making these kind of trade-offs in the data mix that we train the base Gemini models on.
We'd love to include data from 200 more languages and as much data as we have for those languages, but that's going to displace some other capabilities of the model.
It won't be as good at um.
You know pearl programming.
You know it'll still be good at python programming because we'll include enough of that.
But there's other long tail computer languages or coding capabilities that it may suffer on.
Or multi multimodal reasoning capabilities may suffer because we didn't get to expose it to as much data there.
But it's really good at multilingual thing.
So I think some combination of specialized models, maybe more modular models.
So it'd be nice to have the capability to have those 200 languages, plus this awesome robotics model, plus this awesome healthcare module, that all can be knitted together to work in concert and called upon in different circumstances, right.
Like, if I have a health related thing, then it should enable, using this health module in conjunction with the main base model, to be even better at those kinds of things.
Yeah, installable knowledge.
Just download as a package.
And some of that installable stuff can come from retrieval, but some of it probably should come from training on 100 billion tokens or a trillion tokens of health data.
Yeah, and for listeners, I think I will highlight the Gemma 3 end paper, where there is a little bit of that, I think.
Yeah, I guess the question is like how many billions of tokens do you need to outpace the frontier model improvements?
It's like if I have to make this model better at healthcare And the main Gemini model is still improving.
Do I need 50 billion tokens?
Can I do it with 100?
If I need a trillion healthcare tokens, they're probably not out there that you don't have.
I think that's really like the...
Well, I think health care is a particularly challenging domain.
So there's a lot of health care data that we don't have access to appropriately.
But there's a lot of health care organizations that want to train models on their own data.
That is not public health care data.
Not public health, but public healthcare data.
So I think there are opportunities there to say, partner with a large healthcare organization and train models for their use that are going to be more bespoke but probably might be better than a general model trained on say, public data.
Yeah.
I believe, by the way, this is somewhat related to the language conversation.
I think one of your favorite examples was you can put a low resource language in the context and it just learns in context.
Oh, yeah.
I think the example we used was Kalamong, which is truly low resource because it's only spoken by, I think, 120 people in the world and there's no written text.
So yeah.
So you can just do it that way, just put it in the context.
Put your whole data set in the context.
If you take a language like Somali or something, there is a fair bit of Somali text in the world that, or Ethiopian, Amharic or something.
We probably are not putting all the data from those languages into the Gemini-based training.
We put some of it, but if you put more of it you'll improve the capabilities of those models or of those languages.
Yeah, cool.
I have a side interest in linguistics.
I did a few classes back in college and part of me.
If I was a linguist and I could have access to all these models, I would just be asking really fundamental questions about language itself.
There's one very obvious one, which is Sapir-Whorf, like how much does the language that you speak affect your thinking?
But then also there's some languages where there's just concepts that are not represented in other languages, but many others that are just duplicates, right.
Where there's also another paper that people love called the Platonic Representation, where You know like an image of a cup is.
If you learn a model on that and you have a lot of text with the word cup, it eventually maps to like roughly the same place in latent space.
And so like that should apply to languages except where it doesn't.
And that's actually like very interesting differences in what humanity has discovered as concepts that maybe English doesn't have.
I don't know.
It's just like my rant on languages.
Yeah, I did some work on an early model that fused together a language-based model where you have nice word-based representations, and then an image model where you have trained it on ImageNet-like things.
And then you fuse together the top layers of it.
No, this is devise.
You do a little bit more training to fuse together those representations.
And what you found was that if you give a novel image that is not in any of the categories in the image model it was trained on, the model can often assign kind of the right label to that image.
So, for example, I think Telescope and binoculars were both in the training categories for the image model, but microscope was not.
And so if you're given an image of a microscope, it actually can come up with something that's got the word microscope as the label that it assigns, even though it's never actually seen an image labeled that.
Oh, that's nice generalization.
That's kind of cool.
Yeah.
So, yeah.
Useful.
Cool.
I think there's more general, like, broad questions.
But, like, I guess what do you wish you were asked more in general?
Like, you know, you have such broad scope.
We've covered the hardware.
We've covered the models research.
Yeah, I mean, I think...
One thing that's kind of interesting is I did a undergrad thesis on neural network training parallel neural network training back in 1990 when I got exposed to neural nets.
And I always felt kind of they were the right abstraction, but we just needed way more compute than we had then.
So, like the 32 processors in the department, parallel computer, you know, could get you a little bit more interesting model, but not enough to solve real problems.
And so, starting in 2008 or 9, you know the world started to have enough computing power through Moore's Law and you know larger interesting data sets to train on, to actually start training neural nets that could tackle real problems that people cared about speech recognition, vision and eventually, language.
And so...
When I started working on neural nets at Google in late 2011, I really just felt like we should scale up the size of neural networks we can train using large amounts of parallel computation.
I actually revived some ideas from my undergrad thesis where I'd done both model parallel and data parallel training and I compared them.
I called them something different.
It was like pattern partitioned and, you know, model partitioned or something.
Is it public?
Yeah, it's on the web.
But I think combining a lot of those techniques and really just trying to push on scaling things up over the last 15 years has been really important.
And that means improvements in the hardware.
So pushing on building specialized hardware like TPUs.
It also means pushing on software abstraction layers to let people express ML ideas effectively.
And then also working on things like, say, sparse models.
I've felt for a long time that sort of sparsely activated models are a really important thing because you want the models to have a lot of capacity.
To our earlier discussion about remembering a lot of stuff.
Yeah.
But you also want to be super efficient in how you activate your model.
So you'd like you know trillions of parameters, but activate only you know one, 1 or 5 or 10 of that.
And um that you know we did a early uh paper on this where we really scaled up uh outrageously large neural networks.
That was the title of the paper.
I think that's Noam's wording in the title, which is a good catchy title.
I mean, in 2017, he was out there talking about 1 trillion parameter models.
Yes, yeah.
So i mean that that is really good because that gave you like a 10x improvement in you know time to quality or compute cost to qual a given quality level relative to non-sparse models Transformers.
Similarly gave you a 10x to 100x improvement in compute cost to a given quality level versus say, LSTMs at the time.
And all of those things multiply together.
So I think all those things really are important to work on.
The hardware, the systems infrastructure, the algorithmic aspects of model architecture, improving the data, improving the RL recipes all these things uh, are what are stacking together and multiplying together to give us models of 2026 are much more better than models of 25 and are awesomely better than 24 and 23 and 22 and a huge uh, honestly like organizational challenge like this is like a thousand people or maybe more, I have no idea.
Like I know, when the first Gem Knight paper came out, it was like 1000 co-authors.
Yeah, yeah.
We have 10 pages of co-authors in the tech report.
It was nice.
I mean, people want to be acknowledged on probably a historical paper.
Yeah, I mean, I think it's perfectly good to have actually a lot of co-authors.
And I do think organizing that number of people so that they're effectively pushing in common directions, that all their work actually sort of multiplies together in the ultimate output, which is, you know, the next generation of model work, is actually pretty tricky.
And we have awesome people throughout the Gemini team to help orchestrate this.
So myself, Noam, and Ariel are sort of helping steer this.
And then we have people thinking about What does the pre-training setup look like?
What does the infrastructure look like?
What does the post-training recipe look like?
And what does the data preparation and evals and multimodal capabilities and ITN capabilities?
There's a lot of different kinds of areas, coding capabilities.
All these areas are super important and it's really good to have people paying close attention to those things and then also paying close attention to all the other things.
Yeah, I'm told Sergey is very actively back and very much involved in the coding stuff.
Yeah, we all use the same micro kitchen.
Yeah.
Oh, OK.
There's so many jumping off points.
So, by the way, I found out from the recent I mean you've probably told this story a few times, but apparently Google Brain was also started in a micro kitchen.
It was like, your microkitchens are very important.
I don't know if people understand.
Yeah.
Yeah, I actually bumped into Andrew Ng, who's a Stanford faculty member.
And I knew him from I'd given talks at Stanford a couple of years before.
So I sort of knew him.
And I'm like, oh, what are you doing here?
He's like, oh, I'm not sure yet.
I just started a couple weeks ago.
I'm going to spend one day a week here consulting.
I'm not sure what I'm working on, but my students at Stanford are starting to get good results on using neural nets for speech recognition.
I'm like, oh, neural nets.
I like neural nets.
I remembered back to my 1990 thesis.
I'm like, oh, that sounds interesting.
We should train really, really big neural nets.
So that was the Which you say that, and it's a very interesting first instinct, which is that we should skill this up a lot.
Yeah, well, I mean, I felt like...
Google has lots of computational capability.
And so if they were seeing good results on what were effectively single GPU or models, we actually didn't have GPUs in our data centers then
We didn't have any accelerators.
We had lots of CPUs.
But we could build a software system that would enable you to distribute with both model parallelism and data parallelism across lots of computers.
And we ended up training a pretty big model.
It was 50x bigger than any previous neural net, as far as we could tell.
So it's 2 billion parameters vision model trained on 16,000 CPU cores for like multiple weeks.
And that's what gave us really good.
It gave us a 70 relative error improvement in ImageNet 22K, which is the 22000 category thing.
And that's how we really saw okay, scaling this up actually matters.
We didn't write a sophisticated scaling analysis, but we had a saying bigger model, more data, better results.
And that was our mantra for like six or seven years of scaling.
And every time we did that, we saw better results in speech, in language, in vision analysis.
Speaking of bets, and I'll preface with this might be a little bit more sensitive topic, but you have obviously a lot of opinions about this.
We had a previous guest, David Nguyen, who used to work for you, and he kind of blames almost the brain marketplace as the reason that Google didn't invest enough in language models.
And I wonder if that's something you would agree with at the time, or is there like a different sort of post-mortem?
The brain marketplace for compute quotas.
Compute quotas.
Where basically he was like okay, like David worked at OpenAI as VP Engine, then he worked at Google.
He was like fundamentally, OpenAI was willing to go all in like, bet the farm on one thing, whereas Google was more democratic, like everyone had a quota.
And I was like okay, if you believe in scaling as an important thing, that's an important organizational-wide decision to do.
Yeah.
Yeah, I mean, I think I would somewhat agree with that.
I mean, I think I actually wrote a one page memo saying we were being stupid by fragmenting our resources.
So in particular at the time, we had efforts within Google Research and in the Brain team in particular on large language models.
We also had efforts on multimodal models. in other parts of brain and Google research.
And then Legacy DeepMind had efforts like chinchilla models and flamingo models.
And so really, we were fragmenting not only our compute across those separate efforts, but also our best people and our best ideas.
And so I said, this is just stupid.
Why don't we combine things and have one effort to train- to train an awesome single, unified model that is multimodal from the start?
That's good at everything.
And that was the origin of the Gemini, uh, effort.
And I'm, uh, My one page memo worked, which is good.
Did you have the name?
Because also for those who don't know, you named Gemini.
I did.
There was another name proposed and I said you know, it's sort of like these two organizations really are like twins in some sense coming together.
So I kind of like that.
And then there's also the NASA interpretation of the early Gemini project being an important thing on your way to the Apollo project.
It seemed like a good name.
Twins coming together.
Right.
Yeah.
Nice.
I know...
We're already running out of time, but I'm curious how you use AI today to code.
So, I mean, you're probably one of the most prolific engineers in the history of computer science.
I was reading through the article about you and Sanjay's friendship and how you work together.
And you have one quote about.
You need to find someone that you're going to pair program with who's compatible with your way of thinking, so that the two of you together are a complimentary force.
And I was thinking about how you think about coding agents and this like how do you shape a coding agents to be compatible with your way of thinking?
Like how would you rate the tools today?
Like where should things go?
Yeah, I mean first.
I think the coding tools are getting vastly better compared to where they were a year or two years ago.
So now you can actually rely on them to do more complex things that you, as a software engineer, want to accomplish.
And you can sort of delegate pretty complex things to these tools.
And I think one really nice aspect about the interaction between a human software engineer and a coding model that they're working with is your way of talking to that coding model actually sort of dictates how it interacts with you, right?
Like you could ask it, Please write a bunch of good tests for this.
You could ask it, please help me brainstorm performance ideas.
And your way of doing that is going to shape how the model responds, what kinds of problems it tackles.
How much do you want the model to go off and do things that are larger and more independent, versus interact with it more to make sure that you're shaping the right kinds of things?
And I think it's not the case that any one style is the right thing for everything, right?
Like some kinds of problems you actually want maybe a more frequent interaction style with a model.
And other ones, you're just like, yeah, please just go write this because I know I need this thing.
I can specify it well enough and go off and do it and come back when you're done.
And so I do think there's going to be more of a style of having lots of independent software agents off doing things on your behalf and figuring out the right human-computer interaction model and UI and so on.
For when should it interrupt you and say hey, I need a little more guidance here, or I've done this thing now.
What should I do?
I think we're not at the end-all answer to that question.
And as the models get better, that set of decisions you put into how the interaction should happen may change.
If you have a team of 50 interns, how would you manage that if they were people?
And I think it's not- Do you want 50 interns?
You might if they're really good, right?
It's a lot of management.
But it's a lot of, yeah.
I mean, I think that is probably within the realm of possibilities that lots of people could have 50 interns.
And so how would you actually deal with that, as a person probably want them to form small sub-teams so you don't have to interact with 50 of them.
You can interact with five of those teams and they're off doing things on your behalf.
But I don't know exactly how this is going to unfold.
How do you think about bringing people like the pair programming is always helpful to like, get net new ideas in the distribution, so to speak.
It feels as we have more of these coding agents write the code, it's hard to bring other people into the problem.
So you go to like, you know, you have 50 inches, right?
And then you want to go to Noam Shazier, be like, Hey, no, I want to like pair on this thing.
But now there's, like this huge amount of work that has been done in parallel that you need to catch him up on.
Right.
And I'm curious, like if people are going to be in a way more isolated in their teams, where it's like okay, there's so much context in these 50 interns that it's just hard for me to relay everything back to you.
Maybe.
I mean, on the other hand, like imagine a classical software organization without any AI assisted tools right,
You would have, you know, 50 people doing stuff and their interaction style is going to be naturally very hierarchical because um, you know, these 50 people are going to be working on this part of the system and not interact that much with these other people over here.
But if you have five people each managing 50 virtual agents, they might be able to actually have much higher bandwidth communication among the five people than you would have among five people who are also trying to coordinate a 50-person software team each.
So I'm curious how you change your just working rhythm.
You know, like you spend more time ahead with people going through SPACs and design goals like.
I mean, I do think it's interesting that whenever people were taught how to write software, they were taught that it's really important to write specifications super clearly, but no one really believed that.
It was like, yeah, whatever, I don't need to do that.
Really?
I mean writing.
The English language specification was never kind of an artifact that was really paid a lot of attention to.
I mean it was important, but it wasn't sort of the thing that drove the actual creative process quite as much as if you specify what software you want the agent to write for you.
You'd better be pretty darn careful in how you specify that, because that's gonna dictate the quality of the output, right.
Like if you don't cover that it needs to handle this kind of thing, or that this is a super important corner case, or that you really care about the performance of this part of it, it may not do what you want.
And the better you get at interacting with these models, and I think one of the ways people will get better is they will get really good at crisply specifying things rather than leaving things to ambiguity.
Mm-hmm.
And that is actually probably not a bad thing.
It's not a bad skill to have, regardless of whether you're a software engineer or trying to do some other kind of task.
Being able to crisply specify what it is you want is going to be really important.
My joke is good prompting is indistinguishable from sufficiently advanced executive communication.
It's like writing an internal memo.
Weigh your words very carefully.
And also, I think very important to be multimodal.
I think one thing that anti-gravity from Google also did was just come out the gate to very, very strong multimodal including videos.
And that's the highest bandwidth communication prompt that you can give to a model which is fantastic.
Yeah.
How do you collect things that you often you will have in your mind?
So you have this amazing like performance sense thing that you've heard about how to look for performance improvements, and Is there a lot more value in people writing these generic things down so that they can then put them back as potential retrieval artifacts for the model?
The edge cases is a good example.
If you're building systems, you already have in your mind specific edge cases depending on it, but now you have to every time repeat it.
Like, are you having people spend a lot more time writing out more generic things to bring back or?
I mean, I do think well-written guides of how to do good software engineering are going to be useful because they can be used as input to models or read by other developers so that their prompts are more clear about what the underlying software system should be doing.
I think it may not be that you need to create a custom one for every situation.
If you have general guides and put those into the context of a coding agent, that can be helpful.
You can imagine one for distributed systems.
You could say okay, think about failures of these kinds of things, and these are some techniques you can deal with failures.
You can have Paxos-like replication or you can send the request to two places and tolerate failure because you only need one of them to come back.
You know a little description of 20 techniques like that in building distributed systems probably would go a long way to having a coding agent be able to sort of cobble up more reliable and robust distributed systems.
Yeah.
I wonder when Gemini will be able to build Spanner.
Right.
Probably already has the code inside.
Yeah, I mean, that's a good example, right?
When you have, like you know, the CAP theorem and it's like well, this is like truth and you cannot break that.
And then you build something that broke it.
Like, I'm curious, like models in a way are like, would he say he broke it?
Did you say you broke CAP theorem?
Really?
Yeah.
Okay.
All right.
I mean, under local assumptions yeah under something yeah and they're like you know good clocks yeah it's like sometimes you don't have to like always follow what is known to be true right and i think models in a way like if you tell them something they like really buy into that you know um yeah so yeah just more than any answer on how to fix that.
Yeah.
Just on this big prompting and iteration, I think that, coming back to your latency point, I always try to one A-B test or experiment or benchmark or research.
I would like is what is the performance difference between, let's say, three dumb, fast model calls with human alignment, because the human will correct Human alignment, being the human looks at the first one and produces a new prompt for the second one.
Correct.
As opposed to you spec it out, spend a long time writing a big fat prompt and then you have a very smart model.
Do it.
Right.
Really, are lacks in performance an issue of like, well, you just haven't specified well enough.
There's no universe in which I can produce what you want because you just haven't told me enough.
Right, it's underspecified, so I could produce 10 different things, and only one of them is the thing you wanted.
Yeah, and the multi-turn taking with a flash model is enough.
Yeah.
Yeah, I'm a big believer in pushing on latency, because I think being able to have really low latency interactions with a system you're using is just much more delightful than something that is 10 times as slow or 20 times as slow.
In the future we'll see models and underlying software and hardware systems that are 20x lower latency than what we have today 50x lower latency.
And that's going to be really, really important for systems that need to do a lot of stuff between your interactions.
Yeah yeah, there's two extremes, right.
And then meanwhile, you also have deep think, which is all the way on the other side.
Right, but you would use deep think all the time if it weren't for cost and latency.
Right if, if you could have that capability in a model, because the latency improvement was 20x in the underlying hardware and system and costs, you know there's no reason you wouldn't want that Yeah.
But at the same time, then you'd probably have a model that is even better.
That would take you 20 times longer, even on that new hardware.
Yeah.
Uh, you know, there's, uh, the freedom curve keeps climbing.
Um, yeah.
Onward and outward.
Onward and outward.
Should we ask him for predictions to go?
I don't know if you have any predictions that you like to keep.
One way to do this is you have your tests whenever a new model comes out that you run.
What's something that you're not quite happy with yet that you think will get done soon?
Let me make two predictions that are not quite in that vein.
So I think...
A personalized model that knows you and knows all your state and is able to retrieve over all state you have access to, that you opt into, is gonna be incredibly useful compared to a more generic model that doesn't have access to that.
So like can something attend to everything I've ever seen, every email, every photo, every video I've watched?
That's going to be really useful.
I think more and more specialized hardware is going to enable much lower latency models and much more capable models for affordable prices than say, the current status quo.
That's going to be also quite important.
When you say much lower latency, people usually talk in tokens per second.
Is that a term that is okay?
We're at, let's say, 100 now.
We can go to 1,000.
Is it meaningful to go 10,000?
Yes, really okay, absolutely right.
Yeah, because of chain of thought and chain of thought reasoning.
I mean you could think you know uh, many more tokens, you could do many more parallel rollouts, you could generate way more code uh and check that the code is correct with uh chain of thought reasoning.
So i think you know being able to do that at 10 000 tokens per second would be awesome.
At 10000 tokens per second, you are no longer reading code.
You will just generate it.
I'm not reading it.
Well, remember, it may not end up with 10,000 tokens of code.
It may be 1000 tokens of code with 9000 tokens of reasoning behind it, which would actually be probably much better code to read.
Yeah, yeah.
If I had more time, I would have written a shorter letter.
Yeah, yeah, yeah.
Awesome, Jeff.
This was amazing.
Thanks for taking the time.
Thank you.
It's been fun.
Thanks for having me.