Tesla AI Day 2021
Questions on ElonsFAQ asked in this interview (3)
Transcript
47:09Elon MuskHello everyone. Sorry for, for the delay. Thanks for coming and sorry I had some technical difficulties. Really. AI for this? So what, what we want to show today is that Tesla is much more than an electric car company, that we have deep AI activity in hardware, on the inference level, on the training level, and basically we, I think we're, I think arguably the leaders in real world AI as it applies to real world.
47:46Elon MuskAnd those of you who have seen the full self driving beta, I can appreciate the rate at which the Tesla neural net is learning to drive and this is a particular application of AI, But I think there's, there's more, there are more applications down the road that will make sense and we'll talk about that later in the presentation.
48:08Elon MuskBut yeah, we basically want to encourage anyone who is interested in solving real world AI problems at either the hardware or the software level to join Tesla or consider joining Tesla.
48:20Elon MuskSo let's see, we'll start off with Andre. Yep,
48:33Andrej KarpathyI think.
48:33Elon MuskNever mind.
48:35Andrej KarpathyOkay. Hi everyone. Is my mic on? I hope so.
48:38Elon MuskIf not, I'll give you mine.
48:40Andrej KarpathyIt doesn't sound like it. Okay.
48:42Elon MuskHello.
48:43Andrej KarpathyGreat. Okay. Hi everyone. Welcome. My name is Andre and I am, I lead the vision team here at Tesla Autopilot and I'm incredibly excited to be here to kick off this section, giving you a technical deep dive into the autopilot stack and showing you all the under the hood components that go into making a car drive all by itself.
49:05Andrej KarpathySo we're going to start off with the vision component here. Now in the vision component, what we're trying to do is we're trying to design a neural network that processes the raw information, which in our case is the eight cameras that are positioned around the vehicle and they send us images and we need to process that in real time into what we call the vector space.
49:22Andrej KarpathyAnd this is a three dimensional representation of everything you need for driving. So this is the three dimensional positions of lines, edges, curbs, traffic signs, traffic lights, cars, their positions, orientations, depths, velocities and so on.
49:39Andrej KarpathySo here I'M showing a video of. Actually, hold on. Apologies. So here I'm showing the video of the raw inputs that come into the stack and then neural over processes that into the vector space.
49:55Andrej KarpathyAnd you are seeing parts of that vector space rendered in the instrument cluster on the car.
50:10Andrej KarpathyNow what I find kind of fascinating about this is that we are effectively building a synthetic animal from the ground up. So the car can be thought of as an animal.
50:18Andrej KarpathyIt moves around, it senses the environment, and, you know, acts autonomously and intelligently. And we are building all the components from scratch in house. So we are building, of course, all of the mechanical components of the body, the nervous system, which is all the electrical components, and for our purposes, the brain of the autopilot, and specifically for this section, the synthetic visual cortex.
50:39Andrej KarpathyNow, the biological visual cortex actually has quite intricate structure and a number of areas that organize the information flow of this brain. And so in particular in our, in your visual cortexes, the information hits the light, hits the retina, goes through the lgn, all the way to the back of your visual cortex, goes through areas V1, V2, V4, the IT, the ventral and the dorsal streams.
51:00Andrej KarpathyAnd the information is organized in a certain layout. And so when we are designing the visual cortex of the car, we also want to design the neural network architecture of how the information flows in the system.
51:13Andrej KarpathySo the processing starts in the beginning when light hits our artificial retina. And we are going to process this information with neural networks. Now, I'm going to roughly organize this section chronologically, so starting off with some of the neural networks and what they looked like roughly four years ago when I joined the team and how they have developed over time.
51:31Andrej KarpathySo roughly four years ago, the car was mostly driving in a single lane going forward on the highway. And so it had to keep lane and it had to keep distance away from the car in front of us.
51:42Andrej KarpathyAnd at that time, all of processing was only on individual image level. So a single image has to be analyzed by a neural net and make little pieces of the vector space, process that into little pieces of the vector space.
51:53Andrej KarpathySo this processing took the following shape. We take a 1280 by 960 input and this is 12 bit integers streaming in at roughly 36 hertz. Now we're going to process that with a neural network.
52:04Andrej KarpathySo we instantiate a feature extractor backbone. In this case, we use residual neural networks. So we have a stem and a number of residual blocks connected in series. Now the specific class of resnets that we use are regnets, because we like this is Like a very.
52:18Andrej KarpathyRegnets offer a very nice design space for neural networks because they allow you to very nicely trade off latency and accuracy. Now these rec nets give us as an output a number of features at different resolutions and different scales.
52:32Andrej KarpathySo in particular on the very bottom of this feature hierarchy we have very high resolution information with very low channel counts. And all the way at the top we have low spatial, low resolution spatially, but high channel counts.
52:44Andrej KarpathySo on the bottom we have a lot of neurons that are really scrutinizing the detail of the image. And on the top we have neurons that can see most of the image and a lot of that contrast have a lot of that scene context.
52:54Andrej KarpathyWe then like to process this with feature pyramid networks. In our case we like to use BIFBNs and they get to multiple scales to talk to each other effectively and share a lot of information.
53:04Andrej KarpathySo for example, if you're a neuron all the way down in the network and you're looking at a small patch and you're not sure if this is a car or not, it definitely helps to know from the top layers that hey, you are actually in the vanishing point of this highway.
53:15Andrej KarpathyAnd so that helps you disambiguate that this is probably a car. After a BIFBN and a feature fusion across scales, we then go into task specific heads. So for example, if you are doing object detection, we have a one stage YOLO like object detector here where we initialize a raster and there's a binary bit per position telling you whether or not there's a car there.
53:36Andrej KarpathyAnd then in addition to that, if there is, here's a bunch of other attributes you might be interested in. So the XY with height offset or any of the other attributes like what type of a car is this?
53:44Andrej KarpathyAnd so on. So this is for the detection by itself. Now, very quickly we discovered that we don't just want to detect cars, we want to do a large number of tasks.
53:53Andrej KarpathySo for example, we want to do traffic light recognition and detection, a lane prediction and so on. So very quickly we converged in this kind of architectural layout where there's a common shared backbone and then branches off into a number of heads.
54:05Andrej KarpathySo we call these therefore hydro nets and these are the heads of the hydra. Now this architectural layout has a number of benefits. So number one, because of the feature sharing, we can amortize the forward pass inference in the car at test time.
54:21Andrej KarpathyAnd so this is very efficient to run because if we had to have a backbone for every single task, that would be A lot of backbones in the car.
54:28Andrej KarpathyNumber two, this decouples all of the tasks so we can individually work on every one task in isolation. And for example, we can, we can uprev any of the data sets or change some of the architecture of the head and so on.
54:38Andrej KarpathyAnd you are not impacting any of the other tasks. And so we don't have to revalidate all the other tasks, which can be expensive. And number three, because there's this bottleneck here in features, what we do fairly often is that we actually cache these features to disk.
54:52Andrej KarpathyAnd when we are doing these fine tuning workflows, we only fine tune from the cached features up and only fine tune the heads. So most often in terms of our training workflows, we will do an end to end training run once in a while where we train everything jointly, then we cache the features at the multi scale feature level and then we fine tune off of that for a while and then end to end train once again and so on.
55:16Andrej KarpathySo here's the kinds of predictions that we were obtaining, I would say several years ago now from one of these hydronets. So again, we are processing individual images.
55:27Elon MuskThere we go.
55:27Andrej KarpathyWe are processing just individual image and we're making a large number of predictions about these images. So for example, here you can see predictions of the stop signs, the stop lines, the lines, the edges, the cars, the traffic lights, the curbs here, whether or not the car is parked, all of the static objects like trash cans, cones and so on.
55:46Andrej KarpathyAnd everything here is coming out of the net here, in this case out of the Hydra net. So that was all fine and great, but as we worked towards fsd, we quickly found that this is not enough.
55:56Andrej KarpathySo where this first started to break was when we started to work on Smart Summon. Here I am showing some of the predictions of only the curb detection task and I'm showing it now for every one of the cameras.
56:07Andrej KarpathySo we'd like to wind our way around the parking lot to find the person who is summoning the car. Now the problem is that you can't just directly drive on image space predictions.
56:15Andrej KarpathyYou actually need to cast them out and form some kind of a vector space around you. So we attempted to do this using C and developed what we call the occupancy tracker at the time.
56:27Andrej KarpathySo here we see that the curb detections from the images are being stitched up across camera scenes, camera boundaries and over time. Now there were two major problems, I would say, with this setup.
56:37Andrej KarpathyNumber one, we very quickly discovered that tuning the Occupancy tracker and all of its hyperparameters was extremely complicated. You don't want to do this explicitly by hand in C.
56:46Andrej KarpathyYou want this to to be inside a neural network and train that end to end. Number two, we very quickly discovered that the image space is not the correct output space.
56:53Andrej KarpathyYou don't want to make predictions in the image space. You really want to make it directly in the vector space. So here's a way of illustrating the issue. So here I'm showing on the first row the predictions of our curves and our lines in red and blue and they look great in the image.
57:09Andrej KarpathyBut once you cast them out into the vector space, things start to look really terrible and we are not going to be able to drive on this. So you see how the predictions are quite bad in vector space.
57:20Andrej KarpathyAnd the reason for this fundamentally is because you need to have an extremely accurate depth per pixel in order to actually do this projection. And so you can imagine just how high of a bar it is to predict that depth so accurately in these tiny in every single pixel of the image.
57:34Andrej KarpathyAnd also, if there's any occluded area where you'd like to make predictions, you will not be able to because it's not an image space concept in that case. So we very quickly real.
57:46Andrej KarpathyThe other problems with this, by the way, is also for object detection, if you are only making predictions per camera, then sometimes you will encounter cases like this where a single car actually spans five of the eight cameras.
57:58Andrej KarpathyAnd so if you are making individual predictions, then no single camera sees all of the car. And so obviously you're not going to be able to do a very good job of predicting that whole car.
58:07Andrej KarpathyAnd it's going to be incredibly difficult to fuse these measurements. So we have this intuition that what we'd like to do instead is we'd like to take all of the images and simultaneously feed them into a single neural net and directly output in vector space.
58:19Andrej KarpathyNow this is very easily said, much more difficult to actually achieve. But roughly we want to lay out a neural net in this way where we process every single image with a backbone and then we want to somehow fuse them and we want to re represent the features from image space features to directly some kind of a vector space features and then go into the decoding of the head.
58:41Andrej KarpathyNow so there are two problems with this problem. Number one, how do you actually create the neural network components that do this transformation and you have to make it differentiable so that end to end training is possible.
58:54Andrej KarpathyAnd number two, the if you want vector space predictions from your neural net, you need vector based data sets. So just labeling images and so on is not going to get you there.
59:04Andrej KarpathyYou need vector space labels. We're going to talk a lot more about problem number two later in the talk. For now I want to focus on the neural network architecture.
59:11Andrej KarpathySo I'm going to deep dive into problem number one. So here's the rough problem, right? We're trying to have this bird's eye view prediction instead of image space predictions.
59:20Andrej KarpathySo for example, let's focus on the single pixel in the output space in yellow. And this pixel is trying to decide am I part of a curb or not?
59:26Andrej KarpathyAs an example. And now where should the support for this kind of a prediction come from in the image space? Well, we know roughly how the cameras are positioned and their extrinsics and intrinsics, so we can roughly project this point into the camera images.
59:40Andrej KarpathyAnd you know, the evidence for whether or not this is a curve may come from somewhere here in the images. The problem is that this projection is really hard to actually get correct because it is a function of the road surface.
59:50Andrej KarpathyThe road surface could be sloping up or sloping down. Or also there could be other data dependent issues. For example, there could be occlusion due to a car. So if there's a car occluding this viewport, this part of the image, then actually you may want to pay attention to a different part of the image, not the part where it projects.
1:00:06Andrej KarpathyAnd so because this is data dependent, it's really hard to have a fixed transformation for this component. So in order to solve this issue, we use a transformer to represent this space.
1:00:16Andrej KarpathyAnd this transformer uses multi headed self attention and blocks of it. In this case actually we can get away with even a single block doing a lot of this work.
1:00:26Andrej KarpathyAnd effectively what this does is you initialize a raster of the size of the output space that you would like and you tile it with positional encodings with sines and cosis in the output space.
1:00:36Andrej KarpathyAnd then these get encoded with an MLP and into set of query vectors. And then all of the images and their features also emit their own keys and values.
1:00:44Andrej KarpathyAnd then the queries, keys and values feed into the multi headed self attention. And so effectively what's happening is that every single image piece is broadcasting in its key, what is it a part of?
1:00:55Andrej KarpathySo hey, I'm part of a pillar in roughly this location and I'm seeing this kind of stuff and that's in the key and then every query is something along the lines of, hey, I'm a pixel in the output space at this point position and I'm looking for features of this type.
1:01:07Andrej KarpathyThen the keys and the queries interact multiplicatively and then the values get pooled accordingly. And so this re represents the space. And we found this to be very effective for this transformation.
1:01:18Andrej KarpathySo if you do all of the engineering correctly, this again is very easily said, difficult to do. You do all of the engineering correctly. There's one more, there's one more problem actually before, I'm not sure why it puts up with the slides.
1:01:32Andrej KarpathySo one more thing, you have to be careful with some of the details here when you are trying to get this to work. So in particular, all of our cars are slightly cockeyed in a slightly different way.
1:01:41Andrej KarpathyAnd so if you're doing this transformation from image space to the output space, you really need to know what your camera calibration is and you need to feed that in somehow into the neural net.
1:01:49Andrej KarpathyAnd so you could definitely just like concatenate the camera calibrations of all of the images and somehow feed them in with an mlp. But actually we found that we can do much better by transforming all of the images into a synthetic virtual camera using a special rectification transform.
1:02:04Andrej KarpathySo this is what that would look like. We insert a new layer right above the image rectification layer. It's a function of camera calibration and it translates all of the images into a virtual common camera.
1:02:16Andrej KarpathySo if you were to average up a lot of repeater images, for example, which faced at the back, you would put and without doing this, you would get a kind of a blur.
1:02:23Andrej KarpathyBut after doing the rectification transformation, you see that the back mirror gets really crisp. So once you do this, this improves the performance quite a bit. So here are some of the results.
1:02:36Andrej KarpathySo on the left we are seeing what we had before and on the right we're now seeing significantly improved predictions coming directly out of the neural net. This is a multi camera network predicting directly in vector space.
1:02:46Andrej KarpathyAnd you can see that it's basically night and day. You can actually drive on this. And this took some time and some engineering and incredible work from the AI team to actually get this to work and deploy and make it efficient in the car.
1:03:01Andrej KarpathyThis also improved a lot of our object detection. So for example, here in this video I'm showing single camera predictions in orange and multi camera predictions in blue. And basically, if you can't predict these cars, if you are only seeing a tiny sliver of A car.
1:03:15Andrej KarpathySo your detections are not going to be very good and their positions are not going to be good. But a multi camera network does not have an issue. Here's another video from a more nominal sort of situation.
1:03:23Andrej KarpathyAnd we see that as these cars in this tight space cross camera boundaries, there's a lot of jank that enters into the predictions. And basically the whole setup just doesn't make sense, especially for very large vehicles like this one.
1:03:34Andrej KarpathyAnd we can see that the multi camera network struggles significantly less with these kinds of predictions. Okay, so at this point we have multi camera networks and they're giving predictions directly in vector space, but we are still operating at every single instant in time completely independently.
1:03:49Andrej KarpathySo very quickly we discovered that there's a large number of predictions we want to make that actually require the video context. And we need to somehow figure out how to feed this into the net.
1:03:57Andrej KarpathySo in particular, is this car parked or not? Is it moving? How fast is it moving? Is it still there even though it's temporarily occluded? Or for example, if I'm trying to predict the road geometry ahead, it's very helpful to know if the signs or the road markings that I saw 15 years ago.
1:04:12Andrej KarpathySo we tried to develop, we tried to insert video modules into our neural network architecture. And this is kind of one of the solutions that we've converged on. So we have the multiscale features as we had them from before.
1:04:22Andrej KarpathyAnd what we are going to now insert is a feature queue module that is going to cache some of these features over time and then a video module that is going to fuse this information temporally and then we're going to continue into the heads that do the decoding.
1:04:36Andrej KarpathyNow I'm going to go into both of these blocks one by one. Also in addition, notice here that we are also feeding in the kinematics. This is basically the velocity and the acceleration that's telling us about how the car is moving.
1:04:47Andrej KarpathySo not only are we going to keep track of what we're seeing from all the cameras, but also how the car has traveled. So here's the feature view and the rough layout of it.
1:04:57Andrej KarpathyWe are basically concatenating these features over time and the kinematics of how the car has moved and the positional encodings and that's being concatenated, encoded and stored in a feature queue and that's going to be consumed by a video module.
1:05:10Andrej KarpathyNow there's a few details here again to get right. So in particular with respect to the pop and push mechanisms and when did you push and how and especially when do you push?
1:05:19Andrej KarpathyBasically. So here's a cartoon diagram illustrating some of the challenges here. There's going to be the ego cars coming from the bottom and coming up to this intersection here.
1:05:28Andrej KarpathyAnd then traffic is going to start crossing in front of us and it's going to temporarily start occluding some of the cars ahead. And then we're going to be stuck at this intersection for a while and just waiting our turn.
1:05:37Andrej KarpathyThis is something that happens all the time and is a cartoon representation of some of the challenges here. So number one, with respect to the feature queue, and when we want to push into a queue, obviously we'd like to have some kind of a T time based queue where, for example, we enter features into the queue, say every 27 milliseconds.
1:05:53Andrej KarpathyAnd so if a car gets temporarily occluded, then the neural network now has the power to be able to look and reference the memory in time and learn the association that, hey, even though this thing looks occluded right now, there's a record of it in my previous features and I can use this to still make a detection.
1:06:10Andrej KarpathySo that's kind of like the more obvious one. But the one that we also discovered is necessary in our case. Case is, for example, suppose you're trying to make predictions about the road surface and the road geometry ahead, and you're trying to predict that I'm in a turning lane and the lane next to us is going straight.
1:06:26Andrej KarpathyThen it's really necessary to know about the line markings and the signs and sometimes they occur a long time ago. And so if you only have a time based queue, you may forget the features while you're waiting at your red light.
1:06:38Andrej KarpathySo in addition to a time based on, we also have a space based cue. So we push every time the car travels a certain fixed distance. So some of these details actually can matter quite a bit.
1:06:48Andrej KarpathyAnd so in this case, we have a time based queue and a space based queue to cache our features. And that continues into the video module. Now for the video module, we looked at a number of possibilities of how to fuse this information temporally.
1:06:59Andrej KarpathySo we looked at three dimensional convolutions, Transformers, axial transformers, in an effort to try to make them more efficient. Recurrent neural networks of a large number of flavors. But the one that we actually like quite a bit as well, and I want to spend some time on is a spatial recurrent neural network video module.
1:07:15Andrej KarpathyAnd so what we're doing here is because of the structure of the problem we're driving on two dimensional surfaces. We can actually organize the hidden state into a two dimensional lattice.
1:07:24Andrej KarpathyAnd then as the car is driving around, we update only the parts that are near the car and where the car has visibility. So as the car is driving around, we are using the kinematics to integrate the position of the car in the hidden features grid.
1:07:37Andrej KarpathyAnd we are only updating the RNN at the points where we have that are nearby us, sort of. So here's an example of what that looks like here. What I'm going to show you is the car driving around and we're looking at the hidden state of this rnn.
1:07:59Andrej KarpathyAnd these are different channels in the hidden state. So you can see that this is after optimization and training this neural net, you can see that some of the channels are keeping track of different aspects of the road, like for example, the centers of the road, the edges, the lines, the road surface, and so on.
1:08:13Andrej KarpathyHere's another cool video of this. So this is looking at the mean of the first 10 channels in the hidden state for different traversals of different intersections. And all I want you to see basically is that there's cool activity as the recurrent neural network is keeping track of what's happening at any point in time.
1:08:30Andrej KarpathyAnd you can imagine that we've now given the power to the neural network to actually selectively read and write to this memory. So for example, if there's a car right next to us and is occluding some parts of the road, then now the network has the ability to not write to those locations.
1:08:43Andrej KarpathyBut when the car goes away and we have a really good view, then the recurrent neural net can say, okay, we have very clear visibility. We, we definitely want to write information about what's in that part of space.
1:08:53Andrej KarpathyHere's a few predictions that show what this looks like. So here we are making predictions about the road boundaries in red intersection areas, in blue, road centers and so on.
1:09:04Andrej KarpathySo we're only showing a few of the predictions here just to keep the visualization clean. And yeah, this is done by the spatial rnn. And this is only showing a single clip, a single traversal.
1:09:16Andrej KarpathyBut you can imagine there could be multiple trips through here and basically number of cars and number of clips could be collaborating to build this map, basically and effectively an HD map.
1:09:25Andrej KarpathyExcept it's not in a space of explicit items, it's in a space of features of a recurrent neural network, which is kind of cool. I haven't seen that before.
1:09:35Andrej KarpathyThe video networks also improved our object detection Quite a bit. So in this example I want to show you a case where there are two cars over there and one car is going to drive by and occlude them briefly.
1:09:46Andrej KarpathySo look at what's happening with the single frame and the video predictions as the cars pass in front of us.
1:09:55Andrej KarpathyYeah, so that makes a lot of sense. So a quick playthrough through what's happening. When both of them are in view, the predictions are roughly equivalent and you are seeing multiple orange boxes because they're coming from the different cameras.
1:10:10Andrej KarpathyWhen they are occluded, the single frame networks drop the detection, but the video module remembers it and we can persist the cars and then when they are only partially occluded, the single frame network is forced to make its best guess about what it's seeing and it's forced to make a prediction and it makes a really terrible prediction.
1:10:26Andrej KarpathyBut the video module knows that there's only a partial that you know it has the information and knows that this is not a very easily visible part right now and doesn't actually take that into account.
1:10:37Andrej KarpathyWe also saw significant improvements in our ability to estimate depth and of course especially velocity. So here I'm showing a clip from our remove the radar push where we are seeing the radar depth and velocity in green and we were trying to match or even surpass of course the signal just from video networks alone.
1:10:54Andrej KarpathyAnd what you're seeing here is in orange we are seeing single frame performance and in blue we are seeing again video modules. And so you see that the quality of depth is much higher and for velocity, the orange signal, of course you can't get velocity out of a single frame network.
1:11:09Andrej KarpathySo we use, we just differentiate depth to get that. But the video module actually is basically right on top of the radar signal. And so we found that this worked extremely well for us.
1:11:20Andrej KarpathySo here's putting everything together. This is what our architectural roughly looks like today. So we have raw images feeding on the bottom. They go through a rectification layer to correct for camera calibration and put everything into a common virtual camera.
1:11:34Andrej KarpathyWe pass them through regnets residual networks to process them into a number of features at different scales. We fuse the multiscale information with bifbn. This goes through a transformer module to re represent it into the vector space in the output space.
1:11:47Andrej KarpathyThis feeds into a feature queue in time or space that gets processed by a video module like the spatial RNN and then continues into the branching structure of the HydroNet with trunks and heads for all the different tasks and so that's the architecture, roughly what it looks like today.
1:12:01Andrej KarpathyAnd on the right you are seeing some of its predictions sort of visualized both in a top down vector space and also in images. So definitely this architecture has definitely complexified from just a very simple image based single network about three or four years ago and continues to evolve, is definitely quite impressive.
1:12:18Andrej KarpathyNow there's still opportunities for improvements that the team is actively working on. For example, you'll notice that our fusion of time and space is fairly late in neural network terms.
1:12:26Andrej KarpathySo maybe we can actually do earlier fusion of space or time and do for example cost volumes or optical flow like networks on the bottom. Or for example our outputs are dense rasters and it's actually pretty expensive to post process some of these dense rasters in the car.
1:12:39Andrej KarpathyAnd of course we are under very strict latency requirements, so this is not ideal. We actually are looking into all kinds of ways of predicting just the sparse structure of the road, maybe like, you know, point by point or in some other fashion that is, that doesn't require expensive post processing.
1:12:54Andrej KarpathyBut this basically is how you achieve very nice vector space. And now I believe Ashok is going to talk about how we can run play and control on top of it.
1:13:12Ashok ElluswamyThank you, Andre. Hi everyone, my name is Ashok. I lead the planning and controls, auto labeling and simulation teams. Like Andre mentioned, the vision networks take dense video data and then compress it down into a 3D vector space.
1:13:25Ashok ElluswamyThe role of the panel now is to consume this vector space and get the car to the destination while maximizing the safety, comfort and the efficiency of the car.
1:13:34Ashok ElluswamyEven back in 2019, our planner was pretty capable driver. It was able to stay in the lanes, make lane changes as necessary and take exits of the highway. But CDC driving is much more complicated.
1:13:45Ashok ElluswamyRarely there are structured lane lines. Vehicles do much more free from driving than the car has to respond to. All of curtains and crossing, vehicles and pedestrians doing funny things.
1:14:00Ashok ElluswamyWhat is the key problem in planning? Number one, the action space is very non convex and number two, it is high dimensional. What I mean by non convex is there can be multiple possible solutions that can be independently good.
1:14:17Ashok ElluswamyBut getting a globally consistent solution is pretty tricky. So there can be pockets of local minima that the planet can get stuck into. And secondly, the high dimensionality comes because the car needs to plan for the next 10 to 15 seconds.
1:14:31Ashok ElluswamyIt needs to produce the position velocities and acceleration over this entire window. This is a lot of parameters to produce at runtime. Discrete search methods are really great at solving non convex Problems because they are discrete, they don't get stuck in local minima.
1:14:45Ashok ElluswamyWhereas continuous function optimization can easily get stuck in local minima and produce poor solutions that are not great. On the other hand, for high dimensional problems, discrete search sucks because of the it is discrete, it does not use any gradient information.
1:15:00Ashok ElluswamySo literally it has to go and export each point to know how good it is. Whereas countries optimization use gradient based methods. So very quickly go to a good solution.
1:15:10Ashok ElluswamyOur solution to this entire problem is to break it down hierarchically. First use a code search method to crunch down the non convexity and come up with a convex corridor.
1:15:20Ashok ElluswamyAnd then use continuous optimization techniques to make the final smooth trajectory. Let's see an example of how the search operates. So here we're trying to do a lane change.
1:15:33Ashok ElluswamyIn this case the car needs to do two back to back lane changes to make the left turn up ahead. For this the car searches over different maneuvers. So the first one it searches is lane chain that's close by.
1:15:50Ashok ElluswamyBut the car brakes pretty harshly, so it's pretty uncomfortable. The next maneuver it tries, that's the lane change. Bit late, so it speeds up, goes behind the other car, goes in front of the other cars and finds at the lane change.
1:16:02Ashok ElluswamyBut now it risks missing the left turn. We do thousands of such searches in a very short time span. Because these are all physics based models, these features are very easy to simulate.
1:16:15Ashok ElluswamyAnd in the end we have a set of candidates and we finally choose one based on the optimality, conditions of safety, comfort and easily making the turn. So now the car has chosen this path and you can see that as the car executes this trajectory, it pretty much matches what we had planned.
1:16:30Ashok ElluswamyThe cyan plot on the right side here, that one is the actual velocity of the car and the white line underneath. It was a plan. So we are able to plan for 10 seconds here and able to match that when we see in hindsight.
1:16:44Ashok ElluswamySo this is a well made plan. When driving alongside other agents, it's important to not just plan for ourselves, but instead we have to plan for everyone jointly and optimize for the overall scene's traffic flow.
1:16:59Ashok ElluswamyIn order to do this, what we do is we literally run the autopilot planner on every single relevant object in the scene. Here's an example of why that's necessary.
1:17:09Ashok ElluswamyThis is a narrow corridor. I'll let you watch the video for a second.
1:17:25Ashok ElluswamyYeah, that was autopilot driving in another corridor, going around parked cars, cones and poles. Here there's a 3D view of the same thing. The oncoming car arrives now and autopilot slows down a little bit, but then realizes that we cannot yield to them because we don't have any space to our side, but the other car can yield to us instead.
1:17:41Ashok ElluswamySo instead of just blindly breaking here, all of our reasons about that car has low enough velocity that they can pull over and should yield to us because we cannot yield to them and assertively makes progress, a second oncoming car arrives.
1:17:56Ashok ElluswamyNow, this vehicle has higher velocity and like I said earlier, we literally run the autopilot planner for the other object. So in this case, we run the panel for them.
1:18:05Ashok ElluswamyThat object's plan now goes around their site's parked cars and then after they pass the parked cars, goes back to the right side of the road for them. Since we don't know what's in the mind of the driver, we actually have multiple possible futures for this car here.
1:18:19Ashok ElluswamyOne future future is shown in red, the other one is shown in green. The green one is a plan that yields to us. But since this object's velocity and acceleration are pretty high, we don't think that this person is going to yield to us and they're actually going to go around these parked cars.
1:18:32Ashok ElluswamySo Autopilot decides that, okay, I have space here, this person's definitely going to come, so I'm going to pull over. So as autopilot is pulling over, we notice that that car has chosen to yield to us based on their yaw rate and their acceleration.
1:18:45Ashok ElluswamyAnd autopilot immediately changes his mind and continues to make progress. This is why we need to plan for everyone, because otherwise we wouldn't know that this person is going to go around the other parked cars and come back to their site.
1:18:56Ashok ElluswamyIf he didn't do this, autopilot would be too timid and it would not be a practical self driving car. So now we saw how the search and planning for other people set up a convex valley.
1:19:08Ashok ElluswamyFinally, we do a continuous optimization to produce the final trajectory that the planner needs to take. Here the gray thing is the convex corridor. And we initialize the spline in heading and acceleration parameterized over the arc length of the plan.
1:19:23Ashok ElluswamyAnd you can see that the compromisation continuously makes fine grain changes to reduce all of its costs. Some of the costs, for example, are distance from obstacles, traversal time and comfort.
1:19:33Ashok ElluswamyFor comfort, you can see that the lateral acceleration plots on the right have nice trapezoidal shapes. It's gonna come up. Yeah. Here on the right side, the green plot, that's a nice trapezoidal shape.
1:19:43Ashok ElluswamyAnd if you record a human trajectory, this is pretty much how it looked like. The lateral jerk is also minimized. So, in summary, we do a search for both us and everyone else in the scene.
1:19:53Ashok ElluswamyWe set up a convex corridor and then optimize for a smooth path. Together these can do some really neat things, like shown above. But driving looks a bit different in other places, like where I grew up from.
1:20:07Ashok ElluswamyIt's very much more unstructured. Cars and pedestrians cutting each other, arch breaking, honking. It's a crazy world. We can try to scale up these methods, but it's going to be really difficult to efficiently solve this at runtime.
1:20:21Ashok ElluswamyWhat we instead want to do is use learning based methods to efficiently solve them. And I want to show why this is true. So we're going to go from this complicated problem to a much simpler toy parking problem, but still illustrates the core of the issue here.
1:20:36Ashok ElluswamyThis is a parking lot. The ego car is in blue and needs to park in the green parking spot here. So it needs to go around the curbs, the parked cars and the cones shown in orange here.
1:20:46Ashok ElluswamyThis is a simple baseline. It's a a standard algorithm that uses a lattice based search. And the heuristic here is a distance, the Euclidean distance to the goal. So you can see that it directly shoots towards the goal, but very quickly gets trapped in a local minima and it backtracks from there and then searches a different path to try to go around this park car.
1:21:07Ashok ElluswamyEventually it makes progress and gets to the goal, but ends up using 400,000 nodes for making this. Obviously this is a terrible heuristic. We want to do better than this.
1:21:17Ashok ElluswamySo if you added a navigation route to it and asked the car to follow the navigation route while being close to the goal, this is what happens. The navigation route helps immediately, but still when it encounters cones or other obstacles, it basically does the same thing as before, backtracks and then searches an old new path.
1:21:38Ashok ElluswamyAnd this poor search has no idea that these obstacles exist. It literally has to go there, check if it's in collision and if it's in collision, back up. The navigation heuristic helped, but still this took 22,000 nodes.
1:21:51Ashok ElluswamyWe can design more and more of these heuristics to help the search go faster and faster. But it's really tedious and hard to design a globally optimal heuristic. Even if you had a distance function from the cones that guided the search, this would only be effective for the single cone.
1:22:08Ashok ElluswamyBut what we need is a global value function. So instead of what we want to use is neural networks to give this heuristic for us. The vision networks produce the vector space and we have cars moving around in it.
1:22:19Ashok ElluswamyThis basically looks like an Atari game and it's a multiplayer version. So we can use techniques such as MU0, AlphaZero, et cetera, that was used to solve Go and other Atari games to solve the same problem.
1:22:30Ashok ElluswamySo we are working on neural networks that can produce state and action distributions that can then be plugged into Monte Carlo tree search with various cost functions. Some of the cost functions can be explicit cost functions like this one is like collisions, comfort, traversal time, etc.
1:22:43Ashok ElluswamyEt cetera. But they can also be interventions from the actual manual driving events. We train such a network for this simple parking problem. So here again, same problem. Let's see how MCTS tree search does.
1:23:01Ashok ElluswamySo here you notice that the planner is basically able to, in one shot, make progress towards the goal. To notice that this is not even using a navigation heuristic.
1:23:10Ashok ElluswamyJust given the scene, the plan is able to go directly towards the goal. All the other offshoots you're seeing are possible options. It's not choosing any of them, just choosing the option that directly takes it towards the goal.
1:23:22Ashok ElluswamyThe reason is that the neural network is able to absorb the global context of the scene and then produce a value function that effectively guides it towards a global minima, as opposed to getting stuck in any local minima.
1:23:32Ashok ElluswamySo this only takes 288 nodes and several orders of magnitude less than what was done in the A star with the Euclidean distance heuristic. So this is what a final architecture is going to look like.
1:23:43Ashok ElluswamyThe mission system is going to crush down the dense video data into a vector space. It's going to be consumed by both an expressive planner and a neural network planner.
1:23:50Ashok ElluswamyIn addition to this, the network planner can also consume intermediate features of the network. Together this produce a trajectory distribution and it can be optimized end to end both with explicit cost functions and human intervention and other imitation data.
1:24:05Ashok ElluswamyThis then goes into explicit planning function that does whatever is easy for that and produces the final steering and acceleration commands for the car. With that, we need to now explain how we train these networks.
1:24:19Ashok ElluswamyAnd for training these networks, we need large data sets. I invite Andre to speak briefly about manual labeling.
1:24:34Andrej KarpathyYeah, so the data, the story of data sets is critical. Of course. So far we've talked only about neural networks. But neural networks only establish an upper bound on your performance.
1:24:42Andrej KarpathyMany of these neural networks, they have hundreds of millions of parameters. And these Hundreds of millions of parameters, they have to be set correctly. If you have a bad setting of parameters, it's not going to work.
1:24:52Andrej KarpathySo neural networks are just an upper bound. You also need massive data sets to actually train the correct algorithms inside them. Now in particular I mentioned we want data sets directly in the vector space.
1:25:02Andrej KarpathyAnd so the really the question becomes how can you accumulate? Because our networks have hundreds, millions of parameters. How do you accumulate millions and millions of vector space examples that are clean and diverse to actually train these neural networks effectively now?
1:25:16Andrej KarpathySo there's a story of data sets and how they've evolved on the side of all of the models and developments that we've achieved now. In particular, when I joined roughly four years ago, we were working with a third party to obtain a lot of our data sets.
1:25:29Andrej KarpathyNow unfortunately, we found very quickly that working with a third party to get data sets for something this critical was just not going to cut it. The latency of working with a third party was extremely high and honestly the quality was not amazing.
1:25:41Andrej KarpathyAnd so in the spirit of full vertical integration at Tesla, we brought all of the labeling in house. And so over time we've grown more than 1,000 person data labeling org that is full of professional labelers who are working very closely with the engineers.
1:25:57Andrej KarpathySo actually they're here in the US and co located with the engineers here in Bay Area as well. And so we work very closely with them and we also build all of the infrastructure for them from scratch ourselves.
1:26:07Andrej KarpathySo we have a team we are going to meet later today that develops and maintains all of this infrastructure for Data Lake. And so here for example, I'm showing some of the screenshots of some of the latency, throughput and quality statistics that we maintain about all of the labeling workflows and the individual people involved and all the tasks and how the numbers of labels are growing over time.
1:26:28Andrej KarpathySo we found this to be quite critical and we're very proud of this. Now in the beginning, roughly three or four years ago, most of our labeling was in image space.
1:26:36Andrej KarpathyAnd so you can imagine that this is taking quite some time to annotate an image like this. And this is what it looked like, where we are sort of drawing polygons and polylines on top of these single individual images.
1:26:48Andrej KarpathyAs I mentioned, we need millions of vector space labels, so this is not going to cut it. So very quickly we graduated to three dimensional or four dimensional labeling where we are directly labeling in vector space, not in individual images.
1:27:02Andrej KarpathySo here what I'm showing is a clip and you are seeing a very small reconstruction. You're about to see a lot more reconstructions soon. But it's a very small reconstruction of the ground plane on which the car drove and a little bit of the point cloud here that was reconstructed.
1:27:16Andrej KarpathyAnd what you're seeing here is that the labeler is changing the labels directly in vector space, and then we are reprojecting those changes into camera images. So we're labeling directly in vector space.
1:27:27Andrej KarpathyAnd this gave us a massive increase in throughput for a lot of our labels, because you label once in 3D and then you get to reproject. But even this, we realized was actually not going to cut it.
1:27:39Andrej KarpathySo because people and computers have different pros and cons. So people are extremely good at things like semantics, but computers are very good at geometry, reconstruction, triangulation, tracking. And so really for us, it's much more becoming a story of how do humans and computers collaborate to actually create these vector space data sets.
1:27:57Andrej KarpathyAnd so we're going to now talk about auto labeling, which is some of the infrastructure we've developed for labeling these clips at scale.
1:28:08Ashok ElluswamyHi again. So even though we have lots of human laborers, the amount of training that are needed for training the network significantly outnumbers them. So we tried to invest in a massive auto labeling pipeline.
1:28:21Ashok ElluswamyHere's an example of how we label a single clip. A clip is an entity that has dense sensor data like videos, IMU data, GPS, odometry, et cetera. This can be 45 seconds to a minute long.
1:28:32Ashok ElluswamyThese can be uploaded by our own engineering course or from customer cards. We collect these clips and then send them to our servers where we run a lot of neural networks offline to produce intermediate results like segmentation, math, depth point matching, et cetera.
1:28:47Ashok ElluswamyThis then goes to a lot of robotics and AI algorithm to produce a final set of labels that can be used to train the networks. One of the first step we want to label is the road surface.
1:28:58Ashok ElluswamyTypically we can use splines or meshes to represent the road surface, but those are because of the topology restrictions are non differentiable and not amenable to producing this. So what we do instead is in the style of neural radiance fields work from last year, which is quite popular.
1:29:12Ashok ElluswamySo we use an implicit representation to represent the road surface. Here we are querying XY points on the ground and asking for the network to predict the height of the ground surface, along with various semantics such as curves, lane boundaries, road surface, driver space, et cetera.
1:29:28Ashok ElluswamySo given a single x Y, we get a Z together These make a 3D point and they can be reprojected into all the camera views. So we make millions of such queries and get lots of points.
1:29:39Ashok ElluswamyThese points are reprojected into all the camera views we are showing on the top right here, one such camera image with all these points reprojected. Now we can compare this point reprojected point with the image space.
1:29:54Ashok ElluswamyPrediction of the segmentations and jointly optimizing this over all the camera views both across space and time produces an excellent reconstruction. Here's an example of how that looks like.
1:30:05Ashok ElluswamySo here this is an optimized road surface that reproduction to the eight cameras that the car has and across all of time. And you can see how it's consistent across both space and time.
1:30:17Ashok ElluswamySo a single car driving through some location can sweep out some patch around the trajectory using this technique. But we don't have to stop there. So here we collected different clips from the same location, from different cars maybe, and each of them sweeps out some part of their road.
1:30:37Ashok ElluswamyCool thing is, we can bring them all together into a single giant optimization. So here these 16 different trips are organized using aligned using various features such as road edges, lane lines.
1:30:47Ashok ElluswamyAll of them should agree with each other and also agree with all of their image based observations. Together this provides an effective way to label the road surface not just where the car drove, but also in other locations that it hasn't driven yet.
1:31:01Ashok ElluswamyAgain, the point of this is not to just build HD maps or anything like that. It's only to label the clips through these intersections so we don't have to maintain them forever as long as the labels are consistent with the videos that they were collected at.
1:31:13Ashok ElluswamyOptionally, then humans can come on top of this and clean up any noise or add additional metadata to make it even richer. We don't have to stop at just the road surface.
1:31:24Ashok ElluswamyWe can also arbitrarily reconstruct TD static obstacles. Here this is reconstructed 3D point cloud from our cameras. The main innovation here is the density of the point cloud. Typically these points require texture to form associations from one frame to the next frame.
1:31:41Ashok ElluswamyBut here we are able to produce these points even on textureless surfaces like the road surface or walls. And this is really useful to annotate arbitrary obstacles that we can see on the scene the world.
1:31:55Ashok ElluswamyOne more cool advantage of doing all of this on the servers offline is that we have the benefit of hindsight. This is a super useful hack because say in the car, the network needs to produce the velocity.
1:32:07Ashok ElluswamyIt just has to use the historical information and Guess what the velocity is. But here we can look at both the history, but also the future and basically cheat and get the correct answer of the kinematics like velocity, acceleration, et cetera.
1:32:22Ashok ElluswamyOne more advantage is that we can have different tracks, but we can stitch them together even through occlusions. Because we know the future, we have future tracks, we can match them and then associate them.
1:32:30Ashok ElluswamySo here you can see the pedestrians on the other side of the road are persistent even through multiple occlusions by these cars. This is really important for the planner because the planner needs to know if it saw someone, it still needs to account for them, even then they're occluded.
1:32:45Ashok ElluswamySo this is a massive advantage. Combining everything together, we can produce these amazing data sets that annotate all of the road texture, all of the static objects and all of the moving objects, even through occlusions, producing excellent kinematic labels.
1:33:03Ashok ElluswamyYou can see how the cars turn smoothly, produce really smooth labels. All the pedestrians are consistently tracked, the park cars zero velocity. So we can also know that they're parked.
1:33:13Ashok ElluswamySo this is huge for us. This is one more example of the same thing. You can see how everything is consistent. We want to produce a million such labeled clips and train our video multi cam video networks with such large data set and really crush this problem.
1:33:31Ashok ElluswamyWe want to get the same view that's consistent that you're seeing here in the car. We started our first exploration of this with the Remove the Radar project. We removed it in a very short time span, I think within three months.
1:33:44Ashok ElluswamyIn the early days of the network, we noticed, for example, in low visibility conditions, the network can suffer, understandably because obviously this truck just dumped a bunch of snow on us and it's really hard to see.
1:33:54Ashok ElluswamyBut we should still remember that this car was in front of us. But our networks early on did not do this because of the lack of data in such conditions.
1:34:04Ashok ElluswamySo what we did, we asked the fleet to produce lots of similar clips and the fleet responded, it did. So it produces. Does it play? Yeah, it produces lots of video clips where shit's falling out of all other vehicles.
1:34:23Ashok ElluswamyAnd we send this through our auto labeling pipeline that was able to label 10k clips in within a week. This would have taken several months with humans labeling every single clip here.
1:34:32Ashok ElluswamySo we did this for 200 different conditions and we were able to very quickly create large data sets and that's how we were able to remove this. So once we train the networks with this data, you can see that it's totally working.
1:34:45Ashok ElluswamyAnd keeps the memory that this object was there and provides this. So finally, we wanted to actually get a cybertruck into a data set for the remove the radar.
1:34:57Ashok ElluswamyCan you all guess where we got this clip from? I'll give you a moment. Someone said it. Yes, yes. It's rendered. It's our simulation. It was hard for me to tell initially, and if I may say so myself, it looks pretty.
1:35:12Ashok ElluswamyIt looks very pretty. So, yeah, in addition to auto labeling, we also invest heavily in using simulation for labeling our data. So this is the same scene as seen before, but from a different camera angle.
1:35:29Ashok ElluswamyA few things that I wanted to point out. For example, the ground surface, it's not plain asphalt. There are lots of cars and cracks and tar seams. There's some patchwork done on top of it.
1:35:41Ashok ElluswamyVehicles move realistically. The truck is articulated, even goes over the curb and makes a wide turn. The other cars behave similar smartly. They avoid collisions, go around cars and also smooth and accelerate smooth.
1:35:53Ashok ElluswamyBrake and accelerate smoothly. The car here with the logo on the top is Autopilot. Actually, Autopilot is driving that car. And smackdown, protect left turn. And since it's a simulation, it starts from the vector space, so it has perfect labels.
1:36:08Ashok ElluswamyHere we show a few of the labels that we produce. These are vehicle cuboids with kinematics, depth, surface normals, segmentation. But Andre can name a new task that he wants next week, and we can very quickly produce this because we already have vector space and we can write the code to produce these labels very, very quickly.
1:36:28Ashok ElluswamySo when does simulation help? It helps, number one, when the data is difficult to source. As large as our fleet is, it can still be hard to get some crazy scenes like this couple and their dog running on the highway, while there are other high speed cars around.
1:36:43Ashok ElluswamyThis is a pretty rare scene, I'd say, but still can happen. And Autopilot still needs to handle it when it happens. When data is difficult to label, there are hundreds of persons crossing the road.
1:36:53Ashok ElluswamyThis could be a Manhattan downtown, people crossing the road. It's going to take several hours for humans to label this clip. And even for automatic labeling algorithms, this is really hard to get the association right.
1:37:03Ashok ElluswamyAnd it can produce like bad velocities. But in simulation, this is trivial because you already have the objects. You just have to spit out the cuboids and the velocities.
1:37:11Ashok ElluswamyAnd also finally, when we introduce closed loop behavior where the car needs to be in a determining situation or the data depends on the actions, this is pretty much the only way to get it reliably.
1:37:23Ashok ElluswamyAll this is great. What's needed to make this happen? Number one, accurate sensor simulation. Again, the point of the simulation is not to just produce pretty pictures. It needs to produce what the camera and the car would see and other sensors would see.
1:37:39Ashok ElluswamySo here we are stepping through different exposure settings of the real camera on the left side and the simulation on the right side. We're able to pretty much match what the real cameras do.
1:37:50Ashok ElluswamyIn order to do this, we had to model a lot of the properties of the camera in our sensor simulation, starting from sensor noise, motion blur, optical distortions, even headlight transmissions, even like diffraction patterns of the windshield, et cetera.
1:38:07Ashok ElluswamyWe don't use this just for the autopilot software. We also use it to make hardware decisions such as lens design, camera design, sensor placement, even headlight transmission properties.
1:38:19Ashok ElluswamySecond, we need to render the visuals in a realistic manner. You cannot have what in the game industry calls jaggies. These are aliasing artifacts that are a dead giveaway that this is simulation.
1:38:31Ashok ElluswamyWe don't want them. So we go through a lot of paints to produce nice spatiotemporal anti aliasing. We also are working on neural rendering techniques to make this even more realistic.
1:38:47Andrej KarpathyYeah.
1:38:48Ashok ElluswamyIn addition, we also use ray tracing to produce ray tracing, lighting and global illumination. Okay, that's the last of the cop cars, I think. We obviously cannot have really just four or five cars because the network will easily overfit because it knows the sizes.
1:39:02Ashok ElluswamySo we need to have realistic assets like the moose on the road here. We have thousands of assets in our library, and they can wear different shirts and actually can move realistically.
1:39:11Ashok ElluswamySo this is really cool. We also have a lot of different locations mapped and created to create these sim environments. We have actually 2,000 miles of road built. And this is almost the length of the roadway from the east coast to the west coast of the United States, which I think is pretty cool.
1:39:28Ashok ElluswamyIn addition, we have built efficient tooling to build several miles more on a single day for a single artist. But this is just tip of the iceberg. Actually. Most of the data that we use to train is created procedurally using algorithms, as opposed to artists making these simulation scenarios.
1:39:47Ashok ElluswamySo these are all procedurally created roads with lots of parameters such as curvature, various varying trees, cones, poles, cars with different velocities and the interaction produce an endless stream of data for the network.
1:40:00Ashok ElluswamyBut a lot of this data can be boring because the network may already get it correct. So what we do is we use also ML based techniques to basically Perturb the network to see where it's failing at and create more data around the failure points of the network.
1:40:11Ashok ElluswamySo this is in closed loop, trying to make the network performance be better. We don't want to stop there. So actually we want to create, recreate any failures that happens to the autopilot in simulation so that we can hold autopilot to the same bar from then on.
1:40:28Ashok ElluswamySo here on the left side, you're seeing a real clip that was cognitive from a car. It then goes through our auto labeling pipeline to produce a 3D reconstruction of the scene along with all the moving objects.
1:40:40Ashok ElluswamyWith this, combined with the original visual information, we recreate the same scene synthetically and create a simulation scenario entirely out of it. And then when we replay Autopilot on it, autopilot can do entirely new things and we can form new worlds, new outcomes from the original failure.
1:40:55Ashok ElluswamyThis is amazing because we really don't want autopilot to fail. And when it fails, we want to capture it and keep it to that bar.
1:41:07Ashok ElluswamyNot just that, we can actually take the same approach that we said earlier and take it one step further. We can use neural rendering techniques to make it look even more realistic.
1:41:16Ashok ElluswamySo we take the original video clip, recreate a synthetic simulation from it, and then apply neural rendering techniques on top of it. And it produces this, which looks amazing in my opinion, because this one is very realistic and looks almost like it was captured by the actual cameras.
1:41:31Ashok ElluswamyThis is a result from last night because it was cool and we wanted to present it. But, yeah, I'm very excited for what SIM can achieve. But this is not all bullshit, because networks trained in the car already used simulation Data.
1:41:44Ashok ElluswamyWe used 300 million images with almost half a billion labels. And we want to crush down all the tasks that are going to come up for the next several months.
1:41:53Ashok ElluswamyWith that, I invite Milan to see to explain how we scale these operations and really build a label factory and spit out millions of labels.
1:42:09Milan KovacAll right, thanks, Ashok. Hey, everyone. I'm Milan. I'm responsible for the integration of our neural networks in the car and for most of our neural network training and evaluation infrastructure.
1:42:20Milan KovacAnd so tonight, I'd just like to start by giving you some perspective into the amount of compute that's needed to power this type of data generation factory. And so, in the specific context of the push we went through as a team here a few months ago to get rid of the dependency on the radar sensor for Autopilot, we generated over 10 billion labels across two and a half million clips.
1:42:41Milan KovacAnd so to do that, we had to scale our huge offline URL networks and our simulation engine across thousands of GPUs and just a little bit shy of 20,000 CPU cores.
1:42:53Milan KovacOn top of that, we also included over 2000 actual autopilot full self driving computers in the loop with our simulation engine. And that's our smallest compute cluster.
1:43:07Milan KovacSo I'd like to give you some idea of what it takes to take our neural networks and move them in the car. And so the two main constraints that we're working on there here are mostly latency and frame rate, which are very important for safety, but also to get proper estimates of acceleration and velocity of our surroundings.
1:43:29Milan KovacAnd so the meat of the problem really is around the AI compiler that we write and extend here within the group that essentially maps the compute operations for my part torch model to a set of dedicated and accelerated pieces of hardware.
1:43:45Milan KovacAnd we do that while figuring out a schedule that's optimized for throughput while working under severe SRAM constraints. And so by the way, we're not doing that just on one engine, but across two engines on the Autopilot computer.
1:43:58Milan KovacAnd the way we use those engines here at Tesla is such that at any given time only one of them will actually output control commands to the vehicle, while the other one is used as an extension of compute.
1:44:09Milan KovacBut those roles are interchangeable both on the hardware and software level. So how do we iterate quickly together as a group through this AI development cycles? Well, first, we have been scaling our capacity to evaluate our software and neural network dramatically over the past few years.
1:44:25Milan KovacAnd today we are running over a million evaluations perhaps per week, on any code change that the team is producing. And those evaluations runs on over 3000 actual full cell driving computers that are hooked up together in a dedicated cluster.
1:44:42Milan KovacAnd so on top of this, we've been developing really cool debugging tools. And so here is a video of one of our tools which is helping developers iterate through the development of neural networks and comparing live the outputs from different revisions of a SAN neural network model, as reiterating live through video clips.
1:45:02Milan KovacAnd so, last but not least, we've been scaling our neural network training compute dramatically over the past few years. And today we're barely shy of 10,000 GPUs, which just to give you some sense in terms of number of GPU is more than the top five publicly known supercomputers in the world.
1:45:20Milan KovacBut that's not enough. And so I'd like to invite Ganesh to talk about the next Steps.
1:45:34Ganesh VenkataramananThank you, milan.
1:45:40Ganesh VenkataramananMy name is Ganesh and I lead Project Dojo. It's an honor to to present this project on behalf of the multidisciplinary Tesla team that is working on this project.
1:45:53Ganesh VenkataramananAs you saw from Milan, there's an insatiable demand for speed as well as capacity for neural network training. And Elon prefetched this. And a few years back he asked us to design a super fast training computer.
1:46:08Ganesh VenkataramananAnd that's how we started Project Dojo Project. Our goal is to achieve best AI training performance and support all these larger, more complex models that Andre's team is dreaming of and be power efficient and cost effective at the same time.
1:46:27Ganesh VenkataramananSo we thought about how to build this and we came up with a distributed compute architecture. After all, all the training computers out there are distributed to computers in one form or the other.
1:46:39Ganesh VenkataramananThey have compute elements in the box out here, connected with some kind of network. In this case it's a two dimensional network, but it could be any different network.
1:46:49Ganesh VenkataramananCpu, gpu, accelerators, all of them have compute little memory and network. But one thing which is common trend amongst this is it's easy to scale the computer, it's very difficult to scale up bandwidth and extremely difficult to reduce latencies.
1:47:09Ganesh VenkataramananAnd you'll see how our design point catered to that, how our philosophy addressed these aspects of traditional limits. For Dojo, we envisioned a large compute plane filled with very robust compute elements, backed with large pool of memory and interconnected with very high bandwidth and low latency fabric and in a 2D mesh format.
1:47:35Ganesh VenkataramananAnd on to this for extreme scale, big neural networks will be partitioned and mapped to extract different parallelism, model, graph data, parallelism. And then a neural compiler of ours will exploit spatial and temporal locality such that it can reduce communication footprint to local zones and reduce global communication.
1:48:01Ganesh VenkataramananAnd if we do that, our bandwidth utilization can keep scaling with the plane of compute that we desire. Out here, we wanted to attack this all the way top to bottom of the stack and remove any bottlenecks at any of these levels.
1:48:22Ganesh VenkataramananAnd let's start this journey in an inside out fashion, starting with the chip. As I described, chips have compute elements. Our smallest entity of scale is called a training node.
1:48:35Ganesh VenkataramananAnd the choice of this node is very important to ensure seamless scaling. If you go too small, it will run fast, but the overheads of synchronization and software will dominate.
1:48:49Ganesh VenkataramananIf you pick it too big, it will have complexities in implementation, in the real hardware and ultimately run into memory. Bottleneck issues. Because we wanted to address, we Wanted to address latency and bandwidth as our primary optimization point.
1:49:08Ganesh VenkataramananLet's see how we went about doing this. What we did was we picked the farthest distance a signal could traverse in a very clock, very high clock cycle. In this case 2 gigahertz plus.
1:49:20Ganesh VenkataramananAnd we drew a box around it. This is the smallest latency that a signal can traverse one cycle at a very high frequency. And then we filled up the box with wires to the brink.
1:49:33Ganesh VenkataramananThis is the highest bandwidth you can feed the box with. And then we added machine learning compute underneath and then a large pool of sram. And last but not the least, a programmable core to control.
1:49:47Ganesh VenkataramananAnd this gave us our high performance training node. What this is is a 64 bit superscalar CPU optimized around matrix multiply units and vector SIMD. It supports floating point 32, BFLOT 1616 and a new format CFP8 configurable FP8.
1:50:09Ganesh VenkataramananAnd it is backed by one and a quarter megabyte of fast ECC protected SRAM and the low latency high bandwidth fabric that we designed. This might be our smallest entity of scale, but it packs a big punch.
1:50:25Ganesh VenkataramananMore than one teraflop of compute in our smallest entity of scale. So let's look at the architecture of this. The computer architects out here may recognize this. This is a pretty capable architecture as soon as you see this.
1:50:41Ganesh VenkataramananIt is a superscalar in order CPU with 4 wide vector and 2 wide. 4 wide scalar and 2 wide vector pipes. We call it in order. Although the vector and the scalar pipes can go out of order.
1:50:56Ganesh VenkataramananBut for the purists out there, we still call it in order. And it also has four way multi threading. This increases utilization because we can do compute and data transfers simultaneously.
1:51:08Ganesh VenkataramananAnd our custom isa, which is the instruction set architecture, is fully optimized for machine learning workloads. It has features like transpose, gather link traversals, broadcast, just to name a few.
1:51:23Ganesh VenkataramananAnd even in the physical realm, we made it extremely modular such that we could start abutting these training nodes in any direction and start forming the compute plane that we envisioned.
1:51:39Ganesh VenkataramananWhen we click together 354 of these training nodes, we get our compute array. It's capable of delivering 300 teraflops of machine learning compute. And of course the high bandwidth fabric that interconnects these.
1:51:56Ganesh VenkataramananAnd around this compute array, we surrounded it with high speed Low Power Services, 576 of them to enable us to have extreme I O bandwidth coming out of this chip.
1:52:11Ganesh VenkataramananJust to give you a comparison point this is more than two times the bandwidth coming out of the state of the art networking switch chips which are out there today.
1:52:22Ganesh VenkataramananAnd network switch chips are supposed to be the gold standards for I O bandwidth. If we put all of it together, we get training optimized chip, our D1 chip.
1:52:37Ganesh VenkataramananThis chip is manufactured in 7 nanometer technology. It packs 50 billion transistors in a miserly 645 millimeter square. One thing you'll notice, hundred percent of the area out here is going towards machine learning, training and bandwidth.
1:52:54Ganesh VenkataramananThere is no dark silicon, there is no legacy support. This is a pure machine learning machine. And.
1:53:08Ganesh VenkataramananThis is the D1 chip in a flip chip BGA package. This was entirely designed by Tesla team internally all the way from the architecture to GDS out and package.
1:53:25Ganesh VenkataramananThis chip is like a GPU core level compute with a CPU level flexibility and twice the network chip level I O bandwidth. If I were to plot the I O bandwidth on the vertical scale versus teraflops of compute that is available in the state of the art machine learning chips out there, including some of the startups, you can easily see why our design point excels beyond par.
1:53:57Ganesh VenkataramananNow that we had this fundamental physical building block, how to design the system around it. Let's see. Since D1 chips can seamlessly connect without any glue to each other, we just started putting them together.
1:54:18Ganesh VenkataramananWe just put.
1:54:24Ganesh Venkataramanan500,000 training nodes together to form our compute plan. This is 1500 D1 chips seamlessly connected to each other. And then we add dojo interface processors on each end. This is the host bridge to typical hosts in the data centers.
1:54:49Ganesh VenkataramananIt's connected with PCI Gen 4 on one side with a high bandwidth fabric to our compute plane. The interface processors provide not only the host bridge, but high bandwidth DRAM shared memory for the compute plane.
1:55:05Ganesh VenkataramananIn addition, the interface processors can also allow us to have a higher radix network connection. In order to achieve this compute plane, we had to come up with a new way of integrating these chips together.
1:55:23Ganesh VenkataramananAnd this is what we call as a training tile. This is the unit of scale for our system. This is a groundbreaking integration of 25 known good D1 dies onto a fan out wafer process, tightly integrated such that it preserves the bandwidth between them.
1:55:44Ganesh VenkataramananThe maximum bandwidth is preserved there. And in addition we generated a connector, a high bandwidth high density connector that preserves the bandwidth coming out of this training tile. And this tile gives us nine petaflops of compute with a massive I O bandwidth coming out of it.
1:56:09Ganesh VenkataramananThis perhaps is the biggest organic MCM in the chip industry. Multi chip module. It was not easy to design this. There were no tools that existed. All the tools were croaking.
1:56:23Ganesh VenkataramananEven our compute cluster couldn't handle it. We had to. Our engineers came up with different ways of solving this. They created new methods to make this a reality. Now that we had our compute plain tile with high bandwidth iOS, we had to feed it with power.
1:56:44Ganesh VenkataramananAnd here we came up with a new way of feeding power vertically. We created a custom voltage regulator module that could be reflowed directly directly onto the span out wafer.
1:57:00Ganesh VenkataramananSo what we did out here is we got chip package and we brought PCB level technology of reflow onto this fan out wafer technology. This is a lot of integration already out here.
1:57:15Ganesh VenkataramananBut we didn't stop here. We integrated the entire electrical, thermal environment, mechanical pieces out here to form our training tile. Fully integrated interfacing with a 52 volt DC input.
1:57:35Ganesh VenkataramananIt's unprecedented. This is an amazing piece of engineering. Our compute plane is completely orthogonal to power supply cooling. That makes high bandwidth compute planes possible.
1:57:59Ganesh VenkataramananWhat it is is a nine petaflop training tile. This becomes our unit of scale for our system. And this is real.
1:58:26Ganesh VenkataramananI can't believe I'm holding nine petaflops out here.
1:58:40Ganesh VenkataramananAnd in fact, last week we got our first functional training tile. And on a limited, limited cooling benchtop setup, we got some networks running. And I was told Andre doesn't believe that we could run networks till we could run one of his creations.
1:59:00Ganesh VenkataramananAndre, this is Mingpt2 running on Dojo. Do you believe it?
1:59:12Ganesh VenkataramananNext up, how to form a compute cluster out of it. By now you must have realized our modularity story is pretty strong. We just put together some tiles. We just tied together tiles.
1:59:29Ganesh VenkataramananA two by three tile in a tray makes our training matrix. And two trays in a cabinet give 100 petaflops of compute. Did we stop here? No, we just integrated seamlessly.
1:59:50Ganesh VenkataramananWe broke the cabinet walls. We integrated these tiles seamlessly all the way through, preserving the bandwidth. There's no bandwidth divot out here. There's no bandwidth cliffs. All the tiles are seamlessly connected with the same bandwidth.
2:00:06Ganesh VenkataramananAnd with this.
2:00:12Ganesh VenkataramananWe have an exapod. This is one exaflop of computer in 10 cabinets. It's more than a million training nodes that you saw. We paid meticulous attention to that training node.
2:00:30Ganesh VenkataramananAnd there are 1 million nodes out here with uniform bandwidth, not just the hardware. The software aspects are so important to ensure scaling. And not every job requires a huge cluster.
2:00:50Ganesh VenkataramananSo we Plan for it right from the get go. Our compute plane can be subdivided can be partitioned into units called dojo processing unit. A DPU consists of one or more D1 chips.
2:01:11Ganesh VenkataramananIt also has our interface processor and one or more hosts. And this can be scaled up or down as per the needs of any algorithm, any network running on it.
2:01:26Ganesh VenkataramananWhat does the user have to do? They have to change their scripts minimally. And this is because of our strong compiler suite. It takes care of fine grained parallelism and mapping the problems of mapping the neural networks very efficiently onto our compute plane.
2:01:48Ganesh VenkataramananOur compiler uses multiple techniques to extract parallelism. It can transform the networks to achieve not only fine grain parallelism using data model graph parallelism techniques. It also can do optimizations to reduce memory footprints.
2:02:12Ganesh VenkataramananOne thing, because of our high bandwidth nature of the fabric is enabled out here is model parallelism could not have been extended to the same level as what we can.
2:02:24Ganesh VenkataramananIt was limited to chip boundaries. Now we can, because of our high bandwidth, we can extend it to training tiles and beyond. Thus, large networks can be efficiently mapped here at low batch sizes and extract utilization and new levels of performance.
2:02:42Ganesh VenkataramananIn addition, our compiler is capable of handling high level dynamic control flows like loops, if then else, et cetera. And our compiler engine is just part of our entire software suite.
2:02:58Ganesh VenkataramananThe stack consists of an extension to Pytorch that ensures the same user level interfaces that ML scientists are used to. And our compiler generates code on the fly such that it could be reused for subsequent execution.
2:03:16Ganesh VenkataramananIt has a LLVM backend that generates the binary for the hardware. And this ensures we can create optimized code for the hardware without relying on even single line of handwritten kernel.
2:03:32Ganesh VenkataramananOur driver stack takes care of the multi host multi partitioning that you saw a few slides back. And then we also have profilers and debuggers in our software stack.
2:03:49Ganesh VenkataramananSo with all this we integrated in a vertical fashion. We broke the traditional barriers to scaling and that's how we got modularity up and down the stack to add to new levels of performance.
2:04:07Ganesh VenkataramananTo sum it all, this is what it will be. It will be a fastest AI training computer for 4x the performance at the same cost, 1.3x better performance per watt that is energy saving and 5x smaller footprint.
2:04:25Ganesh VenkataramananThis will be dojo computer.
2:04:37Ganesh VenkataramananWe are not done. We are assembling our first cabinets pretty soon and we have a whole next generation plan already. We are thinking about 10x more with different aspects that we can do all the way from silicon to the system again.
2:04:56Ganesh VenkataramananWe will have this journey again. We are recruiting heavily for all of these areas. Thank you very much.
2:05:14Ganesh VenkataramananAnd next up, Elon will update us on what's beyond our vehicle fleet for AI.
2:05:33Elon MuskRa.
2:06:51Elon MuskThank you.
2:07:01Elon MuskUnlike Dojo, obviously, that was not real. So Dojo is real, the Tesla bot will be real. But basically, if you think about what we're doing right now with the cars, Tesla is arguably the world's biggest robotics company because our cars are like semi sentient robots on wheels and with the full self driving computer, essentially the inference engine on the car, which will keep evolving obviously.
2:07:28Elon MuskAnd Dojo and all the neural nets, recognizing the world, understanding how to navigate through the world, it kind of makes sense to put that onto a humanoid form. And we're also quite good at sensors and batteries and actuators.
2:07:48Elon MuskSo we think we'll probably have a prototype sometime next year that basically looks like this. And it's intended to be friendly, of course, and navigate through a world built for humans and eliminate dangerous, repetitive and boring tasks.
2:08:15Elon MuskWe're setting it such that it is at a mechanical level, at a physical level, you can run away from it and most likely overpower it. So hopefully that doesn't ever happen, but you never know.
2:08:36Elon MuskSo it's, it'll be a, you know, a light. A light, yeah. Anyway, five miles an hour. If you could run faster than that, it'd be fine.
2:08:50Elon MuskSo yeah, it's around 5 foot 8, has sort of a screen where the head is for useful information, but it's otherwise basically got the autopilot system in it. So it's got cameras, got eight cameras and yeah,
2:09:14Elon MuskFull self driving computer and making use of all of the same tools that we use in the car. So I mean, things I think that are really hard about having a useful humanoid robot is, cannot navigate through the world without being explicitly trained.
2:09:30Elon MuskI mean, without explicit, like line by line instructions. Can you, can you talk to it and say, you know, please pick up that bolt and attach it to the car with that wrench and it should be able to do that.
2:09:49Elon MuskIt should be able to, you know, please, you know, please go to the store and get me the following groceries, that kind of thing. So yeah, I think we can do that.
2:10:03Elon MuskAnd yeah, this I think will be quite, quite profound because if you say like, what is the economy? It is at the foundation, it is labor. So what happens when there is, you know, no shortage of labor?
2:10:22Elon MuskThat's why I think long term that there will need to be universal basic income. Yeah. But not right now, because this robot doesn't work. So we just need a minute.
2:10:36Elon MuskSo. Yeah, but I think essentially in the future physical work will be a choice. If you want to do it, you can, but you won't need to do it.
2:10:45Elon MuskAnd yeah, I think obviously has profound implications for the economy because given that the economy at its foundational level is labor, I mean capital is capital, equipment is just distilled labor, then is there any actual limit to the economy?
2:11:02Elon MuskMaybe not. So, yeah, join our team and help build this. All right, so I think we'll have everyone come back on the stage and you guys can ask questions if you'd like.
2:11:18Elon MuskYeah,
2:11:35Elon MuskSam.
2:12:02Elon MuskAll right, cool. You guys back on stage. I just like maybe try to get the camera angle from there, not from the side.
2:12:15Elon MuskAll right, cool. So we'll probably turn the lights back on and. Yeah, great. So we're happy to answer any questions you have about anything on the software hardware side where things are going and yeah, fire away.
2:12:35Elon MuskBecause the lights are like interrogation lights. We actually cannot see. Ah, there we go. Great. All right, cool.
2:12:57Elon MuskI can just.
2:12:58AudienceOkay, there we go. First off, I mean, thanks to all the presenters. That was just super cool to see everything. I'm just curious at a high level and this is kind of a question for really anyone who wants to take it.
2:13:07AudienceTo what extent are you interested in publishing or open sourcing anything that you do for the future?
2:13:28Elon MuskWell, I mean it is fundamentally extremely expensive to create the system, so somehow that has to be paid for. I'm not sure how to pay for it. If it's fully open sourced.
2:13:43Elon MuskYeah, unless people want to work for free.
2:13:50Elon MuskBut I should say that this is if other car companies want to license it and use it in their cars, that would be cool. This is not intended to be just limited to Tesla cars,
2:14:05Audienceis for the Dojo supercomputer. So did you solve the compiler problem of scaling to these many nodes or is. Or if it is solved, is it only applicable to Dojo?
2:14:17AudienceBecause I'm doing research in deep learning accelerators and getting the correct scalability or the distribution even in one chip is extremely difficult from the research projects perspective. So I was just curious.
2:14:35Elon MuskExcuse me, Mike for Bill.
2:14:40Bill (Dojo engineer)Have we solved the problem? Not yet. Are we confident we will solve the problem? Yes, we have demonstrated networks on prototype hardware. Now we have models, performance models, showing the scaling.
2:14:52Bill (Dojo engineer)The difficulty is, as you said, how do we keep the localities if we can do enough model parallel, enough data parallel to keep most of the things local, we just keep scaling.
2:15:02Bill (Dojo engineer)We have to fit the parameters in our working set. In Our SRAM that we have and we flow through the pipe. There's plenty of opportunities.
2:15:13AudienceSorry.
2:15:13Bill (Dojo engineer)As we get further scale for further processor nodes have more local memory, memory trade offs of bandwidth, we can do more things. But as we see it now, the applications that Tesla has, we see a clear path and our modularity story means, means we can have different ratios, different aspects created out of it.
2:15:34Bill (Dojo engineer)I mean this is something that we chose for our applications internally.
2:15:43AudienceSure portion of it. Given that training is such a soft scaling application, even though you have all this compute and have a high bandwidth, high bandwidth interconnect, it could not give you that performance because you are doing computations on limited memory at different locations.
2:16:04AudienceSo that's very curious to me when you said it solved because I just jumped onto the opportunity. I would love to know more given how much you can open source right in there.
2:16:15AudienceYeah, yeah.
2:16:18Elon MuskI guess proof's in the pudding. So we should have Dojo operational next year and I think we'll obviously use it for training, video training. I mean fundamentally this is about like the primary application initially is we've got vast amounts of video and how do we train vast amounts of video as efficiently as possible and also shorten the amount of time.
2:16:46Elon MuskLike if, if you're trying to train to a task like just in general innovation is how many iterations and what is the average progress between each iteration. And so if you can reduce the time between iterations, the rate of improvement is much better.
2:17:04Elon MuskSo you know, if it takes like sometimes a couple days for model to train versus a couple hours, that's a big deal. But the acid test here, and you know what I've told the Dojo team is like it's successful if the software team wants to turn off the GPU cluster, but if they want to keep the GPU cluster on, it's not successful.
2:17:38AudienceHi, right over here. Love the presentation. Thank you for getting us out here. Love the everything, especially the simulation part of the presentation. I was wondering, it looks very, very, very realistic.
2:17:51AudienceAre there any plans to maybe expand simulation to other parts of the company in any way? Mike too. Hi, I'm Inglo, I manage the autopilot simulation team. So as we go down the path to full self driving, we're going to have to simulate more and more of the vehicle.
2:18:09AudienceCurrently we're simulating vehicle dynamics, but we're going to need bms, we're going to need the mcu, we're going to need every single part of the vehicle integrated and that actually makes the autopilot Simulator really useful for places outside of autopilot.
2:18:20AudienceSo I want to expand, or we want to expand eventually to being a universal simulation platform. But I think before that we're going to be spinning up a lot of Optimus support and then.
2:18:29AudienceAnd a little bit further down the line, we have some rough ideas on potentially how to get the simulation infrastructure and some of the cool things we've built into the hands of people outside of the company.
2:18:40Elon MuskOptimus is the code name for the Tesla bot. Oops.
2:18:49Elon MuskOptimus. Brian?
2:18:55AudienceYeah, Hi, this is Ali Jahanian. Thank you for the great presentation and putting all of these cool things together. Yeah, for a while I have been thinking that the car is already a robot, so why not a human?
2:19:10AudienceIt's robot. And I'm so happy that today you mentioned that you are going to build such thing. Especially I think that this can give opportunity for ways of putting multimodality together.
2:19:26AudienceFor instance, we know that in the example that you showed that there was a dog and some passengers or running together, the language and symbolic processing can really help for visualizing that.
2:19:45AudienceSo I was wondering if I could hear a little more about this type of putting modalities together, including language and vision, because I have been working with, for instance, many GPT and Andre put out there.
2:20:02AudienceAnd yeah, I didn't hear much about other modalities that's going into the car or at least in the simulation. Is there any comment that you could tell us?
2:20:17Elon MuskWell, driving is fundamentally basically almost entirely vision neural nets. Basically, it's running on a biological vision neural net. And what we're doing here is a silicon camera neural net.
2:20:33Elon MuskSo there is some amount of audio you want to hear if there's like emergency vehicles or, you know, I guess converse with the people in the car. You know, if somebody's yelling something at the car, that car needs to understand what that is.
2:20:57Elon MuskSo, you know, all things that are necessary for it to be fully autonomous. Yeah, thank you.
2:21:11AudienceHi, thank you for all the great work that you've shown. My question is for the team because the data that was shown seems to be predominantly from the United States that the FSD computer is being trained on.
2:21:23AudienceBut as it is being as it gets rolled out to different countries which have their own road system and challenges that come with it. How do you think that it's going to scale?
2:21:33AudienceLike, I'm assuming, like the ground up is not a very viable solution. So how does it transfer to different countries?
2:21:41Elon MuskWell, there's. We actually do train on using data From probably like 50 different countries, but we have to pick, you know, as we're trying to advance full self driving, we need to pick, pick one country.
2:21:56Elon MuskAnd since we're located here, we pick the US and then we get a lot of questions like why not even Canada? Like, well, because the roads are a little different in Canada.
2:22:05Elon MuskDifferent enough. And so when trying to solve a hard problem, you want to say like, okay, what's the, let's not add additional complexity right now, let's just solve it for the US and then we'll extrapolate to the rest of the world.
2:22:20Elon MuskBut we do use video from around the world.
2:22:22Andrej KarpathyYeah, I think a lot of, a lot of what we are building is very country agnostic, fundamentally all the computer vision components and so on. Don't care too much about country specific sort of features.
2:22:34Andrej KarpathyYou know, different countries have roads and they have curbs and they have cars and everything we're building is fairly general for that.
2:22:40Ashok ElluswamyYeah.
2:22:40Elon MuskAnd then the prime directive is don't crash.
2:22:43Andrej KarpathyRight. And that's true for every country.
2:22:45Elon MuskYes. So it's the prime directive. And even right now the car is pretty good at not crashing. And so just basically whatever it is, don't hit it. Even if it's a UFO that crash landed on the highway and still don't hit it, you should not need to recognize it in order to not hit it.
2:23:09Elon MuskThat's very important.
2:23:20AudiencePatient. And I want to ask that when you do the photometric process, multi view geometry, how much of an error do you see? Is it like 1 millimeter, 1 centimeter?
2:23:31AudienceSo I'm just, if it's not confidential,
2:23:35Ashok Elluswamysorry, what is the, what's the, what's
2:23:37Audiencethe difference between the synthetic,
2:23:42Ashok Elluswamywhat is
2:23:42Audiencethe difference between the synthetically created geometry to the actual geometry?
2:23:47Ashok ElluswamyYeah, it's usually within a couple centimeters, three or four centimeters, that's the standard deviation.
2:23:56AudienceWith different kind of modalities to bring down that error.
2:24:02Ashok ElluswamyWe primarily try to find scalable ways to label. In some occasions we use other sensors to help benchmark, but we primarily try to use cameras for this system.
2:24:12AudienceOkay, thanks.
2:24:13Elon MuskYeah, I mean, I think we want to aim for the car to be positioned accurately to the sort of centimeter level, you know, something on that order.
2:24:23Ashok ElluswamyObviously it will depend on distance. Like close by things tend to be much more accurate than farther away things and they would matter less because the car doesn't have to make decisions much farther away.
2:24:32Ashok ElluswamyAnd as it comes close, it'll become more and more accurate.
2:24:36AudienceExactly. A lot of questions. Thanks everybody. My question has to do with sort of AI and manufacturing. It's been a while since we've heard about the alien dreadnought concept.
2:24:48AudienceIs the humanoid that's behind you guys? Is that kind of brought out of the production hell timeline and saying that humans are underrated in that process?
2:24:58Elon MuskWell, sometimes, like, you know, something that I say is taken to too much of an extreme. There, there are parts of the Tesla system that are almost completely automated and then there are some parts that are almost completely manual.
2:25:15Elon MuskAnd if you were to walk through the whole production system, you would see a very wide range from, yeah, like I said fully automatic to almost completely manual. But the vast majority, most of it is already automated.
2:25:33Elon MuskSo and then with some of the design architecture changes, like going to large aluminum high pressure die cast components, we can take the entire rear third of the car and cast it as a single, single piece.
2:25:48Elon MuskAnd now we're going to do the front third of the car as a single piece. So the body line drops by like 60 to 70% in size. But yeah, the robot is not prompted by specifically by manufacturing needs.
2:26:08Elon MuskIt's just that we're just obviously making the pieces that are needed for a useful humanoid robot. So I guess we probably should make it and if we don't, someone else would.
2:26:23Elon MuskSo I guess we should make it and make sure it's safe.
2:26:32Elon MuskI should say like also manufacturing volume manufacturing is extremely difficult and underrated and we're, we've gotten pretty good at that. It's also important for that humanoid robot. Like how do you make the humanoid robot not be super expensive?
2:26:46Elon MuskAnd
2:26:49Audiencehi, thank you for the presentation. And my question will be about scaling of dojo and in particular how do you scale the compute nodes in terms of thermals and power delivery because there is only so much heat that you can dispense and only so much power that you can bring to like cluster rack.
2:27:18AudienceAnd how do you plan to scale it and how do you plan to scale it in multiple data centers?
2:27:27Elon MuskSure. Oh yeah.
2:27:33Bill (Dojo engineer)Hi, I'm Bill, I'm one of Dojo engineers. So from a thermal standpoint and power standpoint, we've designed it very modular. So what you saw on the compute tile, that will cool the entire tile.
2:27:48Bill (Dojo engineer)So once we hook it up to it is liquid cooled on both the top and the bottom side. It doesn't need anything else. And so when we talk about clicking these together, once we click it to power and once we click it to cooling, it will be fully powered and fully cooled and all of that is less than a cubic foot.
2:28:12Bill (Dojo engineer)Yeah. So Tesla has A lot of expertise in power electronics and in cooling. So we took the power electronics expertise from the vehicle powertrain and the sort of advanced cooling that we developed for the power electronics and for the vehicle and applied that to the supercomputer.
2:28:31Bill (Dojo engineer)Because as you point out, getting heat out is extremely important. It's just really heat limited. So it's always funny that at the compute level it's operating at less than a volt, which is very low voltage.
2:28:49Bill (Dojo engineer)There's a lot of amps. So therefore a lot of heat I squared R is what really bites you on the ass.
2:28:58AudienceHi. My question's also really a question of scaling. So it seems like a natural consequence of using significantly faster training hardware is that you'd be either training models over a lot more data or you'd be training a lot more complex models which would be potentially significantly more expensive to run at inference time on the cars.
2:29:18AudienceI guess I was wondering like, if there was a plan to like also apply Dojo as something that you'd be using like on the self driving cars. And if so like, you know, do you foresee additional challenges there?
2:29:36Ganesh VenkataramananI can. So as you could see, like, and Andre's models are not just for cars. Like there are auto labeling models, there are other models that are like beyond car application, but they feed into the car stack.
2:29:50Ganesh VenkataramananSo. So Dojo will be used for all of those too, not just the car inference part of the training.
2:29:59Elon MuskYeah, I mean the Dojo's first application will be consuming video data for training for that would then be run in the inference engine on the car. But, and that I think is an important test to see if it actually is good or is it actually better than GPU cluster or not.
2:30:18Elon MuskSo but then beyond that it's basically a generalized neural net training computer. But it's very much optimized to be a neural net. So you know, CPUs and GPUs, they're, they were, they're not made to be, they're not, they were not designed specifically for training neural nets.
2:30:40Elon MuskWe've been able to make GPUs especially very efficient for training neural nets. But that's not, that was never their design intent. So it's, it's basically GPUs are still essentially running at neural net training and emulation mode.
2:30:54Elon MuskSo with Dojo we're saying like, okay, let's just asic the whole thing. Let's just have this thing that's built for one purpose and that is neural net training. And just generally any system that is designed for A specific purpose will be better than one that is designed for a general purpose.
2:31:14AudienceHey, I have a question here. Hi. So you describe two separate systems, one of our vision, sort of planner and control. Does Dojo love you train networks that cross that boundary?
2:31:27AudienceAnd second thing is, if you were able to train such networks, would you have the onboard compute capability in the FSD system to be able to run that under your tight latency constraints?
2:31:36AudienceThanks.
2:31:39Ashok ElluswamyYeah, I think we should be able to train random networks on Dojo or any GPUs. It's really invariant to the platform and I think if anything, once we make this entire thing end to end, it'd be more efficient than decoding all of these intermediate states.
2:31:53Ashok ElluswamySo you should be able to run faster if you make the entire thing end to end. Neural networks, we can avoid a lot of decoding of intermediate states and only decode essential things required for driving the car.
2:32:03Andrej KarpathyYep, certainly end to end. This is the guiding principle behind a lot of the network developments. And over time in the stack, neural networks have taken on more and more functionality.
2:32:11Andrej KarpathyAnd so we want everything to be trained end to end because we see that that works best, but we are building it incrementally. So right now the interface there is vector space and we are consuming it in the planner.
2:32:21Andrej KarpathyBut nothing really fundamentally prevents you from actually taking features and eventually fine tuning end to end. So I think that's definitely where this is headed.
2:32:29Ashok ElluswamyAnd the discovery really is like, what are the right architectures that we need to place in network blocks to make it amenable to that task. So like on our describe, we can place spatial RNNs to help with the perception problem.
2:32:40Ashok ElluswamyAnd now it's just neural network. So similarly for planning, we need to bake in search optimization into the planning into the network architecture. And once we do that, you should be able to do planning very quickly, similar to C algorithms.
2:33:00AudienceOkay, I think I had a question very similar to what he was asking about. It seems like a lot of neural nets around computer vision and kind of traditional planning.
2:33:10AudienceYou had model predictive control and solving convex optimization problems very quickly. And I'd wonder if there's a compute architecture that's more suited for convex optimization or the model predictive control solutions very quickly.
2:33:24Ashok ElluswamyYeah, 100%. If you want to bake in, like I said earlier, if you want to bake in these architectures that do say model predictive control, but it just like replacement some of the blocks with neural networks or if we know the physics of it, we can also use physics based Models part of the neural networks for our path itself.
2:33:38Ashok ElluswamySo we are going to go towards a hybrid system where we will have neural network blocks placed together with physics based blocks and more neural networks later. So it will be a hybrid stack and what we know to do well, we place it explicitly and what the networks are graded, we use the networks to optimize this.
2:33:56Ashok ElluswamySo build an end to end stack with this architecture baked in.
2:34:01Elon MuskI do think that as long as you've got like surround video neural nets for understanding what's going on and can convert the surround video into vector space, then you basically have a video game.
2:34:19Elon MuskAnd if, you know, if you. It's like if you're in Grand Theft Auto whatever you can make the cars drive around and pedestrians walk around without crashing. So you can do.
2:34:30Elon MuskYou don't have to have a neural net for control and planning, but it's probably ultimately better. So. But I think you can probably get to, in fact I'm sure you can get to much safer than human with control and planning primarily in C with perception, vision and neural nets.
2:34:56AudienceHi, my question is we've seen other companies, for example, use reinforcement learning and machine learning to optimize power consumption in data centers and all kinds of other internal processes.
2:35:07AudienceMy question is, is Tesla using machine learning within its manufacturing design or other engineering processes?
2:35:22Elon MuskI discourage use of machine learning because it's really difficult. Unless you basically, unless you have to use machine learning, don't do it. It's usually a red flag when somebody says we want to use machine learning to solve this tactic.
2:35:38Elon MuskI'm like, that sounds like bullshit. So 99.9% of the time you do not need it. So yeah, so it's kind of like you reach for machine learning when you need to, but I've not found it to be a convenient, easy thing to do.
2:36:01Elon MuskIt's a super hard thing to do. That may change if you've got a humanoid robot that can, you know, understand normal instructions. But yeah, generally minimize use of machine learning in the factory.
2:36:20AudienceHi. Based on your videos from the simulator, it looked like a combination of graphical and neural approaches. I'm curious what the set of underlying techniques that are used for your simulator and specifically for neural rendering.
2:36:35Tesla engineerIf you can share. Yeah, so we're doing at the bottom of the stack. It's just traditional game techniques, just rasterization, real time, you know, very similar to what you'd seen, like gta.
2:36:51Tesla engineerOn top of that we're doing real time ray tracing. And then those results were really hot off the press. I mean we have that little asterisk at the bottom that, that was from last night.
2:37:01Tesla engineerWe're going into the neural rendering space. We're trying out a bunch of different things. We want to get to the point where the neural rendering is the cherry on the top.
2:37:09Tesla engineerThat pushes it to the point where the models will never be able to overfit on our simulator. Currently we're doing things similar to photorealism enhancement. There's a paper, a recent paper, photo enhancing Photorealism Enhancement.
2:37:23Tesla engineerBut we can do a lot more than what they could do in that paper because we have way more labeled data, way more compute, and also much. We have a lot more control over environments and we also have a lot of people who can help us make this run at real time.
2:37:37Tesla engineerBut we're going to try whatever we can do to get to the point where we can train everything just with the simulator if we had to, but we will never have to because we have so much real world data that no one else has.
2:37:49Tesla engineerIt's just to fill in the little gaps in the real world.
2:37:53Elon MuskYeah, I mean, the simulator is very helpful when there's like these rare cases like, you know, like collision avoidance right before an accident. And then ironically, the better our cars become at avoiding accidents, the fewer accidents there are.
2:38:10Elon MuskSo then our training set is small. So then we have to make them crash in the simulation. So it's like, okay, minimize potential injury to pedestrians and people in the car.
2:38:22Elon MuskYou have five meters, you're traveling at, you know, 20 meters per second. What actions would minimize probability of injury? We can run that in some.
2:38:42Elon MuskCars driving down the wrong side of the highway. That kind of thing happens occasionally, but not that often.
2:38:49AudienceFor your humanoid context, I'm wondering if you've decided on what use cases you're going to start with and what the grand challenges are in that context to make this viable.
2:39:01Elon MuskWell, I think for the humanoid, for the Tesla bottom optimist, it's basically going to start with just dealing with work that is boring, repetitive and dangerous. Basically, what is the work that people would least like to do?
2:39:28AudienceHi. So quick question about your simulations. Obviously they're not perfect right now, so are you using any sort of domain adaptation techniques to basically bridge the gap between your simulated data and your actual real world data?
2:39:44AudienceBecause I imagine it's kind of dangerous to just deploy models which are solely trained on simulated data. So maybe some sort of explicit domain adaptation or something. Is that going on anywhere in your pipeline?
2:39:56Tesla engineerSo currently, I mean, we're producing the videos straight out of the simulator. The full clips of kinematics and everything and then we're just immediately training on them. But it's not the entire data set.
2:40:07Tesla engineerIt's just a small targeted segment and we only are evaluating based on real world video. We're paying a lot of attention to make sure we don't overfit. And if we have to start doing fancier things, we will.
2:40:18Tesla engineerBut currently it's, we're not having an issue with it overfitting on the simulator. We will as we scale up the data and that's what we're hoping to use, neural rendering to bridge that gap to push that even further out.
2:40:29Tesla engineerWe've already done things where we're using like the same networks in the car, but retrain it to detect sim versus real to drive our art decisions. And that's actually helped prevent some of these things as well.
2:40:42Elon MuskYeah. Just to emphasize that overwhelmingly the data set is the real video from the cars on the actual road. Nothing's weirder or has more corner cases than reality. It gets really strange out there.
2:40:56Elon MuskBut then if we find say a few examples of something very odd and there's some very odd pictures we've seen, then in order to train it effectively, we want to create simulations, say 1,000 SIM simulations that are variants of that quirky thing that we saw to fill in some important gaps and make the system better.
2:41:22Elon MuskAnd really all of this is about over time just reducing the probability of a crash or an injury. And the march of nines, like how do you get to 99.99999999% safe?
2:41:37Elon MuskYou know, and it. Yeah, each nine is an order of magnitude difficulty increase.
2:41:48AudienceThanks so much for the presentation. I was curious about the Tesla bot specifically. I'm wondering if there are any specific applications that you think the humanoid form factor lends itself to.
2:42:00AudienceAnd then secondary because of its human form factor is emotion or component companionship at all thought about on the product roadmap at all.
2:42:18Elon MuskWe certainly hope this does not feature in a dystopian sci fi movie. But you know, like really at this point we're saying like maybe this robot can just. We're trying, we're trying to be as literal as possible.
2:42:35Elon MuskCan it do boring, dangerous, repetitive jobs that people don't want to do? And you know, once you can have it do that, then maybe you can do other things too.
2:42:48Elon MuskBut that's the, that's the thing that would be really great to have. So it could be your buddy too. I mean, buy one and have it be your friend and, and Whatever.
2:43:02Elon MuskI'm sure that people think of some very creative uses.
2:43:08AudienceSo.
2:43:13AudienceFirstly, thanks for the really incredible presentation. My question's on the AI side. So one thing we've been seeing is that with some of these language modeling AIs, we've seen that scaling has just had incredible impacts in their capabilities and what they're able to do.
2:43:29AudienceSo I was wondering whether you're seeing similar kinds of effects of scaling in your neural networks and your applications. Absolutely. A bigger network, typically we see it performs better provided you have the data to also train it with.
2:43:43AudienceAnd this is also what we see for ourselves definitely in the car. We have some latency consideration to be mindful of. And so there we have to get creative to actually deploy much, much larger networks.
2:43:52AudienceBut as we mentioned, we don't only train neural networks for what goes in the car. We have these auto labeling pipelines that can utilize models of arbitrary size. So in fact we trade a number of models that are not deployable, that are significantly larger and work much better because we want 100, like we want much higher accuracy for the auto labeling.
2:44:09AudienceAnd so we've done a lot of that. And there we definitely see this trend.
2:44:14Elon MuskYeah, the order labeling is an extremely important part of this whole situation. Without the auto labeling, I think we would not be able to solve the self driving problem.
2:44:26Andrej KarpathyIt's kind of a funny form of distillation where you're using these very massive models plus the structure of the problem to do this reconstruction and then you distill that into neural networks that you deploy to the car.
2:44:36Andrej KarpathyBut we basically have a lot of neural networks and a lot of tasks that are never intended to go into the car.
2:44:41Ashok ElluswamyAnd also as time goes on, you get new frames of information. So you really want to make sure your computer is distributed across all the information as opposed to just taking a single frame and hogging on it for say 200 milliseconds.
2:44:52Ashok ElluswamyYou actually have newer frames coming in. So you want to use all of the information and not just use that one frame.
2:44:59Elon MuskI think one of the things we're seeing is that the car's predictive ability is eerily good. Really getting better than human in terms of predicting, like you say, like what?
2:45:12Elon MuskPredict what this road will look like when it's out of sight. Like it's around the bend and it predicts the road with very high accuracy and you know, predict pedestrians or cyclists wherever behind, you know, where it just sees a little corner of the bicycle and a little bit through the windows of the bus.
2:45:33Elon MuskIts ability to Predict things is going to be much better than humans, like really way, way beyond. Right?
2:45:39Andrej KarpathyYeah. We see this often where we have something that is not visible, but the neural network is making up stuff that actually is very sensible. Sometimes it's eerily good and you have to like you're wondering, this isn't a training set.
2:45:49Andrej KarpathyAnd actually, actually in the limit you can imagine the neural net has enough parameters to potentially remember Earth. So in the limit it could actually give you the correct answer and it's kind of like an HD map back baked into the weights of the neural net.
2:46:02Andrej KarpathyYeah.
2:46:09Andrej KarpathyI have a question about the design of the Tesla bot. Specifically in order how important is it to maintain that humanoid form to build hands with five fingers that also respects the weight limits could be quite challenging.
2:46:24Andrej KarpathyYou might have to use cable driven and then that also causes all kinds of issues.
2:46:31Elon MuskI mean this is going to be bot version one. I mean we'll see. So it needs to be able to do things that people do and be a generalized humanoid robot.
2:46:49Elon MuskI mean you could make, you could potentially give it like you know, two fingers and a thumb or something like that. You know for now we'll give it five fingers and see if that works out okay?
2:47:01Elon MuskIt probably will. It doesn't need to be like, you know, have like incredible grip strength but it needs to be able to work with tools so you know, carry a bag, that kind of thing.
2:47:15AudienceAll right, thanks a lot for the presentation. So an old professor of mine told me that the thing he disliked a lot about his Tesla was that the Autopilot UX didn't really inspire much confidence in the system.
2:47:27AudienceEspecially when like objects are spinning, classifications are flickering. I was wondering, even if you have a good self driving system, how are you working on convincing Tesla owners, other road users or other road users and just the general public that you're self system is safe and reliable?
2:47:45Elon MuskWell, I think that's the cars. A while back cars used to spin, they don't spin anymore. If you've seen the FSD beta videos, they're pretty solid and they will be getting more solid.
2:48:00Ashok ElluswamyYeah. As you add more and more data and train these multi camera networks. These are pretty decent actually. Just like a few months old and it's still improving it, it's not a done product and that we can clearly see how this is just going to be like perfect, perfect space.
2:48:12Ashok ElluswamyBecause why not all the information is there in the videos. It should produce a given lots of data and good architectures. And this is just intermediate point in the timeline.
2:48:23Elon MuskI Mean, it's clearly headed to way better than human, without question.
2:48:33AudienceMy turn. Oh, hi. Here. I was wondering if you could talk a little bit about the short to medium term economics of the bot. I guess I understand the long term vision of replacing physical labor, but I also think repetitive, dangerous and boring tasks tend to not be so highly compensated.
2:48:53AudienceAnd so I just don't see how to reproduce. You know, start with a supercar and
2:48:58Elon Muskthen break into like a lower end of the market. How do you do that for a robot? Humanoid? Well, I guess we'll just have to see.
2:49:16AudienceHello. Hi. I was curious to know how the car AI prioritizes occupant safety versus pedestrian safety and what thought process goes into,
2:49:26Elon Musklike deciding how to bake this into the AI. Well, I mean we. The thing to appreciate is that from the computer standpoint, everything is moving slowly. So think, you know, to a human things are moving fast.
2:49:45Elon MuskTo the computer they are not moving fast. So I think this is in reality somewhat of a false dichotomy. Not that it will never happen, but it will be very rare.
2:49:56Elon MuskYou know, if you think it was like, you know, going the other direction, like rendering, you know, with full ray tracing, neural net enhanced graphics on something like Cyberpunk or any, you know, advanced video game, you know, doing 60 frames a second, perfectly rendered.
2:50:17Elon MuskLike how long would it take person to even render one frame and without any mistakes? Can't be done. I mean it would take like a month just to just render one frame out of 60 in a second in a video game.
2:50:35Elon MuskIt's. Computers are fast and humans are slow.
2:50:43Elon MuskI mean, for example. So on the rocket side, you cannot steer the rocket to orbit. We actually hooked up a joystick to see if anyone could steer the rocket to orbit.
2:50:55Elon MuskBut you need to react at roughly 6,7 hertz. People can't do it. Not even. That's pretty low. You know, we're talking more like aiming for like 30 Hz type of thing.
2:51:15AudienceHi. With the, over Here with hardware 3, there's been lots of speculation that with larger nets it's hitting the limits of what it can provide. How much headroom has the extended compute modes provided and what point would hardware 4 be required, if at all?
2:51:34Elon MuskWell, I'm confident that hardware 3 or the full self driving computer 1 will be able to achieve full self driving at a safety level much greater than a human.
2:51:45Elon MuskProbably, I don't know, at least 2 or 300% better than a human. Then obviously there will be a future hardware 4 or full self driving computer too, which we'll probably introduce with cybertruck, so maybe in about a year or so.
2:52:01Elon MuskSo that probably, well, they'll be about four times more capable, roughly. But it's really just going to be like, can we take it from, say, for argument's sake, 300% safer than a person to 1000% safer?
2:52:20Elon MuskJust like there are people on the road with varying driving abilities, but we still let people drive. You don't have to be the world's best driver to be on the road.
2:52:30Elon MuskSo as we see. So, yeah.
2:52:42AudienceSo are you worried at all, since you don't have any depth sensors on the car, that people might try like adversarial attacks, like printed out photos or something to try to trick the, the RGB neural network?
2:52:56Elon MuskYeah. Like what? Pull some like Wiley Cody stuff, you know, like paint the tunnel on the, on the wall. It's like, oops. We haven't really seen much of that.
2:53:10Elon MuskI mean, for sure. Like right now if you, most likely, if you had like a, a T shirt with like a stop sign on it, which I actually have a T shirt with a stop sign on it, and, and then you like flash the car.
2:53:28Elon MuskIt will, it will stop. I proved that. But we can obviously, as we see these adversarial attacks, then we can train the cars to, you know, notice that, well, it's actually a person wearing a T shirt with a stop sign on it, so it's probably not a real stop sign.
2:53:54AudienceHi, my question is about the prediction and the planning. I'm curious, how do you incorporate uncertainty into your planning algorithms? Do you just basically assume, you mentioned that you run the, the autopilot for all the other cars on the road.
2:54:12AudienceDo you assume that they're all going to follow those rules or are you accounting for the possibility that, well, they might be bad drivers, for example?
2:54:20Ashok ElluswamyYeah, we do account for multimodal futures. It's not that we just choose one we account for. This person can actually do many things and we use their actual physics and kinematics to make sure that they're not doing a thing that would interfere with us before we act.
2:54:36Ashok ElluswamySo if there's any uncertainty, we are conservative and then we'll yield to them. Of course there's a limit to this because if you're too conservative, then it's probably not practical.
2:54:44Ashok ElluswamySo at some point we have to assert and we even then we make sure that the other person can yield to us and act sensibly.
2:54:54Elon MuskI should say, like, before we introduce something into the fleet, we will run it in shadow mode. And so, and we'll see what, what would this neural net for example have done in this particular situation?
2:55:12Elon MuskAnd then effectively the drivers are training it. Training the net. So if the neural net would have controlled and you know, say beard. Right. But the person actually went left and it's like oh there was a difference.
2:55:25Elon MuskWhy was there that difference? And secondly, all the human drivers are essentially training the neural net as to what is the correct course of action. Assuming it doesn't then end up in a crash, you know, doesn't count in that case.
2:55:40Andrej KarpathyYeah.
2:55:40Ashok ElluswamyAnd secondly we have various estimates of uncertainty like flicker. And when we observe this we actually say we are not able to see something. We actually slow down the car to be again safe and get more information before for acting.
2:55:53Elon MuskYeah.
2:55:53Ashok ElluswamyWe don't want to be brazen and just go into something that we don't know about. We only go into places where we know about.
2:55:58Elon MuskYeah, yeah. It should be like aspirationally the car should be the less it knows the slower it goes.
2:56:07Ashok ElluswamyYeah. Not true at some point but now it's.
2:56:11Elon MuskYeah. Should be speed proportionate to confidence.
2:56:22AudienceThanks for the presentation. So I am curious, appreciate the fact that the FSD is improving but if you have the ability to improve one component along the AI stack that presented today, whether it is simulation, data collections, planning and control, etc.
2:56:40AudienceWhich one in your opinion is going to have the biggest impact for the performance of the full self driving system?
2:56:51Ashok ElluswamyIt's really the area under the curve of this like multiple points and if you improve anything it should improve the area.
2:56:59Elon MuskI mean the short term it's arguably we need all of the nets to be surround video and so we still have some legacy. This is very short term. Obviously were fixing it fast but there's, there's still some nets that are not using surround video and I ideally that all use surround video.
2:57:18Andrej KarpathyYeah, I think a lot of puzzle pieces out there for success. We just need more strong people to also just help us make it work.
2:57:26Ashok ElluswamyYeah, that is the actual bottleneck.
2:57:27Andrej KarpathyThat is the actual bottleneck I would say. And really one of the reasons that we are putting on this event.
2:57:31Elon MuskExactly. Well said Andre that there's just a tremendous amount of work to do to make. Make it work. So that's why we need talented people to join and solve the problem.
2:57:49AudienceThank you for the great presentation. Lots of my questions answered. But one thing is when imagine that now you have large amount of data, even unnecessary. How do you consider that like there's a forgetting problem in neural networks.
2:58:07AudienceLike how are you Considering those aspects. And also another one, are you considering an online learning or continuous learning so that maybe each driver can have their
2:58:20Andrej Karpathyversion of self driving software? I think I know the literature that you're referring to. That's not some of the problems that we, we've seen. And we haven't done too much continuous learning.
2:58:31Andrej KarpathyWe train the system once we fine tuned a few times that sort of goes into the car. We need something stable that we can evaluate extensively and then we think that that's good and that goes into cars.
2:58:41Andrej KarpathySo we don't do too much learning on spot or continuous learning and don't face the forgetting problem.
2:58:46Elon MuskBut there will be settings that you can say like if you do, do you want, are you typically a conservative driver or do you want to drive fast or slow?
2:58:53Elon MuskYou know, it's like I'm late to. Come on, I'm late for the airport. Could you go faster than, you know, basically the kind of instructions you'd give to your Uber driver.
2:59:00Elon MuskIt's like, I'm late for the flight. Please hurry or take it easy or whatever your style is.
2:59:12Elon MuskSo let's take a few more questions here. So then we'll call it a day. All right.
2:59:18AudienceSo as our models have become more and more capable and I guess you're deploying these models into the real world, one thing I guess that's possible is for AI to become more, I guess, misaligned with what humans desire.
2:59:31AudienceSo I guess is this something that you guys are worried about as you guys deploy more and more robots or do you guys like, we'll solve that problem when we get there.
2:59:40Elon MuskYeah, I think that we should be worried about AI now. Like what we're trying to do here is I say a narrow AI. Pretty narrow. Like just make the car drive better than a human and then have the humanoid robot be able to do basic stuff, you know.
3:00:01Elon MuskSo at the point at which you sort of start to get to superhuman intelligence, I don't know, all bets are off. But you know, and that's, you know, that'll probably happen.
3:00:17Elon MuskBut what we're trying to do here at Tesla is make useful AI that people love and is unequivocally good. That's our, you know, we'll try to aim for that.
3:00:31Elon MuskMaybe one more question.
3:00:35AudienceHi, my question is about the camera sensor. In the beginning of the talk you had mentioned about building a synthetic animal. And if you think about it, a camera is a very poor approximation of a human eye.
3:00:47AudienceAnd a human eye does a lot more than take a sequence of Frames have you looked into like these days are like cameras, like event cameras? Have you looked into them?
3:00:56AudienceOr are you looking into a more flexible camera design or building your own camera for example?
3:01:04Elon MuskWell, with Hardware 4 we will have a next generation camera, but I have to say that the current cameras, we have not reached the limit of the current cameras.
3:01:14Elon MuskSo. And I'm confident we can achieve full self driving with much higher safety than humans with the current cameras and current compute hardware. But you know, it'd be good to be 1000% better rather than 300% better.
3:01:33Elon MuskSo we'll see continued evolution on all levels in pursuit of that goal. And I think in the future people will look back and say wow, I can't believe we had to drive these cars ourselves.
3:01:45Elon MuskYou know like self driving cars will just be just a normal like self driving elevators. You know elevators used to have elevator operators and there's someone there with like you know, big, big relay switch operating the elevator and then every now and then they get tired or you know, some make a mistake and sure, somebody in half.
3:02:05Elon MuskSo now we, you know, we made elevators automatic and you just go and you press the button and you can be in a hundred story skyscraper and don't really worry about it, just go in and press a button and the elevator takes you where you want to go.
3:02:20Elon MuskBut it used to be that all elevators were operated manually and it'll be the same thing like for cars, all cars will be automatic and then and electric obviously.
3:02:32Elon MuskSo there will still be some gasoline cars and some manual cars just like there are still some horses. So. All right, well thanks everyone for coming and I hope you enjoyed the presentation and thank you for the great questions.
3:02:49Elon MuskSa.