← Lex Fridman

Rajat Monga: TensorFlow

第2019-06-03期2019-06-03English

嘉宾:Rajat Monga

收听本集00:00 / 1:11:07
阅读设置
按你的习惯阅读
正文字号
下载播客精读
把这一篇,带走慢慢读

精读待补充

下载功能还未开放

§01Transcript · 00:00–08:59

00:00The following is a conversation with Rajat Manga.

00:03He's an engineering director at Google,

00:04leading the TensorFlow team.

00:06TensorFlow is an open source library

00:09at the center of much of the work going on

00:11in the world in deep learning, both the cutting edge

00:13research and the large scale application

00:15of learning based approaches.

00:17But it's quickly becoming much more than a software library.

00:20It's now an ecosystem of tools for the deployment

00:23of machine learning in the cloud, on the phone,

00:25in the browser, on both generic and specialized hardware.

00:29TPU, GPU, and so on.

00:31Plus, there's a big emphasis on growing a passionate community

00:35of developers.

00:36Rajat, Jeff Dean, and a large team

00:38of engineers at Google Brain are working

00:40to define the future of machine learning with TensorFlow 2.0,

00:44which is now in alpha.

00:46I think the decision to open source TensorFlow

00:49is a definitive moment in the tech industry.

00:51It showed that open innovation can be successful

00:54and inspire many companies to open source their code

00:56to publish and, in general, engage

00:58in the open exchange of ideas.

01:01This conversation is part of the Artificial Intelligence

01:03podcast.

01:05If you enjoy it, subscribe on YouTube, iTunes,

01:07or simply connect with me on Twitter at Lex Friedman,

01:10spelled F-R-I-D. And now, here's my conversation

01:14with Rajat Manga.

01:17You were involved with Google Brain

01:19since its start in 2011 with Jeff Dean.

01:24It started with Disbelief, the proprietary machine learning

01:29library, and turned to TensorFlow in 2014,

01:32the open source library.

01:35So what were the early days of Google Brain like?

01:39What were the goals, the missions?

01:41How do you even proceed forward when

01:44there's so much possibilities before you?

01:47It was interesting back then when I started,

01:50or when we were even just talking about it.

01:55The idea of deep learning was interesting and intriguing

01:59in some ways.

02:00It hadn't yet taken off, but it held some promise.

02:04It had shown some very promising and early results.

02:08I think the idea where Andrew and Jeff had started

02:11was, what if we can take this, what people are doing

02:15in research, and scale it to what Google has in terms

02:19of the compute power, and also put that kind of data

02:23together, what does it mean?

02:25And so far, the results have been, if you scale the compute,

02:28scale the data, it does better.

02:30And would that work?

02:31And so that was the first year or two,

02:33can we prove that out, right?

02:35And with Disbelief, when we started the first year,

02:37we got some early wins, which is always great.

02:40- What were the wins like?

02:41What was the wins where you were,

02:44there's some promise to this, this is gonna be good?

02:46- I think there are two early wins where one was speech,

02:49that we collaborated very closely

02:51with the speech research team,

02:52who was also getting interested in this.

02:54And the other one was on images where we,

02:57the cat paper, as we call it,

02:59that was covered by a lot of folks.

03:03- And the birth of Google Brain was around neural networks.

03:07That was, so it was deep learning from the very beginning.

03:09That was the whole mission.

03:10So what would, in terms of scale,

03:15what was the sort of dream of what this could become?

03:20Like, were there echoes of this open source

03:23TensorFlow community that might be brought in?

03:26Was there a sense of TPUs?

03:28Was there a sense of like, machine learning

03:31is now gonna be at the core of the entire company?

03:33Is it going to grow into that direction?

03:36- Yeah, I think, so that was interesting.

03:38And like, if I think back to 2012 or 2011,

03:41and first was, can we scale it in the year

03:44or so we had started scaling it

03:46to hundreds and thousands of machines.

03:48In fact, we had some runs even going to 10,000 machines,

03:51and all of those shows great promise.

03:52In terms of machine learning at Google,

03:56the good thing was Google's been doing machine learning

03:58for a long time.

04:00Deep learning was new, but as we scaled this up,

04:03we showed that, yes, that was possible,

04:05and it was gonna impact lots of things.

04:07Like, we started seeing real products wanting to use this.

04:11Again, speech was the first.

04:12There were image things that photos came out of,

04:15and then many other products as well.

04:17So that was exciting.

04:18As we went into that a couple of years,

04:23externally also academia started to,

04:25there was lots of push on, okay, deep learning's interesting,

04:28we should be doing more, and so on.

04:30And so by 2014, we were looking at,

04:34okay, this is a big thing, it's gonna grow.

04:36And not just internally, externally as well.

04:39Yes, maybe Google's ahead of where everybody is,

04:42but there's a lot to do.

04:43So a lot of this started to make sense and come together.

04:46- So the decision to open source,

04:49I was just chatting with Chris Glattner about this,

04:52the decision to go open source with TensorFlow,

04:54I would say, for me personally,

04:57seems to be one of the big seminal moments

04:59in all of software engineering ever.

05:01I think that's when a large company like Google

05:04decides to take a large project

05:06that many lawyers might argue has a lot of IP,

05:10just decide to go open source with it,

05:12and in so doing, lead the entire world in saying,

05:15you know what, open innovation is a pretty powerful thing,

05:19and it's okay to do.

05:20That was, I mean, that's an incredible moment in time.

05:26So do you remember those discussions happening?

05:29Whether open source should be happening?

05:31What was that like?

05:32- I would say, I think, so the initial idea came from Jeff,

05:36who was a big proponent of this.

05:39I think it came off of two big things.

05:42One was research-wise, we were a research group.

05:46We were putting all our research out there,

05:49we were building on others' research,

05:51and we wanted to push the state of the art forward,

05:55and part of that was to share the research.

05:56That's how I think deep learning and machine learning

05:58has really grown so fast.

06:00So the next step was, okay, now,

06:03would software help with that?

06:05And it seemed like they were existing.

06:08A few libraries out there,

06:10Tiano being one, Torch being another, and a few others,

06:13but they were all done by academia,

06:15and so the level was significantly different.

06:18The other one was, from a software perspective,

06:22Google had done lots of software that we used internally,

06:27and we published papers.

06:29Often there was an open source project

06:31that came out of that,

06:32that somebody else picked up that paper and implemented,

06:35and they were very successful.

06:38Back then, it was like, okay, there's Hadoop,

06:41which has come off of tech that we've built.

06:44We know the tech we've built is way better

06:46for a number of different reasons.

06:47We've invested a lot of effort in that,

06:50and turns out we have Google Cloud,

06:54and we are now not really providing our tech,

06:57but we are saying, okay, we have Bigtable,

07:00which is the original thing.

07:02We are going to now provide HBase APIs on top of that,

07:04which isn't as good, but that's what everybody's used to.

07:07So there's this, like, can we make something that is better

07:10and really just provide?

07:12Helps the community in lots of ways,

07:14but also helps push a good standard forward.

07:18- So how does Cloud fit into that?

07:19There's a TensorFlow open source library,

07:22and how does the fact that you can use

07:26so many of the resources that Google provides

07:28and the Cloud fit into that strategy?

07:31- So TensorFlow itself is open,

07:33and you can use it anywhere, right?

07:34And we want to make sure that continues to be the case.

07:38On Google Cloud, we do make sure that

07:41there's lots of integrations with everything else,

07:43and we want to make sure that it works

07:45really, really well there.

07:47- You're leading the TensorFlow effort.

07:50Can you tell me the history and the timeline

07:51of TensorFlow project in terms of major design decisions,

07:55so like the open source decision,

07:58but really, you know, what to include and not?

08:01There's this incredible ecosystem

08:03that I'd like to talk about.

08:04There's all these parts, but what if you just,

08:07some sample moments that defined

08:12what TensorFlow eventually became through its,

08:16I don't know if you're allowed to say history when it's,

08:19but in deep learning, everything moves so fast

08:21in just a few years, is there any history?

08:23- Yes, yes.

08:24So looking back, we were building TensorFlow,

