back to indexRajat Monga: TensorFlow | Lex Fridman Podcast #22
Chapters
0:0 Introduction
1:17 Early days of Google Brain
1:47 Early wins
3:36 Scaling
8:24 Google TensorFlow
12:11 Graph
13:19 Early days
14:46 Documentation
18:27 hobbyist perspective
19:30 tensorflow extended
20:38 deep learning
21:32 data sets
24:38 Karis API
26:2 Python and TensorFlow
27:6 Ecosystem
29:2 Enable Machine Learning
33:5 Challenges
35:29 Starting over
37:52 Competition
44:15 How does TensorFlow grow
47:49 Predicting the future
49:47 TensorFlow for beginners
51:50 Team cohesion
54:38 Hiring process
57:22 Culture fit
00:00:00.000 |
The following is a conversation with Rajat Manga. 00:00:11.000 |
in the world in deep learning, both the cutting edge 00:00:17.720 |
But it's quickly becoming much more than a software library. 00:00:20.920 |
It's now an ecosystem of tools for the deployment 00:00:23.760 |
of machine learning in the cloud, on the phone, 00:00:25.720 |
in the browser, on both generic and specialized hardware. 00:00:31.920 |
Plus, there's a big emphasis on growing a passionate community 00:00:40.920 |
to define the future of machine learning with TensorFlow 2.0, 00:00:46.200 |
I think the decision to open source TensorFlow 00:00:51.720 |
It showed that open innovation can be successful 00:00:54.360 |
and inspire many companies to open source their code 00:01:01.200 |
This conversation is part of the Artificial Intelligence 00:01:05.040 |
If you enjoy it, subscribe on YouTube, iTunes, 00:01:07.840 |
or simply connect with me on Twitter at Lex Friedman, 00:01:10.840 |
spelled F-R-I-D. And now, here's my conversation 00:01:24.840 |
It started with Disbelief, the proprietary machine learning 00:01:35.680 |
So what were the early days of Google Brain like? 00:01:55.320 |
The idea of deep learning was interesting and intriguing 00:02:00.400 |
It hadn't yet taken off, but it held some promise. 00:02:04.840 |
It had shown some very promising and early results. 00:02:08.640 |
I think the idea where Andrew and Jeff had started 00:02:11.360 |
was, what if we can take this, what people are doing 00:02:15.400 |
in research, and scale it to what Google has in terms 00:02:19.160 |
of the compute power, and also put that kind of data 00:02:25.280 |
And so far, the results have been, if you scale the compute, 00:02:35.080 |
And with Disbelief, when we started the first year, 00:02:37.480 |
we got some early wins, which is always great. 00:02:44.120 |
there's some promise to this, this is gonna be good? 00:02:46.600 |
- I think there are two early wins where one was speech, 00:03:03.160 |
- And the birth of Google Brain was around neural networks. 00:03:07.040 |
That was, so it was deep learning from the very beginning. 00:03:15.040 |
what was the sort of dream of what this could become? 00:03:23.120 |
TensorFlow community that might be brought in? 00:03:31.160 |
is now gonna be at the core of the entire company? 00:03:48.160 |
In fact, we had some runs even going to 10,000 machines, 00:03:56.800 |
the good thing was Google's been doing machine learning 00:04:00.240 |
Deep learning was new, but as we scaled this up, 00:04:07.840 |
Like, we started seeing real products wanting to use this. 00:04:12.760 |
There were image things that photos came out of, 00:04:25.840 |
there was lots of push on, okay, deep learning's interesting, 00:04:39.480 |
Yes, maybe Google's ahead of where everybody is, 00:04:43.640 |
So a lot of this started to make sense and come together. 00:04:49.560 |
I was just chatting with Chris Glattner about this, 00:04:52.240 |
the decision to go open source with TensorFlow, 00:05:01.720 |
I think that's when a large company like Google 00:05:06.480 |
that many lawyers might argue has a lot of IP, 00:05:12.940 |
and in so doing, lead the entire world in saying, 00:05:15.280 |
you know what, open innovation is a pretty powerful thing, 00:05:20.820 |
That was, I mean, that's an incredible moment in time. 00:05:26.340 |
So do you remember those discussions happening? 00:05:32.720 |
- I would say, I think, so the initial idea came from Jeff, 00:05:42.480 |
One was research-wise, we were a research group. 00:05:51.720 |
and we wanted to push the state of the art forward, 00:05:56.840 |
That's how I think deep learning and machine learning 00:06:10.360 |
Tiano being one, Torch being another, and a few others, 00:06:15.520 |
and so the level was significantly different. 00:06:18.080 |
The other one was, from a software perspective, 00:06:22.040 |
Google had done lots of software that we used internally, 00:06:32.640 |
that somebody else picked up that paper and implemented, 00:06:38.280 |
Back then, it was like, okay, there's Hadoop, 00:06:54.320 |
and we are now not really providing our tech, 00:07:02.040 |
We are going to now provide HBase APIs on top of that, 00:07:04.720 |
which isn't as good, but that's what everybody's used to. 00:07:07.480 |
So there's this, like, can we make something that is better 00:07:26.280 |
so many of the resources that Google provides 00:07:34.920 |
And we want to make sure that continues to be the case. 00:07:41.720 |
there's lots of integrations with everything else, 00:07:51.880 |
of TensorFlow project in terms of major design decisions, 00:07:58.160 |
but really, you know, what to include and not? 00:08:04.960 |
There's all these parts, but what if you just, 00:08:12.960 |
what TensorFlow eventually became through its, 00:08:16.000 |
I don't know if you're allowed to say history when it's, 00:08:19.520 |
but in deep learning, everything moves so fast 00:08:24.880 |
So looking back, we were building TensorFlow, 00:08:29.800 |
I guess we open sourced it in 2015, November 2015. 00:08:44.920 |
okay, there's a high likelihood we'll open source it. 00:08:48.920 |
and making sure we're heading down that path. 00:08:51.520 |
At that point, by that point, we had seen a few, 00:08:57.320 |
you know, lots of different use cases at Google. 00:09:01.000 |
yes, you want to run it at large scale in the data center. 00:09:04.200 |
Yes, we need to support different kind of hardware. 00:09:11.880 |
or was about to come out, you know, roughly around that time. 00:09:30.720 |
so that that sort of became part of that overall design. 00:09:40.880 |
So when you have a model that you deploy on the phone 00:09:46.400 |
there was ideas of running machine learning on the phone. 00:09:53.320 |
And in those cases, we had basically customized 00:09:56.440 |
handcrafted code or some internal libraries that we're using. 00:10:00.200 |
- So I was actually at Google during this time 00:10:08.040 |
- Was there some degree to which you were balancing, 00:10:11.640 |
like trying to see what Caffe was offering people, 00:10:20.000 |
on whatever that is, perhaps the Python part of thing, 00:10:23.760 |
maybe did that influence any design decisions? 00:10:40.520 |
our internal thing because our systems were very different. 00:10:44.120 |
we looked at a number of libraries that were out there. 00:10:54.800 |
I mean, actually, Yang Jing was here as well. 00:11:22.680 |
We had seen limitations in our prior disbelief things. 00:11:30.960 |
research was moving so fast, we wanted the flexibility. 00:11:39.920 |
And yeah, I think the flexibility in terms of 00:11:43.520 |
being able to express all kinds of crazy things 00:11:52.440 |
there's more, by default, there'll be eager execution. 00:12:03.600 |
What was that discussion like in terms of using graphs? 00:12:14.400 |
our disbelief had a graph-like thing as well. 00:12:34.480 |
So graph did come from that when we thought of, 00:12:47.960 |
So that was probably what tilted the balance for us 00:12:52.960 |
- And I guess the question there is, did you, 00:12:59.880 |
but did you even anticipate the other side of it 00:13:15.480 |
in your mind that it would be as popular as it became? 00:13:27.600 |
and like early days of deep learning in some ways. 00:13:30.960 |
41 million, no, I don't think I imagined this number then. 00:13:48.160 |
I probably started seeing somewhat after the open sourcing 00:13:59.280 |
and we are in just the right place to push on that 00:14:02.800 |
and leverage that and deliver on lots of things 00:14:18.240 |
I don't even actually remember during those times. 00:14:22.240 |
I know looking now, there's really good documentation, 00:14:26.640 |
there's a community, there's a YouTube channel now, right? 00:14:46.200 |
- It's interesting, I think we've gone through 00:14:56.120 |
because it was just a huge step up from everything else 00:15:00.480 |
people doing, who don't think about documentation. 00:15:07.000 |
instead of deep learning being a research thing, 00:15:14.680 |
and do some interesting things with it, right? 00:15:16.960 |
Who had no clue what machine learning was before then. 00:15:23.280 |
started to scale up in some ways and pushed on it. 00:15:33.880 |
now we want stability, people want to deploy things, 00:15:39.000 |
And there are certain needs for that perspective, 00:15:44.360 |
designs, more kinds of things to put that together. 00:15:48.200 |
And so that was exciting to get that to a stage 00:15:52.240 |
where more and more enterprises wanted to buy in 00:15:57.760 |
And I think post 1.0 and over the next few releases, 00:16:02.680 |
that enterprise adoption also started to take off. 00:16:05.280 |
I would say between the initial release and 1.0, 00:16:13.760 |
people excited about this who started to get on board, 00:16:15.960 |
and then over the 1.x thing, lots of enterprises. 00:16:25.960 |
enterprise probably wants something that's stable. 00:16:28.880 |
- And do you have a sense now that TensorFlow is stable? 00:16:43.400 |
You have a sense of stability at the helm of it? 00:16:46.760 |
I mean, I know you're in the midst of it, but-- 00:16:51.680 |
it's often easy to forget what an enterprise wants 00:16:55.120 |
and what some of the people on that side want. 00:17:02.680 |
so Inception is still used by tons of people. 00:17:06.040 |
Even ResNet-50 is what, a couple of years old now or more, 00:17:12.240 |
They don't need the last couple of bits of performance 00:17:22.240 |
with that kind of stability and making it really simpler, 00:17:25.240 |
because that allows a lot more people to access it. 00:17:27.840 |
And then there's the research crowd which wants, 00:17:34.320 |
Not just deep learning in the straight-up models 00:17:40.640 |
and even RNNs are maybe old, they are transformers now, 00:17:43.480 |
and now it needs to combine with RL and GANs and so on. 00:17:55.200 |
but I think there's more and more of the past 00:18:07.480 |
- So I imagine, maybe you can correct me if I'm wrong, 00:18:19.600 |
It's basically probably what majority of the world does. 00:18:27.400 |
- So I would say, for the hobbyist perspective, 00:18:32.840 |
In fact, the apps on phones and stuff that you'll see, 00:18:37.720 |
I would say there are a couple of reasons for that. 00:18:48.940 |
What enterprises want is, that is part of it, 00:19:01.880 |
was just regression models, linear regression, 00:19:09.880 |
Some of them still benefit from deep learning, 00:19:11.820 |
but they weren't that, that's the bread and butter, 00:19:19.600 |
- And they just have, I mean, the best of enterprise 00:19:30.280 |
And then the, I think the other pieces that they want, 00:19:33.280 |
again, with 2.0, or the developer summit we put together, 00:19:40.640 |
They care about stability across doing their entire thing. 00:19:43.600 |
They want simplicity across the entire thing. 00:19:47.720 |
I need to do that every day again, over and over again. 00:19:51.320 |
- I wonder to which degree you have a role in, 00:19:54.340 |
I don't know, so I teach a course on deep learning. 00:19:57.080 |
I have people like lawyers come up to me and say, 00:20:00.740 |
you know, say, "When is machine learning gonna enter legal, 00:20:16.360 |
these companies are often a little bit old school 00:20:20.880 |
So the data is just not ready yet, it's not digitized. 00:20:24.040 |
Do you also find yourself being in the role of 00:20:33.120 |
and then you'll get the big benefit of TensorFlow. 00:20:38.040 |
- Yeah, yeah, I get all kinds of questions there from, 00:20:42.340 |
okay, what can I, what do I need to make this work, right? 00:20:52.120 |
I already used this linear model, why would this help? 00:20:55.240 |
I don't have enough data, let's say, you know, 00:21:01.800 |
So it varies, back to all the way to the experts 00:21:04.980 |
who wise for very specific things, so it's interesting. 00:21:09.640 |
It boils down to, oftentimes, digitizing data. 00:21:14.480 |
whatever data you want to make prediction based on, 00:21:17.560 |
you have to make sure that it's in an organized form. 00:21:20.720 |
And you've, like, within the TensorFlow ecosystem, 00:21:24.000 |
there's now, you're providing more and more datasets 00:21:28.960 |
Are you finding yourself also the organizer of datasets? 00:21:34.520 |
that we just released, that's definitely come up 00:21:37.520 |
where people want these datasets, can we organize them 00:21:45.320 |
The other related thing I would say is I often tell people, 00:21:47.680 |
you know what, don't think of the most fanciest thing 00:21:53.320 |
Make something very basic work and then you can improve it. 00:21:56.400 |
There's just lots of things you can do with it. 00:22:08.360 |
the Keras standard, sort of outside of TensorFlow. 00:22:12.400 |
I think it was Keras on top of Theano at first, 00:22:17.760 |
only, and then Keras became on top of TensorFlow. 00:22:22.480 |
Do you know when Keras chose to also add TensorFlow 00:22:33.960 |
Do you know if there was discussions, conversations? 00:22:37.000 |
- Yeah, so Francois started the Keras project 00:22:40.960 |
before he was at Google and the first thing was Theano. 00:22:44.560 |
I don't remember if that was after TensorFlow 00:22:52.080 |
started becoming popular, there were enough similarities 00:22:54.200 |
that he decided to, okay, create this interface 00:23:01.200 |
he joined Google, so we weren't really talking about that. 00:23:06.200 |
He decided on his own and thought that was interesting 00:23:11.320 |
In fact, I didn't find out about him being at Google 00:23:21.880 |
and doing Keras on his nights and weekends project. 00:23:29.760 |
- He joined research and he was doing some amazing research. 00:23:42.480 |
People seem to like the API and he's right here. 00:23:58.600 |
And that quarter's been something like two years now. 00:24:21.720 |
Which makes that initial sort of transfer learning 00:24:37.760 |
- We did spend a lot of time thinking about that one. 00:24:46.040 |
There was a parallel layers API that we were building. 00:24:51.600 |
so there were like, okay, two things that we are looking at. 00:25:11.480 |
from the community, okay, which one do we use? 00:25:15.600 |
and here's a model in this one, which should I pick? 00:25:35.680 |
And Keras was clearly one that lots of people loved. 00:25:43.920 |
- Organically, that's kind of the best way to do it. 00:25:58.040 |
And in a sense, it became an empowering element 00:26:03.280 |
Yeah, it's interesting how you can put two things together 00:26:08.280 |
And in this case, I think Francois, the team, 00:26:14.240 |
and I think we all want to see the same kind of things. 00:26:36.520 |
like TensorFlow need one person who makes a final decision? 00:26:40.680 |
So you've did a pretty successful TensorFlow Dev Summit 00:26:47.520 |
There's clearly a lot of different new features 00:26:51.080 |
being incorporated in an amazing ecosystem and so on. 00:27:05.880 |
- I think it's somewhat different, I would say. 00:27:08.800 |
I've always been involved in the key design directions, 00:27:14.960 |
but there are lots of things that are distributed 00:27:23.320 |
a lot of our open source stuff, a lot of the APIs, 00:27:37.920 |
Over the last year, we've really spent a lot of time 00:27:40.160 |
opening up to the community and adding transparency. 00:27:52.160 |
I think the kind of scale that ecosystem is in, 00:28:08.080 |
First of all, it started with Andrej Karpathy 00:28:13.160 |
The fact that you can train in your own network 00:28:18.520 |
So now TensorFlow.js is really making that a serious, 00:28:27.560 |
whether it's in the back end or the front end. 00:28:37.480 |
it's really converging towards being able to save models 00:28:43.480 |
You can move around, you can train on the desktop, 00:28:56.120 |
a bigger overview of the mission of the ecosystem 00:28:58.840 |
that's trying to be built and where is it moving forward? 00:29:02.920 |
So in short, the way I like to think of this is 00:29:11.680 |
One is we have lots of exciting things going on in ML today. 00:29:17.520 |
but we now support a bunch of other algorithms too. 00:29:31.760 |
It's great that people are able to do new kinds of research. 00:29:42.480 |
all the people outside who want to take that research 00:29:59.640 |
there are a crazy number of compute devices across the world. 00:30:04.240 |
And we often used to think of ML and training 00:30:17.680 |
I mean, we had some demos of the developer summit. 00:30:20.760 |
And so the way I think about this ecosystem is, 00:30:25.760 |
how do we help get machine learning on every device 00:30:33.800 |
And so in some ways, this ecosystem has looked at 00:30:50.040 |
I mean, the first tool we started was TensorBoard. 00:31:11.840 |
We're at a place where there are lots of libraries 00:31:20.080 |
or TensorFlow Probability that started as research things 00:31:41.840 |
that different parts of the community care about. 00:31:49.640 |
We cannot and won't build every single thing. 00:31:58.360 |
and there's a broader community that cares about that, 00:32:05.320 |
That really helps the entire ecosystem, not just those. 00:32:08.640 |
One of the big things about 2.0 that we're pushing on is, 00:32:11.880 |
okay, we have these so many different pieces, right? 00:32:14.680 |
How do we help make all of them work well together? 00:32:18.360 |
So there are a few key pieces there that we're pushing on, 00:32:26.640 |
through SaveModel and TensorFlow Hub and so on. 00:32:29.600 |
And a few of the pieces that we really put this together. 00:32:41.680 |
- It seems like technically a very difficult project. 00:32:47.040 |
but as a thing that integrates into the ecosystem, 00:32:57.240 |
how many challenges have to be overcome here? 00:33:06.240 |
I mean, we've iterated over the last few years, 00:33:10.760 |
I, yeah, often when things come together well, 00:33:14.280 |
things look easy, and that's exactly the point. 00:33:18.400 |
but there are lots of things that go behind that. 00:33:26.760 |
you know, we have a lot more devices coming on board, 00:33:35.360 |
How do we make it really easy for these vendors 00:33:37.680 |
to integrate with something like TensorFlow, right? 00:33:45.360 |
There are things we can do in terms of our APIs 00:33:59.440 |
but the core is still pretty large and monolithic. 00:34:02.960 |
One of the key challenges for us to scale that out 00:34:05.760 |
is how do we break that apart with clearer interfaces? 00:34:10.400 |
It's, you know, in some ways it's software engineering 101, 00:34:14.560 |
but for a system that's now four years old, I guess, or more, 00:34:29.960 |
it's like changing the engine with a car running 00:34:32.640 |
or fix that, that's exactly what we're trying to do. 00:34:43.880 |
and coming to rely on it in many of their applications 00:34:59.960 |
I mean, it's probably easier to just start from scratch 00:35:15.400 |
It seems like the conversion is pretty straightforward. 00:35:22.920 |
Can you just, the things that you've learned, 00:35:26.400 |
can you just start over or is there pressure to not? 00:35:31.600 |
So if it was just a researcher writing a paper 00:35:36.360 |
who a year later will not look at that code again, 00:35:52.440 |
So it is important to keep that compatibility and so on. 00:35:59.760 |
There's, we have to think about a lot of things 00:36:09.160 |
You can, you might slow certain kinds of things down, 00:36:13.040 |
but the overall value you're bringing because of that 00:36:23.720 |
that you know what, this is how we do things. 00:36:26.360 |
We're not going to break you when you come on board 00:36:31.680 |
You know, one way I like to think about this, 00:36:34.720 |
and I always push the team to think about as well, 00:36:48.680 |
And yes, we do make compromises occasionally, 00:36:59.240 |
So even if you are responsible in the idea stage, 00:37:09.600 |
So I have to ask this because a lot of students, 00:37:20.920 |
I wish everybody would just use the same thing, 00:37:23.280 |
and TensorFlow is as close to that, I believe, as we have. 00:37:41.200 |
But a lot of researchers are now also using PyTorch. 00:37:52.320 |
- So just like research or anything people are doing, 00:38:25.200 |
I don't care if it's not as fast as it can be, 00:38:30.520 |
And there are things you can learn from that, right? 00:38:32.600 |
They again had the benefit of seeing what had come before, 00:38:36.800 |
but also exploring certain different kinds of spaces. 00:38:43.600 |
building on say things like JNUR and so on before that. 00:38:49.360 |
It made us, this is an area that we had thought about, 00:38:53.760 |
Over time we had revisited this a couple of times, 00:39:04.320 |
And that's how we started pushing on eager execution. 00:39:09.920 |
Which has finally come very well together in 2.0, 00:39:13.160 |
but it took us a while to get all the things together 00:39:19.360 |
I think eager execution is a really powerful thing 00:39:28.440 |
Do you think it wouldn't have been added as quickly 00:39:35.800 |
Yeah, it was, I mean, we had tried some variants 00:39:38.240 |
of that before, so I'm sure it would have happened, 00:39:45.080 |
It's doing some incredible work last couple of years. 00:39:54.040 |
So we talked about some of the ecosystem stuff, 00:40:02.840 |
- Yeah, so I would say one is just where 2.0 is, 00:40:07.520 |
and you know, with all the things that we've talked about. 00:40:13.760 |
there are lots of other things that it enables us to do 00:40:22.520 |
We've cleaned up the surface for what the users want. 00:40:25.640 |
What it also allows us to do a whole bunch of stuff 00:40:28.320 |
behind the scenes once we are ready with 2.0. 00:40:37.720 |
you could always get a lot of good performance 00:40:43.280 |
And we've clearly shown that, lots of people do that. 00:40:52.040 |
where we are, we can give you a lot of performance 00:41:01.400 |
we know most people are gonna do things this way. 00:41:05.520 |
and get a lot of those things out of the box. 00:41:09.040 |
And it really allows us, both for single machine 00:41:13.880 |
to really explore other spaces behind the scenes 00:41:19.720 |
So right now the team's really excited about that. 00:41:27.760 |
in terms of just restructuring the monolithic thing 00:41:36.800 |
for a lot of the other people in the ecosystem 00:41:41.800 |
or the organizations and so on that wanted to build things. 00:41:44.840 |
- Can you elaborate a little bit what you mean 00:41:50.720 |
- So the way it's organized today is there's one, 00:42:21.640 |
In a perfect world, you would have clean interfaces 00:42:23.960 |
where, okay, I wanna run it on my fancy cluster 00:42:34.640 |
I think as we are starting to see more interesting things 00:42:39.480 |
having that clean separation will really start to help. 00:42:43.360 |
And again, going to the large size of the ecosystem 00:42:56.080 |
- And by people, you mean individual developers and-- 00:43:06.920 |
like major corporations go to TensorFlow to this kind of-- 00:43:11.080 |
- Yeah, if you look at enterprise like Pepsi or these, 00:43:13.680 |
I mean, a lot of them are already using TensorFlow. 00:43:15.840 |
They are not the ones that do the development 00:43:25.680 |
some of them being, let's say, hardware vendors 00:43:30.880 |
Or some of them being bigger companies, say IBM. 00:43:38.160 |
and they see a lot of users who want certain things 00:43:50.040 |
TensorFlow has been downloaded 41 million times, 00:44:02.160 |
but what does it take to build a community like that? 00:44:14.640 |
- Yeah, yeah, that's an interesting question. 00:44:41.640 |
TensorFlow is not just grown because it was a good tool, 00:44:43.680 |
it's also grown with the growth of deep learning itself. 00:44:50.360 |
I think just hearing, listening to the community, 00:45:06.880 |
we can help the contributors in adding those, 00:45:19.080 |
that that's important for an open source project. 00:45:26.240 |
where you can do that, here are our seas and so on. 00:45:29.400 |
So thinking through, there are lots of community aspects 00:45:38.760 |
because there's like two developers and you can do those. 00:45:42.200 |
As you grow, putting more of these processes in place, 00:45:49.160 |
thinking about what do developers care about, 00:46:19.600 |
that there may be a little bit of a partitioning 00:46:31.120 |
Or are you pretty confident that this kind of conversion 00:46:50.920 |
significant version changes, that's always a risk. 00:46:59.200 |
I think, so at some level, people want to move 00:47:05.600 |
They don't want to move just because it's a new thing. 00:47:21.640 |
As you said earlier, this field is also moving rapidly. 00:47:24.680 |
So that'll help because we can do more things. 00:47:29.520 |
So people will have lots of good reasons to move. 00:47:32.280 |
- So what do you think TensorFlow 3.0 looks like? 00:47:36.160 |
Is that, is there, are things happening so crazy 00:47:44.320 |
Or is it possible to plan for the next five years? 00:47:54.560 |
in terms of, okay, change, yes, change is going to happen. 00:48:12.760 |
they'll probably be around in some form still in five years. 00:48:24.720 |
And some, directionally, some things that we can see is, 00:48:29.720 |
you know, and things that we're starting to do, right, 00:48:35.480 |
is just 2.0 combining eager execution and graphs 00:48:54.120 |
In five years, we expect to see more in that area. 00:49:03.240 |
Will we be able to train with four bits instead of 32 bits? 00:49:08.240 |
- And I think the TPU side of things is exploring that. 00:49:14.000 |
It seems that the evolution of TPU and TensorFlow 00:49:22.160 |
In terms of both are learning from each other 00:49:24.760 |
and from the community and from the applications 00:49:47.400 |
- Yeah, for some of them, like you said, right, 00:49:50.920 |
beginners want to just be able to take some image model, 00:50:04.440 |
So in some ways, if you do that by providing them 00:50:11.400 |
they don't care about what's inside that box, 00:50:15.160 |
So we're pushing on, I think, different levels. 00:50:30.240 |
then they are probably writing custom layers themselves 00:50:38.640 |
seems to really decrease the time from you trying to start. 00:50:51.240 |
because I think what TensorFlow delivered on recently 00:50:56.920 |
So I was just wondering if there was other pain points 00:51:00.720 |
you're trying to ease, but I'm not sure there would be. 00:51:04.200 |
I mean, I see high schoolers doing a whole bunch of things 00:51:15.840 |
some incredible ideas will be coming from them. 00:51:19.240 |
So there's certainly a technical aspect to your work, 00:51:21.840 |
but you also have a management aspect to your role 00:51:35.960 |
You know, Google has been at the forefront of exploring 00:51:40.440 |
And TensorFlow is one of the most cutting edge technologies 00:51:46.360 |
So in this context, what do you think makes for a good team? 00:51:49.360 |
- It's definitely something I think a fair bit about. 00:51:53.160 |
I think in terms of the team being able to deliver 00:51:58.160 |
something well, one of the things that's important 00:52:05.800 |
So being able to execute together in doing things. 00:52:15.440 |
There's a lot more that they can do together, 00:52:18.240 |
even though we have some amazing superstars across Google 00:52:27.360 |
of what the team generates is way larger than the whole, 00:52:34.440 |
And so how do we have all of them work together, 00:52:43.080 |
but part of that is it's not just that, okay, 00:52:45.680 |
we hire a bunch of smart people and throw them together 00:52:49.760 |
It's also people have to care about what they're building. 00:52:52.960 |
People have to be motivated for the right kind of things. 00:52:59.840 |
And, you know, finally, how do you put that together 00:53:04.640 |
with a somewhat unified vision of where we want to go? 00:53:16.120 |
Google's a very bottom-up organization in some sense, 00:53:20.560 |
also research even more so, and that's how we started. 00:53:26.400 |
But as we've become this larger product and ecosystem, 00:53:30.920 |
I think it's also important to combine that well 00:53:33.200 |
with a mix of, okay, here's the direction we want to go in. 00:53:44.480 |
- And is there a way you monitor the health of the team? 00:53:46.880 |
Sort of like, is there a way you know you did a good job? 00:53:53.080 |
Like, I mean, you're sort of, you're saying nice things, 00:53:56.240 |
but it's sometimes difficult to determine how aligned. 00:54:02.160 |
It's not like, there's tensions and complexities and so on. 00:54:06.760 |
And the other element of this is the mission of superstars. 00:54:19.960 |
can be against the dynamic of a team and those tensions. 00:54:26.600 |
a little bit easier because the mission of the project 00:54:31.760 |
You're at the cutting edge, so it's exciting. 00:54:46.880 |
and are, you know, have the same kind of culture, 00:54:50.440 |
and that's Google in general to a large extent. 00:54:53.480 |
But also, like you said, given that the project 00:55:02.440 |
which does make the problem a bit easier, I guess. 00:55:06.480 |
And it allows people, depending on what they're doing, 00:55:09.920 |
if there's room around them, then that's fine. 00:55:12.320 |
But yes, we do care about whether a superstar or not 00:55:18.160 |
that they need to work well with the team across Google. 00:55:23.680 |
So it's like superstar or not, the productivity broadly 00:55:33.000 |
but if they're hurting the team, then that's a problem. 00:55:35.760 |
- So in hiring engineers, it's so interesting, right? 00:55:55.400 |
that we've refined over the last 20 years, I guess, 00:55:58.840 |
and that you've probably heard and seen a lot about. 00:56:14.240 |
what does matter is their motivation in what they want to do 00:56:19.240 |
because if that doesn't align well with where we want to go, 00:56:23.000 |
that's not going to lead to long-term success 00:56:40.360 |
- Does the Google hiring process touch on that passion? 00:56:49.600 |
that the Google hiring process sort of helps, 00:56:53.360 |
in the initial, like determines the skill set there, 00:57:02.540 |
but it seems that the determining whether the person 00:57:09.880 |
it's just some cool stuff, I'm going to do it. 00:57:22.640 |
- So one of the things we do have as part of the process 00:57:31.040 |
and each engineer or whoever the interviewer is, 00:57:34.280 |
is supposed to rate the person on the culture 00:57:48.820 |
in the kind of culture you want there and so on, 00:57:54.000 |
TensorFlow's always been a fast-moving project, 00:57:56.960 |
and we want people who are comfortable with that. 00:58:02.680 |
we are at a place where we are also a very full-fledged 00:58:04.820 |
product and we want to make sure things that work 00:58:14.320 |
who are the right fit for those is important. 00:58:17.600 |
And I think those kind of things do vary a bit 00:58:19.720 |
across projects and teams and product areas across Google, 00:58:29.400 |
it comes along with just engineering excellence and so on. 00:58:49.200 |
- So let me clarify that difficult things are fun 00:58:57.520 |
- I think the key to a successful thing across the board, 00:59:02.520 |
and in this case, it's a large ecosystem now, 00:59:05.360 |
but even a small product, is striking that fine balance 00:59:12.040 |
Sometimes it's how fast you go versus how perfect it is. 00:59:17.040 |
Sometimes it's how do you involve this huge community? 00:59:22.440 |
Or do you decide, okay, now is not a good time 00:59:24.820 |
to involve them because it's not the right fit? 00:59:28.640 |
And sometimes it's saying no to certain kinds of things. 00:59:41.040 |
Some of them you get time to think about them, 00:59:54.840 |
by deadlines to a degree that a product might? 01:00:04.920 |
You had the Dev Summit, they came together incredibly. 01:00:08.920 |
Looked like there's a lot of moving pieces and so on. 01:00:11.480 |
So did that deadline make people rise to the occasion, 01:00:38.320 |
You need something that's good and works well. 01:00:44.120 |
So I was very amazed and excited by everything, 01:01:07.960 |
So you can pick and look at where things are. 01:01:13.240 |
So fine, if something doesn't necessarily end up 01:01:16.080 |
at this month, it'll end up in the next release 01:01:22.200 |
like keep moving as fast as we can in these different areas. 01:01:25.200 |
Because we can iterate and improve on things. 01:01:39.440 |
I think that quick cycle and quick iteration is important. 01:01:46.160 |
rather than here's a deadline where you get everything else. 01:01:49.240 |
- Is 2.0, is there pressure to make that stable? 01:01:52.880 |
Or like, for example, WordPress 5.0 just came out 01:02:09.720 |
Do you see TensorFlow 2.0 in that same kind of way? 01:02:12.280 |
Or is there this pressure to once it hits 2.0, 01:02:22.520 |
- So it's going to be stable in just like when NodeX was, 01:02:26.960 |
where every API that's there is going to remain and work. 01:02:31.140 |
It doesn't mean we can't change things under the covers. 01:02:39.240 |
and we're going to need to have more releases. 01:02:42.680 |
I don't think we'd be done in like two months 01:02:49.920 |
there's not external deadlines for TensorFlow 2.0, 01:03:03.120 |
- So we want it to be a great product, right? 01:03:11.200 |
We have, you know, 41 million downloads for 1.x. 01:03:20.200 |
really polishing and putting them together are there. 01:03:27.040 |
we want to get it right and really focus on that. 01:03:29.940 |
That said, we have said that we are looking to get this out 01:03:47.720 |
So, you know, something I'm really interested in, 01:03:53.000 |
before TensorFlow, you led a team at Google on search ads. 01:04:06.120 |
ads connect people to the things they want and need. 01:04:10.120 |
- And at their worst, they're just these things 01:04:14.960 |
to the point of ruining the entire user experience 01:04:26.240 |
so that this connecting users to the thing they need and want 01:04:29.680 |
is a beautiful opportunity for machine learning to shine. 01:04:34.080 |
Like huge amounts of data that's personalized, 01:04:43.240 |
Google that's leading the world in this aspect? 01:05:05.280 |
it's an extension of what search is trying to do. 01:05:20.800 |
And so it's really important for them to align 01:05:32.320 |
If you don't have an ad that hits that quality, 01:05:36.000 |
and okay, maybe we lose some money there, that's fine. 01:05:48.200 |
I mean, as a model, it's been around for ages, right? 01:05:57.480 |
and many other search engines across the world. 01:06:08.000 |
and if it just keeps popping an ad in my face, 01:06:11.120 |
not to let me read, that's gonna be annoying clearly. 01:06:25.120 |
and provides the monetization to the service. 01:06:42.480 |
between showing just some random stuff that's distracting 01:06:47.480 |
versus showing something that's actually valuable. 01:07:05.200 |
'Cause that's one of the most exciting things, 01:07:12.240 |
And advertisements, again, coupled at their best, 01:07:17.600 |
Do you see that continuing and growing and improving 01:07:32.280 |
for everything to be paid on the internet, if at all. 01:07:36.200 |
I mean, I think there's always gonna be things 01:07:37.840 |
that are sort of monetized with things like ads. 01:08:07.240 |
That wasn't the case even a few years ago, I would say. 01:08:20.840 |
to try something out for free, maybe with ads, 01:08:42.000 |
I guess the question is, what's the future of TensorFlow 01:08:47.000 |
in terms of empowering, say, a class of 300 students 01:08:55.400 |
what is going to be the future of them being able 01:09:00.040 |
Like, where are they going to train these networks, right? 01:09:10.280 |
I mean, TensorFlow, open source, you can run it wherever. 01:09:15.040 |
and your desktops always keep getting more powerful, 01:09:19.560 |
My phone is, like, I don't know how many times 01:09:23.680 |
- You'll probably train it on your phone, though. 01:09:27.720 |
the power you have in your hands is a lot more. 01:09:30.640 |
Clouds are actually very interesting from, say, 01:09:36.960 |
because they make it very easy to get started. 01:09:57.960 |
It's great to get started, to play with things, 01:10:02.200 |
That said, with free you can only get so much. 01:10:12.240 |
there are services you can pay for and get a lot more. 01:10:17.720 |
interested in machine learning and TensorFlow, 01:10:24.400 |
- So just go to TensorFlow.org and start clicking on things? 01:10:31.360 |
No installation needed, you can get started right there. 01:10:34.080 |
- Okay, awesome, Rajat, thank you so much for talking today.