Submind YouTube summaries
Thumbnail for François Chollet: History of Keras and TensorFlow | AI Podcast Clips

François Chollet: History of Keras and TensorFlow | AI Podcast Clips

Watch on YouTube

Video summary

François Chollet recounts the origins of Keras, which he began developing in February 2015 amidst a deep learning landscape dominated by C++ libraries like Caffe and Torch7. At that time, the field was relatively small with fewer than 10,000 practitioners, and computer vision using convolutional neural networks (CNNs) was the primary focus while natural language processing remained niche. Chollet identified a significant gap in reusable open-source implementations for NLP architectures like LSTMs and decided to build Keras as a Python-based solution that defined models directly through code rather than static configuration files, a design choice that contrasted with the prevailing industry standard at the time but aligned more closely with usability-focused tools like PyTorch. The project gained traction because it offered an easy-to-use interface for neural networks exactly when interest in NLP was surging, leading Chollet to join Google later in 2015 where he encountered early internal versions of TensorFlow. Although his initial role involved computer vision research rather than Keras development, the release of TensorFlow 0.7 served as a catalyst for him to port Keras onto the new framework by December 2015. This transition was not merely a simple port but an abstraction effort that allowed the same codebase to run on multiple backends like Theano and CNTK before eventually settling with TensorFlow, which quickly overtook other options in speed and adoption due to its architectural advantages for distributed training. In October 2016, Chollet moved from his independent research work at Google to a dedicated role within the TensorFlow team following an invitation from Rajat Monga. This shift allowed him to integrate the Keras API more tightly into TensorFlow's core infrastructure, evolving it from a separate contrib library into the standard high-level interface for the framework. The integration process transformed what was essentially a temporary tent-like version of Keras into a permanent component that defined how users interacted with deep learning models within Google's ecosystem, marking a pivotal moment where Chollet transitioned from building an external tool to shaping the internal architecture of one of AI's most influential platforms. Chollet expresses significant excitement about TensorFlow 2.0 and its implementation of eager execution, which fundamentally changes the framework's usability by making it more flexible without sacrificing high-level convenience. Previously, users faced a trade-off between using Keras for ease of use or writing raw code for flexibility; however, the new version eliminates this dichotomy by allowing developers to seamlessly mix low-level control with higher-level abstractions through subclassing and custom training loops. This spectrum of workflows enables researchers, data scientists, and machine learning engineers to operate at their preferred level of abstraction while maintaining access to powerful features like automatic differentiation and optimized execution graphs that were previously difficult to debug or customize in eager mode environments.
Read the full video transcript
let's go from the philosophical to the practical I can give me a history of Karis and all the major deep learning frameworks that you kind of remember in relation to chaos and in general tensorflow siano the old days you give a brief overview Wikipedia style history and your role in it before return to AGI discussions yeah that's a broad topic so I started working on chaos to the name chaos at the time I actually picked the name like just today I was gonna release it so I started working on it in February 2015 and so at the time there weren't too many people working on deep learning maybe like fewer than 10,000 the software tuning was not really developed so the deepening library was cafe which was mostly C++ why do I say cafe was the main one cafe was vastly more popular than ya know in in late 2014 early 2015 cafe was the one library that everyone was using for computer vision and computer vision was the most popular problem absolutely company like covenants was like the subfield of deplaning it everyone was working on so myself suing in in late 2014 I was actually interested in islands in Rico neural networks which was a very niche topic at the time right III a tree to catherine around 2016 and so I was looking for good tools and I had used torch 7 News Channel you stay on a lot in Carroll competitions mmm I just cafe and there was no like good solution for Ireland's at the time like there was no reusable open-source implementation of in lsdm for instance so I decided to build my own and that first the pitch for that was it was going to be mostly around LSTA memory on your networks it was going to be in Python an important decision at the time that was Canon are obvious is that the models would be defined yeah a Python code which was kind of like going against the mainstream at the time because cafe thailand who wants on like all the big libraries were actually going with you approach sharing static configuration files in yemen to define models so some libraries were using code to define models like torch 7 obviously that was not python Lezyne was like a piano based very early library that was I think developed I don't remember exactly probably late 2014 Python as well it's Python as well it was it was like on top of Tiano and so I started working on something and in the value proposition at the time was that not only that the what I think was the first reducible open-source implementation affair astrium you could combine Islands and covenants with the same library which is not really possible before like a he was on into incontinence and it was kind of easy to use because so before I was using the N I was actually doing cycling and I loved psychically for its usability so I drew a lot of inspiration from cycling when I meant Cara's it's almost like psychically and for neural networks yeah the fit function exactly the v function like reducing a complex training loop to a single function core right and of course you know some people will say this is hiding a lot of details but that's exactly the point all right the magic is the point right so it's magical but in a good way it's magical in the sense that it's delightful yeah right yeah I'm actually quite surprised I didn't know that it was born out of desire to implement our hands in lc/ms it was that's fascinating so you were actually one of the first people to really try to attempt to get the major architectures together and it's also interesting you made me realize that that was a design decision at all is defining the modeling code just I'm putting myself in your shoes whether the yamo especially if cafe was the most popular it was the most spoken I might fall if I was I'm if I were yeah I don't it I didn't like the nominal thing but it makes more sense that you will put in a configuration file the definition of a model that's an interesting gutsy move just stick with defining it in code just if you look back other libraries where we're doing it this way but it was definitely the more niche option yeah okay Cara's and then your ass sorry discus in March 2015 and it got you just pretty much from the start so the deepening community was very small at the time lots of people were starting to be interested in the rest um so it was gonna release it at the right time because it was offering and easy to use it as implementation exactly at the time where lots of you started to be intrigued by the capabilities of O&N on and so NLP so it it grew from there then I joined Google months later and that was actually completely unrelated to took care of actually joined a research team working on image classification mostly like computer vision so I was doing computer vision research at Google initially and immediately when I joined Google I was exposed to the early internal version of tensorflow and the way to peel to me at the time and it was definitely wait West at the time is that this was an improved version of Tiano so I immediately knew I had to Port Charles to this new tensorflow thing and I was actually very busy as as as a noogler as new Googler so I had not time to work on that but then in November I think twist November 2015 tensile flu got released and it was kind of like my my wake-up call at hey to actually you know go on make it happen so in December I I putted cars to run on two of tensorflow but it was not exactly port it was more accurate factoring where I was abstracting away all the backend functionality into one module then the same codebase could run on top of multiple backends right so on top of danceBlue orthia no and for the next year yeah no you know state as the default option it was you know it was easier to use somewhat let's begin it was much faster especially when he came to ordinance but eventually you know a tensorflow overtook it right and tester for the early test for a similar architectural decisions this piano yeah so what is there was a natural as a natural transition yeah absolutely so what I mean that still carries is the side almost fun project right yeah so it it was not my job assignment it's not I was doing it on the side so I'm and even though it grew to have you know a lot of uses for a deepening library at the time like Stroud 2016 but I wasn't doing it as my main job so things started changing in I think it's mustard maybe October 2016 so one year later so Rashad who has the lead intensive law basically showed up one day in our building I was doing like so I was doing research and things like so I added of computer vision research also collaborations with Christians are getting and deplaning for theory improving this is a really interesting research topic and so Rajat was saying hey we so Kara's we liked it we saw that you had Google why don't you come over for like a quarter and and and work with us I was like yeah that sounds like a great opportunity let's do it and so I started working on integrating the chaos API into tends to flow more tightly so what fold up is sort of like temporary tents of lonely version of chaos that was in tents for that contrib for a while and finally moved to dance to the core and you know I've never actually gotten back to my old sim doing research well it's kind of funny that somebody like you who dreams of or at least sees the power of AI systems the reason and theorem proving we'll talk about has also created a system and makes the the most basic kind of Lego building that is deep learning super accessible super easy so beautifully so that's the funny irony that your book is just both you're responsible for both things but so Tessa flow 2.0 it's kind of there's a sprint I don't know how long I'll take but there's a sprint towards the finish what do you look what are you working on these days what are you excited about what are you excited about in 2.0 I mean eager execution there's so many things that just make it a lot easier ya know to work what are you excited about and what's also really hard what are the problems you have to kind of solve so I've spent the past yeah aha working on 1002 it's been a long journey I'm actually extremely excited about it I think it's a great product it's a delightful product competitors for one we met huge progress so on the carrot side what I'm really excited about is that so you know previously Kara's has been this very easy-to-use high level interface to do deep learning but if you wanted to you know if you wanted a lot of flexibility the chaos framework you know was probably not the optimal way to do things compared to just writing everything from scratch so in some way the framework was getting in the way and in terms of you - you don't have this at all actually you have the usability of the high level interface but you have the flexibility of this lower level interface and you have this spectrum of workflows where you can get more or less usability and flexibility the trade-offs depending on your needs right you can write everything from scratch and you get a lot of help doing so by you know sub-classing models and writing some train loops using ego execution it's very flexible is very easy to debug is very powerful but all of these integrates seamlessly with higher level features up to you know the classic era square fruits which which are very psychically unlike and and you know ideal for a data scientist machining engineer type of profile so now you can have the same framework offering the same set of api's that enable a spectrum of workflows that are more or less Louisville more less high level that are suitable for you know profiles ranging from researchers to data scientists and everything in between you