08:29I guess we open sourced it in 2015, November 2015.

08:34We started on it in summer of 2014, I guess.

08:38And somewhere like three to six, late 2014,

08:43by then we had decided that,

08:44okay, there's a high likelihood we'll open source it.

08:47So we started thinking about that

08:48and making sure we're heading down that path.

08:51At that point, by that point, we had seen a few,

08:57you know, lots of different use cases at Google.

08:59So there were things like, okay,

§02Transcript · 09:01–17:43

09:01yes, you want to run it at large scale in the data center.

09:04Yes, we need to support different kind of hardware.

09:07We had GPUs at that point,

09:09we had our first GPU at that point,

09:11or was about to come out, you know, roughly around that time.

09:15So the design sort of included those.

09:18We had started to push on mobile.

09:21So we were running models on mobile.

09:24At that point, people were customizing code.

09:28So we wanted to make sure TensorFlow

09:29could support that as well,

09:30so that that sort of became part of that overall design.

09:35- When you say mobile,

09:36you mean like pretty complicated algorithms

09:38running on the phone?

09:40- That's correct.

09:40So when you have a model that you deploy on the phone

09:44and run it the right--

09:45- So already at that time,

09:46there was ideas of running machine learning on the phone.

09:48- That's correct.

09:49We already had a couple of products

09:51that were doing that by then.

09:53And in those cases, we had basically customized

09:56handcrafted code or some internal libraries that we're using.

10:00- So I was actually at Google during this time

10:02in a parallel, I guess, universe,

10:04but we were using Theano and Caffe.

10:07- Yeah.

10:08- Was there some degree to which you were balancing,

10:11like trying to see what Caffe was offering people,

10:15trying to see what Theano was offering,

10:18that you want to make sure you're delivering

10:20on whatever that is, perhaps the Python part of thing,

10:23maybe did that influence any design decisions?

10:27- Totally.

10:28So when we built this belief,

10:29and some of that was in parallel

10:31with some of these libraries coming up,

10:33I mean, Theano itself is older,

10:35but we were building this belief focused on

10:40our internal thing because our systems were very different.

10:43By the time we got to this,

10:44we looked at a number of libraries that were out there.

10:47Theano, there were folks in the group

10:49who had experience with Torch, with Lua.

10:52There were folks here who had seen Caffe.

10:54I mean, actually, Yang Jing was here as well.

10:57There's, what other libraries?

11:03I think we looked at a number of things.

11:04Might even have looked at JNR back then.

11:06I'm trying to remember if it was there.

11:09In fact, yeah, we did discuss ideas around,

11:12okay, should we have a graph or not?

11:14And they were, so putting all these together

11:19was definitely, you know,

11:20they were key decisions that we wanted.

11:22We had seen limitations in our prior disbelief things.

11:27A few of them were just in terms of

11:30research was moving so fast, we wanted the flexibility.

11:33The hardware was changing fast,

11:36we expected to change that,

11:37so that those probably were two things.

11:39And yeah, I think the flexibility in terms of

11:43being able to express all kinds of crazy things

11:45was definitely a big one then.

11:47- So what, the graph decisions,

11:48without moving towards TensorFlow 2.0,

11:52there's more, by default, there'll be eager execution.

11:56So sort of hiding the graph a little bit

11:59because it's less intuitive in terms of

12:01the way people develop and so on.

12:03What was that discussion like in terms of using graphs?

12:06It seemed, it's kind of the Theano way,

12:09did it seem the obvious choice?

12:11- So I think where it came from was

12:14our disbelief had a graph-like thing as well.

12:17A much more, it wasn't a general graph,

12:19it was more like a straight line thing.

12:21More like what you might think of CAFE,

12:25I guess, in that sense.

12:26But the graph was, and we always cared

12:30about the production stuff.

12:31Like even with disbelief, you were deploying

12:32a whole bunch of stuff in production.

12:34So graph did come from that when we thought of,

12:37okay, should we do that in Python?

12:39And we experimented with some ideas where

12:41it looked a lot simpler to use,

12:43but not having a graph meant,

12:46okay, how do you deploy now?

12:47So that was probably what tilted the balance for us

12:51and eventually we ended up with a graph.

12:52- And I guess the question there is, did you,

12:55I mean, so production seems to be

12:57the really good thing to focus on,

12:59but did you even anticipate the other side of it

13:02where there could be, what is it,

13:04what are the numbers, something crazy,

13:0641 million downloads?

13:09- Yep.

13:09(laughing)

13:12- I mean, was that even like a possibility

13:15in your mind that it would be as popular as it became?

13:19- So I think we did see a need for this

13:23a lot from the research perspective

13:27and like early days of deep learning in some ways.

13:3041 million, no, I don't think I imagined this number then.

13:35It seemed like there's a potential future

13:41where lots more people would be doing this

13:43and how do we enable that?

13:45I would say this kind of growth,

13:48I probably started seeing somewhat after the open sourcing

13:52where it was like, okay, deep learning

13:55is actually growing way faster

13:57for a lot of different reasons

13:59and we are in just the right place to push on that

14:02and leverage that and deliver on lots of things

14:06that people want.

14:07- So what changed once you open sourced?

14:09Like how this incredible amount of attention

14:13from a global population of developers,

14:16how did the project start changing?

14:18I don't even actually remember during those times.

14:22I know looking now, there's really good documentation,

14:24there's an ecosystem of tools,

14:26there's a community, there's a YouTube channel now, right?

14:29- Yeah. (laughing)

14:31- It's very community driven.

14:33Back then, I guess 0.1 version,

14:37is that the version?

14:39- I think we called it 0.6 or five,

14:42something like that, I forget what that is.

14:43- What changed leading into 1.0?

14:46- It's interesting, I think we've gone through

14:50a few things there.

14:51When we started out, when we first came out,

14:53people loved the documentation we have

14:56because it was just a huge step up from everything else

14:58because all of those were academic projects,

15:00people doing, who don't think about documentation.

15:03I think what that changed was,

15:07instead of deep learning being a research thing,

15:10some people who were just developers

15:12could now suddenly take this out

15:14and do some interesting things with it, right?

15:16Who had no clue what machine learning was before then.

15:20And that, I think really changed how things

15:23started to scale up in some ways and pushed on it.

15:26Over the next few months as we looked at,

15:30how do we stabilize things,

15:32as we look at not just researchers,

15:33now we want stability, people want to deploy things,

15:36that's how we started planning for 1.0.

15:39And there are certain needs for that perspective,

15:42and so again, documentation comes up,

15:44designs, more kinds of things to put that together.

15:48And so that was exciting to get that to a stage

15:52where more and more enterprises wanted to buy in

15:55and really get behind that.

15:57And I think post 1.0 and over the next few releases,

16:02that enterprise adoption also started to take off.

16:05I would say between the initial release and 1.0,

16:08it was, okay, researchers, of course,

16:11then a lot of hobbies and early interest,

16:13people excited about this who started to get on board,

16:15and then over the 1.x thing, lots of enterprises.

16:19- I imagine anything that's below 1.0

16:23gets pressure to be,

16:25enterprise probably wants something that's stable.

16:28- Exactly.

16:28- And do you have a sense now that TensorFlow is stable?

16:33Like it feels like deep learning in general

16:35is extremely dynamic field.

16:37There's so much changing.

16:39TensorFlow has been growing incredibly.

16:43You have a sense of stability at the helm of it?

16:46I mean, I know you're in the midst of it, but--

16:48- Yeah, I think in the midst of it,

16:51it's often easy to forget what an enterprise wants

16:55and what some of the people on that side want.

16:58There are still people running models

17:00that are three years old, four years old,

17:02so Inception is still used by tons of people.

17:06Even ResNet-50 is what, a couple of years old now or more,

17:08but there are tons of people who use that,

17:10and they're fine.

17:12They don't need the last couple of bits of performance

17:15or quality, they want some stability

17:17and things that just work.

17:19And so there is value in providing that

17:22with that kind of stability and making it really simpler,

17:25because that allows a lot more people to access it.

17:27And then there's the research crowd which wants,

