"Software engineering is not about writing code" — Benoit Schillings, Google DeepMind VP of Research

AI Engineer · 20 min · 184 sentences · from YouTube's caption track

Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.

  1. 00:01[music]
  2. 00:13Please welcome to the stage the vice president of research
  3. 00:17[music]
  4. 00:18at Google DeepMind, Benois Schillings.
  5. 00:22[music]
  6. 00:30[music]
  7. 00:49All right, good morning.
  8. 00:50Uh this is really quite exciting to be here and have a chance to to speak with all of you.
  9. 00:55Uh my name is Benois Shellings.
  10. 00:57I'm actually a bit of a noob when it comes to to machine learning.
  11. 01:02Till a year and a half ago, I was working for Google X which some of you may know.
  12. 01:08We've done things like Whimo, which seems to be at every street corner now.
  13. 01:13Uh we also do things like Glass.
  14. 01:15So, you know, we we had a mix of hit and success.
  15. 01:19But in many ways this was for me an interesting formative experience on how to run a research team in a place like deep mind.
  16. 01:27I do have an incredible team.
  17. 01:29Uh my team goal in deep mind is basically to develop whatever technology will be needed to make Gemini incredible between one months and one year from now.
  18. 01:42So one month because if you start to work on what is needed in one week that's a very different type of job and one year because I don't think anybody can really predict anything that far.
  19. 01:54So that's already pretty ambitious in my opinion to think about things that would happen one year in the future.
  20. 02:02We do many things under that role.
  21. 02:05Uh a lot of it is related to code which will be the main subject of my talk today.
  22. 02:11uh but we also do a lot of research on what is the evolution of reasoning for models for instance or we do topology research what are new type of network that might bring better performance
  23. 02:24uh we do fundamental work in the science of reinforcement learning which is so fundamental to what we're doing today with ML let's do a bit of an origin story Um,
  24. 02:40we started the project at X named Pitchfork uh in 2018 which was aimed at looking at how ML could really improve the way code is being written.
  25. 02:54And this was very interesting because in 2018 when we presented that at Google honestly nobody would give us the time of day.
  26. 03:03uh there was that point like why would you ever need ML to to write code.
  27. 03:09Um at the same time I think that we totally underestimated how fast this could go.
  28. 03:14When we did that project originally the idea was to look at how we could speed up the evolution of a piece of code.
  29. 03:22How could we make many of those small changes which slows down code speed development?
  30. 03:27you know the small edit which requires a review that takes three days and how we could compress that cycle.
  31. 03:35Some people were talking about vibe coding writing code in English and at the time honestly I totally dismissed that.
  32. 03:41I was that's why we have programming language.
  33. 03:43English is not a programming language.
  34. 03:45Well I I guess I was pretty wrong on that front.
  35. 03:50But the resistance we felt at the time reminded me of how my own career was pretty resistive to to change.
  36. 03:58Um I've been writing code for 45 years.
  37. 04:03Uh I started by writing video game for Apple 2 and Commodore 64.
  38. 04:07So uh my formation was to write assembly language.
  39. 04:12And when you spend a long time writing assembly language, you look at compilers with a lot of suspicion, right?
  40. 04:18are those things really working correctly?
  41. 04:21And then when you switch to C++ and use compiler, you lose you look at garbage collected languages as this h that's not real programming.
  42. 04:29You need to manage your memory.
  43. 04:31Well, today I use Python and V coding.
  44. 04:34So even old dogs can learn new tricks.
  45. 04:37So uh but I I I do understand what happened there.
  46. 04:43I think that we have a number of eras in what happened with software and and the first one was you know the one where I started writing code where the fundamental
  47. 04:53limit was really the machine and there was a lot of work to go and extract the last ounce of power out of those machine and that was the days of
  48. 05:05assembly language where you really needed to be incredibly accurate in the way you were writing code computing became much cheaper and we switched to the modern cloud era where
  49. 05:17getting the best performance is not the most critical aspect.
  50. 05:20You can actually brute force many problems but really what became the limiting factor was the ability for us to design in a modular way.
  51. 05:32You know this was the era where software was write it only once and this was this whole idea of how are you going to build libraries?
  52. 05:40How are you going to write functions?
  53. 05:42How are you going to break down that problem into something that is long-term manageable?
  54. 05:47The limitation there and that determine a lot of how our software process are working where actually the human brain.
  55. 05:55Uh a traditional human typical human is able to get the context between seven and nine tokens.
  56. 06:03I mean we have very rich tokens but you compare that to modern ML where the context is basically going to be infinite pretty soon.
  57. 06:11uh that fundamental limitation of human determined a lot of how software was being written.
  58. 06:18This is over and we're switching now to that AI frontier where really writing the code is not the challenge anymore.
  59. 06:26Uh I'll speak some more about it.
  60. 06:28But the bottlenecks are really how do you ensure that that code is what you really wanted because writing the code is easy but getting what is needed for a specific problem can be much harder to to specify.
  61. 06:41So humans at least in the near future will be that role of architecture or thinking of what are really the implication of that piece of code.
  62. 06:49I'm getting the ML to to design.
  63. 06:53Inductive thinking is another category where I think humans still have a very clear edge which is to look at a system in a much wider context and to be able to detect patterns and from those pattern take some decision.
  64. 07:08So where are we today?
  65. 07:10Um, superhuman syntax generation.
  66. 07:15When is the last time I got Gemini to write a function for me?
  67. 07:19And I looked at the function and I was like, I can do that better.
  68. 07:23It's over.
  69. 07:24Uh, I think that the minutia of code writing, I mean, you can fight, you can argue, you can find counter example, but that time is is gone.
  70. 07:33Where we still have a lot of work to do is multi-step code base.
  71. 07:38Uh software engineering is not about writing code.
  72. 07:42Software engineering is the first time you join a company and you realize that there are 35 million lines of PHP in the codebase and that you need to make some changes.
  73. 07:53That that's the day you understand what software engineering is and that's a place where our models today or frontier models are progressing.
  74. 08:00But this ability to manage that extreme complexity and break it down into man manageable pieces is a place where the frontier is still moving.
  75. 08:11Um it goes all the way to architecture.
  76. 08:15You look at I don't know the Google architecture.
  77. 08:19Thanks God we have Jeff Dean which was you know the the key architect there.
  78. 08:23But that's the level of thinking which has many implication which can go from how do you do hardware optimization?
  79. 08:30How do you manage security?
  80. 08:32How do you build a system so that 10 years later you're not full of regrets?
  81. 08:36And I think this is really the the range of progress we are working on today.
  82. 08:41So code is over but there's plenty to do.
  83. 08:44There's plenty of progress to be made.
  84. 08:48Now code is a very unique problem and in some way that's the reason we we did pitchfork on this.
  85. 08:55Um, first of all, code is a lot of data.
  86. 09:00There are other domains where you can find a lot of data to train your model, but code was so incredible.
  87. 09:05You could go and go on GitHub and start to to scrape GitHub.
  88. 09:09So, this was one of those problem where the amount of training data was a very unique situation.
  89. 09:16It is also a domain where doing verification is reasonable.
  90. 09:20You can run a piece of code, you can compile it, you can have unit test.
  91. 09:24So the ability to figure out is the model generating something correct was something that was pretty reasonable to do.
  92. 09:33That brought us where we are today.
  93. 09:35But today what happened is that we run out of training data.
  94. 09:39I think that 80% of the new code added to GitHub today is machine generated.
  95. 09:45So the notion of human bringing some knowledge that can be used for mining and to train model is reaching an end.
  96. 09:53But the good news is that we can do selfplay and selfplay is something we always liked a lot at deep mind.
  97. 10:01I suppose all know Alpha Zero.
  98. 10:03Alpha Zero became a superhuman go and chess player without any human knowledge just by playing against itself.
  99. 10:12We are now at that stage where Frontier model for code are able to do the same where they can create their own challenge.
  100. 10:20They can judge the validity of the answer.
  101. 10:22they can even to some extent judge the architecture.
  102. 10:26So that ability to do those hundreds of millions of hours of selfplay writing code is the thing that will bring us to the to the next layer.
  103. 10:36You know, it's interesting.
  104. 10:37Um do the experiment.
  105. 10:39Take a a brilliant software engineer, lock him in a room, lock him or her in a room for two years and feed pizza and give the mission you need to become a better software engineer.
  106. 10:51What do you do as a person?
  107. 10:52you you give yourself some challenges, challenges that you can verify and you keep working and coding on those challenges.
  108. 10:59We can do the same here.
  109. 11:00So this is an issue of how much compute, how much selfplay time we can have.
  110. 11:05But that will bring the horizon of how far we go in superhuman coding.
  111. 11:13So the economics of code are changing dramatically.
  112. 11:16You know, as I say, we developed a whole software engineering culture and infrastructure and set of companies based on the assumption that writing code was the hard part.
  113. 11:26That this was the expensive part.
  114. 11:29We're now in a world where writing code is free or nearly free.
  115. 11:33That's why I've got the tilda there.
  116. 11:37That means that the amount of code that we're going to see produced is going to explode.
  117. 11:43And there are some hard implications to that.
  118. 11:46First is the question of design and adequacy.
  119. 11:49How in front of that mountain of code which will be written or written dynamically, how do we keep systems which works and are reliable at the microscopic level?
  120. 11:59Great role for human.
  121. 12:01It is also the issue that you know we're writing code and we're not reading it very much anymore.
  122. 12:08I mean I know we still have code review but I would predict that in one year we'll let Gemini or other model generate the code and nobody will actually look at it.
  123. 12:20You know it's similar to compilers who still check the assembly output of their compiler and maybe someone there but that's probably the end of it.
  124. 12:30So the same thing is going to happen to code and that brings some question of what are the new process that we need to put in place to keep that manageable
  125. 12:40and that's where I've got a [clears throat] a bit of a list active guard rails.
  126. 12:45I mean you've all seen the news of mythos looking at a piece of code and detecting a unreasonable number of vulnerability in that code.
  127. 12:57there is a rush to go and patch those vulnerability but I think that's going to be a neverending process you know we're going to get a certain layer of vulnerability
  128. 13:07discovered by models we're going to fix those models will get smarter they will go a bit deeper and find even more subtle vulnerability so I think that the first aspect is that we need to think at least as much about code security
  129. 13:23and the implication of a piece of code than on the code writing itself and the grail and you know something my team is working actively on is instead of detecting
  130. 13:34the vulnerability and then suggesting some fix how about teaching model to write correct things from the start and that is very very hard to do because it is very context dependent
  131. 13:48the other aspect is that you know that's what I call inductive architecture uh I think that models today are still not very good at transferring knowledge of taking knowledge from one domain
  132. 14:01and applying it to another one or taking two concepts and finding the intersection of those context to be those context to be able to do deductive thinking.
  133. 14:12If we really want to write those very complex software system using ML that is a skill that we need to teach and you know one aspect of that is to really teach models
  134. 14:22how to do correct planning in front of a problem.
  135. 14:25How do you look at a very complex problem and decide what is the right decomposition of that problem that will bring the best clarity or correctness to the to the problem.
  136. 14:36We also need to change the way we do evaluation.
  137. 14:39I mean u threebench is infamous in in my book because threebench verifies if a piece of code runs and produce the right output.
  138. 14:51That's only a small part of as I mentioned earlier of code engineering.
  139. 14:56So for instance, I think that we need some problems much more in those benchmarks that we use which are open-ended problem.
  140. 15:04I I'll give an example.
  141. 15:05Uh I love the question of text compression.
  142. 15:09How many bits per character do you need and how far can you go?
  143. 15:13So that's a very simple eval to to write.
  144. 15:15You just take a piece of 10 megabyte of code and you tell the model write the best compressor you can that is lossless and the loss function in that case will be you know the size of the compressed file plus the size of the source code
  145. 15:29that's never ending I mean those problems are I think what's going to force those model to do novel things like creating totally new algorithmic for instance and I I think we're now getting to that stage
  146. 15:45Writing code or doing software engineering is not thinking as a chain of tokens.
  147. 15:51Thinking and reasoning today is chain of code which has been you know very successful and improve models a lot.
  148. 15:58But humans of course are much more complex in the way they think about problems.
  149. 16:03I always think that code writing is a very visual activity and that can be I don't know the block diagram of what you're doing or the flow of data through your code.
  150. 16:14uh but saying that code will be just a set of token that you emit that are going to be the code I think goes only up to a certain point
  151. 16:24that's a very interesting aspect to what we do at Google Gemini we made that choice from the onset that this would be a multimodal model that you know text was only one of the modality that Gemini would be able to apply
  152. 16:38and we're starting to see you know how can a model start to think in term of spatial or dynamic representation to to solve problem and I think that's going to become
  153. 16:49a must have another interesting question is is this time to create a new language for models Python you name it have been invented for humans and those language are not very good to write safe or reliable code I mean they're great to write code but they're certainly not the the best thing
  154. 17:12I think We're getting to the point where since the pain of writing the code does not exist anymore.
  155. 17:19How about we make writing the code much harder by having you know very strongly typed languages or you know some inspiration from lean on how to write code that by design it's not going to be perfect.
  156. 17:32I mean program proof is something which has some limits but at least putting the burden of correctness on the model.
  157. 17:39So I don't know if we have some language designers here, but I I I think there's something really to be done there and it doesn't need to be human readable.
  158. 17:47I I don't think that that will matter anymore.
  159. 17:51So beyond code, um code is a universal language to solve problems.
  160. 17:57I think that what we're starting to see is this ability to experiment very quickly in code is impacting other domain very quickly because doing experiment becomes basically free.
  161. 18:10So I think that looking at that intersection of code writing and atoms or science is another big front that we are opening that is the place where true novelty
  162. 18:21is going to appear.
  163. 18:24two which are especially exciting for me is chemistry.
  164. 18:29Um you know as humans we do not understand chemistry or we understand a very very small sliver of chemistry.
  165. 18:36Once you have more than 20 atoms in your molecule it's like wow we don't know what that thing is going to do.
  166. 18:42I think we're going to see incredible things emerging out of that.
  167. 18:45I mean once you are able to put 10,000 atom together that starts to look like life.
  168. 18:50So what are all the other things you can do with 10,000 atoms?
  169. 18:54Biology.
  170. 18:55You probably heard plenty about it, but you know, biology is the case of nature did an incredible engineering job and terrible job at documentation.
  171. 19:06Um, but we can crack through that now.
  172. 19:08Models are able to find those relationship that might be elusive for us.
  173. 19:12So I think that that is something that will open incredible door.
  174. 19:17And then there is what I call the gold we cannot see.
  175. 19:21Humans are incredibly biased in what we feel is the correct solution.
  176. 19:25I mean, we're the result of an evolutionary training that help us survive in the jungle, right?
  177. 19:31Not doing quantum computing.
  178. 19:34So, I think that even though we can be brilliant and innovative, there are whole bunch of progress and breakthrough that can be done which we just cannot see or perceive.
  179. 19:45If I had more time, I would give some examples.
  180. 19:47I think that's one of the thing where ML is such a different viewpoint on many of those problems that we're going to get the oh my god this was in front of us the whole time and we could not see it.
  181. 19:59So exciting times ahead.
  182. 20:01Thank you very much.
  183. 20:03[applause]
  184. 20:23[music]