17:31okay, they wanna do these crazy things

17:33exactly like you're saying, right?

17:34Not just deep learning in the straight-up models

17:37that used to be there, they want RNNs,

17:40and even RNNs are maybe old, they are transformers now,

17:43and now it needs to combine with RL and GANs and so on.

§03Transcript · 17:48–26:33

17:48So there's definitely that area,

17:51the boundary that's shifting and pushing

17:53the state of the art,

17:55but I think there's more and more of the past

17:57that's much more stable,

17:59and even stuff that was two, three years old

18:02is very, very usable by lots of people.

18:04So that part makes it a lot easier.

18:07- So I imagine, maybe you can correct me if I'm wrong,

18:09one of the biggest use cases is essentially

18:12taking something like ResNet-50

18:14and doing some kind of transfer learning

18:17on a very particular problem that you have.

18:19It's basically probably what majority of the world does.

18:23And you wanna make that as easy as possible.

18:27- So I would say, for the hobbyist perspective,

18:30that's the most common case, right?

18:32In fact, the apps on phones and stuff that you'll see,

18:35the early ones, that's the most common case.

18:37I would say there are a couple of reasons for that.

18:40One is that everybody talks about that.

18:43It looks great on slides.

18:45- Yeah, it's visual. - That's a part

18:46of the presentation, yeah, exactly.

18:48What enterprises want is, that is part of it,

18:53but that's not the big thing.

18:54Enterprises really have data

18:56that they wanna make predictions on.

18:58This is often what they used to do

19:00with the people who were doing ML,

19:01was just regression models, linear regression,

19:04logistic regression, linear models,

19:06or maybe gradient-boosted trees and so on.

19:09Some of them still benefit from deep learning,

19:11but they weren't that, that's the bread and butter,

19:14like the structured data and so on.

19:16So depending on the audience you look at,

19:18they're a little bit different.

19:19- And they just have, I mean, the best of enterprise

19:23probably just has a very large dataset,

19:26or deep learning can probably shine.

19:28- That's correct, that's right.

19:30And then the, I think the other pieces that they want,

19:33again, with 2.0, or the developer summit we put together,

19:36is the whole TensorFlow Extended piece,

19:39which is the entire pipeline.

19:40They care about stability across doing their entire thing.

19:43They want simplicity across the entire thing.

19:46I don't need to just train a model.

19:47I need to do that every day again, over and over again.

19:51- I wonder to which degree you have a role in,

19:54I don't know, so I teach a course on deep learning.

19:57I have people like lawyers come up to me and say,

20:00you know, say, "When is machine learning gonna enter legal,

20:04"the legal realm?"

20:05The same thing in all kinds of disciplines,

20:09immigration, insurance.

20:13Often when I see what it boils down to is,

20:16these companies are often a little bit old school

20:19in the way they organize the data.

20:20So the data is just not ready yet, it's not digitized.

20:24Do you also find yourself being in the role of

20:26an evangelist for, like,

20:29let's get, organize your data, folks,

20:33and then you'll get the big benefit of TensorFlow.

20:35Do you get those, have those conversations?

20:38- Yeah, yeah, I get all kinds of questions there from,

20:42okay, what can I, what do I need to make this work, right?

20:47Do we really need deep learning?

20:50I mean, there are all these things,

20:52I already used this linear model, why would this help?

20:55I don't have enough data, let's say, you know,

20:57or I wanna use machine learning,

21:00but I have no clue where to start.

21:01So it varies, back to all the way to the experts

21:04who wise for very specific things, so it's interesting.

21:08- Is there a good answer?

21:09It boils down to, oftentimes, digitizing data.

21:12So whatever you want automated,

21:14whatever data you want to make prediction based on,

21:17you have to make sure that it's in an organized form.

21:20And you've, like, within the TensorFlow ecosystem,

21:24there's now, you're providing more and more datasets

21:26and more and more pre-trained models.

21:28Are you finding yourself also the organizer of datasets?

21:32- Yes, I think with TensorFlow datasets

21:34that we just released, that's definitely come up

21:37where people want these datasets, can we organize them

21:40and can we make that easier?

21:41So that's definitely one important thing.

21:45The other related thing I would say is I often tell people,

21:47you know what, don't think of the most fanciest thing

21:50that the newest model that you see.

21:53Make something very basic work and then you can improve it.

21:56There's just lots of things you can do with it.

21:58- Yeah, start with the basics, true.

22:00One of the big things that makes TensorFlow

22:03even more accessible was the appearance,

22:06whenever that happened, of Keras,

22:08the Keras standard, sort of outside of TensorFlow.

22:12I think it was Keras on top of Theano at first,

22:17only, and then Keras became on top of TensorFlow.

22:22Do you know when Keras chose to also add TensorFlow

22:27as a backend, was it just the community

22:32that drove that initially?

22:33Do you know if there was discussions, conversations?

22:37- Yeah, so Francois started the Keras project

22:40before he was at Google and the first thing was Theano.

22:44I don't remember if that was after TensorFlow

22:47was created or way before.

22:48And then at some point when TensorFlow

22:52started becoming popular, there were enough similarities

22:54that he decided to, okay, create this interface

22:56and put TensorFlow as a backend.

22:58I believe that might still have been before

23:01he joined Google, so we weren't really talking about that.

23:06He decided on his own and thought that was interesting

23:09and relevant to the community.

23:11In fact, I didn't find out about him being at Google

23:17until a few months after he was here.

23:19He was working on some research ideas

23:21and doing Keras on his nights and weekends project.

23:24- Oh, interesting.

23:25So he wasn't part of the TensorFlow.

23:28He didn't join initially.

23:29- He joined research and he was doing some amazing research.

23:32He has some papers on that and research.

23:35He's a great researcher as well.

23:37And at some point we realized, oh,

23:40he's doing this good stuff.

23:42People seem to like the API and he's right here.

23:45So we talked to him and he said,

23:47okay, why don't I come over to your team

23:50and work with you for a quarter

23:52and let's make that integration happen.

23:55And we talked to his manager and he said,

23:56sure, my quarter's fine.

23:58And that quarter's been something like two years now.

24:02(laughing)

24:03So he's fully on this.

24:05- So Keras got integrated into TensorFlow

24:09like in a deep way.

24:12And now with 2.0, TensorFlow 2.0,

24:15sort of Keras is kind of the recommended way

24:18for a beginner to interact with TensorFlow.

24:21Which makes that initial sort of transfer learning

24:24or the basic use cases, even for enterprise,

24:28super simple, right?

24:29- That's correct.

24:30- So what was that decision like?

24:32That seems like,

24:32that's kind of a bold decision as well.

24:37- We did spend a lot of time thinking about that one.

24:41We had a bunch of APIs, some built by us.

24:46There was a parallel layers API that we were building.

24:48And when we decided to do Keras in parallel,

24:51so there were like, okay, two things that we are looking at.

24:54And the first thing we was trying to do

24:55is just have them look similar,

24:58like be as integrated as possible,

25:00share all of that stuff.

25:02There were also like three other APIs

25:04that others had built over time

25:05because we didn't have a standard one.

25:09But one of the messages that we kept hearing

25:11from the community, okay, which one do we use?

25:13And they kept saying like, okay,

25:14here's a model in this one,

25:15and here's a model in this one, which should I pick?

25:18So that's sort of like, okay,

25:20we had to address that straight on with 2.0.

25:24The whole idea was we need to simplify,

25:26we had to pick one.

25:27Based on where we were, we were like, okay,

25:31let's see what are the people like.

25:35And Keras was clearly one that lots of people loved.

25:39There were lots of great things about it.

25:41So we settled on that.

25:43- Organically, that's kind of the best way to do it.

25:46It was great.

25:47It was surprising, nevertheless,

25:48to sort of bring in an outside.

25:51I mean, there was a feeling like Keras might

25:54be almost like a competitor

25:55in a certain kind of a two tensor flow.

25:58And in a sense, it became an empowering element

26:01of tensor flow.

26:02- That's right.

26:03Yeah, it's interesting how you can put two things together

26:06which can align, right?

26:08And in this case, I think Francois, the team,

26:11and a bunch of us have chatted,

26:14and I think we all want to see the same kind of things.

26:17We all care about making it easier

26:18for the huge set of developers out there,

26:21and that makes a difference.

26:23- So Python has Guido Van Rossum,

26:26who until recently held the position

26:28of benevolent dictator for life.

26:33Does a huge successful open source project

§04Transcript · 26:36–35:29

26:36like TensorFlow need one person who makes a final decision?

26:40So you've did a pretty successful TensorFlow Dev Summit

26:45just now, last couple of days.

26:47There's clearly a lot of different new features

26:51being incorporated in an amazing ecosystem and so on.

26:53How are those design decisions made?

26:57Is there a BDFL in TensorFlow,

27:02or is it more distributed and organic?

27:05- I think it's somewhat different, I would say.

27:08I've always been involved in the key design directions,

27:14but there are lots of things that are distributed

27:18where there are a number of people,

27:20Martin Wick being one who has really driven

27:23a lot of our open source stuff, a lot of the APIs,

27:26and there are a number of other people

27:29who've been pushed and been responsible

27:32for different parts of it.

27:34We do have regular design reviews.

27:37Over the last year, we've really spent a lot of time

27:40opening up to the community and adding transparency.

27:43We're setting more processes in place,

27:45so RFCs, special interest groups,

27:49really grow that community and scale that.

27:52I think the kind of scale that ecosystem is in,

27:57I don't think we could scale with having me

27:59as the standpoint of decision maker.

28:02- I got it.

28:03So yeah, the growth of that ecosystem.

28:05Maybe you can talk about it a little bit.

28:08First of all, it started with Andrej Karpathy

28:10when he first did ConvNetJS.

28:13The fact that you can train in your own network

28:15in the browser in JavaScript was incredible.

28:18So now TensorFlow.js is really making that a serious,

28:23a legit thing, a way to operate,

28:27whether it's in the back end or the front end.

28:29Then there's the TensorFlow Extended,

28:31like you mentioned.

28:32There's TensorFlow Lite for mobile.

28:35And all of it, as far as I can tell,

28:37it's really converging towards being able to save models

28:42in the same kind of way.

28:43You can move around, you can train on the desktop,

28:46and then move it to mobile and so on.

28:48- That's right.

28:49- There's that cohesiveness.

28:52So can you maybe give me, whatever I missed,

28:56a bigger overview of the mission of the ecosystem

28:58that's trying to be built and where is it moving forward?

29:02- Yeah.

29:02So in short, the way I like to think of this is

29:06our goal is to enable machine learning.

29:09And in a couple of ways.

29:11One is we have lots of exciting things going on in ML today.

29:16We started with deep learning,

29:17but we now support a bunch of other algorithms too.

29:21So one is to, on the research side,

29:23keep pushing on the state of the art.

29:26How do we enable researchers

29:27to build the next amazing thing?

29:28So BERT came out recently.

29:31It's great that people are able to do new kinds of research.

29:33There are lots of amazing research

29:35that happens across the world.

29:37So that's one direction.

29:38The other is, how do you take that across

29:42all the people outside who want to take that research

29:45and do some great things with it

29:46and integrate it to build real products,

29:48to have a real impact on people?

29:51And so that's the other axis in some ways.

29:55At a high level, one way I think about it is

29:59there are a crazy number of compute devices across the world.

30:04And we often used to think of ML and training

30:07and all of this as, okay,

30:08something you do either in a workstation

30:10or the data center or cloud.

30:12But we see things running on the phones.

30:15We see things running on really tiny chips.

30:17I mean, we had some demos of the developer summit.

30:20And so the way I think about this ecosystem is,

30:25how do we help get machine learning on every device

30:29that has a compute capability?

30:32And that continues to grow.

30:33And so in some ways, this ecosystem has looked at

30:38various aspects of that and grown over time

30:41to cover more of those.

30:42And we continue to push the boundaries.

30:44In some areas, we've built more tooling

30:48and things around that to help you.

30:50I mean, the first tool we started was TensorBoard.

30:52You wanted to learn just the training piece.

30:55TFX or TensorFlow Extended

30:58to really do your entire ML pipelines

31:00if you care about all that production stuff.

31:03But then going to the edge,

31:06going to different kinds of things.

31:09And it's not just us now.

31:11We're at a place where there are lots of libraries

31:14being built on top.

31:15So there are some for research,

31:17maybe things like TensorFlow Agents

31:20or TensorFlow Probability that started as research things

31:22or for researchers for focusing

31:24on certain kinds of algorithms.

31:26But they're also being deployed

31:27or used by production folks.

31:30And some have come from within Google,

31:33just teams across Google

31:34who wanted to build these things.

31:37Others have come from just the community

31:39because there are different pieces

31:41that different parts of the community care about.

31:44And I see our goal as enabling even that.

31:49We cannot and won't build every single thing.

31:53That just doesn't make sense.

31:54But if we can enable others

31:56to build the things that they care about,

31:58and there's a broader community that cares about that,

32:01and we can help encourage that,

32:02and that's great.

32:05That really helps the entire ecosystem, not just those.

32:08One of the big things about 2.0 that we're pushing on is,

32:11okay, we have these so many different pieces, right?

32:14How do we help make all of them work well together?

32:18So there are a few key pieces there that we're pushing on,

32:22one being the core format in there

32:23and how we share the models themselves

32:26through SaveModel and TensorFlow Hub and so on.

32:29And a few of the pieces that we really put this together.

32:34- I was very skeptical that that's,

32:35when TensorFlow.js came out,

32:37it didn't seem, or Deep Learning.js.

32:40- Yeah, that was the first.

32:41- It seems like technically a very difficult project.

32:44As a standalone, it's not as difficult,

32:47but as a thing that integrates into the ecosystem,

32:50it seems very difficult.

32:51So, I mean, there's a lot of aspects of this

32:53you're making look easy, but,

32:54on the technical side,

32:57how many challenges have to be overcome here?

32:59- A lot.

33:01- And still have to be overcome.

33:03That's the question here, too.

33:04- There are lots of steps to it.

33:06I mean, we've iterated over the last few years,

33:08so there's a lot we've learned.

33:10I, yeah, often when things come together well,

33:14things look easy, and that's exactly the point.

33:16It should be easy for the end user,

33:18but there are lots of things that go behind that.

33:21If I think about still challenges ahead,

33:25there are,

33:26you know, we have a lot more devices coming on board,

33:32for example, from the hardware perspective.

33:35How do we make it really easy for these vendors

33:37to integrate with something like TensorFlow, right?

33:41So there's a lot of compiler stuff

33:43that others are working on.

33:45There are things we can do in terms of our APIs

33:48and so on that we can do.

33:49As we, you know, TensorFlow started

33:53as a very monolithic system,

33:55and to some extent it still is.

33:57There are less, lots of tools around it,

33:59but the core is still pretty large and monolithic.

34:02One of the key challenges for us to scale that out

34:05is how do we break that apart with clearer interfaces?

34:10It's, you know, in some ways it's software engineering 101,

34:14but for a system that's now four years old, I guess, or more,

34:19and that's still rapidly evolving

34:21and that we're not slowing down with,

34:24it's hard to, you know, change and modify

34:26and really break apart.

34:28It's sort of like, as people say, right,

34:29it's like changing the engine with a car running

34:32or fix that, that's exactly what we're trying to do.

34:35- So there's a challenge here

34:37because the downside of so many people

34:41being excited about TensorFlow

34:43and coming to rely on it in many of their applications

34:48is that you're kind of responsible,

34:52like it's the technical debt.

34:53You're responsible for previous versions

34:55to some degree still working.

34:57So when you're trying to innovate,

34:59I mean, it's probably easier to just start from scratch

35:03every few months.

35:04(laughs)

35:05- Absolutely.

35:07- So do you feel the pain of that?

35:09A 2.0 does break some back compatibility,

35:14but not too much.

35:15It seems like the conversion is pretty straightforward.

35:18Do you think that's still important

35:20given how quickly deep learning is changing?

35:22Can you just, the things that you've learned,

35:26can you just start over or is there pressure to not?

35:29- It's a tricky balance.

§05Transcript · 35:31–43:56

35:31So if it was just a researcher writing a paper

35:36who a year later will not look at that code again,

35:39sure, it doesn't matter.

35:40There are a lot of production systems

35:43that rely on TensorFlow,

35:44both at Google and across the world.

35:47And people worry about this.

35:49I mean, these systems run for a long time.

35:52So it is important to keep that compatibility and so on.

35:57And yes, it does come with a huge cost.

35:59There's, we have to think about a lot of things

36:03as we do new things and make new changes.

36:05I think it's a trade-off, right?

36:09You can, you might slow certain kinds of things down,

36:13but the overall value you're bringing because of that

36:15is much bigger because it's not just about

36:18breaking the person yesterday,

36:20it's also about telling the person tomorrow

36:23that you know what, this is how we do things.

36:26We're not going to break you when you come on board

36:28because there are lots of new people

36:29who are also going to come on board.

36:31You know, one way I like to think about this,

36:34and I always push the team to think about as well,

36:38when you want to do new things,

36:39you want to start with a clean slate,

36:42design with a clean slate in mind.

36:44And then we'll figure out how to make sure

36:47all the other things work.

36:48And yes, we do make compromises occasionally,

36:51but unless you design with the clean slate

36:55and not worry about that,

36:56you'll never get to a good place.

36:58- That's brilliant.

36:59So even if you are responsible in the idea stage,

37:04when you're thinking of new,

37:05just put all that behind you.

37:07Okay, that's really well put.

37:09So I have to ask this because a lot of students,

37:12developers ask me,

37:13how I feel about PyTorch versus TensorFlow.

37:16So I've recently completely switched

37:18my research group to TensorFlow.

37:20I wish everybody would just use the same thing,

37:23and TensorFlow is as close to that, I believe, as we have.

37:26But do you enjoy competition?

37:31So TensorFlow is leading in many ways,

37:34on many dimensions in terms of ecosystem,

37:36in terms of the number of users,

37:39momentum, power, production level, so on.

37:41But a lot of researchers are now also using PyTorch.

37:46Do you enjoy that kind of competition

37:47or do you just ignore it and focus on

37:49making TensorFlow the best that it can be?

37:52- So just like research or anything people are doing,

37:55it's great to get different kinds of ideas.

37:58And when we started with TensorFlow,

38:01like I was saying earlier,

38:03one, it was very important for us

38:05to also have production in mind.

38:07We didn't want just research, right?

38:09And that's why we chose certain things.

38:11Now PyTorch came along and said,

38:12you know what, I only care about research.

38:14This is what I'm trying to do.

38:16What's the best thing I can do for this?

38:18And it started iterating and said,

38:20okay, I don't need to worry about graphs.

38:22Let me just run things.

38:25I don't care if it's not as fast as it can be,

38:27but let me just make this part easy.

38:30And there are things you can learn from that, right?

38:32They again had the benefit of seeing what had come before,

38:36but also exploring certain different kinds of spaces.

38:40And they had some good things there,

38:43building on say things like JNUR and so on before that.

38:46So competition is definitely interesting.

38:49It made us, this is an area that we had thought about,

38:51like I said, very early on.

38:53Over time we had revisited this a couple of times,

38:56should we add this again?

38:59At some point we said, you know what,

39:01it seems like this can be done well,

39:02so let's try it again.

39:04And that's how we started pushing on eager execution.

39:07How do we combine those two together?

39:09Which has finally come very well together in 2.0,

39:13but it took us a while to get all the things together

39:15and so on.

39:16- So let me ask, put another way,

39:19I think eager execution is a really powerful thing

39:21that was added.

39:22Do you think it wouldn't have been,

39:24you know, Muhammad Ali versus Fraser, right?

39:28Do you think it wouldn't have been added as quickly

39:31if PyTorch wasn't there?

39:33- It might have taken longer.

39:35Yeah, it was, I mean, we had tried some variants

39:38of that before, so I'm sure it would have happened,

39:40but it might have taken longer.

39:42- I'm grateful that TensorFlow is following

39:44the way they did.

39:45It's doing some incredible work last couple of years.

39:47What other things that we didn't talk about

39:49are you looking forward in 2.0?

39:52That comes to mind.

39:54So we talked about some of the ecosystem stuff,

39:56making it easily accessible through Keras,

40:00eager execution.

40:01Is there other things that we missed?

40:02- Yeah, so I would say one is just where 2.0 is,

40:07and you know, with all the things that we've talked about.

40:10I think as we think beyond that,

40:13there are lots of other things that it enables us to do

40:16and that we're excited about.

40:18So what it's setting us up for,

40:20okay, here are these really clean APIs.

40:22We've cleaned up the surface for what the users want.

40:25What it also allows us to do a whole bunch of stuff

40:28behind the scenes once we are ready with 2.0.

40:31So for example, in TensorFlow with graphs

40:36and all the things you could do,

40:37you could always get a lot of good performance

40:40if you spent the time to tune it, right?

40:43And we've clearly shown that, lots of people do that.

40:48With 2.0, with these APIs,

40:52where we are, we can give you a lot of performance

40:55just with whatever you do.

40:56Because we see it's much cleaner,

41:01we know most people are gonna do things this way.

41:03We can really optimize for that

41:05and get a lot of those things out of the box.

41:09And it really allows us, both for single machine

41:11and distributed and so on,

41:13to really explore other spaces behind the scenes

41:17after 2.0 in the future versions as well.

41:19So right now the team's really excited about that.

41:23That over time, I think we'll see that.

41:25The other piece that I was talking about

41:27in terms of just restructuring the monolithic thing

41:31into more pieces and making it more modular,

41:34I think that's gonna be really important

41:36for a lot of the other people in the ecosystem

41:41or the organizations and so on that wanted to build things.

41:44- Can you elaborate a little bit what you mean

41:46by making TensorFlow ecosystem more modular?

41:50- So the way it's organized today is there's one,

41:55there are lots of repositories

41:56in the TensorFlow organization at GitHub.

41:58The core one where we have TensorFlow,

42:01it has the execution engine,

42:04it has the key backends for CPUs and GPUs,

42:08it has the work to do distributed stuff.

42:12And all of these just work together

42:14in a single library or binary.

42:17There's no way to split them apart easily.

42:18I mean, there are some interfaces,

42:20but they're not very clean.

42:21In a perfect world, you would have clean interfaces

42:23where, okay, I wanna run it on my fancy cluster

42:27with some custom networking,

42:29just implement this and do that.

42:31I mean, we kind of support that,

42:32but it's hard for people today.

42:34I think as we are starting to see more interesting things

42:38in some of these spaces,

42:39having that clean separation will really start to help.

42:43And again, going to the large size of the ecosystem

42:47and the different groups involved there,

42:50enabling people to evolve

42:52and push on things more independently

42:54just allows it to scale better.

42:56- And by people, you mean individual developers and--

42:59- And organizations.

42:59- And organizations.

43:01So the hope is that everybody sort of major,

43:04I don't know, Pepsi or something uses,

43:06like major corporations go to TensorFlow to this kind of--

43:11- Yeah, if you look at enterprise like Pepsi or these,

43:13I mean, a lot of them are already using TensorFlow.

43:15They are not the ones that do the development

43:18or changes in the core.

43:20Some of them do, but a lot of them don't.

43:21I mean, they touch small pieces.

43:23There are lots of these,

43:25some of them being, let's say, hardware vendors

43:27who are building their custom hardware

43:29and they want their own pieces.

43:30Or some of them being bigger companies, say IBM.

43:34I mean, they're involved in some of our

43:36special interest groups,

43:38and they see a lot of users who want certain things

43:41and they want to optimize for that.

43:42So folks like that often.

43:44- Autonomous vehicle companies, perhaps.

43:46- Exactly, yes.

43:48- So yeah, like I mentioned,

43:50TensorFlow has been downloaded 41 million times,

43:5250,000 commits, almost 10,000 pull requests,

43:561,800 contributors.

§06Transcript · 43:58–52:49

43:58So I'm not sure if you can explain it,

44:02but what does it take to build a community like that?

44:06In retrospect, what do you think,

44:09what is the critical thing that allowed

44:11for this growth to happen,

44:12and how does that growth continue?

44:14- Yeah, yeah, that's an interesting question.

44:17I wish I had all the answers there, I guess,

44:20so we could replicate it.

44:21I think there are a number of things

44:25that need to come together, right?

44:27One, just like any new thing,

44:32it is about, there's a sweet spot of timing,

44:35what's needed, does it grow with

44:38what's needed, so in this case, for example,

44:41TensorFlow is not just grown because it was a good tool,

44:43it's also grown with the growth of deep learning itself.

44:46So those factors come into play.

44:49Other than that, though,

44:50I think just hearing, listening to the community,

44:55what they need, being open to,

44:58like in terms of external contributions,

45:01we've spent a lot of time in making sure

45:04we can accept those contributions well,

45:06we can help the contributors in adding those,

45:09putting the right process in place,

45:11getting the right kind of community,

45:13welcoming them and so on.

45:15Like over the last year,

45:17we've really pushed on transparency,

45:19that that's important for an open source project.

45:22People want to know where things are going,

45:23and we're like, okay, here's a process

45:26where you can do that, here are our seas and so on.

45:29So thinking through, there are lots of community aspects

45:32that come into that you can really work on.

45:36As a small project, it's maybe easy to do

45:38because there's like two developers and you can do those.

45:42As you grow, putting more of these processes in place,

45:47thinking about the documentation,

45:49thinking about what do developers care about,

45:51what kind of tools would they want to use?

45:55All of these come into play, I think.

45:56- So one of the big things I think

45:58that feeds the TensorFlow fire

46:00is people building something on TensorFlow.

46:04And implement a particular architecture

46:07that does something cool and useful.

46:09And they put that on GitHub.

46:11And so it just feeds this growth.

46:15Do you have a sense that with 2.0 and 1.0

46:19that there may be a little bit of a partitioning

46:21like there is with Python 2 and 3,

46:24that there'll be a code base?

46:26And in the older versions of TensorFlow,

46:28they will not be as compatible easily?

46:31Or are you pretty confident that this kind of conversion

46:35is pretty natural and easy to do?

46:37- So we're definitely working hard

46:39to make that very easy to do.

46:41There's lots of tooling that we talked about

46:43at the developer summit this week.

46:45And we continue to invest in that tooling.

46:48It's, you know, when you think of these

46:50significant version changes, that's always a risk.

46:53And we are really pushing hard

46:55to make that transition very, very smooth.

46:59I think, so at some level, people want to move

47:03when they see the value in the new thing.

47:05They don't want to move just because it's a new thing.

47:07And some people do,

47:08but most people want a really good thing.

47:11And I think over the next few months

47:13as people start to see the value,

47:15we'll definitely see that shift happening.

47:17So I'm pretty excited and confident

47:19that we'll see people moving.

47:21As you said earlier, this field is also moving rapidly.

47:24So that'll help because we can do more things.

47:26And, you know, all the new things

47:28will clearly happen in 2.X.

47:29So people will have lots of good reasons to move.

47:32- So what do you think TensorFlow 3.0 looks like?

47:36Is that, is there, are things happening so crazy

47:40that even at the end of this year

47:42it seems impossible to plan for?

47:44Or is it possible to plan for the next five years?

47:48- I think it's tricky.

47:50There are some things that we can expect

47:54in terms of, okay, change, yes, change is going to happen.

47:58(laughing)

47:59Are there some things going to stick around

48:01and some things not going to stick around?

48:03I would say the basics of deep learning,

48:08the, you know, say convolution models

48:10or the basic kind of things,

48:12they'll probably be around in some form still in five years.

48:16Will RLN GAN stay?

48:18Very likely based on where they are.

48:21Will we have new things?

48:22Probably, but those are hard to predict.

48:24And some, directionally, some things that we can see is,

48:29you know, and things that we're starting to do, right,

48:32with some of our projects right now

48:35is just 2.0 combining eager execution and graphs

48:39where we're starting to make it more like

48:41just your natural programming language.

48:43You're not trying to program something else.

48:45Similarly with Swift for TensorFlow,

48:47we're taking that approach.

48:48Can you do something round up, right?

48:50So some of those ideas seem like, okay,

48:52that's the right direction.

48:54In five years, we expect to see more in that area.

48:57Other things we don't know is,

49:00will hardware accelerators be the same?

49:03Will we be able to train with four bits instead of 32 bits?

49:08- And I think the TPU side of things is exploring that.

49:11I mean, TPU's already on version three.

49:14It seems that the evolution of TPU and TensorFlow

49:17are sort of, they're co-evolving almost.

49:22In terms of both are learning from each other

49:24and from the community and from the applications

49:27where the biggest benefit is achieved.

49:29- That's right.

49:30- You've been trying to sort of,

49:32with eager with Keras to make TensorFlow

49:34as accessible and easy to use as possible.

49:36What do you think for beginners

49:38is the biggest thing they struggle with?

49:40Have you encountered that?

49:42Or is basically what Keras is solving

49:44is that eager, like we talked about?

49:47- Yeah, for some of them, like you said, right,

49:50beginners want to just be able to take some image model,

49:54they don't care if it's Inception or ResNet

49:57or something else, and do some training

49:59or transfer learning on their kind of model.

50:02Being able to make that easy is important.

50:04So in some ways, if you do that by providing them

50:08simple models with, say, in hub or so on,

50:11they don't care about what's inside that box,

50:13but they want to be able to use it.

50:15So we're pushing on, I think, different levels.

50:17If you look at just a component that you get

50:19which has the layers already smooshed in,

50:22the beginners probably just want that.

50:25Then the next step is, okay,

50:26look at building layers with Keras.

50:29If you go out to research,

50:30then they are probably writing custom layers themselves

50:33or doing their own loops.

50:34So there's a whole spectrum there.

50:36- And then providing the pre-trained models

50:38seems to really decrease the time from you trying to start.

50:43So you could basically in a Colab notebook

50:46achieve what you need.

50:49So I'm basically answering my own question

50:51because I think what TensorFlow delivered on recently

50:54is trivial for beginners.

50:56So I was just wondering if there was other pain points

51:00you're trying to ease, but I'm not sure there would be.

51:02- No, those are probably the big ones.

51:04I mean, I see high schoolers doing a whole bunch of things

51:07now, which is pretty amazing.

51:08- It's both amazing and terrifying.

51:10- Yes.

51:12- In a sense that when they grow up,

51:15some incredible ideas will be coming from them.

51:19So there's certainly a technical aspect to your work,

51:21but you also have a management aspect to your role

51:25with TensorFlow leading the project,

51:27a large number of developers and people.

51:31So what do you look for in a good team?

51:34What do you think?

51:35You know, Google has been at the forefront of exploring

51:38what it takes to build a good team.

51:40And TensorFlow is one of the most cutting edge technologies

51:45in the world.

51:46So in this context, what do you think makes for a good team?

51:49- It's definitely something I think a fair bit about.

51:53I think in terms of the team being able to deliver

51:58something well, one of the things that's important

52:02is a cohesion across the team.

52:05So being able to execute together in doing things.

52:10It's not an, like at this scale,

52:13an individual engineer can only do so much.

52:15There's a lot more that they can do together,

52:18even though we have some amazing superstars across Google

52:21and in the team, but there's, you know,

52:25often the way I see it as the product

52:27of what the team generates is way larger than the whole,

52:30or you know, the individual put together.

52:34And so how do we have all of them work together,

52:37the culture of the team itself.

52:40Hiring good people is important,

52:43but part of that is it's not just that, okay,

52:45we hire a bunch of smart people and throw them together

52:48and let them do things.

52:49It's also people have to care about what they're building.

§07Transcript · 52:52–1:01:34

52:52People have to be motivated for the right kind of things.

52:57That's often an important factor.

52:59And, you know, finally, how do you put that together

53:04with a somewhat unified vision of where we want to go?

53:08So are we all looking in the same direction

53:11or each of us going all over?

53:13And sometimes it's a mix.

53:16Google's a very bottom-up organization in some sense,

53:20also research even more so, and that's how we started.

53:26But as we've become this larger product and ecosystem,

53:30I think it's also important to combine that well

53:33with a mix of, okay, here's the direction we want to go in.

53:38There is exploration we'll do around that,

53:39but let's keep staying in that direction,

53:42not just all over the place.

53:44- And is there a way you monitor the health of the team?

53:46Sort of like, is there a way you know you did a good job?

53:51The team is good?

53:53Like, I mean, you're sort of, you're saying nice things,

53:56but it's sometimes difficult to determine how aligned.

54:00- Yes. - 'Cause it's not binary.

54:02It's not like, there's tensions and complexities and so on.

54:06And the other element of this is the mission of superstars.

54:09You know, there's so much, even at Google,

54:11such a large percentage of work is done

54:13by individual superstars too.

54:16So there's a, and sometimes those superstars

54:19can be against the dynamic of a team and those tensions.

54:23I mean, I'm sure in TensorFlow it might be

54:26a little bit easier because the mission of the project

54:28is so sort of beautiful.

54:31You're at the cutting edge, so it's exciting.

54:33- Yep.

54:34- But have you struggled with that?

54:36Has there been challenges?

54:38- There are always people challenges

54:39in different kinds of ways.

54:41That said, I think we've been,

54:43what's good about getting people who care

54:46and are, you know, have the same kind of culture,

54:50and that's Google in general to a large extent.

54:53But also, like you said, given that the project

54:56has had so many exciting things to do,

54:58there's been room for lots of people

55:00to do different kinds of things and grow,

55:02which does make the problem a bit easier, I guess.

55:06And it allows people, depending on what they're doing,

55:09if there's room around them, then that's fine.

55:12But yes, we do care about whether a superstar or not

55:18that they need to work well with the team across Google.

55:22- That's interesting to hear.

55:23So it's like superstar or not, the productivity broadly

55:28is about the team.

55:30- Yeah, yeah.

55:31I mean, they might add a lot of value,

55:33but if they're hurting the team, then that's a problem.

55:35- So in hiring engineers, it's so interesting, right?

55:39The hiring process, what do you look for?

55:41How do you determine a good developer

55:44or a good member of a team

55:46from just a few minutes or hours together?

55:48(chuckles)

55:50Again, no magic answers, I'm sure.

55:52- Yeah, yeah.

55:52I mean, Google has a hiring process

55:55that we've refined over the last 20 years, I guess,

55:58and that you've probably heard and seen a lot about.

56:02So we do work with the same hiring process,

56:05and that's really helped.

56:06For me in particular, I would say,

56:10in addition to the core technical skills,

56:14what does matter is their motivation in what they want to do

56:19because if that doesn't align well with where we want to go,

56:23that's not going to lead to long-term success

56:25for either them or the team.

56:27And I think that becomes more important

56:30the more senior the person is,

56:31but it's important at every level.

56:33Like even the junior most engineer,

56:34if they're not motivated to do well

56:36at what they're trying to do,

56:37however smart they are,

56:38it's going to be hard for them to succeed.

56:40- Does the Google hiring process touch on that passion?

56:44So like trying to determine,

56:46'cause I think as far as I understand,

56:48maybe you can speak to it,

56:49that the Google hiring process sort of helps,

56:53in the initial, like determines the skill set there,

56:56is your puzzle-solving ability,

56:57problem-solving ability good?

56:59But like, I'm not sure,

57:02but it seems that the determining whether the person

57:05is like fire inside them,

57:07that burns to do anything really,

57:09it doesn't really matter,

57:09it's just some cool stuff, I'm going to do it.

57:12That, I don't know,

57:15is that something that ultimately ends up

57:17when they have a conversation with you

57:18or once it gets closer to the team?

57:22- So one of the things we do have as part of the process

57:25is just a culture fit,

57:27like part of the interview process itself,

57:29in addition to just the technical skills,

57:31and each engineer or whoever the interviewer is,

57:34is supposed to rate the person on the culture

57:38and the culture fit with Google and so on.

57:40So that is definitely part of the process.

57:42Now, there are various kinds of projects

57:45and different kinds of things,

57:46so there might be variants

57:48in the kind of culture you want there and so on,

57:51and yes, that does vary.

57:52So for example,

57:54TensorFlow's always been a fast-moving project,

57:56and we want people who are comfortable with that.

57:59But at the same time now, for example,

58:02we are at a place where we are also a very full-fledged

58:04product and we want to make sure things that work

58:07really, really work, right?

58:09You can't cut corners all the time.

58:11So balancing that out and finding the people

58:14who are the right fit for those is important.

58:17And I think those kind of things do vary a bit

58:19across projects and teams and product areas across Google,

58:23and so you'll see some differences there

58:25in the final checklist.

58:27But a lot of the core culture,

58:29it comes along with just engineering excellence and so on.

58:32- What is the hardest part of your job?

58:37Take your pick, I guess.

58:41- It's fun, I would say, right?

58:44Hard, yes.

58:45I mean, lots of things at different times.

58:47I think that does vary.

58:49- So let me clarify that difficult things are fun

58:52when you solve them, right?

58:53(laughing)

58:55- Yes.

58:56- It's fun in that sense.

58:57- I think the key to a successful thing across the board,

59:02and in this case, it's a large ecosystem now,

59:05but even a small product, is striking that fine balance

59:09across different aspects of it.

59:12Sometimes it's how fast you go versus how perfect it is.

59:17Sometimes it's how do you involve this huge community?

59:21Who do you involve?

59:22Or do you decide, okay, now is not a good time

59:24to involve them because it's not the right fit?

59:28And sometimes it's saying no to certain kinds of things.

59:33Those are often the hard decisions.

59:35Some of them you make quickly

59:39because you don't have the time.

59:41Some of them you get time to think about them,

59:43but they're always hard.

59:44- So on both, both choices are pretty good,

59:46it's those decisions.

59:49What about deadlines?

59:50Is this, do you find TensorFlow to be driven

59:54by deadlines to a degree that a product might?

60:00Or is there still a balance to where,

60:03I mean, it's less deadline.

60:04You had the Dev Summit, they came together incredibly.

60:08Looked like there's a lot of moving pieces and so on.

60:11So did that deadline make people rise to the occasion,

60:15releasing TensorFlow 2.0 Alpha?

60:18- Yeah.

60:18- I think that was done last minute as well.

60:20I mean, like up to the last point.

60:25- Again, it's one of those things that's,

60:28you need to strike the good balance.

60:29There's some value that deadlines bring

60:32that does bring a sense of urgency

60:33to get the right things together

60:35instead of getting the perfect thing out.

60:38You need something that's good and works well.

60:41And the team definitely did a great job

60:43in putting that together.

60:44So I was very amazed and excited by everything,

60:46how that came together.

60:48That said, across the year,

60:49we try not to put out official deadlines.

60:52We focus on key things that are important,

60:57figure out how much of it's important.

61:00And we are developing in the open,

61:03what internally and externally,

61:05everything's available to everybody.

61:07So you can pick and look at where things are.

61:11We do releases at a regular cadence.

61:13So fine, if something doesn't necessarily end up

61:16at this month, it'll end up in the next release

61:17in a month or two.

61:18And that's okay, but we want to get,

61:22like keep moving as fast as we can in these different areas.

61:25Because we can iterate and improve on things.

61:29Sometimes it's okay to put things out

61:32that aren't fully ready.

61:32We'll make sure it's clear that, okay,

61:34this is experimental, but it's out there

§08Transcript · 1:01:36–1:10:06

61:36if you want to try and give feedback.

61:38That's very, very useful.

61:39I think that quick cycle and quick iteration is important.

61:42That's what we often focus on

61:46rather than here's a deadline where you get everything else.

61:49- Is 2.0, is there pressure to make that stable?

61:52Or like, for example, WordPress 5.0 just came out

61:56and there was no pressure to,

61:59it was a lot of build updates,

62:01it delivered way too late.

62:04But, and they said, okay, well,

62:06but we're going to release a lot of updates

62:07really quickly to improve it.

62:09Do you see TensorFlow 2.0 in that same kind of way?

62:12Or is there this pressure to once it hits 2.0,

62:15once you get to the release candidate

62:16and then you get to the final,

62:19that's going to be the stable thing?

62:22- So it's going to be stable in just like when NodeX was,

62:26where every API that's there is going to remain and work.

62:31It doesn't mean we can't change things under the covers.

62:34It doesn't mean we can't add things.

62:36So there's still a lot more for us to do

62:39and we're going to need to have more releases.

62:41So in that sense, there's still,

62:42I don't think we'd be done in like two months

62:44when we release this.

62:46- I don't know if you can say,

62:47but is there, you know,

62:49there's not external deadlines for TensorFlow 2.0,

62:53but is there internal deadlines,

62:57the artificial or otherwise,

62:58that you're trying to set for yourself?

63:00Or is it whenever it's ready?

63:03- So we want it to be a great product, right?

63:05And that's a big, important piece for us.

63:08TensorFlow's already out there.

63:11We have, you know, 41 million downloads for 1.x.

63:13So it's not like we have to have this.

63:16Yeah, exactly.

63:17So it's not like,

63:18a lot of the features that we've, you know,

63:20really polishing and putting them together are there.

63:23We don't have to rush that just because.

63:26So in that sense,

63:27we want to get it right and really focus on that.

63:29That said, we have said that we are looking to get this out

63:32in the next few months, in the next quarter.

63:34And we, you know, as far as possible,

63:37we'll definitely try to make that happen.

63:39- Yeah, my favorite line was,

63:41spring is a relative concept.

63:44I love it.

63:45- Yes.

63:46- Spoken like a true developer.

63:47So, you know, something I'm really interested in,

63:50and your previous line of work is,

63:53before TensorFlow, you led a team at Google on search ads.

63:56I think this is a very interesting topic,

64:01on every level, on a technical level.

64:04Because at their best,

64:06ads connect people to the things they want and need.

64:09- Yep.

64:10- And at their worst, they're just these things

64:12that annoy the heck out of you,

64:14to the point of ruining the entire user experience

64:17of whatever you're actually doing.

64:19So they have a bad rep, I guess.

64:22And on the other end,

64:26so that this connecting users to the thing they need and want

64:29is a beautiful opportunity for machine learning to shine.

64:34Like huge amounts of data that's personalized,

64:36and you kind of map to the thing

64:37they actually want, won't get annoyed.

64:40So what have you learned from this,

64:43Google that's leading the world in this aspect?

64:45What have you learned from that experience?

64:47And what do you think is the future of ads?

64:51Take you back to the--

64:52- Yeah.

64:53(laughing)

64:54Yes, it's been a while,

64:55but I totally agree with what you said.

64:58I think the search ads,

65:01the way it was always looked at,

65:03and I believe it still is,

65:05it's an extension of what search is trying to do.

65:08The goal is to make the information

65:10and make the world's information accessible.

65:14With ads, it's not just information,

65:17but it may be products or other things

65:19that people care about.

65:20And so it's really important for them to align

65:23with what the users need.

65:26And in search ads,

65:29there's a minimum quality level

65:30before that ad would be shown.

65:32If you don't have an ad that hits that quality,

65:34but it will not be shown even if we have it,

65:36and okay, maybe we lose some money there, that's fine.

65:39That is really, really important.

65:41And I think that is something I really liked

65:43about being there.

65:45Advertising is a key part.

65:48I mean, as a model, it's been around for ages, right?

65:51It's not a new model.

65:53It's been adapted to the web

65:54and became a core part of search

65:57and many other search engines across the world.

66:02I do hope, like I said,

66:04there are aspects of ads that are annoying

66:06and I go to a website

66:08and if it just keeps popping an ad in my face,

66:11not to let me read, that's gonna be annoying clearly.

66:13So I hope we can strike that balance

66:18between showing a good ad

66:23where it's valuable to the user

66:25and provides the monetization to the service.

66:31And this might be search,

66:32this might be a website, all of these.

66:34They do need the monetization

66:36for them to provide that service.

66:39But if it's done in that good balance

66:42between showing just some random stuff that's distracting

66:47versus showing something that's actually valuable.

66:50- So do you see it moving forward

66:53as to continue being a model

66:57that funds businesses like Google,

67:01that's a significant revenue stream?

67:05'Cause that's one of the most exciting things,

67:08but also limiting things in the internet

67:09is nobody wants to pay for anything.

67:12And advertisements, again, coupled at their best,

67:15are actually really useful and not annoying.

67:17Do you see that continuing and growing and improving

67:22or do you see more Netflix-type models

67:26where you have to start to pay for content?

67:29- I think it's a mix.

67:30I think it's gonna take a long while

67:32for everything to be paid on the internet, if at all.

67:35Probably not.

67:36I mean, I think there's always gonna be things

67:37that are sort of monetized with things like ads.

67:40But over the last few years, I would say,

67:42we've definitely seen that transition

67:44towards more paid services across the web

67:48and people are willing to pay for them

67:50because they do see the value.

67:51I mean, Netflix is a great example.

67:53I mean, we have YouTube doing things.

67:56People pay for the apps they buy.

67:58More people, I find, are willing to pay

68:01for newspaper content,

68:03for the good news websites across the web.

68:07That wasn't the case even a few years ago, I would say.

68:11And I just see that change in myself as well

68:13and just lots of people around me.

68:14So definitely hopeful that we'll transition

68:17to that mixed model where maybe you get

68:20to try something out for free, maybe with ads,

68:24but then there's a more clear revenue model

68:27that sort of helps go beyond that.

68:29- So speaking of revenue,

68:33how is it that a person can use the TPU

68:37in a Google Colab for free?

68:39So what's the--

68:40(laughing)

68:42I guess the question is, what's the future of TensorFlow

68:47in terms of empowering, say, a class of 300 students

68:51and then amassed by MIT,

68:55what is going to be the future of them being able

68:57to do their homework in TensorFlow?

69:00Like, where are they going to train these networks, right?

69:02What's that future look like with TPUs,

69:06with cloud services, and so on?

69:08- I think a number of things there.

69:10I mean, TensorFlow, open source, you can run it wherever.

69:13You can run it on your desktop

69:15and your desktops always keep getting more powerful,

69:17so maybe you can do more.

69:19My phone is, like, I don't know how many times

69:21more powerful than my first desktop.

69:23- You'll probably train it on your phone, though.

69:25Yeah, that's true.

69:26- Right, so in that sense,

69:27the power you have in your hands is a lot more.

69:30Clouds are actually very interesting from, say,

69:34students' or courses' perspective

69:36because they make it very easy to get started.

69:40I mean, Colab, the great thing about it

69:42is go to a website and it just works.

69:45No installation needed, nothing,

69:47you're just there and things are working.

69:50That's really the power of cloud as well.

69:52And so I do expect that to grow.

69:55Again, Colab is a free service.

69:57It's great to get started, to play with things,

70:00to explore things.

70:02That said, with free you can only get so much.

70:06So just like we were talking about,

§09Transcript · 1:10:10–1:10:51

70:10free versus paid, and yeah,

70:12there are services you can pay for and get a lot more.

70:15- Great, so if I'm a complete beginner

70:17interested in machine learning and TensorFlow,

70:20what should I do?

70:21- Probably start with going to our website

70:23and playing there.

70:24- So just go to TensorFlow.org and start clicking on things?

70:26- Yep, check our tutorials and guides.

70:28There's stuff you can just click there

70:29and go to Colab and do things.

70:31No installation needed, you can get started right there.

70:34- Okay, awesome, Rajat, thank you so much for talking today.

70:36- Thank you, Lex, it was great.

70:38(upbeat music)

70:40(upbeat music)

70:43(upbeat music)

70:46(upbeat music)

70:48(upbeat music)

70:51(upbeat music)

— 读到这里,多懂一点。 —