hello everyone uh sorry for the delay um thanks for coming and um sorry i had some technical difficulties really neat ai for this so uh 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 the real world um and 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 to drive and um so this is a particular application of ai but i think there's there's more there are more applications uh down the road that will make sense and we'll talk about that later in the presentation but um 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 drawing tesla so let's see we'll start off with andre great okay hi everyone um welcome my name is andre and um i am i lead the vision team here at tesla autopilot and i'm incredibly excited to be here uh 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 the car drive all by itself so we're going to start off with the vision component here now in division 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 and 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 depth velocities and so on so 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 processes that into the vector space and you are seeing parts of that vector space rendered in the instrument cluster on the car now 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 it moves around it senses the environment and uh 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 now 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 cortices the information hits the light hits the retina it goes through the lgn all the way to the back of your visual cortex goes through areas v1 v2 v4 the it the venture on the dorsal streams and 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 so 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 so roughly um 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 and 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 so 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 the neural network so 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 rec nets offer a very nice design space for neural networks because they allow you to very nicely trade off latency and uh accuracy now these reg nets give us as an output a number of features at different resolutions in different scales so 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 especially but high channel counts so 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 context have a lot of that scene context we then like to process this with feature pyramid networks in our case we like to use by fbns and they get the mult they get to multiple scales to talk to each other effectively and share a lot of information so 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 this is a car or not it definitely helps to know from the top players that hey you are actually in the vanishing point of this highway and so that helps you disambiguate that this is probably a car after a buy fbn 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 and then in addition to that if there is here's a bunch of other attributes you might be interested in so the x y with height offset or any of the other attributes like what type of a car is this and 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 so for example we want to do traffic light recognition and detection a lane prediction and so on so very quickly we conversion this kind of architectural layout where there's a common shared backbone and then branches off into a number of heads so we call these uh therefore hydronets 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 and 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 number 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 upgrade any of the data sets or change some of the architecture of the head and so on and 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 and features what we do fairly often is that we actually cache these features to disk and when we are doing these fine tuning uh workflows we only fine-tune from from the cached features up and only find you in 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 multiscale feature level and then we fine-tune off of that for a while and then end-to-end train once again and so on so here's the kinds of predictions that we were obtaining i would say several years ago now uh from one of these hydronitis so again we are processing individual images there we go we 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 uh the stop lines uh the lines the edges the cars uh the traffic lights uh the curbs here uh whether or not the car is sparked uh all of the static objects like trash cans cones and so on and 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 so 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 so 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 you actually need to cast them out and form some kind of a vector space around you so we attempted to do this using c plus and developed what we call the occupancy tracker at the time so here we see that the curb detections from the images are being stitched up across camera scenes camera boundaries and over time now there are two pro two major problems i would say with the setup number one we very quickly discovered that tuning the occupancy tracker and all of its hyper parameters was extremely complicated you don't want to do this explicitly by hand in c plus you want this to be inside the neural network and train that end to end number two we very quickly discovered that the image space is not the correct output space uh you don't want to make predictions in 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 but 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 and 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 the bar it is to predict that depth so accurately in these tiny in every single pixel of the image and 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 of the 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 and so if you are making individual predictions then no single camera since 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 and 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 now 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 it the the features from image space features to directly some kind of vector space features and then go into the decoding of the head now um 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 and number two uh the if you want vector space predictions from your neural net you need vector specif based data sets so just labeling images and so on is not going to get you there you 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 architectures so 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 so for example let's focus on a single pixel in the output space in yellow and this pixel is trying to decide am i part of a curb or not as 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 and 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 the 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 this viewport this 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 and 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 and this transformer uses multi-headed self-attention and blocks off it in this case actually we can get away with even a single block doing a lot of this work and 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 size and coses in the output space and then these get encoded with an mlp into a set of query vectors and then all of the images and their features also emit their own keys and values and 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 it is what is it a part of so 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 position and i'm looking for features of this type then the keys and the queries interact multiplicatively and then the values get pulled accordingly and so this re-represents the space and we find this to be very effective for this transformation so if you do all of the engineering correctly this again is very easily saiddifficult to do you do all of the engineering correctly um there's one more there's no problem actually before i'm not sure what's up with the slides so 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 uh are slightly cockeyed in a slightly different way and 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 and 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 so 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 so if you were to average up a lot of repeater images for example which faced at the back you would without doing this you would get a kind of a blur but after doing the rectification transformation you see that the back mirror gets really crisp so once you do this uh this improves the performance quite a bit so here are some of the results so 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 and you can see that it's basically night and day uh you can actually drive on this and uh 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 this 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 if you can't predict these cars if you are only seeing a tiny sliver of a car so 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 and 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 and we can see that the multi-camera networks struggle 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 so 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 so 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 of the signs or the road markings that i saw 50 meters ago so we try to develop we try 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 multi-scale features as we had them from before and 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 now 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 so not only are 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 queue and the rough layout of it we are basically concatenating these features um 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 now there's a few details here again to get right so in particular with respect to the pop and push mechanisms and when do you push and how and especially when do you push basically 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 and 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 this 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 time-based queue where for example we enter the features into the queue say every 27 milliseconds and 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 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 so that's kind of like the more obvious one but the one that we also discovered is necessary in our 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 then 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 so in addition to a time-based q we also have a space-based view so we push every time the car travels a certain fixed distance so some of these details actually can matter quite a bit and so in this case we have a time based key and a space base key 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 so we looked at three-dimensional convolutions transformers axial transformers in an effort to try to make them more efficient recurrent neural networks over 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 and 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 and 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 and we are only updating the rnn at the points where where we have uh 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 and 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 here'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 and 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 a has the ability to not write to those locations but when the car goes away and we have a really good view then the recurring neural net can say okay we have very clear visibility we definitely want to write information about what's in that part of space here'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 so we're only showing a few of the predictions here just to keep the visualization clean um and yeah this is this is done by the spatial rnn and this is only showing a single clip a single traversal but you can imagine there could be multiple trips through here and basically number of cars a number of clips could be collaborating to build this map basically and effectively an hd map except 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 the 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 so look at what's happening with the single frame and the video predictions as the cars pass in front of us yeah 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 different cameras when 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 but 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 we 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 and what you're seeing here is in orange we are seeing a 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 so we use uh 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 so 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 rectification layer to correct for camera calibration and put everything into a common uh virtual camera we pass them through regnets residual networks to process them into a number of features at different scales we fuse the multi-scale information with by fbn this goes through transformer module to re-represent it into the vector space in the output space this 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 hydra net with trunks and heads for all the different tasks and so that's the architecture roughly what it looks like today and on the right you are seeing some of its predictions uh sort of visualize both in a top-down vector space and also in images so definitely uh this architecture has definitely complexified from just a very simple image based single network about three or four years ago and continues to evolve um it's definitely quite impressive now 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 so 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 and 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 but this basically is how you achieve a very nice vector space and now i believe ashok is going to talk about how we can run playing control on top of it [Applause] thank you andre hi everyone my name is ashok i lead the planning and controls auto labeling and simulation teams so like on dimension the visual networks take dense video data and then compress it down into a 3d vector space the role of the planner 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 even back in 2019 our planet was pretty capable driver it was able to stay in the lanes make lane changes as necessary and take exits off the highway but cdc driving is much more complicated radley there are structured lane lines um vehicles do much more free from driving then the car has to respond to all of curtains and crossing vehicles and pedestrians doing funny things what 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 but getting a globally consistent solution is pretty tricky so there can be pockets of local minima that the planning can get stuck into and secondly uh the high dimensionality comes because the car needs to plan for the next 10 to 15 seconds and needs to produce the position velocities and acceleration uh or this entire window this is a lot of parameters to produce at runtime discrete search methods are really great at solving non-context problems because they are discrete they can they don't get stuck in local minima whereas continuous function optimization can easily get stuck in local minima and produce poor solutions that are not great on the other end for high dimensional problems discrete search sucks because of the it is discrete it does not use any graded information so literally has to go and explore each point to know how good it is whereas continuous optimization use gradient-based methods to very quickly go to a good solution our solution to this printer problem is to break it down hierarchically first use a code search method to crunch down the uh non-convexity and come up with a convex corridor and 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 in 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 uh different maneuvers um so the the first one it searches is a lane change that's close by but the car breaks pretty harshly so it's pretty uncomfortable the next maneuver it tries does the lane change bit late so it speeds up goes beyond the other car goes in front of the other cars and find it at the lane change but 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 and 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 the cyan plot on the right side here and that one is the actual velocity of the car and the white line be underneath it is was the plan so we are able to plan for 10 seconds here and able to match that when you see in hindsight so 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 scenes traffic flow in 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 this is an auto corridor i'll let you watch the video for a second yeah that was autopilot driving an auto corridor going around parked cars cones and poles uh 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 heal to us instead so instead of just blindly breaking here all of our reasons about that car uh 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 now 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 printer for them that object's plan now goes around their part their site's parked cars and then after they pass the parkours 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 features for this car here one feature is shown in red the other one is shown as 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 are actually going to go around these sparked cars so autopilot decides that okay i have space here uh this person is 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 and 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 park cars and come back to their site if you 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 convicts valley uh finally we do a continuous optimization to produce the final trajectory that the planet uh needs to take here the grave uh thing is the convex corridor and we initialize the spline in heading and acceleration parameterized over the arc length of the plan and you can see that the countermeasuration continuously makes fine-grained changes to reduce all of its cost some of the costs for example are distance from obstacles traversal time and comfort for comfort you can see that the lateral acceleration plots on the right have nice trapezoidal shapes uh it's going to come up yeah here on the right side the green plot um that's a nice trapezoidal shape and if you record on 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 uh we set up a context 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 um it's very much more unstructured cars and pedestrians cutting each other arch braking honking um it's a crazy world um we can try to scale up these methods uh but it's going to be really difficult to efficiently solve this at runtime what we instead want to do is use learning based methods to efficiently solve them um and i want to show why this is true um 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 this 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 park cars and the cones shown in orange here let's do this simple bass line it's a star the standard algorithm that uses a ladder space search um and and the heuristic here is a distance uh 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 parkour eventually 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 so if you added a navigation route to it and has the car to follow the navigation route while being close to the goal this is what happens the navigation route helps immediately uh but still when it enter encounters uh cones or other obstacles it basically that's the same thing as before backtracks and then searches that whole new path and the support 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 notes we can design more and more of these heuristics to help the search make 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 not this would not be this would only be effective for the single cone but what we need is a global global value function so instead of what we want to use is neural networks to give this heuristic for us the visual networks produces vector space and we have cars moving around in it this basically looks like a atari game and it's a multiplayer version uh so we can use techniques such as mu0 alpha zero et cetera that was used to solve go and other authority games to solve the same problem so we're working on neural networks that can produce state and action distributions that can then be plugged into multicolored research with various cost functions some of the cost functions can be explicit cost functions like distance like collisions comfort traversal time etc 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 researched us so here you notice that the planet is basically able to in one shot make progress towards the goal uh to notice that this is not even using a navigation heuristic just given the scene the planet is able to go directly towards the goal all the other options you're seeing are possible options it's not choosing any of them just using the option that directly takes it towards the goal the 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 the global minima as opposed to getting certain any local minima so this only takes 288 notes and several orders of magnitude less than what was done in the a star with the equilibrium distance heuristic so this is what a final architecture is going to look like the vision system is going to crush down the dense video data into a vector space uh it's going to be consumed by both an explicit planner and a neural network planner in addition to this the network panel can also consume intermediate features of the network together this produces a trajectory distribution and it can be optimized end to end both with explicit cost functions and human intervention and other imitation data this 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 and for training these networks we need uh large data sets um and wait i'm ready to speak briefly about manual labeling yeah 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 many of these neural networks uh 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 so 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 and so the really the question becomes how can you accumulate because our networks have hundreds of 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 so there's a story of data sets and how they've evolved on the side of uh 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 now 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 and 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 one thousand person uh data labeling org that is full of professional labelers who are working very closely with the engineers so actually they're here in the u.s and co-located with the engineers here in the area as well and so we work very closely with them and we also build um all of the infrastructure for them from scratch ourselves so we have a team we are going to meet later today that develops and maintains all of this infrastructure for data labeling 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 so 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 and 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 on top of these single individual images as 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 so 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 very small reconstruction of the ground plane on which the car drove and a little bit of the point cloud here that was reconstructed and what you're seeing here is that the labeler is uh changing the labels directly in vector space and then we are reprojecting those changes into camera images uh so we're labeling directly in vector space and this gave us a massive increase in throughput for a lot of our labels because you're labeled once in 3d and then you get to reproject but even this we realized was actually not going to cut it so 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 and so we're gonna not talk about auto labeling which is some of the infrastructure we've developed for labeling these clips at scale [Applause] hi again so even though we have lots of human laborers the amount of training data needed for training with networks significantly outnumbers them so we try to invest in a massive auto labeling pipeline here's an example of how we label a single clip a clip is a entity that has dense sensor data like videos imu data gps odometry etc this can be 45 second to a minute long these can be uploaded by our own engineering cars or from customer cars 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 masks depth point matching etc this then goes through a lot of robotics and a algorithm to produce a final set of labels that can be used to train the networks one of the first tasks we want to label is the road surface typically we can use splines or meshes to represent the road surface but those are because of the topology restrictions are not 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 so 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 rival space etc so given a single xy 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 these points are reprojected into all the camera views in 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 prediction of the segmentations and jointly optimizing this or all the camera views was across space and time produced an excellent reconstruction here's an example of how that looks like so 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 so 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 collect collected different clips from the same location from different cars maybe and each of them sweeps out some part of the road cool 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 roadages lane lines all of them should agree with each other and also agree with all of their image space observations together this is this produces an effective way to label the road surface not just where the car drove but also in other locations that it hasn't driven it again 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 optionally then humans can come on top of this and clean up any noise or additional metadata to make it even richer we don't have to stop at just the road surface we can also arbitrarily reconstruct 3d static obstacles um here this is a 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 but here we are able to produce these points even on textual surfaces like the road surface or walls and this is really useful to annotate arbitrary obstacles that we can see on the scene in the world one more cool advantage of doing all of this on server on the servers offline is that we have the benefit of hindsight this is a super useful hack because uh say in the car then the network needs to produce the velocity it 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 uh of the kinematics like velocity acceleration etc one more advantage is that we can have different tracks but we can switch them together that even through occlusions because we know the future we have future tracks we can match them and then associate them so here you can see the pedestrians on the other side of the road are persisted even through multiple occlusions by these cars this is really important for the planner because the planner needs to know if it's if it saw someone it still needs to account for them even then they are occluded so this is a massive advantage combining everything together we can produce these amazing data sets that annotate all of the road texture or the static objects and all of the moving objects even through occlusions producing excellent kinematic labels all you can see how the cards turn smoothly produce really smooth labels or the pedestrians are consistently tracked the park cars uh obviously zero velocity so we can also know that they are parked so 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 uh labeled clips and train our video multicam video networks with such large data set and really crush this problem we want to get the same view that's consistent that we're seeing here in the car we started our first exploration of this with the remove the data project uh we removed it in a very top a short time span i think within three monthsin the early days of the network we noticed for example in low security 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 but 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 so what we did we added the fleet to produce lots of similar clips and the fleet responded it did so it produces um is it play yeah it produces lots of video clips where shit's falling out of all other vehicles and we send this through our auto living 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 so we did this for 200 of 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 and keeps the memory that the subject was there and provides this so finally we wanted to actually get a cyber truck into a data set for the remote radar can 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 i if i may if i may say so myself it looks pretty it looks very pretty um 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 so a few things that i wanted to point out for example the ground surface it's not a plane asphalt there are lots of cars and cracks and tower seams there's some patchwork done on top of it vehicles move realistically the truck is articulated uh even goes over the curb and makes a wide turn um the other cars behave smartly they avoid collisions go around cars uh and also smooth and actual great smooth uh brake and accelerate smoothly the car here with the logo on the top is autopilot actually auto part is driving that car and it's making unproductive left hand and since it's a simulation it starts from the vector space so it has perfect labels here 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 a vector space and we can write the code to produce these labels very very quickly so 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 this 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 um there are hundreds of pedestrians crossing the road this could be a mountain 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 and 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 and also finally when we introduce closed loop behavior where the cars 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 all 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 in the car would see and other sensors would see so 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 in order to do this we had to model a lot of the properties of the camera in our sensor simulation um starting from sensor noise motion blur optical distortions even headlight transmissions uh even like diffraction patterns of the windshield etcetera we 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 second we need to render the visuals uh in a realistic manner you cannot have what in the game industry called jaggies these are aliasing artifacts that are dead giveaway that this is simulation we don't want them so we go through a lot of paints to produce a nice special temple a special temporal anti-aliasing we also are working on neural rendering techniques to make this even more realistic yeah in addition we also use ray tracing to produce realistic lighting and global illumination okay that's the last of the cop cars i think we obviously cannot have uh really just four or five cars because the network will easily overfit because it knows the sizes um so we need to have realistic assets like the moose on the road here um we have thousands of assets in our library and they can wear different shirts and actually can move realistically so this is really cool we also have a lot of different locations mapped and created uh to create these uh sim environments we have actually 2000 miles of uh road built and this is almost the length of the roadway from the east coast the west coast of the united states which i think is pretty cool in addition we have built efficient tooling to build several miles more on a single day on a 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 so 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 but a lot of this data can be boring because the network might already get it correct so what we do is we use also ml based techniques to basically put up the network to see where it's failing at and create more data around the failure points of the network so 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 so here on the left side you are seeing a real clip that was collected 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 with this combined with the original visual information we recreate the same scene synthetically and create a simulation scenario entirely out of it so 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 this 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 not 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 so we take the original original video clip we create a synthetic uh 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 they saw results from last night because it was cool and we wanted to present it but yeah yeah i'm very excited for what sim can achieve but this is not all because network's trained in the car already used simulation data we 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 uh the next several months with that i invite milan to see uh to explain how we scale these operations and really build a label factory and spit out millions of labels [Applause] all 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 and 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 the pilot we generated over 10 billion labels across two and a half million clips and so to do that we had to scale our huge offline neural networks and our simulation engine across thousands of gpus and just a little bit shy of 20 000 cpu cars on 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 so 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 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 and so the meat of the problem really is around uh the ai compiler that we write and extend here within the group that essentially maps the compute operations for my apart torch model to a set of dedicated and accelerated uh pieces of hardware and we do that while figuring out a schedule that's optimized for throat put while working on their severe sram constraints and so by the way we're not doing that just on one engine but on across two engines on the autopilot computer and 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 but those roles are interchangeable both at the hardware and software level so how do we interact quickly together as a group through these ai development cycles well first we have been scaling our capacity to evaluate our software neural network dramatically over the past few years and today we're running over a million evaluations per week on any code change that the team is producing and those evaluations runs on over three thousand actual footstar driving computers that are hooked up together in a dedicated uh cluster and so on top of this we've been developing really cool uh debugging tools and so here is a video of one of our tools which is uh helping developers uh iterate through the development of neural networks and comparing live the outputs from different revisions of a same neural network model as reiterating life through a video clips and so last but not least uh 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 but that's not enough and so i'd like to invite ganesh to talk about the next steps [Applause] thank you milan my name is ganesh and i lead project dojo it's an honor to present this project on behalf of the multidisciplinary tesla team that is working on this project as 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 and that's how we started project dojo our goal is to achieve best ai training performance and support all these larger more complex models that andres team is dreaming of and be power efficient and cost effective at the same time so 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 computers in one form or the other they 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 cpu 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 compute it's very difficult to scale up bandwidth and extremely difficult to reduce latencies and 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 and on to this for extreme scale big neural networks will be partitioned and mapped to extract different parallelism model graph data parallelism and then in neural compiler of ours will exploit spatial and temporal locality such that it can reduce communication footprint to local zones and reduce global communication and 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 the bottom of the stack and remove any bottlenecks at any of these levels and let's start this journey in an inside out fashion starting with the chip as i described chips have compute elements our smallest entity or scale is called a training node and 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 will end software will dominate if 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 let'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 two gigahertz plus and 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 this 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 and this gave us our high performance training node what this is is a 64-bit superscalar cpu optimized around matrix multiply units and vector cmd it supports floating point 32 b float 16and a new format cfp8 configurable fp8 and 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 more 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 it is a super scalar in order cpu with four wide vector and two wide vect two wide uh four wide scaler and two wide vector pipes we call it in order although the vector and the scalar pipes can go out of order but for the purest out there we still call it in order and it also has four-way multi-threading this increases utilization because we could do compute and data transfers simultaneously and 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 and even in the physical realm we made it extremely modular such that we could start averting these training nodes in any direction and start forming the compute plane that we envisioned when we click together 354 of these training nodes we get our compute array it's capable of delivering teraflops of machine learning compute and of course the high bandwidth fabric that interconnects these and around this compute array we surrounded it with high speed low power services 576 of them to to enable us to have extreme i o bandwidth coming out of this chip just 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 and 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 this chip is manufactured in seven nanometer technology it packs 50 billion transistors in a miserly 645 millimeter square one thing you'll notice 100 of the area out here is going towards machine learning training and bandwidth there is no dark silicon there is no legacy support this is a pure machine learning machine and this 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 this chip is like a gpu 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 are there including some of the startups you can easily see why our design point excels beyond power now 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 we just put 500 000 training nodes together to form our compute plane this is 1500 d1 chips seamlessly connected to each other and then we add dojo interface process processors on each end this is the host bridge to typical hosts in the data centers it's connected with pci gen4 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 in 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 and 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 the 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 style gives us nine beta flaps of compute with a massive i o bandwidth coming out of it this 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 even 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 plane tile with high bandwidth ios we had to feed it with power and 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 this fan out wafer so what did we did out here is we got chip package and we brought pcb level technology of reflow on fan art wafer technology this is a lot of integration already out here but we didn't stop herewe integrated the entire electrical thermal and mechanical pieces out here to form our training tile fully integrated interfacing with a 52 volt dc input it's unprecedented this is an amazing piece of engineering our compute plane is completely orthogonal to power supply and cooling that makes high bandwidth compute planes possible what it is is a nine petaflop training tile this becomes our unit of scale for our system and this is real i can't believe i'm holding nine petaflops out here and 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 this is min gpt2 running on dojo do you believe it next 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 styled together tiles a 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 we broke the cabinet walls we integrated these styles seamlessly all the way through preserving the bandwidth there is no bandwidth divert out here there is no bandwidth clips all the tiles are seamlessly connected with the same bandwidth and with this we have an exopod this is one extra flop of compute in 10 cabinets it's more than a million training nodes that you saw we paid meticulous attention to that training node and there are one 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 so 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 it 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 what 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 pro problems of mapping the neural networks very efficiently onto our compute plane our compiler is uses multiple techniques to extract parallelism it can transform the networks to achieve not only fine-grained parallelism using data model graph parallelism techniques it also can do optimizations to reduce memory footprints one 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 it 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 in addition our compiler is capable of handling high level dynamic control flows like loops if then else etc and our compiler engine is just part of our entire software suite the stack consists of a extension to pytarch 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 it 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 our 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 so 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 to sum it all this is what it will be it will be a fastest ai training computer for x the performance at the same cost 1.3 x better performance per watt that is energy saving and 5x smaller footprint this will be dojo computer we 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 we will have this journey again we're recruiting heavily for all of these areas thank you very much and next up elon will update us on what's beyond our vehicle feet fleet for ai [Music] oh [Music] so [Music] oh [Music] thank you [Applause] now unlike unlike dojo obviously that was not real uh so doj is real uh the tesla bot will be real um 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 the inference engine on the car which will keep evolving obviously and uh dojo and all the neural nets recognizing the world understanding how to navigate through the world uh it it kind of makes sense to put that onto a humanoid form they're also quite good at sensors and batteries and actuators so 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 uh navigate through a world uh built for humans and uh eliminate dangerous repetitive and boring tasks um we're setting it such that it is um at a mechanical level at a physical level you can run away from it and and most likely overpower it so hopefully that doesn't ever happen but um you never know so it's uh it'll be a you know a light a light yeah five miles an hour you can get run faster than that'd be fine [Laughter] um so yes it's a round uh 5.8 um has sort of a screen where the head is for useful information um but as otherwise basically got the autopilot system in it so it's got cameras got eight cameras and full-size driving computer and making use of all of the same tools that we use in the car so um i mean things i think that are really hard about uh having a useful humanoid robot is cannot navigate through the world without being explicitly trained i mean without explicit like uh line-by-line instructions um can you can you talk to it and say you know please uh pick up that bolt and uh attach it to the car with that wrench and it should be able to do that um it should be able to you know please you know please go to the store and get me the following groceries um that kind of thing so yeah i think we can do that um and yeah this i think will be quite quite profound because if you say like what is the economy it is uh at the foundation it is labor so what happens when there is uh you know no shortage of labor um that's why i think long-term that there will need to be universal basic income yeah but but not right now because this robot doesn't work so we just didn't need a minute so um 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 and yeah i think it obviously has profound implications for the economy because given that the economy at its foundational level is labor i mean capital is capital equipment it's just distilled labor then is there any actual limit to the economy maybe not so yeah join our team and help build this all right so i think we'll we'll have everyone come back on the stage and you guys can ask questions if you'd like yeah [Applause] you [Music] all right there we go [Music] all right cool you guys brought me back on i just like stage try to get the camera angle from there but not from the side all right cool so we'll probably turn the lights back on and uh yeah great um so we're having to answer any questions you have about anything on the software hardware side where things are going and yeah fire away um we have because the lights are like interrogation lights so we actually cannot see ah there we go great all right cool i can just okay 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 um to what extent are you interested in publishing or open sourcing anything that you do for the future um well i mean it is fundamentally extremely expensive to create uh the system so uh somehow that has to be paid for i'm not sure how to pay for it if it's fully open sourced um yeah unless people want to work for free but but i should say that uh 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 is 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 because i'm doing research in deep learning accelerators and getting the correct scalability or the distribution even in one ship is extremely difficult from the research projects perspective so i was just curious excuse me mike for bill you 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 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 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 sorry as we get further scale for further processor nodes have more local memory memory trade also bandwidth we can do more things but as we see it now the applications that tesla has we see a clear path and our our modularity story means we can have different ratios different aspects created out of it i mean this is something that we chose for our applications internally sure the locality portion of it given that training is such a soft scaling application uh even though you have all this compute and have a high bandwidth high bandwidth interconnect it it could not give you that performance because you are doing computations on limited memory at different locations so i was that's very curious to me when you said it solved because i i just jumped onto the opportunity and would love to know more given that how much you can open source yeah yeah i guess the proof's in the pudding um so we should have dojo operational next year um and um i think we'll we'll obviously use it for uh training video training it's i mean fundamentally this is about like um the the primary application initially is we've got vast amounts of video and how we train vast amounts of video uh as efficiently as possible and uh also shorten the amount of time like if you're trying to train train to a task um like just in general innovation is um how many iterations and what is the average progress between each iteration and so if if you can reduce the time between iterations uh the rate of improvement is is much better so um you know if it takes like sometimes a couple days for a model to train versus a couple hours that's a big deal but the the asset test here and um you know what i've told the dojo team is like it's it's successful if the uh software team wants to turn off the gpu cluster but if they want to keep the gpp cluster on it's not successful so yeah hi right over here i love the presentation thank you for getting us out here loved everything especially the simulation part of the presentation i was wondering uh it looked very very very uh realistic are there any plans to maybe expand simulation to other parts of the company in any way hi i'm ian glow uh i manage the autopilot simulation team so as we go down the path to full self driving we're gonna have to simulate more and more of the vehicle currently 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 so 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 optimist support and then a little bit further down the line that we have some rough ideas on potentially how to get uh the simulation infrastructure and some of the cool things we've built into the hands of people outside of the company optimus is the code name for the tesla bot oops optimus uprine [Laughter] 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 uh the car is already a robot so why not a humanity robot and i'm so happy that today you mentioned that you are going to build such thing especially i think that this can uh give opportunity for rays of uh putting multi modality together for instance we know that in the example that you are showed that there was a dog and with some passengers or running together the language and symbolic processing can really help for visualizing that so 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 mini gpt's and andre put out there and yeah i had i didn't hear much about other modalities that's going into the car or at least in the simulation is is there any comment that you could tell us well driving is fundamentally uh basically almost entirely vision neural nets uh like we're basically it's running on a biological vision neural net and what we're doing here is a silicon camera neural net um so and there are there's there is some amount of uh audio uh you know you want to hear uh if um there's like emergency vehicles or uh you know uh i guess converse with the people in the car um you know if somebody's yelling something at the at the car that car needs to understand what that is um so you know all things that are necessary for it to be fully autonomous yeah thank you hi uh thank you for all the great work that you've shown uh my question is for the team uh because the data that was shown was seems to be predominantly from the united states that the the fsd computer is being trained on but as it is being as it gets rolled out to different countries which have their own road systems and challenges that come with it how do you think that it's going to scale like like i'm assuming like the ground up is not a very viable solution so how does it transfer to different countries uh well there is we actually do train on using data from probably like 50 different countries um but we have to pick you know in as we're trying to advance full self driving we need to pick one country and since we're located here we pick the us um and then we get a lot of questions like why not even canada like well because the roads are a little different in canada different enough um and so when trying to solve a hard problem uh you want to uh say like okay what's the let's not add additional complexity right now uh let's just solve it for the us and then we'll extrapolate to the rest of the world but we do use video from all around the world yeah 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 uh sort of features every you know different countries have roads and they have curbs and they have cars and everything we're building is fairly general for that yeah and there's the the prime directive is don't crash right and that's true for every country yes this is the prime directive um and um even right now the car is pretty good at not crashing um and so just basically um whatever it is don't hit it even if it's a ufo that crash landed uh on the highway and still don't hit it you should not need to recognize it in order to not hit it so that's very important and i want to ask that when you do the photometric process multiview geometry how much of an error do you see is it like one millimeter one centimeter so i'm just if it's not confidential sorry question what is the what's it what's the difference between the synthetic sure what is the difference between the synthetically created geometry to the actual geometry yeah it's usually within a couple centimeters three or four centimeters that's the standard deviation merge with different kind of modalities to bring down that error we primarily try to find scalable ways to label um in some occasions we use other sensors to help benchmark but we primarily use cameras for this system okay thanks yeah i i mean i think we want to aim for the car to be positioned uh accurately to the the sort of centimeter level um you know something on that order obviously it will depend on distance like close by things can be much more accurate than farther away things because and they would matter less because the car doesn't have to make decisions much farther away and as it comes close it will become more and more accurate exactly 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 is the humanoid that's behind you guys is that kind of brought out of the production health timeline and saying that humans are underrated in that process um well sometimes like some you know something that i say is uh 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 and 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 it's most of it is is already uh automated um so and then with the 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 piece and now we're going to do that the front third of the car is a single piece so the the body line um drops by like 60 to 70 percent in size um but yeah the the robot is not is not prompted by specifically by manufacturing needs it's it'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 well and so i guess we should make it and make sure it's safe i should say like also manufacturing volume manufacturing is extremely difficult um and underrated and we've gotten pretty good at that it's also important for that humanoid robot like how do you make the human robot not be super expensive and hi uh thank you for the present presentation and my question will be about skilling of dojo and uh in particular how do you scale the compute nodes in terms of thermal 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 and how do you want to scale it and how do you point to scale it in multiple data centers sure hi i'm bill i one of the dojo engineers the um so from a thermal standpoint and power standpoint we've designed it very modular so what you saw on the compute tile that will that will cool the entire tile so we we once we hook it up to it is liquid cooled on both the top and the bottom side um it doesn't need anything else and so when we talk about clicking these together once we click it to power and we once we click it to um cooling it will be fully powered and fully cooled and all of that is less than a cubic foot yeah so tesla has a lot of expertise in power electronics and in uh in cooling so we took uh the power electronics expertise from the vehicle powertrain and the sort of the advanced cooling that we developed for the power electronics and for the vehicle and applied that to the super computer because as you point out uh getting heat out is extremely important just really heat limited so um yeah so it's funny that like at the compute level it's operating at less than a volt which is a very low voltage there's a lot of amps so therefore a lot of heat i squared r is what really bites you on the ass um hi uh my question's also similarly a question of scaling um so it seems like a natural consequence of using you know 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 uh i guess i was wondering like if there was a plan to like also um apply dojo as something that you'd be uh using like on the self-driving cars and if so like you know do you foresee additional challenges there i can so as you could see like android'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 so so dojo will be used for all of those too not just the car inference part of the training yeah i mean the dojo's first application will be consuming video data for training for that would then be run in the inverse inference engine on the car but uh and that i think is an important uh test to see if it actually is good or but is it actually better than gpu cluster or not um so but then beyond that it's basically a general a generalized neural net training computer but it's very much optimized to be a neural net so you know cpus and gpus uh they're they're they're not made to be um they're not they're not designed specifically for training neural nets um we've been able to make gpus especially very efficient for portraying neural nets but that's not that was never their design intent so it's it's bc gpus are still essentially running it uh neural net training in emulation mode so um with with dojo we're saying like okay let's just let's just asic the whole thing let's just have this thing that's it'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 hey i had a question here hi um so you described two separate systems one was for vision therefore planner and control um does dojo love you train networks that cross that boundary and second thing is if you were able to train such networks would you have the onboard compute capability in the fst system to be able to run that in in under your tight latency constraints thanks yeah i think we should be able to train uh planner networks on dojo or any gpus it's really invariant to the platform um and i think uh if anything once we make this entire thing end to end it'll be more efficient than decoding a lot of these intermediate states so you should be able to run faster if you make the entire thing uh into in your neural networks we can avoid a lot of decoding of the intermediate states and only decode essential things required for driving the car yep certainly and to endness and as 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 and 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 but nothing really fundamentally prevents you from actually taking features and eventually fine-tuning end-to-end uh so i think that's definitely where this is headed yeah and the discovery really is like what are the right architectures that we need to place in network blocks to make it amenable to the task so like on a describe we can place spatial rnns to help with the uh perception problem uh and now it's just neutral network so similarly for planning we need to bake in search and optimization into the planning into the network architecture and once we do that you should be able to do planning very quickly uh similar to c plus plus algorithms okay okay 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 you had model predictive control in 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 uh solutions very quickly yeah 100 if you want to bake in like i said earlier if you want to bake in these architectures that do say model protein control but just like replace 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 network's forward pass itself so we are going to go towards a hybrid system where we will have neural network blocks placed together with a physics-based blocks and more networks later so it'll be a hybrid stack and what we know to do well we place with explicitly and what the networks are created we'll use the networks to optimize this uh so better end-to-end stack with this architecture baked in i i mean i do think that so as long as you've got like um surround video uh neural nets for understanding what's going on and can uh convert those surround video into vector space then you basically have a video game um and if you know if you it's like if you're in grand theft auto whatever you can you can make the cars drive around and pedestrians walk around without crashing so um you can do you don't have to have a neural net for control and planning um but it's probably ultimately better um 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 plus plus with perception vision in neural nets hi my question is we've seen other companies for example use reinforcement learning and machine learning to optimize power consumption and data centers and all kinds of other internal processes my question is are is tesla using machine learning within its manufacturing design or other engineering processes i i 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 test i'm like that sounds like um so uh 99.9 percent of time you do not need it um so yeah but so it's kind of like a you you reach for machine learning when you when you need to not but it's i've not found it to be a convenient easy thing to do um it's a super hard thing to do that may change if you've got a humanoid robot that can you know understand normal instructions um but yeah generally minimize use of machine learning in the factory hi um based on your videos from the simulator uh it looked like a combination of graphical and neural approaches i'm curious what the set of underlying techniques uh that are used for your simulator and specifically for neural rendering if you can share yeah so we're doing uh at the bottom of the stack it's just traditional game techniques uh just rasterization real time uh you know very similar to what you'd seen like gta on top of that we're doing real-time ray tracing and then those results were really hot off the press um i mean we had that little asterisk at the bottom that that was from last night we'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 the cherry on the top that 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 photo realism enhancement but 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 um but we're going to try whatever we can do to get to the point where we can train everything just with the simulator uh if we had to but we will never have to because we have so much real world data that no one else has it's just to fill in the little gaps in the real world yeah i mean the simulator is very helpful when there's like these rare cases like like um you know like collision avoidance right before an accident um and then ironically that the better our cars become at avoiding accidents the fewer accidents there are so 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 uh pedestrians and people in the car you have five meters you're traveling at you know 20 meters per second um take what actions would minimize probability of injury we can run that in some cars driving down the wrong side of the highway that kind of thing happens occasionally but not that often um for your humanoid contacts i'm wondering if you've decided on what use cases you're gonna start with and what the grand challenges um are in that context to make this viable well i think for the humanoid for the tesla bot um optimus 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 um hi um so quick question about your simulations um 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 because 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 so currently uh i mean we're producing the videos straight out of the simulator uh the the full clips of kinematics and everything and then we're just immediately training on them but it's not the entire data set it's just a small targeted segment and we only are evaluating based on real world video um we're paying a lot of attention to make sure we don't ever fit uh and if we have to start doing fancier things we will but currently it's we're not having an issue with it overfitting on the simulator we will as we scale up the data um and that's what we're hoping to use neural rendering to bridge that gap to push that even further out um we've already done things where we're using like the same networks in the car but retrain it to detect sim versus rail to drive our art decisions um and that's actually helped um prevent some of these things as well yeah just to emphasize that overwhelmingly the data set is the real video from the cars on the actual roads uh nothing's weirder or uh or has more corner cases than reality um it's gets really strange out there but but then if if we find say a few examples of something very odd and there's some very some for some very odd pictures we've seen then in order to train it effectively we want to create simulations uh say a thousand simulations that are that are variants of that quirky thing that we saw the foot to fill in the some important gaps and and make the system better and really all of this is about over time just reducing the probability of of a crash or an injury and it's called the march of nines like how do you get to 99.999999 uh safe you know and it yeah each nine is an order of magnitude difficulty increase uh thanks so much for the presentation i was curious about the tesla bot um specifically i'm wondering if there are any specific applications that you think the humanoid form factor lends itself to and then secondary um because of its human form factor is emotion or companionship at all thought about on the product roadmap at all um well we certainly hope this does not feature in a dystopian sci-fi movie but uh 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 can it do um boring dangerous repetitive jobs that people don't want to do and uh you know once you can have it do that then maybe you can do other things too but that's the that's the thing that we really great to have so it could be your buddy too i mean buy one and have it be or your friend and whatever i'm sure that people think of some very creative uses so uh so um so firstly thanks for the the really incredible presentation um my question is on the ai side um 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 so i was wondering whether you're seeing similar kinds of effects of scaling in in your neural networks in your applications absolutely a bigger network typically we see it performs better provided you have the data to also train it with and 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 but as we mentioned we don't only train neural networks for what goes in the car we have these um auto labeling pipelines that can utilize models of arbitrary size so in fact we've traded 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 and so we've done a lot of that and there we definitely see this trend yeah the order labeling is uh an extremely important important part of this whole whole situation without the order labeling i think we would not be able to solve the self-driving problem it'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 but we basically have a lot of neural networks and a lot of tasks that are never intended to go into the car yeah and also as time goes on that 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 you actually have newer frames coming in so you want to like use all of the information and not just use that one frame i think one of the things we're seeing is that the car's predictive ability is um is quite is eerily good um it's really getting better than human in terms of predicting like you say like what predict what this road will look like out 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 to just see a little corner of the bicycle and a little bit through through the windows of the bus and its ability to predict things is going to be much better than humans like really way way beyond right yeah 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 is in the training set and 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 i have a question about the design of the tesla bot specifically in order uh how important is it to maintain that humanoid form to build hands with five fingers uh that also respects the weight limits could be quite challenging you might have to use cable driven and then that also causes all kinds of issues um i mean this is just going to be bought version one and we'll see so the it's it needs to be able to do things that that people do um and uh you know be a generalized you know humanoid robot um i mean you could make you potentially have it give it like you know two fingers and a thumb or something like that um you know for now we'll we'll give it five fingers and and see see if that works out okay it probably will it doesn't need to be like uh you know have like incredible grip strength but it needs to be able to work with tools so and you know carry a bag that kind of thing all right thanks a lot for the presentation so an old professor of mine told me that um the thing he disliked a lot about his tesla was that the autopilot ux didn't really inspire much confidence in the system especially when like objects are spinning classifications are flickering i was wondering like 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 your system is safe and reliable well i think that's that's the cars a while back cars used to spend they don't they don't spin anymore not in the if you've seen the fsd beta videos they they're they're pretty solid um and they will be getting more solid yeah as him add more and more data and train these multi-camera networks like these are pretty decent actually just like few months old and it's really improving it's not a done product uh and that we've never minds we can clearly see how this is just going to be like perfect but perfect for space because why not uh all the information is that in the videos it should produce a given lots of data and good architectures um and this is just an intermediate point in the timeline i mean it's clearly headed to way better than human without question my turn oh hi here um 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 and so i just don't see how to reproduce uh you know start with a supercar and then break into like the lower end of the market how do you do that for a robot humanoid well i guess you'll just have to see hello hi um i was curious to know how the car ai prioritizes occupant safety versus pedestrian safety and what thought process goes into like deciding how to make this into the ai well i mean we the the thing to appreciate is that from the computer standpoint everything is moving slowly so uh think you know to a human uh things are moving fast to 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 um you know if you think it was like you know going the other direction like rendering you know with full ray tracing uh neural net enhanced graphics on something like cyberpunk or in any you know advanced video game you know doing 60 frames a second uh perfectly rendered like how long would it take a person to even render one frame and without any mistakes can be done i mean it would take like a month just to just render one one frame out of 60 in a second in a video game it's uh computers are fast and humans are slow i mean for example uh on on the rocket side the you you cannot steer the rocket to orbit um we actually hooked up a joystick to see if anyone could steal the rocket orbit but you need uh to react at roughly six seven hertz uh people can't do it not even now that's pretty low you know we're talking more like even for like 30 hertz type of thing hi um with the over here uh 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 at what point would hardware 4 be required if at all well i'm confident that hardware 3 or the full stop driving computer 1 will be able to achieve full self driving at a safety level much greater than a human probably i don't know at least two or three hundred percent better than a human um then obviously there will be a future hardware for or full self-driving computer too which we'll probably introduce with the cybertruck um so maybe in about a year or so uh that is probably well that'll be about four times more capable roughly um 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 a thousand percent safer um you know just like there are people on the road who with with varying driving abilities but we still let people drive it you don't have to be the world's best driver to be on the road so as we see so yeah guess what's new all um right 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 rgb neural network yeah like what pull some like wiley cody stuff you know like paint the tunnel on the on the wall it's like oops um we haven't really seen much of that um i mean for sure like like right now if you pr most likely if you had like a a t-shirt with 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 it will it will stop i i proved that um but we can obviously as we see these uh adversarial attacks then we can we train uh the cars to uh you know notice that well it's actually a person wearing a t-shirt the stop sign on it so it's probably not a real stop sign hi uh my question is about um the prediction and the planning i'm curious how do you incorporate uncertainty into your uh you know planning algorithms do you just basically assume you know you mentioned that you run the um the autopilot for all the other cars on the road do 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 yeah we do account for multi-modal futures it's not that we just choose one we account for this person can actually do many things and we use that actual physics and kinematics to make sure that they're not doing a thing that would interfere with us before we act um so if there's any uncertainty we are conservative and then would yield to them of course there's a limit to this because if you're too conservative then it's probably not practical so 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 i should say like um 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 um because and then effectively the drivers uh are training it training the net so if the neural net would have uh controlled and you know and say veered right but the person actually went left it's like oh there's a difference why was there that difference yeah and secondly all the human drivers are essentially training the neural net uh 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 yeah and secondly we have various estimates of uncertainty like flickr and when we observe this we actually uh say we are not able to see something we actually slow down the car to be again safe and get more information before acting uh yeah we 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 yeah but um yeah it should be like aspirationally that the car should be the less it knows the sl you know the slower it goes yeah which is not true at some point but now yeah yeah we've yeahshould we speed proportionate to confidence thanks 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 to present it today whether it is simulation data collections planning control et cetera which one in your opinion is going to have the biggest impact for the performance of the full self driving system it's really the area under the curve of this like multiple points and if you improve anything uh it should improve the area i mean in the short term it's arguably we need all of the nets to be um surround video uh and so we still have some legacy this is a very short term obviously we're fixing it fast but there's there's still some nets that are not using surround video um and i think ideally that all use surround video yeah very yeah i think a lot of puzzle pieces are there for success we just need more strong people to also just help us make it work yeah that is the actual box so that is the actual bottleneck i would say i'm really one of the reasons that we are putting on this event exactly what well said andre that um there's just a tremendous amount of work to do to make make it work so that's why we need um talented people to join in and solve the problem uh thank you for the great presentation lots of my questions answered but one thing is uh when imagine that now you have a large amount of data even unnecessary how do you consider that like there's a forgetting problem in neural networks like how are you considering those aspects and also another one are you considering online learning or continuous learning so that maybe each driver can have their version of uh self-driving software i think i think i know the literature that you're referring to that's not some of the problems that we've seen and we haven't done too much continuous learning we train the system once we find in 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 so we don't do too much learning on spot or continuous learning and don't face the forgetting problem uh but 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 you know it's like i'm late for my i'm late for the airport uh could you go faster than you know basically the kind of instructions you'd give to your uber driver it's like i'm late for the flight please hurry um or take it easy or you know whatever your style is so let's take a few more questions here so and then we'll call it a day all right so as our models have become more and more capable and i guess you're deploying these models into the real world um one thing i guess that's possible is for ai to become more i guess misaligned with what humans desire so i guess is that something that you guys are worried about as you guys deploy more and more robots um or do you guys like we'll solve that problem when we get there yeah i think that we should be worried about ai um you know like what we're trying to do here is i say narrow ai uh pretty narrow like just make the car drive better than a human um and then have the humanoid robot be able to do basic stuff um uh you know so um at the point at which you sort of start get uh superhuman intelligence uh yeah i don't know all bets are off um but you know and that's that's that's you know that'll that'll probably happen but but what we're trying to do here at tesla is make useful ai that people love and and is unequivocally good that's our you know try to aim for that okay maybe one more question hi uh 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 and a human eye does a lot more than take a sequence of frames have you looked into like there are like these days are like cameras like event cameras have you looked into them or are you looking into a more flexible camera design or building your own camera for example well with hardware four we will we will have a next generation camera uh but i have to say that the the current cameras we have not reached the limit of the current cameras uh so um and i'm confident we can achieve full self-driving with much higher safety than humans with the current cameras and current compute hardware um but you know are we good to be a thousand percent better rather than 300 better so we'll see continued evolution on on our levels and pursue 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 you know it'll like self-driving cars will just be just a normal like self-driving elevators you know uh elevators used to have elevator operators and uh there's someone there with like you know big big relay switch operating the elevator and then every now and then they'd get tired or you know some make a mistake and share somebody in half so um so now we uh you know we made elevators automatic and you just go and you press the button and you can be in a 100 story skyscraper and don't really worry about it just go and press a button and the elevator takes you where you want to go but it used to be that all elevators were operated manually manually it'll be the same thing like for cars all cars will be automatic and then um and electric obviously um so there will still be some gasoline cars and some manual cars just like there are still some horses so um all right well thanks everyone for coming and i hope you enjoyed a presentation and thank you for the great questions
皆さん、こんにちは......遅くなってすみません......ええと ご来場ありがとうございました。 そして、技術的な問題があって 困難がありました。 今回のAIは本当に素晴らしいですね それで......私たちが今日見せたいのは 今日お見せしたいのは、テスラが 電気自動車の会社というだけではなく 私たちが持っている 深いAI活動 の 推論レベルのハードウェアと トレーニングレベル そして 基本的に私たちは 私たちは 現実世界に適用されるAIのリーダーであることは間違いないと思います。 現実の世界に適用されるAIのリーダーであると言えます。 えーと そして、自動運転の全貌をご覧になった方は 自動運転の ベータ版をご覧になった方は、テスラの自動運転の速さを テスラの ニューラルネットが運転を学習する速度を そして これはAIの特殊なアプリケーションです。 AIの特殊なアプリケーションですが、私はもっと他にも この先にはもっと多くのアプリケーションがあります。 この先、もっと意味のあるアプリケーションが出てくると思います。 そのことについては、プレゼンテーションの後半で しかし 基本的には、私たちは 現実のAI問題を解決することに ハードウェアとソフトウェアの両方で ハードウェア、ソフトウェアのどちらのレベルでも テスラに参加したり、絵を描くことを検討したりすることをお勧めします。 テスラ それでは、まずアンドレから始めましょう。 素晴らしい 皆さん、こんにちは。 私の名前はアンドレで、私は テスラのビジョンチームを率いています。 私はテスラの自動操縦チームのリーダーです。 このセクションを始めるにあたり このセクションでは、自動操縦スタックを技術的に深く掘り下げて 自動操縦スタックの技術的な深堀りと 車が自分で運転できるようにするための 車を自動運転させるためのボンネット内の部品を紹介します まず始めに ビジョンコンポーネント 分割コンポーネントで私たちがやろうとしているのは 我々がやろうとしているのは 生の情報を処理するニューラルネットワークを設計しようとしています。 情報 ここでは、車両の周囲に配置された8台のカメラ 車両の周囲に配置された8台のカメラ カメラから送られてくる画像をリアルタイムに処理して その情報をリアルタイムに処理して ベクトル空間と呼ばれるものにリアルタイムで処理する必要があります。 運転に必要なすべてのものの3次元表現 運転に必要なすべてのもの、つまり つまり、次のような3次元的な位置関係です。 線、縁、縁石 交通標識 交通信号 車の位置と方向 奥行き、速度など ここでは、そのビデオをお見せしています。 ちょっと待ってください。 お詫び ここでは、スタックに入力される生の スタックに入ってくる生の入力と、それを ニューラルプロセスでベクトル空間に そして、そのベクトル空間の一部が ベクトル空間の一部が、車の計器 車のインストルメントクラスター 今 私が魅力的だと思うのは これは、私たちが事実上、人工的な動物を一から作っているということです。 人工的な動物を一から作っているということです。 車は動物のように考えられます 車は動き回り、環境を感知し 動き回り、環境を感知し、自律的かつ知的に行動し 自律的かつ知的に行動します。 私たちは、すべてのコンポーネントを すべてのコンポーネントを社内で一から作っています。 機械的な部品はもちろん 体のすべての機械部品、神経系、すべての電気部品 すべての電気部品、そして今回の目的である 今回の目的は自動操縦装置の脳 特にこのセクションでは 合成視覚野 生物学的視覚野は 実際には非常に複雑な構造をしており いくつかの領域があります。 脳の情報の流れを整理する 特に我々の あなたの視覚野では 情報が目に入り 光が網膜に当たると、それがLGNを通って LGNを通って視覚野の奥へと進みます。 視覚野の後ろ側にあるエリアv1 v2 v4を通ります。 v4 背側ストリームのベンチャー 情報は一定のレイアウトに整理されます。 情報が一定のレイアウトで整理されているため、私たちが 車の視覚野をデザインする際には 車の視覚野を設計する際には、ニューラル 情報がどのようにシステムを流れるかという 情報がどのようにシステム内を流れるか 処理は、光が人工物に当たった最初の段階で 光が人工網膜に当たったときに処理が始まり この情報をニューラルネットワークで処理することになります。 その情報をニューラルネットワークで処理します。 このセクションを大まかに時系列で整理すると このセクションを大まかに時系列で整理すると、まず ニューラルネットワークのいくつかと 私がチームに参加したおよそ4年前にはどのようなものだったか 私がチームに参加したおよそ4年前にはどのようなものだったか、そして時間の経過とともにどのように発展してきたか 進化してきたか そして およそ... 4年前のクルマは、ほとんどが 高速道路を片側一車線で走行していました。 車線を維持しなければならなかった。 車線を維持し、前の車との距離を保つ必要がありました。 前の車との距離を保つ必要がありました。 当時はすべての処理が個々の画像レベルで行われていました。 当時の処理はすべて個別の画像レベルで行われていたので、1枚の画像 一枚の画像をニューラルネットで分析して ベクトル空間の小さな断片を作り ベクトル空間の小片に処理します。 ベクトル空間の小片に処理していました。 次のような形になります。 960の入力があり、これは12ビットの整数です。 およそ36ヘルツで入力されています。 これをニューラルネットワークで処理します。 ニューラルネットワークで処理するので、特徴抽出器バックボーンをインスタンス化します。 特徴抽出器のバックボーンをインスタンス化します。この例では 残差ニューラルネットワークを使用します。 ステムと複数の残差ブロックを 直列に接続された 我々が使用する特定のクラスの残差ニューラルネットワークは レグネットとは、我々がこのような 残差ニューラルネットワークは ニューラルネットワークの素晴らしい設計空間を提供する ニューラルネットワークの設計空間を提供します。 レイテンシーと精度をうまくトレードオフできるからです。 レグネットは、出力として 異なるスケールの異なる解像度で多くの特徴を 様々なスケールの様々な解像度の特徴を出力します。 特に、この特徴的な階層の一番下にある 機能階層の一番下には、非常に高い チャンネル数が非常に少ない高解像度の情報が チャンネル数が非常に少ない高解像度の情報があり、上部には 頂点には低空間低解像度の情報があります。特に、チャンネル数が多い場合には 下の方にはたくさんのニューロンがあって 下部には画像の細部を精査する 上には画像のほとんどを見ることができるニューロンがあります。 画像の大部分を見ることができ、多くの文脈や 多くの文脈、多くのシーンの文脈 コンテキスト これを処理するには、次のようにします。 特徴ピラミッドネットワークで処理します。 fbnsを使用することで、マルチスケールの 複数のスケールに対応したマルチスケールの 複数のスケールで効果的に会話し、多くの情報を共有することができます。 多くの情報を共有することができます。 例えば、あなたがネットワークの中のニューロンであり 例えば、あなたがネットワークの下にいるニューロンで、小さなパッチを見ていて 例えば、あなたがネットワークのずっと下にいるニューロンで、小さなパッチを見ていて、これが車なのかどうかわからないとします。 これが車なのかどうかわからない場合、トッププレイヤーから トッププレイヤーから、自分は 実際にこの高速道路の消失点にいることを ハイウェイの消失点にいることがわかれば、それが これは車だろうということを明確にすることができます。 Fbnを購入し、機能融合を行った後 尺度を超えて、次にタスク別の頭に入ります。 例えば、物体検出の場合は 例えば、物体検出を行う場合は、1 例えば、物体検出を行う場合、ここでは1ステージのヨーロピアンな物体検出を行います。 ここでは、ラスタを初期化して 位置ごとにバイナリビットがあり そこに車があるかどうかを示します。 さらに、車がある場合は さらに、車がある場合には、他の属性の束が表示されます。 興味のある他の属性がたくさんあります。 高さのオフセット、その他の属性 どんな車なのかなどの属性 などがあります。 これは検出自体のためのものです。 すぐに分かったことは 車を検出するだけではなく、多くのタスクを 多くのタスクを実行したいことがわかりました。 例えば、交通信号の認識や 認識・検出、車線予測など 車線の予測など、非常に素早く このようなアーキテクチャ・レイアウトを 共通の共有バックボーンがあり 共通のバックボーンがあって、それがいくつかのヘッドに分岐するという いくつかのヘッドに分岐しています。 これをハイドラネットと呼んでいます。 これらはヒドラの頭です さて このアーキテクチャ・レイアウトにはいくつかの利点があります。 いくつかの利点があります。まず第一に 機能を共有しているので フォワードパスの推論をテスト時に を償却できるので、テスト時に非常に効率的に 非常に効率的に実行できます。 すべてのタスクにバックボーンを用意していたら タスクごとにバックボーンを用意していたら、車内にたくさんの 車内にはたくさんのバックボーンがあります。 第二に、これはすべてのタスクを切り離して すべてのタスクを切り離して、それぞれのタスクを それぞれのタスクを個別に作業できるようになります。 例えば、データセットのアップグレードや データセットのアップグレードや 例えば、データセットをアップグレードしたり、ヘッドのアーキテクチャを変更したりしても 他のタスクに影響を与えることはありません。 他のタスクに影響を与えないので、他のタスクを再検証する必要がありません。 他のタスクに影響を与えないので、コストのかかる 高くつく 3つ目は、ここにはボトルネックがあり ボトルネックになっているからです。 かなりの頻度で行っているのが、これらの機能を 機能をディスクにキャッシュして 微調整を行っているときに ワークフローの微調整を行う際には、キャッシュされた機能から微調整を行います。 キャッシュされた機能を元にして微調整を行い、ヘッドの部分だけを見つけます。 頭の中でしか見つけられません。つまり、多くの場合 トレーニングワークフローでは エンド・ツー・エンドのトレーニングを行うこともあります。 ここでは、すべてを共同で学習し、次に 特徴量をキャッシュします。 マルチスケールの特徴レベルでキャッシュして その結果をもとにしばらくの間、微調整を行い その後、もう一度エンド・ツー・エンドのトレーニングを行うといった具合です。 などです。 このような予測が得られています。 数年前に得られた 今から数年前 ある水素化物から得られたものです。 個々の画像を処理しています。 そう、個々の画像を処理して 個々の画像を処理して これらの画像について多くの予測を行っています。 例えば、この画像では 例えば、ここでは、一時停止標識の予測... 停止線...線...縁...車...信号...縁 車......信号......縁石 ここでは 車に火花が散っているかどうか ゴミ箱や缶、コーンなどの静的な物体のすべて 缶やコーンなどの静的物体など、ここにあるすべてのものが ネットから出てきます この場合、ヒドラネットから出てきます。 それはそれで良かったのですが、FSDに向けて作業を進めていくうちに しかし、FSDに向けて作業を進めていくと、すぐに次のことがわかりました。 これでは十分ではありません。 壊れ始めたのは、スマートサモンに取り組み始めたときでした。 スマートサモンに取り組んだときです。 カーブ検出タスクのみの予測結果の一部を示しています。 縁石検出タスクの予測を示しています。 全てのカメラについて 駐車場の周りをぐるぐる回って 駐車場をぐるぐる回って、車を呼び出している人を 車を呼んでいる人を見つけたいのですが、問題は 問題は、画像空間予測に基づいて直接運転することはできないということです。 問題は、画像空間の予測に直接アクセスすることはできず、実際に 実際には、それらをキャストして、ある種の ベクトル空間を形成する必要があります。 そこで私たちは、C++を使ってこれを試みました。 当時、私たちは 当時、占有率トラッカーと呼ばれていたものを開発しました。 ここでは、画像からのカーブ検出が 画像から縁石を検出して カメラシーンとカメラの境界を越えて 時間経過とともに ここで2つの大きな問題があります。 1つ目は、このセットアップについてです。 1つ目は オキュパントラッカーとそのすべてのハイパーパラメータの パラメーターの調整は非常に複雑で これを手作業で明示的に行いたくはありません。 C++で明示的に行うのではなく、ニューラルネットワーク内で行い ニューラルネットワークの中に入れて、最後から最後までトレーニングする必要があります。 第2に、我々はすぐに発見しました。 画像空間は正しい出力空間ではないことがすぐにわかりました。 画像空間で予測をしたくないのです。 予測を画像空間で行うのではなく、本当に ベクトル空間で直接予測を行いたいのです。 そこで、この問題を説明する方法があります。問題点 ここでは、最初の行に、曲線と直線の 曲線と直線の予測を示しています。 赤と青で表示しています。 画像では素晴らしいものですが しかし、それをベクトル空間にキャストしてみると しかし、それをベクトル空間にキャストすると、本当にひどい状態になります。 これでは車を走らせることができません。 これでは ベクトル空間での予測は非常に悪いということがわかります。 ベクトル空間での予測がいかに悪いかがわかります。 根本的にこのようなことが起こるのは ピクセルあたりの深度が非常に正確でないと 実際にこの この投影を行うためには、ピクセルごとに非常に正確な深度が必要となります。 予測することがいかに高いハードルであるか 画像の1ピクセルごとに、深さを正確に 画像の1ピクセルごとに正確に深度を予測し また、予測したい場所に遮蔽物がある場合は 予測したいと思っても、それができないのは 予測したいと思っても、画像空間ではないため、予測できません。 空間 その場合のコンセプト ですから、私たちはすぐに の現実 ところで、この問題の他の問題点は 物体検出の場合も、カメラごとに予測する場合は カメラごとに予測するだけの場合は このようなケースに遭遇することがあります。 1台の車が8台のカメラのうち5台にまたがっているようなケースです。 8台のカメラのうち5台にまたがっている そのため、個別に予測を行うと 予測を行う場合、1台のカメラでは 車のすべてを見ているわけではないので、当然 車全体を予測することはできません。 車の全体像を予測することはできません。 これらの測定値を融合させることは、非常に困難です。 また、これらの測定値を融合させることも非常に困難です。 そこで私たちは、直感的にこう考えました。 代わりにやりたいのは すべての画像を同時に 1つのニューラルネットに入力して ベクトル空間に直接出力することです。 これは非常に簡単に言えば、実際にはもっと難しいのですが 実際に実現するのは難しいですが、大まかには ニューラルネットをこのようにレイアウトして すべての画像を処理するために バックボーン そして、それらをなんとか融合させたい。 それを画像空間の特徴から 特徴を画像空間の特徴から ある種のベクトル空間に再表現したい そして、頭のデコーディングに入ります。 頭部の 今 これには2つの問題があります。 問題点その1 どうやってニューラルネットワークコンポーネントを作成するか この変換を行うニューラルネットワークコンポーネントを 変換 微分可能にする必要があります。 エンド・ツー・エンドのトレーニングが可能になるように そして2つ目は ニューラルネットからベクトル空間の予測を得たいのであれば ニューラルネットからベクトル空間の予測を得たい場合は、ベクトル 基づいたデータセットが必要です。 画像などにラベルを付けるだけでは不十分です。 ベクトル空間のラベルが必要なのです。 問題番号2については後ほど詳しく説明します。 問題の2つ目については後ほどお話しますが、今回は 今回は、ニューラルネットワークの アーキテクチャに焦点を当てたいと思います。 問題番号1に深く入ります。 これが大まかな問題です。 画像空間ではなく、鳥瞰図のような 予測をしようとしているのですが、画像空間 予測したいと考えています。 例えば、出力空間の黄色の1つのピクセルに注目してみましょう。 このピクセルは このピクセルは、自分が縁石の一部であるかどうかを判断しようとしています。 例 このような予測をサポートするためには このような予測は、画像空間の 画像空間 カメラがどのように配置されているかは大体分かっています。 カメラの位置とその外縁と内縁が大体わかっているので 固有値がわかっているので、この点をカメラ画像に大まかに投影して この点をカメラの画像に大まかに投影して これが曲線であるかどうかの証拠は これが曲線であるかどうかの証拠は、画像のどこかにあるかもしれません 問題は、この投影が 問題は、この投影が非常に難しいことです。 問題は、この投影を正確に行うことが難しいことです。 路面の関数ですからね。 路面が上に傾いていたり、下に傾いていたり また、他のデータに依存する問題もあります。 データに依存する問題があります。 車によるオクルージョンがあるかもしれません。 車がビューポートのこの部分を遮っていたら 画像のこの部分を車が遮っている場合、実際には 画像の別の部分に注意を払う必要があるかもしれません。 映っている部分ではなく、別の部分に注目したくなるかもしれません。 このようにデータに依存しているため データに依存しているため、このコンポーネントに このコンポーネントを固定的に変換することは困難です。 そこで、この問題を解決するために この問題を解決するために、この空間を表現する変換器を使用します。 この変換器は 多頭飼いの自己主張をして 遮断します。 この場合、実際には1つのブロックで済むのですが 1つのブロックでも この作業の多くを そして 効果的に行うのは 望む出力空間のサイズのラスタを初期化して 出力空間のサイズのラスタを初期化し、それを それを出力空間のサイズとコスの位置エンコーディングでタイル化して 出力空間のサイズとコスチュームの位置エンコーディングでタイル化し これらをMLPでエンコードしていきます。 クエリベクトルのセット そして、すべての画像とその特徴 画像とその特徴もそれぞれのキーと値を発し 値を出力し、クエリのキーと値は クエリのキーと値は、マルチヘッドの 自己主張をすることになります。 起こっていることは、すべての画像 各画像ピースがそのキーで発信している 自分が何であるか、自分が何の一部であるかを伝えています。 私は大体この場所にある柱の一部です。 私はこの場所の柱の一部で、このようなものを見ています。 それがキーになります。 すべてのクエリは、以下のような内容です。 私は出力空間のこの位置のピクセルです。 この位置の出力空間のピクセルで、次のようなものを探しています。 このタイプの特徴を探しています そして、キーとクエリは乗算的に作用し キーとクエリが掛け合わされ、それに応じて値が それに応じて このようにして、空間を再表現することができるのです。 この変換は非常に効果的であることがわかります。 すべてのエンジニアリングを正しく行えば エンジニアリングを正しく行えば、これもまた 非常に簡単に言えばすべてのエンジニアリングを正しく行うのは難しい エンジニアリングを正確に行うことが必要です。 もうひとつ、問題はありません。 実は以前 スライドがどうなっているのかわかりませんが もうひとつ、注意しなければならないことがあります。 慎重にしなければならないことがあります。 これを動作させようとする場合、細部に注意しなければなりません。 特に私たちのすべての車は 私たちのすべての車は、少しずつ違った方法で、少しこけています。 だから、もしあなたが 画像空間から出力空間への変換を行う場合 画像空間から出力空間への変換を行う際には カメラのキャリブレーションを知る必要があります。 それを何らかの形でニューラルネットに入力する必要があります。 ニューラルネットに入力する必要があるのですが、そのためには すべての画像のカメラ すべての画像のカメラキャリブレーションを連結して それを何とかしてMLPに入力することは可能ですが しかし、実際には、すべての画像のカメラキャリブレーションを しかし、実際には、すべての画像を すべての画像を合成仮想カメラに変換することで 特殊な平行化変換を用いて これは次のようになります。 画像補正レイヤーのすぐ上に新しいレイヤーを挿入します。 これは カメラキャリブレーションの機能であり すべての画像を仮想的な共通のカメラに変換します。 仮想的な共通カメラに変換します。 たくさんのリピーター画像を平均化して 例えば、後ろを向いている多くのリピーター画像を平均化する場合 これをしないと、ある種のボケが発生します。 ぼやけた感じになりますが 整流変換を行うと 後ろの鏡がとても鮮明になっているのがわかります。 これを行うと......パフォーマンスがかなり向上します。 パフォーマンスが大幅に向上します。 以下にその結果を示します。 左側には以前の状態が表示されており 左側には以前の結果が表示され、右側には 大幅に改善された予測値 ニューラルネットから直接出力される これはマルチカメラ・ネットワークです。 ベクトル空間で直接予測しています。 基本的には昼夜逆転していることがわかります。 昼夜逆転しています。 この上を実際に運転することができます。 これにはいくつかの時間とエンジニアリングが必要でした。 これを実際に動作させ、展開させていくには、AIチームの時間とエンジニアリング、そして驚くべき作業が必要でした。 これを実際に動作させ、配備し 車内で効率的に使えるようにするために また、これによって物体検出の多くが改善されました。 例えば、このビデオでは このビデオでは、シングルカメラ 予測をオレンジ色で、マルチカメラの 青で示していますが、基本的には 車のほんの一部しか見えていない場合は 車のほんの一部分しか見えていない場合は 車のほんの一部分しか見ていないので、検出はあまり良くないでしょう。 車の位置も良くない。 しかし、マルチカメラ・ネットワークでは しかし、マルチカメラネットワークでは問題ありません。 これは、より名目的な状況での別のビデオです。 このような状況では この狭い空間にいる車が カメラの境界を越えると、多くのジャンクが 予測に入り込んでしまい 基本的に、この設定全体が意味をなさないのです。 特に今回のような非常に大きな車に対しては 今回のような大型車の場合は特に意味がありません。 マルチカメラネットワークでは、このような このような種類の予測では、マルチカメラネットワークの 予測 さて、この時点で我々は この時点では、マルチカメラ・ネットワークは ベクトル空間で直接予測していますが しかし、私たちはまだ、すべての瞬間において 完全に独立した時間の各瞬間に すぐに発見したのは すぐに発見したのは、多くの予測を行うためには 予測するためには、実際には ビデオのコンテクストを必要とする多くの予測があることに気づきました。 これをどうやってネットに送り込むかを考えなければなりません。 具体的には、この車は駐車しているかどうか 動いているのか、速度はどれくらいか 一時的に隠されていてもまだそこにいるのか 一時的に隠されていてもまだ存在しているのか、例えば 前方の道路形状を予測しようとしている場合 前方 50年前に見た標識や道路標示を知っていると非常に便利です。 50メートル前に見た標識や道路標示が メートル前に見た そこで 開発しようとしています。 ニューラルネットワークアーキテクチャにビデオモジュールを ニューラルネットワークアーキテクチャに これは、私たちが収束させたソリューションの一つです。 収束しました。 以前からあったマルチスケールの特徴を 以前からあったマルチスケールの特徴があり、今回挿入するのは これから挿入するのは、特徴キュー モジュールを挿入し、これらの機能の一部を 時間をかけてこれらの機能をキャッシュする そして、これらの情報を時間的に融合し これらの情報を時間的に融合し そして、デコードを行うヘッドへと続いていきます。 デコーディングを行うヘッド これからこの2つのブロックを1つずつ見ていきます。 これらのブロックを1つずつ見ていきますが、さらに キネマティクスも入力していることに注目してください。 キネマティクスを入力していることにも注目してください。これは基本的に 速度と加速度です。 車がどのように動いているかを教えてくれます。 つまり、すべてのブロックから見ているものを追跡するだけでなく すべてのカメラから見ているものを追跡するだけでなく カメラの映像だけでなく、車がどのように移動したか 移動したか これが機能キューとその大まかなレイアウトです。 大まかなレイアウトですが、基本的には 基本的にはこれらの特徴を連結しています。 車がどのように移動したかという運動学的な情報と、時間的な特徴を連結しています。 車の動き 車の動きの運動学と位置のエンコーディングを 符号化されたものが連結されて feature queue それがビデオモジュールで消費されます。 ビデオモジュールで使用されます。 特に、ポップとプッシュに関しては、正しい情報を得るために ポップとプッシュのメカニズムについては メカニズム、いつ、どのようにプッシュするのか、そして そして 特に、いつ、どのようにして押すのか、基本的には ここに図解があります。 ここではいくつかの課題があります。 下から自我のある車がやってきて 下から来て、この交差点まで来ます。 交差点にやってきて、交通量が増えます。 目の前を横切るようになります。一時的に前方の車が見えなくなります。 前方の車が一時的に見えなくなります。 しばらくはこの交差点で立ち往生することになるでしょう。 しばらくの間、この交差点で 順番を待つことになります。 これはよくあることで、課題を漫画で表現したものです。 課題を漫画で表現したものです。 ここで 1つ目の課題は 機能キューに関して、また、キューに 待ち行列にプッシュしたいときには、明らかに ある種の時間ベースの待ち行列を作りたいと思っています。 例えば、27ミリ秒ごとに機能をキューに入れる場合 例えば、27ミリ秒ごとに機能をキューに入れるようにします。 例えば、ある車が一時的に 車が一時的に遮蔽された場合、ニューラルネットワークは ニューラルネットワークには、時間的に記憶を参照する能力があります。 ニューラルネットワークは、時間内に記憶を参照し 関連付けを学習することができます。 今、この車が遮蔽されているように見えても 今は隠れているように見えても、私の過去の機能にはその記録がある。 これを利用して 検出することができます。 これは、より明白なもののようですが しかし、私たちのケースで必要だとわかったのは が必要であることを発見しました。 例えば、路面の状態を予測するために 例えば、前方の路面や道路形状を予測しようと 路面や道路形状を予測しようとしているときに 予測しようとしているとします。 隣の車線が直進していることを予測しようとすると 直進 その場合 そのためには、ラインマーキングや標識、そして ラインマークや標識を知る必要があります。 時にはそれがずっと前に発生したものであったり 時間ベースの待ち行列だけでは 赤信号を待っている間にその特徴を忘れてしまうかもしれません。 赤信号を待っている間に機能を忘れてしまうかもしれないので、時間ベースのキューに加えて 時間ベースのキューに加えて、空間ベースのビューも用意しました。 空間ベースの見方もあるので、車がある一定の距離を移動するたびに 車が一定の距離を移動するたびにプッシュする これらの詳細は実際にはかなり重要です。 これらの詳細は非常に重要です。 この場合、時間ベースのキーと空間ベースのキーを用意して 機能をキャッシュするための時間ベースのキーと空間ベースのキーがあります。 Videoモジュールに続く ビデオモジュールでは、次のような点を検討しました。 この情報を時間的に融合させる方法について、いくつかの可能性を検討しました。 この情報を時間的に融合させる方法について、いくつかの可能性を検討しました。 三次元の畳み込み 変圧器 軸方向の変圧器 より効率的にするために 効率的なリカレント・ニューラル・ネットワーク 数多くの種類がありますが しかし、私たちが実際にかなり気に入っているのは しかし、私たちが実際に気に入っていて、少し時間をかけたいと思っているのが 空間リカレント・ニューラル・ネットワーク・ビデオ・モジュール ネットワークビデオモジュールです。 ここでやっていることは 問題の構造上 私たちは2次元の表面を運転しています。 隠れた状態を2次元に整理することができます。 隠れた状態を2次元の 格子状に整理して、車が走っている間に 車が走っている間に、車の近くにある部分と 車の近くで、車が視認できる部分だけを更新します。 車が走り回っている間に 車が走り回っている間、運動学を使って に車の位置を統合します。 隠れた特徴 グリッドに統合し、Rnnの更新は 隠れた特徴を持つグリッドに車の位置を統合し 近くにあるポイントでのみRnnを更新しています。 以下にその例を示します。 のようになります。 これからお見せするのは、車が 車が走り回る様子 そして の隠れた状態を見ています。 このRNN の隠れた状態を見ているのですが、これらは隠れた状態の異なるチャンネルです。 隠れた状態を見ていると、これが 最適化してニューラルネットをトレーニングした後 ニューラルネットが最適化され、訓練された後、いくつかのチャンネルが チャンネルの中には、道路の様々な側面を追跡している 道路の異なる側面を追跡していることがわかります。 道路の中心、エッジ、ライン 路面などです。 このビデオのもう一つのクールなビデオです。 これは、隠れた状態の最初の10チャンネルの 隠れた状態の最初の10チャンネルの平均値を 異なる 隠れた状態の最初の10チャンネルの平均を見ています。 基本的に見ていただきたいのは 基本的には、リカレント・ニューラル・ネットワークが リカレント・ニューラル・ネットワークが どの時点で何が起こっているかを追跡している 想像してみてください。 ニューラルネットワークに力を与え ニューラルネットワークには、実際に選択的にメモリを読み書きする力が与えられています。 例えば 例えば、すぐ隣に車がいて 例えば、隣に車がいて、道路の一部を遮っていたとしたら 例えば、すぐ隣に車があって、道路の一部を遮っていたとすると、ネットワークは その場所には書き込まないが しかし、車が去って視界が開けてくると しかし、車が去って視界が開けてくると、リカーリング・ニューラル・ネットは 視界が開けているので その部分にある情報を 空間のその部分に何があるかという情報を 空間 これがどのように見えるかを示すいくつかの予測があります これがどのようなものか ここでは、以下のことを予測しています。 赤色の道路境界線の交差点 青色の交差点エリア 道路の中心などを予測しています。 ここでは予測の一部を表示しています。 視覚化をきれいに保つために うん そう、これは空間Rnnによって行われたもので これは空間Rnnによって行われ、1つのクリップ、1つのトラバーサルのみを表示しています。 1つのクリップ、1つのトラバーサルを示していますが ここを複数回通過する可能性があることは想像に難くありません。 ここを通過する車の数や、基本的に 何台もの車、何個ものクリップが 協力してこのマップを作っています。 基本的かつ効果的なHDマップ ただし、明示的なアイテムの空間ではなく アイテムの空間ではなく、リカレント・ニューラル・ネットワークの特徴の空間になります。 リカレント・ニューラル・ネットワークの特徴を利用しています。 今まで見たことがないクールなものです また、ビデオネットワークは 今回の例では、物体検出がかなり改善されています。 今回の例では、車が2台ある場合に 2台の車があって 車が2台あって、1台の車がそこを通り過ぎようとしています。 1台の車が通り過ぎて、2台の車を一時的に隠します。 シングルフレームで何が起こっているか 車が目の前を通り過ぎるときに、シングルフレームとビデオの予測で何が起こっているかを見てください。 車が目の前を通り過ぎるときに、シングルフレームとビデオ予測で何が起こっているかを見てください。 これは非常に理にかなっていると思います。 ざっと 何が起こっているのか、簡単に説明します。 その両方が見えているときには 予測値はほぼ同等です。 複数のオレンジ色のボックスが表示されていますが 複数のオレンジ色のボックスが表示されていますが、これは異なるカメラから カメラ それらが隠れると、シングルフレーム ネットワークは検出を中止しますが、ビデオモジュールは ビデオモジュールがそれを記憶して 車を保存しておき、部分的にしか見えなくなったときに 部分的にしか隠れていない場合、シングルフレーム ネットワークは、見ているものについて最善の推測をせざるを得ません。 何が見えているのかを推測し、予測することを余儀なくされます。 予測をしなければならないのですが、非常にひどい予測をしてしまいます。 非常にひどい予測をしますが、ビデオモジュールは しかし、ビデオモジュールは、部分的にしか見えていないことを知っています。 情報を持っていることを知っていて これは簡単に見えるものではないことを知っています。 目に見える 部分しかないことを知っていて、それを実際には考慮していません。 考慮していません。 また、深さや位置の推定能力も大幅に向上しました。 深さを推定する能力も大幅に向上しました。 特に速度の推定能力が大幅に向上しました。 ここでは、レーダーを取り除いたときの映像をお見せします。 レーダーの深度と速度が緑色で表示されています。 レーダーの深度と速度が緑色で表示されていますが、私たちは 私たちは レーダーの深度と速度が緑で表示されています。 ビデオネットワークからの信号だけで ここで見られるのは、オレンジ色の オレンジ色で表示されているのは、シングルフレーム パフォーマンス 青で示しているのは、再びビデオ モジュールを見ると、奥行きの品質がはるかに高いことがわかります。 深度の品質がはるかに高く、速度については オレンジ色の信号は、もちろん、シングルフレームでは シングルフレームのネットワークから速度を得ることはできません。 ネットワークから速度を得ることはできないので、我々は単に 深度を区別して得ていますが しかし、ビデオモジュールは基本的に レーダー信号の上に位置しています。 これが非常によく機能することがわかりました。 私たちにとって すべてをまとめてみました これが現在の私たちのアーキテクチャの大まかな姿です。 今日はこんな感じです。 下に生の画像があります。 レクティフィケーションレイヤーを経て カメラのキャリブレーションを補正し、すべてを すべてを共通のバーチャルな カメラを経由して レグネットの残差ネットワークを経由して さまざまなスケールの複数の特徴に マルチスケールの情報を マルチスケールの情報をFBNで融合します。 変換モジュールを経て 出力空間のベクトル空間に再表現されます。 出力空間のベクトル空間に再表現されます。 時間的または空間的にフィーチャーキューに入り のようなビデオモジュールで処理され 空間RNNのような映像モジュールで処理され、その後は ヒドラネットの枝分かれ構造 すべての異なるタスクのためのトランクとヘッドを持つ 異なるタスクの 以上が、大まかなアーキテクチャです。 これが現在の大まかなアーキテクチャで、右図には 右側にはその予測の一部が表示されています。 右側には、その予測を......つまり、トップダウンのベクトル空間と トップダウンのベクトル空間と、画像の両方で 画像も表示されています。 このアーキテクチャは確かに 非常にシンプルなものから複雑化した 画像ベースの単一ネットワークから 3、4年前の非常にシンプルな画像ベースの単一ネットワークから複雑化し、今も進化し続けています。 進化し続けています......非常に印象的です。 印象的ですが、まだ チームが積極的に取り組んでいる改善の機会もあります。 チームが積極的に取り組んでいる例として 例えば、時間と空間の融合は 時間と空間の融合は、ニューラルネットワーク的にはかなり遅れています。 時間と空間の融合は、ニューラルネットワーク的にはかなり遅れていることがわかります。 空間や時間の融合を早めに行い 例えば、コストボリュームやオプティカル 下部のオプティカルフローのようなネットワーク 例えば、私たちの出力は密度の高い 密なラスタであり、これらを後処理するのは実際にはかなり 濃密なラスタを車内で後処理するのは 緻密なラスタを車内で後処理するのはかなりコストがかかりますし、もちろん 非常に厳しいレイテンシーの要求があります。 これは理想的ではありません。 実際には様々な方法を検討しています。 道路の疎な構造だけを予測する方法を 道路の疎な構造を 道路のスパースな構造を予測する方法をいろいろと検討していますが、ポイント・バイ・ポイントや 他の方法で 高価な後処理を必要としないような 後処理 高価な後処理は必要ありませんが、基本的にはこのようにして 非常に優れたベクトル空間を実現する方法です。 ashokは、その上でどのようにして その上でプレイコントロールを実行する方法について話してくれると思います。 [Applause] (拍手) ありがとうございましたアンドレ 皆さんこんにちは、私の名前は アショクです。私はプランニングとコントロール オートラベリングとシミュレーションチームを担当しています。 ビジュアル・ネットワークのような次元では 緻密なビデオデータを圧縮して 3Dベクトル空間に圧縮します。 現在のプランナーの役割は、このベクトル空間を利用して プランナーの役割は、このベクトル空間を利用して、車を目的地まで 車の安全性、快適性、効率性を最大化しながら 車の安全性、快適性、効率性を最大化しながら 2019年の時点でも、私たちの惑星はかなり有能なドライバーでした。 車線に沿って走行することができ 必要に応じて車線を変更し 必要に応じて車線変更をしたり、高速道路の出口を出たりすることができましたが、CDC 運転はもっと複雑です ラドリーには 車線の構造があり、車は 車はもっと自由に運転しています。 のすべてに対応しなければなりません。 歩行者が変な動きをしたり 歩行者がおかしな動きをしていたり プランニングにおける重要な問題とは? 第一に、行動空間は非常に 非凸 2つ目は高次元であることです 非凸というのは 非凸というのは、複数の可能な解があって 独立して良いと思われる複数の解が存在する可能性があります。 しかし、大域的に一貫した解を得ることは 解を得ることは非常に困難です。 計画が行き詰まるようなローカルミニマムのポケットがあるかもしれません。 計画が行き詰まってしまう可能性があります。 第二に......高次元性は 高次元なのは、車が次の10秒から15秒の計画を立てる必要があり 10秒から15秒後の計画を立てて 位置・速度・加速度を生成する必要があるからです。 加速度を生成する必要があるからです......あるいはこのウィンドウ全体を これは実行時に生成するパラメータの数が多く ランタイムに 離散探索法は,非文脈的な問題を解くのに非常に 非文脈問題を解くのに最適です 離散的であるため、ローカルミニマムに陥ることはありません。 ローカルミニマムに陥ることはありません。 連続関数最適化では 簡単にローカルミニマムに陥ってしまい てしまうことがあります。 大きな 一方、高次元の問題では 高次元の問題では、離散的な探索では 離散的だから 離散的であること、段階的な情報を使用しないこと 段階的な情報を使わないので、文字通り 各点を探索してその良さを知る必要があります。 るのに対し、連続的な 連続的な最適化では、勾配ベースの手法を用いて 素早く良い解決策にたどり着ける このプリンタ問題に対する我々の解決策は 階層的に分解してから コード検索法を使用してサクサクと ええと 凸ではない部分をかみ砕いて、凸の コリドーを導き出し、連続的な 最適化手法を用いて 最終的に滑らかな軌跡を描くことができます。 探索の動作例を見てみましょう。 動作 ここでは、車線変更をしようとしています。 この場合、車は2回の車線変更を行う必要があります。 この場合、車は前方の左折のために2回の車線変更を行う必要があります。 前方の左折 そのために、車は次のような検索をします。 様々なマヌーバを検索します 最初に検索したのは 車線変更は近くにありますが しかし、車のブレーキングはかなり厳しいので 居心地が悪い 次の操作では、車線変更を試みますが 車線変更が少し遅かったので、スピードを上げて 他の車の前に出て 車線変更の際に他の車を発見します。 見つけることができましたが、今度は左折し損ねてしまう ターン このような検索を短時間に何千回も行います。 非常に短い時間で これらはすべて物理ベースのモデルなので これらの機能は非常に簡単にシミュレーションできます。 そして最終的には、いくつかの候補が出てきて 最終的には、候補の中から1つを選びます。 最終的には、以下の最適条件に基づいて 最終的には、安全性と快適性、そして簡単に曲がれるという ターン 今、車はこの道を選びました。 車がこの軌道を実行しているのを見てください。 この軌道を実行すると、我々が計画したものとほぼ一致することがわかります。 右側のシアン色のプロットは、私たちが計画したものとほぼ一致しています。 この右側のシアン色のプロットが 車の実際の速度であり、その下の白い線は その下にある白い線が計画です。 ここでは10秒間の計画を立てることができ 後から見ると 後から見たときに一致しているので、これは よくできた計画 他のエージェントと一緒に運転するときは 自分のためだけではなく、みんなのために計画を立てることが大切です。 自分のことだけを考えるのではなく、みんなのことも考えて みんなで協力して全体を最適化することが大切です。 シーンの交通の流れ そのために、私たちは 文字通り、自動操縦プランナーを シーン内のすべての関連オブジェクトに対して シーン なぜそれが必要なのか、その例を挙げてみましょう。 必要な理由 これは自動回廊です。 ビデオを見てみましょう これは自動操縦で自動車を走らせているところです。 自動運転で駐車場のコーンやポールを回り込んでいます。 そしてポール......ここに3Dビューがあります。 同じもの 対向車が到着すると 自動操縦は少し減速しますが 対向車が来ると自動操縦は少し減速しますが こちら側にスペースがないため、相手に譲ることができないことに気づきます。 しかし、相手の車はこちらに譲ることができます。 ただやみくもに譲るのではなく やみくもに理由をつけて あの車は 車の速度が十分に低いので 車を停めて、こちらに譲るべきだと思います。 私たちは彼らに譲ることができないので、断固として 進める 2台目の対向車が来た この車は速度が速い 先ほども言ったように、我々は文字通り 相手の自動操縦プランナーを この場合はプリンタを走らせます その物体のプランは その物体の計画は、彼らのパートを回り、彼らのサイトの 駐車場の車を通過した後 駐車場を通り過ぎた後、道路の右側に戻ります。 道路の右側に戻っていきます。 ドライバーの心の中はわからないので ドライバーが何を考えているかわからないので、実際には複数の この車の特徴は複数考えられます。 赤色で表示されているものと、緑色で表示されているものがあります。 緑色で示されています 緑の方はこちらに譲歩するプランですが しかし、この物体の速度と加速度はかなり高いので この物体の速度と加速度はかなり大きいので この人がこちらに譲るとは思えません。 実際には、火花が散った車の周りを回っていると思います。 このスパークした車の周りを回っている そこで自動操縦は、「ここにはスペースがある」と判断します。 この人は絶対に来る。 この人は絶対に来るから車を止める 自動操縦が車を停めている間、我々は その車がヨーレートに基づいて我々に譲ることを選択したことに その車のヨーレートと加速度を見て 自動操縦はすぐに 自動操縦はすぐに考えを変えて前進し続ける 進む だからこそ、すべての人のために計画を立てる必要があるのです。 そうでなければ、この人が周回するとは そうでなければ、この人が他の駐車場の車の周りを回っていることを 他の駐車場の車を 自分のサイトに戻ってくるとは限らないからです。 そうしないと、自動操縦はあまりにも臆病で 臆病になってしまい、実用的な 自動運転車 ここまでで、検索と 他の人のための計画を立てる方法を見てきました。 囚人の谷......最後に、私たちは 連続的な最適化を行って 惑星が取るべき最終的な軌道を が取るべき最終的な軌道を生成します。 ここで、お墓は...凸型の回廊です。 スプラインを初期化します。 パラメータ化された方位と加速度 計画の弧の長さをパラメータとした としてみると カウンターミアスレーションが継続的に すべてのコストを削減するために、きめ細かな変更を継続的に行っていることがわかります。 コストを削減するために細かい変更を続けていることがわかります。 例えば、障害物からの距離 探索時間と快適性のための快適性 右側の横方向の加速度プロットを見ると 右側の横方向の加速度のプロットは 綺麗な台形になっていますね......これからですよ ここでは、右側の 緑のプロットは......きれいな台形になっています。 人間の軌跡を記録すると 人間の軌跡を記録すると、ほぼこのようになります。 横方向のジャークも最小限に抑えられています。 最小化 要約すると、我々は自分とシーン内の他の人の両方を検索します。 シーンの中の自分と他の人の両方を検索します。 コンテキストコリドーを設定して スムーズなパスを最適化する これらを組み合わせることで、以下のような非常に優れた 次のようなことができます。 上の図 しかし、私が生まれ育った場所のように 私が生まれ育った地域のように ええと より構造化されていません。 車と歩行者がぶつかり合う アーチブレーキ、クラクション、そして とてもクレイジーな世界です。 これらの手法をスケールアップすることはできますが しかし、実行時にこの問題を効率的に解決するのは非常に難しいでしょう。 実行時に効率的に解決することは非常に困難です。 代わりにやりたいのは、学習ベースの手法を使って 学習ベースの手法を使って効率的に解決したい なぜそれが正しいのかを説明したいと思います。 さて、これからこの複雑な問題を この複雑な問題から、もっと単純な おもちゃの駐車場問題ですが、それでも 問題の核心を示しています ここに駐車場があります。 は青で、ここの緑の駐車場に駐車する必要があります。 緑の駐車場に停める必要がありますので、この車は 縁石や駐車場の車や オレンジ色で示されたコーンを回る必要があります。 このシンプルなベースラインをやってみましょう、It's a 星です 標準的なアルゴリズムでは 梯子状の空間を探索する標準的なアルゴリズムです。 ここでのヒューリスティックは、距離......つまり ゴールまでのユークリッド距離 なので、直接ゴールに向かってシュートしているのがわかると思います。 ゴールに向かって直進するが、すぐに ローカルミニマムに陥ってしまい そこからバックトラックして そこからバックトラックして、別の経路を探索して このパルクールを迂回しようとする 最終的には前進してゴールにたどり着きますが しかし、最終的には400,000個のノードを使って これを作るのに これは明らかにひどいヒューリスティックです 私たちはこれよりも良いものを作りたいので もしナビゲーションルートを追加して ナビゲーションルートを追加して、車がナビゲーションルートに沿って ゴールに近づきながらナビゲーションルートをたどるようにすると このようになります。 ナビゲーショングルートはすぐに役立ちます しかし、それでもコーンや他の障害物に遭遇すると コーンなどの障害物に遭遇すると、基本的には 前と同じことになります 後退して、新しい道を探します 新しい道を探すことになります。 サポートサーチはこれらの障害物が存在することを知らないので 文字通りそこに行って、衝突するかどうかをチェックして 衝突しているかどうかを確認し、衝突していたら 戻る ナビゲーションヒューリスティックは役に立ちましたが それでも22,000枚のノートが必要でした 私たちはこのようなヒューリスティックをもっともっと設計して もっともっとヒューリスティックを設計して、検索をどんどん 速くすることができます。 しかし、全体的に最適なヒューリスティックを設計するのはとても面倒で 最適なヒューリスティック コーンからの距離関数があったとしても コーンからの距離関数があったとしても、それが探索の指針になったとしても これではダメですね。 単一のコーンに対してのみ有効である しかし、我々が必要とするのは、グローバルな 価値関数です。 ニューラルネットワークを使用して このヒューリスティックな手法は 視覚的なネットワークは、ベクトル ベクトル空間を生成し、その中を車が動き回ります。 これは基本的にアタリのゲームのように見えます。 ゲーム マルチプレイヤーバージョンです。 mu0α0などの技術を使うことができます。 ゼロなど、囲碁や他の権威あるゲームを解くのに使われた技術を使って などの技術を使って同じ問題を解くことができます。 同じ問題を解決するために、私たちはニューラルネットワークに取り組んでいます。 状態と行動の分布を生成するニューラルネットワークに取り組んでいます。 行動分布を生成するニューラルネットワークに取り組んでいます。 様々なコスト関数を用いた多色刷りの研究に 様々なコスト関数 コスト関数の中には 距離などの明示的なコスト関数 衝突や快適な移動時間など などの明示的なコスト関数もありますが 実際のマニュアル運転からの介入 ドライビングイベント このようなネットワークを、この単純な このようなネットワークを訓練します。 この問題でMctsがどのように研究したか見てみましょう ここでは、惑星が 地球は基本的に一発で 目標に向かって前進しています これはナビゲーションヒューリスティックを使っているわけではありません。 ナビゲーションヒューリスティックを使っていないことに気付きました。 シーン 惑星は直接ゴールに向かうことができます ゴールに向かうことができます。 見えるのは可能な選択肢です。 どれかを選ぶのではなく 直接ゴールに向かっていく選択肢を ゴール その理由は、ニューラルネットワークが シーンのグローバルコンテキストを吸収して シーンのグローバルな文脈を吸収して、ゴールに効果的に導く価値関数を に向かって効果的に誘導する価値関数を生成することができます。 局所的なミニマムを特定するのではなく、全体的なミニマムに向かって 特定のローカルミニマムに向かうのではなく この作業に必要なのは288枚のノートだけであり この作業には288枚のノートが必要で、「a star」の平衡状態で行った作業よりも数桁少ない量になります。 均衡距離ヒューリスティック法を用いた「a star」で行われた作業よりも数桁少ない。 距離ヒューリスティック 最終的なアーキテクチャはこのようになります。 ビジョンシステムは 緻密なビデオデータをベクトル空間に分解し ベクトル空間に変換します。 それを明示的なプランナーとニューラルネットワークの両方が 明示的プランナーとニューラルネットワーク プランナーに加えて、ネットワーク ネットワークパネルは、ネットワークの中間的な ネットワークの中間機能 これにより、軌跡の ディストリビューション それを端から端まで最適化することができます。 明示的なコスト関数と人間の介入による 人間の介入や他の模倣データを用いて このデータは、明示的なプランニング 関数に入ります。 そのために簡単なことは何でも行い 車の最終的なステアリングと加速度のコマンドを 車の最終的なステアリングと加速度のコマンドを生成します。 ここで、ネットワークをどのように学習させるかを説明します。 これらのネットワークを訓練するためには これらのネットワークを訓練するためには、大規模なデータ セット 簡潔にお話します。 マニュアルラベリングについて データについて データセットのストーリーについて これまでニューラルネットワークの話ばかりしてきましたが ニューラルネットワークの話ばかりしてきましたが ニューラルネットワークは性能の上限を示すだけです。 ニューラルネットワークは性能の上限を示すだけです。 ニューラルネットワークは何億ものパラメータを持ち 何億ものパラメータを持ち、これらの この何億ものパラメータを 正しく設定する必要があります。 パラメータの設定が悪いと 動作しないでしょう。 ニューラルネットワークは上限に過ぎません。 膨大なデータセットが必要です。 正しいアルゴリズムを訓練するためには膨大なデータが必要です 特に私が言ったように、私たちは ベクトル空間に直接データセットを そこで問題となるのが どうやって蓄積するのか? ネットワークには何億ものパラメータがあるので 何百万ものベクトル空間をどうやって 何百万ものベクトル空間を きれいで多様な何百万ものベクトル空間の例を ニューラルネットワークを実際に訓練するために 効果的に データセットの話があります。 データセットがどのように進化してきたか、そして すべてのモデルと開発が 私たちが達成したこと 特に、私が入社した約4年前は 4年前に入社したときは 多くのデータセットを得るために第三者と協力していました。 残念ながら、私たちはすぐに データセットを得るためにサードパーティと協力することは データセットを得るために しかし、すぐに、このような重要なことのためにサードパーティと協力してデータセットを入手することは不可能だとわかりました サードパーティとの連携によるレイテンシーは 遅延が非常に大きく、正直なところ 品質も驚くべきものではありませんでした。だからこそ 完全な垂直統合の精神に基づき 完全な垂直統合の精神に基づき、Teslaではラベリングのすべてを 時を経て、私たちは 1,000人を超えるデータ ラベリング組織は、プロのラベラーで構成されています。 エンジニアと密接に連携しているプロのラベラーが エンジニアと密接に仕事をしています。 実際、彼らはアメリカにいて エンジニアと密接に協力しているのですが、実は彼らはアメリカにいて、この地域のエンジニアと一緒に活動しています。 彼らとは非常に密接な関係にあります。 彼らと緊密に連携し、インフラの構築も行っています。 また、インフラを一から構築しています。 私たちは彼らと緊密に仕事をしています。 今日後ほどお会いする予定の データラベリングのためのインフラを開発し データラベリングのためのインフラを開発・維持するチームがあります。 例えば、ここではいくつかの レイテンシー スループットと品質の統計を すべてのラベリングワークフローと ワークフロー、個々の関係者、すべてのタスク すべてのラベリングワークフロー、関係者、すべてのタスク、そして ラベルの数がどのように増加しているか これが非常に重要であることがわかりました。 私たちはこれを誇りに思っています。 およそ3、4年前の最初の頃は 年前には、ラベリングのほとんどが 画像空間で行われていましたので、想像できると思いますが このような画像に注釈をつけるには、かなりの時間がかかることが想像できます。 このような画像に注釈をつけるには、かなりの時間がかかることが想像できます。 こんな感じでした。 画像の上に多角形やポリラインを描いているようなものです。 ポリゴンやポリラインを 一枚一枚の画像の上にポリゴンやポリラインを描いています。 先に述べたように、私たちは何百万もの ベクトル空間 これでは間に合いません。 すぐに次の段階に進みました 3次元または4次元の ラベリングに移行しました。 個々の画像ではなく、ベクトル空間で ここで私が見せているのは ここで見せているのはクリップで、非常に小さな再構成を見ています。 非常に小さな再構成を見ていますが、これからもっと多くの再構成を見ることになります。 もっとたくさんの再構成を見ることができますが、これは 車が走っていた地表面の非常に小さな再構成です。 車が走っていた地面の平面と この点群を少しだけ再構成したものです。 再構成されています。 ここで見られるのは、ラベラーが を変更しています。 ベクトル空間で直接ラベルを変更し その変更をカメラ画像に再投影しています。 カメラ画像に再投影しています。 ベクトル空間で直接ラベリングを行うことで これにより、多くのラベルのスループットが大幅に向上しました。 多くのラベルのスループットが大幅に向上しました。 というのも、3Dで一度ラベリングした後、再投影すると 再投影 しかし、この方法でも、実際には しかし、これだけでは そこで 人間とコンピュータでは 人とコンピュータには異なる長所と短所があります。 意味論のようなものは非常に得意ですが コンピュータが得意とするのは幾何学 再構成 三角測量 追跡 ですから、私たちにとってはむしろ 人間とコンピュータがどのように協力して 人間とコンピュータが協力して ベクトル空間のデータセットを作成するために、人間とコンピュータがどのように協力するかという話になってきました。 オートラベリングについては割愛します。 ラベリングのために開発したインフラである 大規模なクリップのラベリングのために開発した スケール [拍手] 再びこんにちは たくさんの人間の労働力があっても トレーニングデータの量は ネットワークの学習に必要な学習データの量は 膨大な量の学習データを必要とするため、私たちは 大規模なオートラベリングパイプラインに投資しようとしています。 パイプラインに投資しようとしています。 クリップのラベル付けの例です。 クリップとは、ビデオやIMUデータ、GPS、走行距離などの imuデータ gpsオドメトリなど 45秒から1分程度の長さのものです。 これらのデータは、当社のエンジニアリングカーからアップロードされたものもあれば お客様の車からアップロードされることもあります。 これらのクリップを収集してから それらを 多くのニューラルネットワークをオフラインで実行して オフラインで多くのニューラルネットワークを実行して セグメンテーション、マスク、深度、ポイントマッチングなどの ポイントマッチングなどの中間結果を得ることができます。 ロボティクスとアルゴリズムを駆使して アルゴリズムを経て、最終的なラベルセットを ネットワークの学習に使用できるラベル ネットワーク ラベリングしたい最初のタスクの1つは 路面を表現するには、スプラインやメッシュを使用します。 路面を表現するには、スプラインやメッシュ 路面を表現することができますが、これらは トポロジーの制約があるため 微分できないので、このような表現には適していません。 そこで、代わりに行うのが ニューラル・ラディアンス・フィールドのスタイルで 去年の作品でかなり好評だった その代わりに、昨年のニューラル・ラディアンス・フィールドの作品のように、暗黙的な 路面を表現するために暗黙的な表現を使います。 路面 ここでは、地面上のxy点をクエリして 地面のxy点を問い合わせて、ネットワークに 地面の高さを予測する 以下のような様々なセマンティクスとともに カーブ 車線の境界 路面 ライバルのスペースなど つまり、単一のxyがあれば、zも一緒に得られます。 これらが3Dポイントとなり すべてのカメラビューに再投影することができます。 このようなクエリを何百万回も実行して 数百万回のクエリを行い、多くの点を得て、これらの点は これらの点はすべてのカメラビューに再投影されます。 ここでは、右上に表示されている これらの点が再投影されたカメラ画像を 再投影された点 この点を比較すると 再投影された点と画像空間との比較 セグメンテーションの予測 再投影された点とセグメント化された画像空間の予測とを比較し、この点またはすべてのカメラビューを共同で カメラの映像を時空間的に最適化することで 優れた再構築が可能になりました。 以下にその例を示します。 これが最適化された路面です。 8台のカメラで再現された路面 車に搭載されている8台のカメラと、すべての時間にわたって 時間的にも空間的にも一貫しているのがわかると思います。 空間と時間の両方で一貫していることがわかります。 一台の車がある場所を走ると ある場所を走っている一台の車が、この技術を使って軌跡の周りの この技術を使って軌道の周りのパッチを掃除することができます。 しかし、それだけではありません。 ここでは、さまざまな クリップ 同じ場所から異なる車の 車 それぞれが道路の一部を切り取っています。 道路 クールなのは、それらを全部まとめて 1つの大きな最適化にまとめることができます。 最適化することができます。つまり、この16種類の の旅行が整理されています。 様々な機能を使って整列させます。 道路標識、車線標識などの様々な機能を使って 互いに一致している必要があります。 画像空間のすべての 観測 このようにして、効果的な 路面をラベリングする効果的な方法 車が走行した場所だけでなく、走行していない他の場所でも 走った場所だけでなく、走っていない他の場所も含めて 繰り返しになりますが、このシステムの目的は、単に HDマップなどを作るためではありません。 交差点を通過するクリップにラベルを付けることで 交差点を通過するクリップにラベルを付けて、それを永遠に維持する必要がないようにするためです。 ラベルがビデオと一貫している限り、永遠に維持する必要はありません。 ラベルがビデオの内容と一致している限り ラベルが収集されたビデオと一貫している限り、永遠に維持する必要はありません。 オプションとして、人間がこの上に乗って 雑音や追加のメタデータを除去して メタデータを追加することで よりリッチに 路面だけではなく、任意に 路面だけでなく、任意の 3Dの静的な障害物を再構築することもできます。 これはカメラから再構成された3D点群 我々のカメラから ここでの主な革新点は、点群の密度 点群の密度です。 ポイントはテクスチャを必要とする あるフレームから次のフレームへの関連付けを行うために しかし、ここでは しかし、ここでは、路面や壁のような文字のある場所でも 路面や壁のような文字のある面でも点を生成することができます。 これは、次のような任意の障害物にアノテーションするのに非常に有効です。 世界のシーンで見られる任意の障害物を 世界のシーンで見られる任意の障害物に注釈をつけるのにとても便利です もうひとつ、オフラインのサーバー上でこれらのことを オフラインのサーバー上でこれらの作業を行うことのもう一つの利点は 後学の利益があることです。 これは非常に便利なハックです。 例えば車の中では、ネットワークは速度を出す必要があります。 速度を出す必要がありますが、過去の情報を利用して 過去の情報から速度を推測して 速度を推測します。 しかし、ここでは しかし、ここでは過去と未来の両方を見て しかし、ここでは歴史と未来の両方を見て、基本的にはズルをして 正解を導き出すことができます......運動学の 速度、加速度など もう一つの利点は、異なるトラックを用意して もう一つの利点は、異なるトラックを持ち、それらを 切り替えることができます。 未来を知っているからこそ、私たちは 未来のトラックを持っているので、それらを一致させ、関連付けることができます。 関連付けることができるので、ここでは 道路の反対側にいる歩行者 道路の反対側の歩行者は、複数のオクルージョンがあっても 車が複数のオクルージョンを起こしていても これはプランナーにとって非常に重要です プランナーは、誰かを見たかどうかを知る必要があるので 誰かを見たとしても、それを考慮する必要があるからです。 人を見たかどうかを知る必要があります。 隠蔽されているかどうかを知る必要があるため、これは大きな利点です。 すべてを組み合わせることで 驚くべきデータセットを作成して 道路のテクスチャや 静止している物体と動いている物体の 動いている物体のすべてに注釈をつけることができます。 優れた運動学的 ラベル カードがどのように回転しているかを見ることができます。 スムーズにラベルを作成することができます。 歩行者を一貫して追跡したり パークカーは 明らかに速度がゼロなので 駐車されていることがわかる これは非常に重要なことだと思います これは同じことのもう一つの例です 同じこと すべてが一貫しているのがわかると思います。 我々はこのような100万個の ラベル付きの このようなラベル付きのクリップを100万個作って、ビデオ このような大規模なデータセットを使ってマルチカムビデオネットワークを この問題を解決するためには 私たちは、ここで見ているのと同じような一貫性のある表示を 車内で見ているのと同じような一貫した映像を 車 私たちはこの問題の最初の調査を データを削除するプロジェクトを始めました。 非常に短い期間でデータを削除しました。 3カ月以内に削除しました ネットワークの初期段階では 例えば、セキュリティの低い環境では ネットワークが被害を受けることがあります。 当然のことながら、このトラックが トラックが大量の雪を降らせてきて 見えにくいですが しかし、この車が前にいたことを忘れてはいけません。 目の前にいたことを忘れてはいけません。 しかし、初期のネットワークではこれができませんでした。 初期のネットワークでは、このような状況下でのデータが不足していたため このような状況では そこで私たちは、フリートを追加して 似たようなクリップをたくさん作って 艦隊はそれに応えてくれました その結果 再生 そう、たくさんのビデオクリップを生成します 他の車からクソが落ちてくる 車 これをオートリビングのパイプラインに送ります。 1週間で10,000個のビデオクリップにラベルを付けることができました。 週間で1万個のクリップにラベルを付けることができました。 人間がやると数ヶ月かかるところを 全てのクリップにラベルを付けることができました。 これを200種類の条件で行ったところ これを200種類の条件で行ったところ、大規模なデータセットを迅速に作成することができました。 大規模なデータセットを迅速に作成することができました。 このようにして、これを取り除くことができました。 このデータでネットワークを学習すると データ このデータでネットワークを学習させると、完全に機能していることがわかります。 被写体がそこにいたという記憶を保持している そこにいた を提供しています。 最終的には、サイバー・トラックを実際にデータ化したいと考えました。 サイバートラックをデータセットに リモートレーダー この映像をどこから入手したか、皆さんはお分かりになりますか? ちょっと待ってくださいね。 誰かが言っていましたが、そうです、レンダリングされたものです。 これは我々のシミュレーションです 最初は分かりにくかったのですが 自分で言うのもなんですが......。 とてもきれいに見えます。 そう、オートラベリングに加えて、私たちは オートラベリングに加えて、シミュレーションにも力を入れています。 ラベリングのために データ これは前に見たのと同じシーンですが 前に見たのと同じシーンを 別のカメラアングルから いくつか指摘しておきたいことがあります。 例えば、地面の表面は平面ではありません。 平面のアスファルトではなく、たくさんの車や 車やひび割れ、タワーの継ぎ目 その上にパッチワークが施されています。 車の動きはリアルで、トラックは アーティキュレートされていて......縁石を越えて大回りをしたり 縁石を乗り越えて大回りをする......他の車は 他の車はスマートに振る舞い、衝突を避け、車を回り込みます。 車を回避する......そして、スムーズで 実際にとてもスムーズに......ブレーキや スムーズに加速する ここにあるロゴの入った車が オートパイロットです 実際にはオートパートが運転しています 非生産的な運転をしているのです。 左手 シミュレーションなので、ベクトル空間からスタートするので ベクトル空間から始まるので、完璧な ラベル ここでは、私たちが作成したラベルのいくつかを紹介します。 作成した これらは車両のキューボイドと キネマティクス 深度 表面法線、セグメンテーションです。 アンドレは来週やりたい新しいタスクを指定して 来週欲しいという新しいタスクを指定することができますが、私たちは非常に迅速に ベクトル空間があるので ベクトル空間があり、ラベルを生成するコードを書けば ラベルを作成するコードを書くことができます。 迅速に どのような場合にシミュレーションが役立つのでしょうか? 第一に、データの入手が困難な場合に役立ちます。 1つ目は、我々のような大規模な 私たちのような大規模な船団でも、データを入手するのは困難です。 このカップルと犬が高速道路を走っている間に 高速道路を走るカップルと犬のような 高速道路を走るカップルと犬 これはかなりレアなシーンだと思いますが 起こる可能性があります。 自動操縦で対処する必要があります。 その時は データにラベルを付けるのが難しい場合......例えば 何百人もの歩行者が道路を横断しています。 道路を横断する歩行者が何百人もいて、山のような繁華街になっているかもしれません。 人々が道路を横断しているとしたら 人間がこのクリップをラベル付けするには数時間かかります。 人間がこのクリップをラベル付けするには数時間かかるし、自動 自動ラベリングアルゴリズムでも、このクリップを正しく関連付けるのは非常に難しく 関連付けを正しく行うことは非常に難しく、悪い速度を生み出す可能性があります。 悪い速度になってしまいます。 シミュレーションでは、このようなことは些細なことです。 オブジェクトがあるからです。 クボイドと速度を吐き出すだけですから。 流速 また、最後に、我々が導入した クローズド・ループ・ビヘイビアを導入すると、車が 決められた状況にある必要があったり データがアクションに依存するような閉ループ動作を 信頼性の高いデータを得るには、この方法しかありません。 信頼性の高い これらは素晴らしいことですが これを実現するためには 第一に、正確なセンサーシミュレーション 繰り返しになりますが、シミュレーションの目的は 単にきれいな写真を撮ることではなく 車に搭載されたカメラが見たものや 車のカメラや他のセンサーが見ているものを ここでは次のようなステップを踏んでいます。 露出設定を変えながら 左側が本物のカメラで、右側がシミュレーションのカメラです。 右側はシミュレーション 実際のカメラの動きとほぼ一致しています。 実際のカメラの動きとほぼ一致しています。 これを実現するために、私たちは このためには、センサーシミュレーションでカメラの多くの特性を センサーシミュレーションumでは、以下のようにカメラの特性をモデル化しました。 センサーノイズ、モーションブラー、光学 歪み、ヘッドライトの透過 えーと フロントガラスの回折パターンなど フロントガラスの回折パターンなどなど これは自動操縦のためだけでなく ソフトウェアだけでなく、レンズやカメラなどのハードウェアの レンズ設計、カメラ設計 センサーの設計、ヘッドライトの配置 伝送特性 次に、ビジュアルをリアルにレンダリングする必要があります。 現実的な方法でレンダリングしなければなりません。 ゲーム業界で「ジャギー」と呼ばれる これはエイリアシングアーチファクトであり これはシミュレーションであることを示す決定的な証拠です。 これは、シミュレーションであることを示す致命的なもので、私たちはこれを望んでいません。 ペイントを重ねて、特別なテンプルを作ります。 寺 特別な時間的アンチエイリアシング ニューラルレンダリング技術にも取り組んでいます。 さらに、よりリアルにするために リアル さらに、レイトレーシングも使用しています。 リアルなライティングとグローバル これでパトカーは最後ですね。 パトカーはこれで最後だと思います。 4、5台のマシンではなく 4台や5台の車では、ネットワークが サイズを知っているので、簡単にオーバーフィットしてしまいます。 るので、現実的な資産が必要になります。 路上のヘラジカのような現実的な資産が必要です ええと ライブラリーには何千ものアセットがあり ライブラリーには何千ものアセットがあり、彼らはさまざまな シャツを着たり、実際に動いたり リアルに動くことができるので、とても素晴らしいです。 また、様々な場所をマッピングして マップされた様々な場所があります。 シミュレーションの環境を作るために 実際には2000マイルの道路が建設されました。 道路が作られていて、これは東海岸から アメリカの東海岸から西海岸までの道路の長さです。 アメリカの東海岸から西海岸までの かなりクールだと思います。 さらに、効率的なツールを構築しました。 さらに、一人のアーティストのために、一日で何マイルも建設できる効率的なツールを 効率的なツールを構築しました。 しかし、これは氷山の一角に過ぎません。 実際、トレーニングに使用するデータのほとんどは アルゴリズムを使ってプロシージャルに作られています。 アーティストがシミュレーションシナリオを作るのではなく これらのシミュレーションシナリオは つまり、これらはすべてプロシージャルに作成されたものです。 道路には、以下のようなパラメータが設定されています。 曲率 様々な木、コーン、ポール、車 異なる速度の車との 相互作用により、ネットワークに無限のデータが流れてくる ネットワークのためのデータ しかし、これらのデータの多くは退屈なものです。 ネットワークはすでに正しい情報を得ているかもしれないので そこで私たちは、mlベースの技術を使って ベースの技術を使って、基本的にネットワークの ネットワークのどこで失敗しているかを調べて ネットワークの障害点に関するデータを作成します。 ネットワークの障害点を中心にデータを作成することで、これを クローズドループでネットワークのパフォーマンスを パフォーマンスを向上させようとしています。 これで終わりではなく、実際には 実際には、自動操縦装置に発生した障害を再現したいのです。 シミュレーションで自動操縦に起こった シミュレーションで再現することで 以後、自動操縦を同じ水準に保つために 左側にあるのは 車から集められた実際のクリップを見てください。 車 オートラベリングパイプラインを経て パイプラインを経て、シーンの3D再構成を行い 動いている物体を含めたシーンの オブジェクト これを元の視覚情報と組み合わせて 元の視覚情報と合わせて、同じシーンを 同じシーンを合成して シミュレーションシナリオを作成します。 そして、自動操縦を再生すると 自動操縦を再生すると、自動操縦は全く新しいことができ 新しい世界を形成することができる 新しい結果 元々の失敗から新しい結果を生み出すことができるのです。 驚くべきことに、私たちは 自動操縦を失敗させたくないし、失敗したときには 自動操縦が失敗したら、それを捕まえて、そのバーに留めておきたいのです。 バー それだけでなく、先ほど言ったのと同じ方法で 先ほど言ったのと同じアプローチで さらに一歩進んで ニューラルレンダリング技術を使って よりリアルに見せることができます。 そこで、元のオリジナルビデオ クリップ それを元にして、人工的な地下鉄のシミュレーションを行います。 それを そこにニューラルレンダリング技術を適用して その上にニューラルレンダリング技術を適用すると 私の意見では、これは素晴らしいものです。 この作品は非常にリアルで 実際のカメラで撮影したかのような 実際のカメラ 昨晩の結果を見て、クールだったので かっこよかったので発表したかったのですが でもね SIMが何を実現できるのか、とても楽しみです。 達成することができます。 しかし、これだけではありません。 ネットワークはすでに車の中でトレーニングされているからです 使用したシミュレーションデータは3億枚 約5億枚のラベルが付いた3億枚の画像を使いました 膨大な量の画像と約5億のラベルを使用しました。 今後数ヶ月間に出てくるであろう 潰したいと思っています。 ミラン氏をお招きして どのようにしてこれらのオペレーションを 実際にラベル工場を作って 何百万枚ものラベルを生産することができるのです。 [Applause] ありがとう、アショク 皆さん、こんにちは。私はMilanです。 ニューラルネットワークの車への統合と 車内でのニューラルネットワークの統合と、ほとんどの ニューラルネットワークのトレーニングと評価の インフラストラクチャーを担当しています。 そこで今夜は、まず まず始めに この種のデータ生成工場を動かすのに必要な計算機の量と この種のデータ生成工場を動かすのに必要な計算量と 具体的には、数年前にチームで行った 数ヶ月前にチームとして行った 具体的には、数ヶ月前にパイロットのレーダーセンサーへの依存をなくすために レーダーセンサーへの依存をなくすために 250万のクリップから100億以上のラベルを生成しました。 250万個のクリップに100億以上のラベルを生成しました。 これを実現するためには スケール 巨大なオフラインニューラルネットワークと シミュレーションエンジンを数千台の gpusと2万台弱のcpu車に加えて その上、2000台以上の実際の自動操縦車を含めて 2000台以上の実際の自動操縦フル 自動運転コンピュータをループに入れて シミュレーションエンジン これが当社の最小のコンピュートクラスターです このようにして、私たちの 私たちのニューラルネットワークを ニューラルネットワークを 車の中で動かすには で、そのためには 私たちが取り組んでいる2つの主な制約は ここで取り組んでいる レイテンシーとフレームレートです。 これは安全のために非常に重要ですが 安全性を確保するためにも、また 周囲の加速度や速度を適切に推定するためにも 周りの環境 だから問題の本質は 我々がグループ内で書いて拡張しているAIコンパイラーの問題です。 グループ内で作成・拡張しているAIコンパイラーに関わる問題です。 基本的に私の apart torch モデルの計算処理を 私のバラバラになったトーチモデルの 専用の高速化されたハードウェアのセットに ハードウェアのセットにマッピングします。 最適化されたスケジュールを見つけ出します。 スロープット のために最適化されたスケジュールを考えながら、彼らの厳しいSram 制約 ところで、私たちはこれを1つのエンジンだけではなく 1つのエンジンだけでなく、2つのエンジンにまたがって 自動操縦コンピュータのエンジンと テスラでのエンジンの使用方法は テスラでのエンジンの使用方法は、いつでも 実際に出力するのは片方のエンジンだけで 車両への制御コマンドを出力します。 もう1つのエンジンは計算機の拡張として使用します。 コンピュート しかし、これらの役割は、ハードウェアとソフトウェアの両方で ハードウェアとソフトウェアの両方のレベルで このようなAI開発を通して、いかにして これらのAI開発サイクルの中で、グループとしてどのように まず第一に、私たちはスケールアップしてきました。 まず、私たちは ソフトウェア・ニューラルネットワークの評価能力を 過去数年間で劇的に拡大してきました。 今日では、どんなコードでも週に100万回以上の評価を行っています。 現在では、あらゆるコード 変化 チームが作成するコードの変更に対して、週に100万回以上の評価を行っています。 評価は、3,000台以上の 実際のフットスター・ドライビング・コンピュータ 専用のクラスターに接続されています。 クラスター その上で、私たちは とてもクールなデバッグツールを開発しています。 ここでは、そのツールの一つであるビデオを紹介します。 開発者を支援するツールの一つです。 ニューラルネットワークの開発を繰り返して ニューラルネットワークの開発を繰り返し、異なるリビジョンの 同じニューラルネットワークモデルの異なるリビジョンからの出力を 同じニューラルネットワークモデルの異なるリビジョンの出力を ビデオクリップの再生 最後になりましたが......私たちは ニューラルネットワークトレーニングの規模を 劇的に拡大してきました。 今日では10,000 gpusに迫る勢いです。 gpuの数で言えば、1万個に迫る勢いです。 gpuの数でいうと 一般に知られている世界のトップ5の 世界のスーパーコンピュータのトップ5よりも多いのです。 しかし、それだけでは十分ではありません。そこで、ガネッシュに次の話をしてもらいたいと思います。 ガネッシュに次のステップについて話してもらいたいと思います。 ステップ [拍手] ありがとう、ミラン 私の名前はガネッシュです。 私はプロジェクト道場のリーダーです。 このプロジェクトを発表できることを このプロジェクトに取り組む学際的なテスラチームを代表して このプロジェクトに取り組むテスラチームを代表して ミラノでご覧になったように ニューラルネットワークにはスピードとキャパシティへの飽くなき要求があります。 ニューラルネットワークのトレーニングには、スピードとキャパシティが求められます。 エロンはこれを予見していて、数年前に私たちに 数年前、彼は私たちに超高速トレーニングコンピュータの設計を依頼しました。 数年前、彼は私たちに超高速トレーニングコンピュータの設計を依頼し、それが それがプロジェクトDojoの始まりです 私たちの目標は、最高のAIトレーニング性能を達成し 最高のAIトレーニングパフォーマンスを達成し 最高のAIトレーニング性能を達成し、アンドレス・チームが夢見ているより大規模でより複雑なモデルをサポートし そして、電力効率とコスト効率を両立させることです。 コストパフォーマンスに優れたものにすることです。 どうやってこれを作るかを考えました。 そこで私たちが考えたのは 分散型コンピュートアーキテクチャー 世の中にあるすべてのトレーニングコンピュータは 全てのトレーニングコンピュータは、何らかの形で分散型コンピュータ 一種の分散型コンピュータです。 この箱の中の計算機要素が、何らかのネットワークで ある種のネットワークで接続されています。 ここでは2次元のネットワークを使っていますが CPU、GPU、アクセラレータなど、様々なネットワークがあります。 アクセラレータ すべてのコンピュートエレメントは 小さなメモリ とネットワークを持っています。 共通の傾向として、拡張が容易であるということです。 スケールするのが コンピュートを 帯域を拡張するのは非常に困難です。 帯域を拡張するのは非常に難しく、遅延を短縮するのは非常に困難です。 遅延を減らすことは非常に困難です。 私たちのデザインポイントがいかにそれに対応しているか、そして私たちの 哲学 私たちのデザインポイントは、従来の限界を超えたこれらの側面に 限界 Dojoでは、大規模なコンピュートプレーンを想定していました。 平面 非常に堅牢なコンピュートエレメントで埋め尽くされ 大規模なメモリプールを持ち 堅牢なコンピュートエレメントと大規模なメモリプールを備え、非常に高いバンド幅と低レイテンシーのファブリックで 極めて高い帯域幅と低遅延のファブリックで相互に接続された2次元メッシュの 2次元メッシュ形式で接続されています。これに加えて、大規模な 大規模なニューラルネットワークを分割して 異なる並列化モデルを抽出するためにマッピングされます。 並列化モデル グラフデータ並列化 そして、ニューラル・コンパイラ 我々のニューラルコンパイラは 空間的・時間的局所性を利用して 空間的・時間的な局所性を利用して 通信のフットプリントをローカルゾーンに ゾーンへの通信フットプリントを減らし、グローバルな通信を そうすれば そうすれば、帯域幅の利用率は そうすれば、帯域幅の利用率は、我々が望むコンピュートプレーンに合わせて ここで我々が望むのは スタックの上から下まですべてを攻撃したい スタックの上から下まで どのレベルでもボトルネックを取り除くことができます。 レベル この旅をインサイド・アウト方式で始めましょう。 インサイドアウト方式で、まずは チップ 前述のとおり チップにはコンピュートエレメントがあり、最小の 最小のエンティティまたはスケールは、トレーニング ノード このノードの選択は シームレスな拡張性を確保するためには、このノードの選択が非常に重要です。 スケーリング 小さすぎても高速に動作しますが 同期のオーバーヘッドが発生します ソフトウェアが終了してしまいます。 大きくしすぎると 実際のハードウェアへの実装が複雑になり 実際のハードウェアへの実装が複雑になり 最終的にはメモリのボトルネックになる 問題が発生します。 というのも、私たちが解決したかったのは 私たちはレイテンシーとバンド幅を主な最適化の対象としました。 帯域幅を最適化するために どのようにしてこの問題を解決したのか見てみましょう。 これは 信号が一度に通過できる最も遠い距離を選んで 信号が非常に高いクロックサイクルで通過できる距離を 非常に高いクロックサイクル(この場合は2ギガヘルツ以上)で この場合は2ギガヘルツ以上のクロックサイクルで その周りに箱を描きました。 信号が通過できる最小のレイテンシ 信号が超高クロックで1サイクルを通過できる最小の遅延 そして、その箱の中には ぎりぎりまでワイヤーで埋め尽くしました これがボックスに供給できる最高の帯域幅です。 ボックスに供給できる最高の帯域幅です。 その下には機械学習用のコンピュートと そして、大規模なSramのプール そして何よりも プログラム可能な コアを制御する これにより、高性能な トレーニングノード これは、64ビットのスーパースカラCPUです。 マトリックス乗算ユニットを中心に最適化された ベクトルコマンド 浮動小数点32b浮動小数点16をサポートしています。 そして、新しいフォーマットであるCFP8コンフィギュラブルFP8が そして、それを支えるのが 1.4メガバイトの高速cc プロテクトされた1.4メガバイトの高速ECC SRAMと、当社が設計した低レイテンシー高 我々が設計した低遅延・高帯域のファブリック この製品は当社の最小スケールの製品かもしれませんが スケールとしては最小かもしれませんが、パンチ力は抜群です 1テラフロップを超える演算能力を持つ 最小のスケールで1テラフロップ以上の演算を実現 では、そのアーキテクチャを見てみましょう。 この コンピュータ・アーキテクトの方々は これはかなり高性能なアーキテクチャであることが これを見るとすぐに、このアーキテクチャは スーパースカラーインオーダーCPUです。 4つのワイドベクターと2つのワイドベクター 2つのワイド......4つのワイド・スカラーと2つのワイド・ベクター・パイプ 4つのワイドベクター、2つのワイドベクター、2つのワイドスカラー、2つのワイドベクターパイプ ベクトルパイプとスカラーパイプは 順番が狂ってしまうこともありますが、純粋な人には ピュアな人たちのために、私たちはこれを秩序あるものと呼んでいます。 また、4ウェイ・マルチスレッドを採用しています。 演算とデータ転送を行うことができるので、利用率が向上します。 コンピュートとデータ転送を同時に行うことができるので 演算とデータ転送を同時に行うことができるため、利用率が向上します。また、当社のカスタムisa 命令セットアーキテクチャは 機械学習用に完全に最適化されています。 機械学習のワークロードに完全に最適化されており、トランスポーズ ギャザー リンクトラバース、ブロードキャストなどの機能があります。 などがあります。 また、物理的な領域でも 極めてモジュール化されているので トレーニング・ノードを任意の方向に回避して どの方向にでもトレーニングノードを配置して コンピュートプレーンを形成することができます。 これら354台のトレーニングノードをクリックすると 354台のトレーニングノードをクリックすると コンピュートアレイが完成します。 テラフロップスの機械学習コンピュート そしてもちろん、これらを相互に接続する高帯域ファブリックは これらを相互に接続する このコンピュート・アレイの周りには 周りには 高速・低消費電力サービス 576 これらのサービスにより、このチップから出力される このチップから出力されるI oバンド幅を実現するために 比較のために申し上げますと、このチップは 最新鋭のチップの2倍以上の帯域幅を実現 最新のネットワーク・スイッチ・チップから出力される ネットワークスイッチチップは ネットワークスイッチチップは ネットワークスイッチチップは、IoTの帯域幅の金字塔と言われています。 帯域幅 これらをすべてまとめてみると 得ることができます。 トレーニング最適化チップ 当社のD1チップ このチップは7ナノメートル技術で製造され 500億個のトランジスタを 500億個のトランジスタを645mm四方に詰め込んでいます。 正方形 気づいたことは、ここの面積の100%が ここでは100%が機械学習のトレーニングと トレーニングと帯域幅に使われています。 ダークシリコンもないし、レガシーサポートもない 純粋な機械学習 マシン そして これは フリップチップBGAパッケージのD1チップです。 パッケージ これはすべて、テスラ・チームが テスラのチームが内部で設計したものです。 アーキテクチャから から このチップの設計から このチップは は、まるで gpuレベルのコンピュートとcpuレベルの柔軟性と ネットワークチップの2倍の柔軟性と レベルのIoバンド幅 もし、縦軸にI oバンド幅をプロットすると i oバンド幅を縦軸にプロットすると テラフロップスの計算量に対して 最先端の機械学習チップで利用可能な 機械学習チップがあります。 スタートアップ企業も含めて 当社のデザインポイントが、パワーだけでなく パワーを超えて この基本的な物理的構成要素があったからこそ、私たちは 物理的なビルディングブロックを それを中心にシステムをどう設計するか 見てみましょう。 d1以降 チップは接着剤を使わずにシームレスに接続できるので シームレスに接続できるので 組み合わせてみました。 組み合わせたのは 500 000 トレーニングノードを組み合わせて コンピュートプレーン 1500個のD1チップがシームレスに 互いに接続されています そして さらに dojoインターフェースプロセス プロセッサを追加する これがデータセンターの典型的なホストへのホストブリッジ データセンターの典型的なホストに 片側はpci gen4で接続されており コンピュートプレーンへの高帯域ファブリックで コンピュートプレーン インターフェイスプロセッサは、ホストブリッジだけでなく ホストブリッジだけでなく、高帯域の コンピュートプレーンのためのドラマ共有メモリ 加えて インターフェイスプロセッサは さらに、高次元ネットワーク接続も可能です。 ネットワーク接続 このコンピュートプレーンを実現するためには 実現するためには、これらのチップを これらのチップを統合するために これをトレーニングタイルと呼んでいます。 タイル これが私たちのシステムのスケールの単位です これは画期的な統合であり 25個の既知の良好なD1ダイを ファンアウト・ウェハ・プロセスで緊密に統合し 帯域幅を確保するために 最大のバンド幅を維持するように緊密に統合されています。 加えて 私たちは a 帯域を維持する高帯域高密度コネクタを生成しました。 帯域幅を維持するコネクタを生成しました。 このトレーニングタイルからの帯域幅を確保して このスタイルでは、9つのベータフラップ コンピュートの 膨大なIoバンド幅を提供します。 この これは おそらく、チップ業界で最大の有機MCMとなるでしょう。 マルチチップモジュール これを設計するのは簡単ではありませんでした。 ツールは存在しませんでした。 すべてのツールが枯渇しており、我々のコンピュートクラスターでも 扱うことができませんでした。 エンジニアたちは、この問題を解決するさまざまな方法を考え出しました。 実現するための新しい方法を生み出しました。 これを実現するために コンピュートプレーンができたので タイル 帯域幅の広いIOS 電力を供給する必要がありました。 ここで私たちは、垂直方向に電力を供給するという 垂直方向に電力を供給する 私たちは、カスタムの 電圧レギュレータモジュール このファンアウトウェハに直接リフローできるような このファンアウトウェーハに直接リフローできるカスタム電圧レギュレータモジュールを作りました。 ここで何をしたかというと、チップ パッケージを手に入れ、基板レベルのリフロー技術を リフロー技術をファンアートウェハーに テクノロジーを導入しました。これは ここですでに多くの統合が行われています しかし、私たちはここで終わりませんでした。私たちは 電気・熱・機械のすべてを メカニカルな部分を統合して 形成する 完全に統合されたトレーニングタイル 52ボルトのDC入力に対応しています 前例がありません。 エンジニアリングの賜物です 我々のコンピュートプレーンは完全に 直交しています。 電力供給と 電力供給と冷却 そのため 高帯域のコンピュートプレーンが 可能 この製品は 9ペタフロップの トレーニングタイルです。 我々のシステムのスケール そしてこれが 本物だ 自分が9ペタフロップスのシステムを持っているなんて信じられない ペタフロップスだなんて そして実際に 先週、私たちは最初の ファンクショナル・トレーニング・タイル 限定された冷却装置を持つ ベンチトップ・セットアップ ネットワークを構築しました。 アンドレは私たちがネットワークを動かすことができるとは思っていないと聞きました。 彼の作品を動かすまで、ネットワークを動かすことはできないと 彼の作品を動かすまでは信じられないと言われた。 これはDojoで動作しているmin gpt2だ。 これを信じますか? 次は どのようにしてこれを使ってコンピュートクラスターを形成するか ここまでくれば、我々の モジュール化の話はかなり強力です タイルを組み合わせただけです。 タイルを組み合わせてスタイリングしただけです。 2×3のタイル タイルをトレイに入れてトレーニングマトリクスを作る 2つのトレイを1つのキャビネットに収納すると 100ペタフロップスの 計算能力 ここで終わりではありません いいえ、そうではありません。 シームレスに統合しました。 シームレスに統合しました。 すべての工程をシームレスに 帯域を確保することはできません。 帯域幅を確保するために、ここには帯域幅を広げるためのクリップはありません。 すべてのタイルが同じ場所でシームレスにつながっています。 同じ帯域でシームレスに接続されています。 帯域 そしてこれで エクソポッドがあります これは 1フロップ分の計算能力が 10台のキャビネットで 100万個以上のトレーニングノードがあります 私たちはそのトレーニングノードに細心の注意を払い そのトレーニングノードには細心の注意を払っています。 ここには100万台のノードがあり 同じ帯域幅で ハードウェアだけでなく ソフトウェア面も非常に重要です。 スケーリングを確保するために すべてのジョブが巨大なクラスタを必要とするわけでは クラスタを必要とするわけではないので、最初から 最初から 私たちのコンピュートプレーンは を細分化することができます。 に分割できます。 ドジョウ・プロセッシング・ユニットと呼ばれるユニット DPU は、1つまたは複数の d1チップ また、インターフェース・プロセッサーと 1つまたは複数のホスト ニーズに応じて拡張・縮小が可能です。 アルゴリズムやネットワークの必要性に応じて ニーズに合わせて拡張したり縮小したりできます。 ユーザーは何をしなければならないのでしょうか? スクリプトの変更は最小限で済みます これは それは 強力なコンパイラ群のおかげです。 細かな並列処理やプロの問題をマッピングして 並列処理や、ニューラルネットワークのマッピングなどの ニューラルネットワークのマッピングを 効率的にコンピュートプレーンにマッピングします コンパイラは 複数の技術を用いて 並列性 ネットワークを変換することで 細かい並列処理だけでなく データモデル グラフ並列化技術 また メモリ使用量を削減する最適化も可能 フットプリント 一つは、ファブリックの ファブリックの高いバンド幅の特性が ここで可能になるのは、モデルの並列化です。 これまでは、同じレベルまで拡張することはできませんでした。 可能なレベルまで拡張することはできませんでした。 チップの境界に制限されていました。 今では、高バンド幅のおかげで トレーニングタイルやそれ以上の領域まで拡張することができます そのため 大規模なネットワークを効率的にマッピングして 大規模なネットワークを低バッチサイズで効率的にマッピングして 活用し、新たなレベルの 性能を引き出すことができます。 加えて、我々のコンパイラは ハイレベルな動的制御が可能 ループのような高度な動的制御フローを扱うことができます。 当社のコンパイラエンジンは、当社のソフトウェアスイート全体の 当社のコンパイラエンジンは、当社のソフトウェア全体の スタックの構成は以下の通りです。 pytarchの拡張機能で、mlと同じユーザーレベルのインターフェイスを ム科学者が慣れ親しんだユーザーレベルのインターフェイスを サイエンティストが慣れ親しんだユーザーレベルのインターフェイスを確保します。 コンパイラはその場でコードを生成します。 フライ その場でコードを生成するので、後続の実行に再利用できます。 また、llvmのバックエンドでは 用のバイナリを生成するバックエンドがあります。 ハードウェア これにより、最適化された コード ハードウェアに最適化されたコードを 手書きのカーネル ドライバ・スタック は、マルチホスト マルチホスト、マルチパーティショニング 数枚前のスライドで そして、私たちは プロファイラー とデバッガーもソフトウェアスタックに含まれています。 これらの要素と 統合しました。 垂直方向に統合することで スケーリングに対する従来の障壁を そして、それが スタックの上下にモジュール性を持たせ 新しいレベルのパフォーマンスを実現した すべてをまとめると これこそが、この製品が目指すものです。 最速のAIトレーニングコンピュータ 同じコストで倍の性能 1.3 x ワットあたりの性能が向上 省エネでフットプリントも5倍小さくなる これが道場のコンピュータになる まだまだこれからです。 最初のキャビネットをすぐに組み立てる もうすぐ そして、私たちは次世代の計画を立てています。 すでに私たちは シリコンから全ての工程でできる様々な面で10倍以上の シリコンからシステムに至るまで シリコンからシステムに至るまで、さまざまな側面から10倍以上を考えています。 今回の旅でも、これらすべての分野で大規模な募集を行っています。 これらすべての分野で どうもありがとうございました。 そして次は elon will update us on what's beyond our company AIのための車両フィートフリート [音楽] おお [ミュージック] そう [音楽] おお [音楽] ありがとう [拍手] 道場とは違って、明らかにあれは は本物ではなかった そう だからDojは本物だ......テスラボットは 本物 でも 基本的には、我々が今やっている自動車を考えると テスラは世界最大のロボット工学企業です。 世界最大のロボット企業と言っても過言ではありません。 テスラは世界最大のロボット企業です。 のようなものだからです。 車輪の上の半知性ロボット そして そして 完全な自動運転のコンピュータは、基本的に 車に搭載された推論エンジンが これは明らかに進化し続けているし 道場 とすべての 世界を認識するニューラルネットが 世界をどのようにナビゲートするかを理解し 世界を それを人型に乗せるのは理にかなっていると思います。 ヒューマノイドの形に ヒューマノイドは、センサーや バッテリーや アクチュエーター だから 来年中には、おそらく 来年中にはプロトタイプが完成すると思います。 基本的には次のようなものです。 意図しているのは もちろん、親しみやすく 人間のために作られた世界をナビゲートします。 人間のために そして 危険で反復的で退屈な作業を排除し 退屈な作業を排除し 私たちは、それが以下のように設定しています。 機械的なレベルで、物理的なレベルで 逃げ出すことができ そしてほとんどの場合、それに打ち勝つことができる だから そうならないことを願っていますが わからないものですね。 だから......それは......あなたの知っている 光 光 時速5マイルで走れば もっと速く走ればいいんだけど [Laughter] そう そう、それは ラウンド 5.8 えーと 頭の部分にスクリーンのようなものがあり 便利な情報を得ることができますが それ以外は基本的に自動操縦システムを搭載しています。 システムを搭載しているので、カメラは 8つのカメラと フルサイズのドライビングコンピューター 車と同じツールを使っています。 私たちが車で使っているのと同じ だから つまり、私が思うに、本当に難しいのは 難しいのは 便利なヒューマノイド・ロボットを作ることは 世界をナビゲートするには 明示的に訓練されていないと つまり、明示的に、例えば 一行一行の指示 えーと 話すことができます。 このボルトを拾って それを車に取り付けてください。 そのレンチで車に取り付けてください そうすれば、それができるようになるはずです。 うん それができるはずなんだ......頼むよ お店に行って、次の食料品を買ってきてください。 次の食料品を買ってきてください そういったことができるはずです。 そう できると思います。 うん そして そう これは非常に深いものになると思います。 深いものになると思います。 経済とは何かと言えば、それはあ 根底にあるのは労働力です。 があるとどうなるか? ご存知の通り 労働力が不足しないとどうなるか だから私は長期的には 普遍的なベーシックインカムが必要になると思います。 インカム そう でも、今すぐにはできません、このロボットは 働かないからです。 今はまだ時間がありません それで うん ええ、でも将来的には 将来的には、物理的な仕事は、やりたければ したければすればいいし、しなくてもいい。 行う必要はないでしょう。 そして これは明らかに経済に大きな影響を与えると思います。 これは明らかに経済に大きな影響を与えます。 というのも、経済はその基礎レベルにおいて というのも、経済の基本レベルは労働力であり、つまり 資本は資本設備です。 蒸留された労働力 では 実際に経済に限界はあるのだろうか ないかもしれない だから そう 私たちのチームに参加して、これを作るのを手伝ってください それでは、皆さんにステージに戻っていただき みんなにステージに戻ってきてもらい ご質問があればお寄せください。 はい [Applause] あなた [Music] よし いいぞ [音楽] "君達が僕を連れ戻してくれた さあ 俺はステージが好きなんだ 撮ってみて そこからのカメラアングル 横からではなく いいですね。 では、照明を元に戻します。 オン そして そうですね。 ソフトウェアに関するご質問にお答えします。 ソフト面、ハード面での ハード面での進捗状況 質問はお早めに このライトは、まるで 尋問用のライトのようなものなので、実際には 見えないんだよね ああ、これでいいんだ いいね まず最初に、私たちは 発表者の皆さん、ありがとうございました。 すべてを見ることができてとてもよかったです 私はただ、高いレベルでの好奇心と これは質問のようなものですが これは誰にでも言えることですが......どの程度の 公開やオープンソース化にどの程度興味がありますか? オープンソース化にどの程度興味がありますか? 将来のために えーと、つまり、基本的には システムを作るには非常にコストがかかります。 システムを つまり 何らかの形で費用を捻出しなければなりません。 完全なオープンソースであれば、どうやって支払うのかはわかりません。 オープンソースで ええと タダで働きたい人がいなければね でも、言っておくけど......これは もし他の自動車会社がライセンスを取得して 他の自動車会社がライセンスを取得して自分の車に使いたいと思ったら それは素晴らしいことですが、これはテスラ・カーだけに テスラの車に限定したものではありません スーパーコンピュータ "Dojo "のためのもので、あなたは コンパイラの問題は解決しましたか? このような多数のノードに対応するためのコンパイラの問題は解決しましたか? 解決したとしても、それは ドジョ なぜなら 私が研究しているのは 深層学習アクセラレータの研究をしていて 正しいスケーラビリティ 適正なスケーラビリティや分布を得ることは、一隻の船でも 研究プロジェクトの観点からは 研究プロジェクトの観点からすると非常に難しいので、私は 興味がありました。 ビルの代わりにマイクが失礼します あなたは 問題はまだ解決していませんが 私たちは問題を解決できると確信しています はい プロトタイプのハードウェアでネットワークを実証し プロトタイプのハードウェアでネットワークを実証した 今、我々はモデルを持っている スケーリングを示すパフォーマンスモデル 問題は、あなたがおっしゃったように、どのようにして ローカリティを保つかです。 十分なモデルの並列化ができれば 十分なデータ並列ができれば、ほとんどのものをローカルに保つことができます。 局所性を保つことができれば、あとはスケーリングするだけです。 私たちの作業セットにあるパラメータを ワーキングセットのパラメータを、手持ちのSRAMに適合させる必要があります。 そして、パイプを流れるように チャンスはいくらでもあります 申し訳ありませんが、さらにスケールアップして より多くのローカルメモリを持つプロセッサノードが メモリ メモリトレードやバンド幅の拡大など、さまざまなことが可能になります。 より多くのことができるようになりますが、現在 テスラが持っているアプリケーションには 明確な道筋 また、モジュール化されているので 異なった比率の異なった側面を作ることができます。 作ることができるということです。つまり、これは アプリケーションのために選んだものです。 アプリケーション 内部的には 確かに ロカリティの部分では トレーニングは、ソフトなスケーリングが必要な アプリケーション たとえ、これだけの計算機と を持っていても、高帯域の 高帯域のインターコネクト しても、その性能は発揮できませんでした。 限られたメモリで計算しているため 異なる場所の限られたメモリで計算しているからです。 異なる場所で限られたメモリを使って計算することになるからです。だから私は あなたが「解決した」と言ったとき、私はとても不思議に思いました。 解決しました。 この機会に飛びついて、もっと知りたいと思いました。 どの程度オープンソース化できるのか そう そうですね、証拠はプリンの中にありますからね。 えーと 来年にはdojoを稼動させる予定です。 そして 使うことになると思います。 に使うと思います。 トレーニング・ビデオ・トレーニングに使うことになるでしょう。 基本的には、これは......つまり これは 当初の主な用途は、膨大な量のビデオがあり 膨大な量のビデオを、どのようにして 膨大な量のビデオを 可能な限り効率的に そして また、時間も短縮することができます。 タスクに合わせてトレーニングしようとすると タスク 一般的なイノベーションは 何回反復して、各反復の間の平均進歩はどのくらいか 各反復の間の平均的な進歩 で、もし の間の時間を短縮することができれば 繰り返しの時間を短縮できれば......改善の割合は はずっと良くなります。 だから モデルの学習に数日かかることがあるとします。 モデルのトレーニングに数日かかるのが 数時間で済むとしたら、それは大変なことです。 しかし、この資産テストでは 私が道場チームに言ったことは 道場チームに伝えたことは、それが が成功した場合には、成功したと言えるでしょう。 えーと ソフトウェアチームがgpuクラスタをオフにすると クラスタ しかし、もし彼らがgppクラスタを維持したいのであれば オン 成功しませんでした。 というわけで ハイ こちらです 私はこのプレゼンテーションが大好きです。 私たちをここに連れてきてくれてありがとう 特にプレゼンテーションのシミュレーションの部分が 疑問に思っていたのですが とてもとても 非常にリアリティがありましたが、他の地域にシミュレーションを拡大する計画はありますか? シミュレーションを社内の他の部署に 何らかの形で会社の他の部分にシミュレーションを拡大する計画はありますか? こんにちは、私はイアン・グローです。 自動操縦シミュレーションチームを運営しています。 完全な自動運転への道を歩むためには 完全な自動運転への道を歩むためには より多くの車両をシミュレートする必要があります 現在はビークルダイナミクスのシミュレーションを行っていますが 現在はビークルダイナミクスのシミュレーションを行っていますが、今後はBMS MCUが必要になるでしょう。 車両のすべての部品が必要になります。 統合されています。 自動操縦シミュレーターは、自動操縦以外の分野でも 自動操縦以外の場所でも活用できます。 最終的にはユニバーサル・シミュレーション・プラットフォームへと発展させたいと考えています。 普遍的なシミュレーション・プラットフォームになるように しかし、その前に私たちは その前に、多くのオプティミストサポートを立ち上げて その前に、私たちは多くのオプティミストサポートを展開し、さらにその先の その前に、私たちは楽天的なサポートをたくさんして、もう少し先の段階で どうやって シミュレーションのインフラや 私たちが作った素晴らしいものを 会社の外にいる人たちの手に渡すことができるようになるかもしれません optimusはTeslaのコードネームです。 ボット oops オプティマス・アップライン [笑] こんにちは ali jahanianです。 この度は素晴らしいプレゼンテーションと このような素晴らしいものをまとめて 一緒に しばらくの間、私は考えていました。 車はすでにロボットなのだから なぜ人類用のロボットではないのか 今日はとても嬉しいです。 今日、あなたがそのようなものを作ろうとしていると そのようなものを作ろうとしていると 特にこれは、多人数での共同作業を可能にする機会を与えてくれると思います。 これは、マルチモダリティを組み合わせた光線の機会を与えてくれると思います。 例えば、私たちは 例えば あなたが示した例では 犬がいて 何人かの乗客と一緒に走ったり の 言語 象徴的な処理を行うことができます。 のために 視覚化することができます。 疑問に思ったのですが このようなモダリティの組み合わせについて 言語と視覚を含むモダリティを組み合わせて 言語と視覚を含めたモダリティの組み合わせについて 私は、例えば、ミニ GPTやアンドレが出した そして 他のモダリティについてはあまり聞いたことがありませんでした。 他のモダリティについてはあまり聞いたことがありません。 少なくともシミュレーションでは 何かコメントはありますか? 何か 何かコメントがあれば教えてください。 運転とは基本的に... 基本的に ほとんどがビジョン・ニューラルネットで構成されています。 私たちは基本的には 生物学的視覚 ニューラルネットで動作しています。 シリコンカメラのニューラルネットです。 それで そして、そこにはある程度の ある程度の音声......あなたが聞きたいのは もし、緊急車両や 緊急車両や えー あなたが知っている... 車に乗っている人との会話とか 車の中の人と うん 誰かが何かを叫んでいたら 車に向かって何かを叫んでいたら、その車は それが何であるかを理解する必要があります。 うん だから そのために必要なすべてのことを 車が 完全に自律している はい ありがとうございました。 これまでの素晴らしい仕事に感謝します 私が質問したいのは、チームの皆さんです。 示されたデータは 示されたデータは主に米国からのものだったようですが 示されたデータは主に米国からのもののようです。 コンピュータがトレーニングされていますが、それが しかし、それが各国に展開されていくと 独自の道路システムを持つさまざまな国に 道路システムや それぞれの道路システムや課題を持つ各国に展開した場合 どのようにスケールアップしていくのでしょうか? 最初から作るのは無理だと思いますが 実現可能なソリューションではありません。 どうやって他の国に移すのか そうですね......私たちは実際にトレーニングを行っています。 のデータを使ってトレーニングを行っています。 おそらく50カ国以上のデータを使ってトレーニングを行っています。 しかし、私たちは 完全な自動運転を目指しているのだから 完全な自動運転を実現するためには、一つの国を選ぶ必要があります。 国を選ぶ必要がありますが、私たちはここにいるので アメリカを選びました。 そうすると、多くの質問が寄せられます。 なぜカナダではないのか? 道路が少し違うので カナダは道が少し違うから 難しい問題を解決しようとすると 難しい問題を解決しようとするときには 難しい問題を解決しようとするとき、あなたは「何のために 複雑さを増すのはやめましょう 今のところは......我々のためだけに解決しよう。 そしてそれを他の国に外挿していきます。 世界中のビデオを使用しています。 世界中のビデオを使用しています。 私たちが作っているものの多くは 国を問わず、基本的にすべての コンピュータ・ビジョン・コンポーネントなどの 国をあまり気にしません。 特定の 機能はあまり気にしません。 様々な国には道路や縁石があり 縁石があり、車があります。 私たちが作っているものは、かなり そのための一般的なものです そうですね、それに第一の指令があります。 これはどの国でも同じです。 これはどの国でも同じです。 指令 うん そして 今でも車は衝突しないように クラッシュしない それで 基本的には... それが何であれ、それにぶつからないでください。 高速道路に不時着したufoであっても 衝突しないでください ぶつからないためには、それを認識する必要はありません。 ぶつからないためには、それを認識する必要はありません。 これはとても重要なことです。 そして、私が聞きたいのは フォトメトリック・プロセスを行う際 マルチビュー・ジオメトリでは、どのくらいの誤差があるのでしょうか? 1ミリ、1センチくらいでしょうか? センチくらいでしょうか。 機密事項 申し訳ありませんが、質問は何ですか? 合成画像との違いは何ですか? 合成 確かに の違いは何ですか? 合成されたジオメトリと 実際のジオメトリ 数センチから3、4センチの範囲です。 センチ、3~4センチ以内です。 これが標準偏差です 異なる種類のモダリティとの融合 誤差を減らすために スケーラブルな方法を見つけようとしています 時には他のセンサーを使って 他のセンサーを使って ベンチマークのために他のセンサーを使用することもありますが、主にカメラを使用しています。 このシステムでは主にカメラを使用しています はい、ありがとうございます。 私たちは、車の位置を センチメートル単位で正確に センチメートル単位で ご存知の通り センチ単位の正確な位置を目指したいと思います。 距離にもよりますが、近くにいる場合は 遠くのものより近くのものの方がはるかに正確です。 遠くにあるものよりも正確になります。 車が判断する必要がないので 判断する必要がないからです。 遠く離れていても、近づけば近づくほど ますます正確になります まさに たくさんの質問 皆さんありがとうございます 私の質問は AIと製造に関するものです。 エイリアンのドレッドノートのコンセプトについて聞いてからしばらく経ちました。 エイリアンのドレッドノートのコンセプト あなた方の後ろにいるヒューマノイドは あなた方の後ろにいるヒューマノイドは、プロダクション・ヘルス・タイムラインから持ち出されたものですか? 生産性向上のタイムラインで 人間はその過程で過小評価されていると プロセス そうですね......時々、ある種の 私の言うことが極端になりすぎて 極端になりすぎると そこで テスラのシステムの中には ほぼ完全に自動化されている部分と ほぼ完全に自動化されている部分もあれば 完全なマニュアル そして もしあなたが生産システム全体を歩いてみたら 生産システム全体を歩いてみると、完全に自動化されたものから 完全に自動化されたものから オートマチックから ほぼ完全なマニュアルまで しかし、大部分は......ほとんどは、すでに すでに......自動化されている うん で、次に そして 一部の設計アーキテクチャの変更で 大型化など 大型の アルミニウム ハイプレッシャーダイキャスト 大型のアルミ高圧ダイキャスト部品を採用することで、リア 車の後部3分の1を1つの部品として鋳造することができます。 今回はそれを実現するために行います。 車のフロント3分の1は単一の ピース つまり、ボディラインは えーと サイズが60〜70%ほど小さくなります。 うん しかし、そう、ロボットには に促されたものではありません。 特に製造業のニーズに それは、ただ 私たちは明らかに部品を作っているだけです その 役に立つ人型ロボットに必要な部品を 作るべきだと思いますが 私たちが作らなくても、他の誰かが作ってくれるでしょう。 だから、作るべきだと思うし そして安全であることを確認する 作るべきだと思います。 大量生産は非常に難しく 過小評価されていますが、私たちはそれが得意です。 私たちはそれが得意になりました。 ヒューマノイドロボットにとっても重要です。 人型ロボットにとっても重要です。 人間型ロボットが超高額にならないようにするには そして ハイ プレゼンをありがとうございました。 プレゼンテーション 私の質問は、道場のスキルアップについてです。 道場の 特に、計算ノードをどのようにして コンピュートノードの 熱 熱と電力供給の観点から、コンピュートノードをどのように 排出できる熱量は限られています。 放出できる熱量と 熱を逃がすことはできず、電力を供給することも クラスタ・ラックのように クラスタ・ラックのように どのようにスケールアップしたいか、どのように 複数のデータセンターで拡張するには データセンター 確かに こんにちは 私はBillです。 道場のエンジニアの一人です。 熱的見地と電力的見地から 観点から 非常にモジュール化された設計となっています。 コンピュートタイルで見たように タイル全体を冷却することができるので 一旦接続すると、上下ともに液冷となります。 上面と下面の両方で液体冷却されます。 他に何も必要ありません。 だから、これらをクリックすると 合わせて 一旦、電源をクリックして、一旦は クリックして 冷却することで、フルパワーで 完全に冷却され そして、そのすべてが 立方フィートにも満たない そうです。 テスラは、パワーエレクトロニクスと パワーエレクトロニクスと冷却の専門知識を持っているので パワーエレクトロニクスの専門知識を 車両のパワートレインからパワーエレクトロニクス パワーエレクトロニクスの専門知識を活用し、高度な冷却技術を 開発しました。 パワーエレクトロニクスと自動車のために開発した それをスーパーコンピュータに応用したのです。 コンピュータ なぜなら、あなたが指摘したように......熱を逃がすことは 熱を逃がすことが 非常に重要です。 制限されます。 だから そう だから、面白いことに 計算機レベルでの動作は 1ボルト未満 これは 非常に低い電圧で動作していますが、アンペア数が多いので そのため、熱も大きい iの二乗Rは、実際にあなたのお尻に噛みつくものです。 お尻に食い込む 私の質問は、同様に スケーリングの問題 だから、自然な結果のように思えるのですが 当然の結果のように思えますが 学習用ハードウェアを大幅に高速化すると より多くのデータでモデルを学習することになります。 より多くのデータを使って あるいは、より複雑なモデルを学習することになります。 モデルを学習することになります。 膨大なコストがかかる可能性があります。 車の推論時に実行するには、かなりコストがかかる可能性があります。 ええと、私が思ったのは、もし また、次のような計画もあるのではないかと思っています。 えーと dojoを自動運転車などで使用するような 自動運転車で使うようなものとしてdojoを適用する計画があるのか、と。 もしそうなら そこに新たな課題があると思われますか? そこでの課題 そうですね。 アンドロイドのモデルは アンドロイドのモデルは自動車だけではありません。 オートラベリングモデルのように車だけではなく、他にも 他のモデルは 車のアプリケーションを超えたようなモデルもありますが 車のアプリケーションを超えたモデルもありますが、それらは車のスタックに組み込まれているので、Dojoはそれらすべてに使われます。 Dojoはそれらのすべてにも使われる 車だけでなく トレーニングの推論部分 そう、つまりdojoの 最初の用途は、ビデオデータを ビデオデータを使用してトレーニングを行い、そのデータを その後、車の逆推論エンジンである エンジンで実行されます。 しかし これは重要なテストだと思います。 実際に優れているかどうか、あるいは CPUクラスタよりも優れているのか そうではありません。 しかし、それ以外は、基本的に 一般的な一般化されたニューラルネット トレーニングコンピュータ しかし、ニューラルネットに非常に最適化されています。 ニューラルネットに最適化されています。 CPUとGPUSは のために作られたものではありません。 そう 設計されていません。 ニューラルネットの学習に特化して設計されたものではありません。 我々は、gpusを特に 非常に効率的に ニューラルネットを描写するために非常に効率的なGPUを作ることができましたが、それは それは彼らの設計意図ではありませんでした。 Gpuは本質的にはまだ ニューラルネットのトレーニングを エミュレーションモードで Dojoでは、私たちは次のように言っています。 全体をASICにしてしまおうと。 全体を ただ 一つの目的のために作られたもので 目的は1つ、それはニューラルネットの トレーニング 一般に、特定の目的のために設計されたシステムは 特定の目的のために設計された 特定の目的のために設計されたシステムは、一般的な目的のために設計されたシステムよりも 一般的な目的のために設計されたシステムよりも ここで質問があります。 ハイ、アーン あなたは2つの独立したシステムを説明しました。 1つはビジョン、もう1つはプランナーとコントロール 制御......Dojoはあなたを愛していますか......トレーニング 境界線を越えたネットワークと 2つ目は、もしそのようなネットワークを訓練できたとして そのようなネットワークを訓練することができたら 第二に、もしそのようなネットワークを訓練できたとしたら、FSTシステムにオンボードの計算能力があって システムにオンボードの計算能力があり 厳しいレイテンシーの制約の中で ありがとうございます。 ええ、そうですね。 プランナーネットワークを訓練できると思います。 プラットフォームに依存しないんですよ。 そして、もし何かあるとすれば、この全体をエンド・ツー・エンドで作ってしまえば 何かあるとすれば、この全体を端から端まで作ってしまえば 多くの中間状態をデコードするよりも 中間状態をデコードするよりも効率的なので 全体を神経回路に組み込んだ方が ニューラルネットワークの中に全体を 中間状態のデコードを多く避けて 中間状態のデコードを回避して 車の運転に必要な本質的なものだけをデコードして 車の運転に必要なものだけを解読することができます。 そう、そして最後には、多くの研究の指針となっている 多くのネットワーク開発の指針となっています。 多くのネットワーク開発の指針となっており、時間の経過とともに スタックのニューラルネットワークは、より多くの機能を ますます多くの機能を持つようになりました。 すべてをエンド・ツー・エンドで学習させたいと考えています。 エンド・ツー・エンドで学習させたいと考えています。それが最も効果的だと考えているからです。 最も効果的であると考えているからです。しかし、私たちはそれを しかし、私たちは段階的に構築しているので、現在のインターフェースは ベクトル空間があり、それをプランナーで利用しています。 プランナーで使用していますが しかし、基本的には 実際に機能を取り込み、最終的にエンドツーエンドで エンド・トゥ・エンドで微調整することを根本的に妨げるものは何もありません。 それがこのシステムの方向性だと思います。 そう、そして発見とはつまり ネットワークブロックに配置すべき適切なアーキテクチャーは何か ネットワークブロックにどのようなアーキテクチャを配置すれば タスクに対応するためにネットワークブロックに配置すべき適切なアーキテクチャとは何か、ということです。 空間的なRNを配置して 知覚の問題を解決するために 今はただのニュートラルなネットワークになっていますが 同様に、プランニングについても、検索と最適化を 探索と最適化をネットワークアーキテクチャの中に 探索と最適化をネットワークアーキテクチャに組み込む必要があります。 それができれば、プランニングが非常に素早くできるようになるはずです。 プランニングが非常に早くできるようになります。 C plus plusのアルゴリズムに似ています OK OK 私は、彼の質問によく似た質問をしていたと思います。 よく似た質問がありました ニューラルネットの多くは コンピュータ・ビジョンや そして伝統的な計画のようなものがあります。 モデル予測制御による 凸型最適化問題を素早く 素早く そして より適したコンピュート 凸最適化やモデル予測制御にもっと適した 凸型最適化やモデル 予測制御......ソリューションを非常に 迅速に 私のように焼き込みたい人は、100 前にも言ったように、もしあなたがこのような モデルとなるようなアーキテクチャを 蛋白質の制御を行うが いくつかのブロックをニューラルネットワークに置き換えたり あるいは、物理学の知識があれば 物理ベースのモデルを使うこともできます。 ニューラルネットワークのフォワードパスに物理ベースのモデルを使うこともできます。 今後は、ハイブリッド システムを目指します。 ニューラル・ネットワーク・ブロックと 物理ベースのブロックと一緒に配置された ブロックを配置し、さらにネットワークを追加するハイブリッドシステムを目指します。 ハイブリッド・スタックとなり、我々が得意とするものは 明示的に配置し、ネットワークを作成します。 ネットワークが作成されたら、そのネットワークを使って ネットワークを使って最適化します。 このアーキテクチャが組み込まれたエンドツーエンドのスタック 組み込まれています。 つまり、私はそう考えています。 思うのですが、例えば サラウンドビデオ そして 何が起こっているのかを理解するためのニューラルネット 何が起こっているかを理解し 変換 それらのサラウンドビデオをベクトル空間に そうすれば、基本的にはビデオゲームになります。 そして、もし もし、あなたが グランドセフトオートのようなものです。 車を走らせたり、歩行者を歩かせたりすることができます。 車を走らせたり、歩行者を歩き回らせたり クラッシュせずに できるんですよ。 制御と計画のためにニューラルネットを持つ必要はありませんが しかし、おそらくその方が 最終的には良いでしょう だから しかし、私は、あなたはおそらく 実際のところ、制御と計画を用いれば、人間よりも コントロールと計画性があれば、人間よりもずっと安全に 計画 主にCプラスプラスで 知覚と視覚は ニューラルネット こんにちは 質問ですが、他の企業では 例えば、強化学習や機械学習を 強化学習や機械学習を使って 最適化 電力消費やデータセンターなどの 他のあらゆる内部プロセスに利用しています。 質問は、Teslaは製造設計に機械学習を利用しているのか、ということです。 製造設計やその他のエンジニアリングプロセスにおいて その他のエンジニアリングプロセスで機械学習を利用していますか? i 私は機械学習の使用を推奨しません。 難しいからです。 基本的に機械学習を使わなければならない場合以外は 機械学習を使わなければならない場合以外はやめておきましょう。 誰かが「機械学習を使ってみたい」と言ったら、それは赤信号です。 誰かがこのテストを解くのに機械学習を使おうと このテストを解くのに機械学習を使いたいと言われたら、私はそれが ような気がします。 そう ああ 99.9%の確率で必要ないと思います。 そう だから そう しかし、それは、ある種の 機械学習に手を出すのは 必要なときに 必要な時に機械学習に手を伸ばすようなものですが、私はそれが 便利で簡単にできることではなく うーん、それはとても難しいことです。 もし、人型ロボットができたら、それは変わるかもしれません。 ロボットが 理解することができる 通常の指示 うん でも そう 一般的に、機械学習の使用を最小限に 機械学習を 工場 シミュレーターからのビデオを見ると シミュレータからのビデオを見る限りでは グラフィカルとニューラルを組み合わせた グラフィカルとニューラルを組み合わせたように見えましたが、どのような技術が使われているのでしょうか? どのような技術が使われているのでしょうか? シミュレータで使われている基本的な技術、特に ニューラル・レンダリングにはどのような技術が使われているのでしょうか? ええ、私たちがやっているのは スタックの一番下にあるのは 従来のゲーム技術 ラスタライズをリアルタイムに行っています 非常に似ていますよね。 GTAのように その上で、リアルタイムのレイトレーシングを行っています。 これらの結果は つまり、私たちは 一番下に小さなアスタリスクが付いていましたが これは昨晩のものです 私たちはニューラルレンダリングの世界に入っています。 空間に入り、様々なことを試しています。 様々なことを試しています。 私たちは、ニューラルレンダリングが ニューラル・レンダリングが 頂点に立つチェリーのようなものにしたいのです。 シミュレータ上でモデルがオーバーフィットすることがないように シミュレータ上でモデルがオーバーフィットしないようにしたい 現在、私たちは以下のようなことを行っています。 写実性の向上 最近発表された論文によると、写真の フォトリアリズム・エンハンスメント しかし、私たちはその論文に書かれていること以上のことを その論文に書かれている以上のことができます。 より多くのラベル付きデータ より多くの計算機 また、環境に対するコントロールも非常に優れています。 環境を また、この作業をリアルタイムで行うことを手助けしてくれる リアルタイムでの実行を手助けしてくれる人もたくさんいます。 しかし、私たちはできる限りのことをやってみるつもりです。 シミュレータだけですべてのトレーニングができるようになるまで シミュレーターだけですべてのトレーニングができるように しなければならないとしたら、その必要はないでしょう。 なぜなら、私たちには他の誰も持っていない多くの実世界の 他の誰も持っていない実世界のデータを 現実世界でのちょっとしたギャップを埋めるだけです。 現実世界の そう、つまり シミュレーターは 珍しいケースでは非常に役に立ちます。 稀なケース、例えば 知っていると思いますが 事故の直前に衝突を回避するような 事故 そして 皮肉なことに、車の事故回避能力が高まれば高まるほど 事故を回避する能力が高くなればなるほど 事故が減ることになります。 トレーニングセットが小さくなるので シミュレーションでクラッシュさせなければならない 衝突の可能性を最小限にするためには 怪我の可能性を 歩行者や車に乗っている人の怪我を最小限にする 5メートルの速度で走行しています。 秒速20メートルで走行しているとします。 どのような行動をとれば傷害の可能性を 傷害の可能性を最小限にするために それを、いくつかの 高速道路の反対側を走る車 高速道路を逆走するようなことが 起こることもありますが、それほど頻繁ではありません。 ヒューマノイド・コンタクトについては どのようなユースケースから始めるか、また どのような使用例から始めて、どのような 大きな課題は えーと これを実現するための大きな課題は何でしょうか? ヒューマノイドの場合は テスラボットは オプティマス 基本的には、まず 扱うことから始めます。 基本的には、退屈な仕事や 退屈で反復的で危険な仕事を扱うことから始めます。 基本的に、人々が最もやりたくない仕事は何か? 最もやりたくない仕事は? うん こんにちは...早速ですが、あなたのシミュレーションについて あなたのシミュレーションは...明らかに完璧ではありませんが 今のところ完璧ではありませんが、何か 何らかの領域適応技術を使っていますか? のギャップを埋めるために シミュレーションデータと実際の 実世界のデータとのギャップを埋めるために 危険なのではないでしょうか? 模擬データのみで学習したモデルを 模擬データのみで学習したモデルを導入するのは危険なので、何らかの ある種の明示的な領域適応とか どこかのパイプラインで パイプライン 現在は......つまり シミュレータから直接ビデオを出力しています。 キネマティクスなどのフルクリップを作成して それを使ってすぐにトレーニングをしています。 すぐにトレーニングしていますが、それは しかし、これは全データセットではなく、ごく一部の対象セグメントです。 対象とした小さなセグメントであり 実世界のビデオに基づいて評価しています。 私たちは細心の注意を払っています。 また、もしファンシーなことを始めなければならない場合は より洗練されたことを始めなければならない場合には しかし、現在のところ、私たちは シミュレータ上ではオーバーフィッティングの問題はありません。 シミュレータ上ではオーバーフィットの問題はありませんが、データの規模が大きくなれば データの規模が大きくなれば問題になるでしょう。 ニューラルレンダリングを使ってそのギャップを埋め そのギャップを埋めるためにニューラルレンダリングを使いたいと思っています。 私たちはすでに、同じネットワークを 車と同じネットワークを使って それを再学習させてSIMと鉄道を検出し アートを決定するために これは実際に、これらの問題を防ぐのに役立っています。 このようなことを防ぐのにも役立っています。 強調しておきたいのは 強調しておきたいのは、データセットは圧倒的に実際の 実際に道路を走っている車の映像であることを強調しておきます。 現実よりも奇妙なことや曲がりくねったことはありません。 現実以上に奇妙なことや 本当に奇妙なことばかりです。 しかし、もしも、非常に奇妙な例をいくつか見つけたら 何かとても奇妙な例を見つけたら 私たちが見たとても奇妙な写真や 奇妙な写真があったとしたら 効果的に学習させるためには 効果的に訓練するためには シミュレーションの作成 1000のシミュレーションを作成したいと思います。 変形した 私たちが見た風変わりなもの 足で重要なギャップを埋めて ギャップを埋め、システムをより良くするために これらはすべて、時間の経過とともに ただ 衝突や負傷の可能性を減らし 衝突や負傷の可能性を減らすことです。 これは9の行進と呼ばれています。 99.999999に到達するのか を達成するにはどうしたらいいのか? そうです。 それぞれの9は、桁違いの 難易度が上がる プレゼンテーションをありがとうございました。 興味があったのは テスラボットについて 具体的には 人型のフォームファクターが 人型のフォームファクターが 適していると思いますか? そして、二次的な えーと 人間の形をしているということは 感情や交友関係を全く考えていない について 製品のロードマップには全く含まれていません。 えーと 私たちは、この製品が ディストピア的SF映画に登場しないことを SF映画 でも......つまり 今の時点では このロボットができるかもしれないと言っているのです。 ただ、私たちは可能な限り文字通りのことをしようとしています。 可能な限り文字通りのことをしようとしているのですが......退屈で危険な 危険な反復作業 人がやりたがらない仕事を そして そして それができるようになれば 他のこともできるようになるかもしれません。 でも これこそが、私たちにとっての これこそが、私たちが手にした素晴らしいものなのです。 だから あなたの相棒になるかもしれません。 買って、あなたの友達にしてもらったり 何でも きっとみんな、とてもクリエイティブな使い方を考えてくれると思います。 クリエイティブな使い方を だから それで まず最初に、本当に素晴らしいプレゼンテーションをありがとうございました。 まず最初に、本当に素晴らしいプレゼンテーションをありがとうございました......私の質問は 私の質問はAIについてです。 私たちが見てきたのは、これらの 言語モデリングAIでは スケーリングがもたらす影響は非常に大きく 彼らの能力やできることに できるようになりました。 そこで気になったのが、皆さんは 同じようなスケーリングの効果が あなたの ニューラルネットワークを使ったアプリケーションでも ネットワークが大きくなればなるほど 学習するデータがあれば、より良いパフォーマンスが得られます。 訓練するためのデータがあれば これは私たち自身でも実感しています。 これは私たち自身の経験でもあります。 レイテンシーを考慮しなければなりません。 車ではレイテンシーを気にする必要がありますが、そのためには 実際にはもっと大規模なネットワークを しかし、先に述べたように、私たちは しかし、前述したように、私たちは車に搭載するためのニューラルネットワークを 車に搭載するためのニューラルネットワークだけではなく 任意のサイズのモデルを利用できるオートラベリング・パイプラインがあります。 任意のサイズのモデルを利用できるオートラベリングパイプラインを持っています。 実際、私たちは、展開できない多くのモデルを交換してきました。 展開できないようなモデルでも 展開できないモデルと交換してきましたが、その方がはるかに効果的でした。 オートラベリングの精度を向上させるためには、100 オートラベリングの精度を上げるために このようなことを繰り返してきました。 この傾向は確かにあります。 そう、オーダーラベリングは 非常に重要な役割を果たしています。 非常に重要な役割を果たしています。 オーダーラベリングがなければ、私たちは 自動運転の問題を解決することはできなかったでしょう。 自動運転の問題を解決することはできないでしょう。 蒸留のようなものです。 非常に巨大なモデルと問題の構造を使って 問題の構造を利用して 復元し、それをニューラルネットワークに抽出して それをニューラルネットワークに変換し、車に搭載するというものです。 しかし、私たちは基本的に、たくさんの しかし、基本的には多くのニューラルネットワークと しかし、基本的には、自動車に搭載することを想定していない多くのニューラルネットワークやタスクが存在します。 また、時間が経てば経つほど、新しい情報を得ることができます。 新しいフレームの情報を得ることができます。 あなたのコンピュータが すべての情報にアクセスできるように 1つのフレームだけを取り出して 1つのフレームを例えば200ミリ秒かけて見るのではなく 新しいフレームが入ってくるのです。 新しいフレームが入ってくるので、すべての情報を利用したいのです。 1つのフレームだけでなく、すべての情報を 1つのフレームだけでなく 思うに 私たちが目にしていることのひとつは 車の予測能力は......非常に優れています。 不気味なほど優れています うん 人間よりも優れた能力を発揮しています。 予測するという点では、人間よりも優れてきています。 どんな この道路がどのように見えるかを予測する 目に見えないところでは、カーブを曲がるときのように 予測することができます。 非常に高い精度で そして そうそう 歩行者や自転車を予測することができます。 歩行者や自転車を予測します。 自転車のちょっとした角や バスの窓から少しだけ見える 予測する能力は 予測能力は人間よりもはるかに優れているでしょう。 人間よりもはるかに優れています。 目に見えないものがあると 目に見えないものでも ニューラルネットワークは実際には非常に賢明なものを作り上げています。 実際には非常に感覚的であったり、時には不気味なほど優れていたり 時には不気味なほど良くできていて、あなたは これはトレーニングセットに含まれているのだろうかと そして実際に 実際には、想像できる限界まで ニューラルネットは地球を記憶するのに十分なパラメータを持っています。 地球を覚えている可能性があるので 極限状態では、実際に正しい答えを出すことができます。 正解を教えてくれるかもしれません。 ニューラルネットの重みに焼き付けられたHDマップのようなものです。 ニューラルネット テスラボットの設計について質問があります テスラボットの設計について質問があります。 人型のフォルムを維持するためには ヒューマノイド・フォーム 5本指の手を作ること 重量制限を守りながら かなり難しいかもしれません。 ケーブルドライブを使わなければならないかもしれませんし、そうなると 様々な問題が発生します つまり、これはまだバージョン1を購入したばかりで 買ったばかりのバージョン1なので、これからです だから その それは 人がやるようなことができる必要があります。 人々がすることができる必要があります。 一般的な、つまり ヒューマノイド・ロボット えーと つまり、潜在的には、あなたに 指と親指のようなものを 2本の指と親指のような そのような うん 今のところ、私たちは指を 5本の指を使ってみて うまくいくかな? 多分うまくいくと思うけど......そんな必要はないよね 驚くほどの握力がなくても 驚異的な握力がなくても しかし、道具を扱うためには 道具 道具を扱ったり、バッグを持ったりする能力が必要です。 事 プレゼンをありがとうございました。 プレゼンテーション 私の古い教授が言っていました。 彼がテスラで嫌いだったのは テスラの嫌いなところは、自動操縦のUXが システムに自信が持てないということでした。 特に、物体が回転したり 特に、物体が回転していたり、分類がちらついていたりすると 良い自動運転システムがあったとしても 良い自動運転システムがあったとしても テスラのオーナーや他の道路利用者や 道路利用者や他の道路利用者、そして一般の人々に 一般の人々に、あなたのシステムが 安全性と信頼性 それはそうだと思います。 車は 少し前までは、車は回転していましたが もうスピンすることはありません。 FSDのベータ版ビデオをご覧になったことがあれば ベータ版のビデオを見ると かなりしっかりしています。 もっとしっかりしたものになっていくだろう もっともっとデータを追加してトレーニングしていけば このようなマルチカメラ・ネットワークは 数ヶ月しか経っていないのに、かなり良くなっています。 数ヶ月しか経っていないのに、本当に良くなっています。 まだまだ完成品ではありません。 私たちは決して気にしません。 これは完璧なものになるだろうと思っています。 宇宙に最適なのはなぜか? すべての情報は、ビデオの中で ビデオでは、多くのデータと優れたアーキテクチャを生成する必要があります。 データと優れたアーキテクチャ うん これは、タイムラインの中での中間点に過ぎません。 タイムライン上の つまり、人間よりもはるかに優れたものに向かっているのは明らかです。 人間よりもはるかに優れたものになることは間違いありません 私の番だ ハイ、ここで......もし、あなたが ボットの短・中期的な経済性について、少しお話いただけないでしょうか。 ボットの短期・中期的な経済性についてお話いただけないでしょうか。 肉体労働者を代替するという長期的なビジョンは理解できますが 肉体労働に取って代わるという長期的なビジョンは理解できますが しかし、危険で退屈な作業の繰り返しは 危険で退屈な作業は、あまり高い報酬が得られない傾向にあると思います。 高い報酬を得られない傾向があると思いますので、私には どうやって再現すればいいのかわかりません。 スーパーカーからスタートして 低価格帯の市場に参入する ロボットやヒューマノイドで、どうやってそれを ヒューマノイド まあ、見てのお楽しみということにしておきましょう。 こんにちは 私は車のAIがどのようにして 優先順位は 乗員の安全性と歩行者の安全性 そして、どのような思考プロセスを経て どのようにしてAIに反映させるかを決定しているのでしょうか? つまり、私たちは 評価すべき点は コンピュータの観点からすると すべてがゆっくりと動いています だから人間にとっては......わかると思うんだけど 物事は速く動いていますが、コンピュータにとっては 速く動いているわけではないので、これは これは現実的にはやや誤った 絶対に起こらないというわけではありませんが 絶対に起こらないというわけではありませんが、非常に稀なことでしょう うん もしあなたが、それがまるで 別の方向に行くとしたら レンダリングのように 完全なレイトレーシングのような ニューラルネットで強化されたグラフィックで サイバーパンクのようなものや、高度なビデオゲームで 高度なビデオゲームで 秒間に60フレームの処理を行うことができます そして 完璧にレンダリングされた 1フレームをレンダリングするのに、人間はどのくらいの時間がかかるでしょうか? 1フレームをレンダリングするのに 一切のミスなく 行うことができます......といっても、1ヶ月くらいはかかりますが ヶ月はかかると思います。 ヶ月はかかるでしょう。 1秒間に60フレームのうち、1フレームをレンダリングするだけで ビデオゲームでは1秒間に60フレームのうち そうですね。 コンピュータは速く、人間は遅い つまり、例えば ロケット側では......あなたは......あなたは ロケットを軌道に乗せることはできません 私たちは実際にジョイスティックを接続して 誰かがロケットを盗めるか試してみましたが 軌道に乗るには そのためには で反応する必要があります。 だいたい 6.7ヘルツで反応する必要があります......人々はそれをすることができません 今でもそうだが、それはかなり低い。 私たちが話しているのは、もっと 30ヘルツでも 30ヘルツくらいの話です。 ハイ、ここでは......ハードウェア3では ハードウェア3では、多くの憶測が飛び交っています。 大規模なネットでは限界に達しているのではないかと 提供できる限界に達しているのではないかと 提供することができます。 拡張された計算モードがどの程度のヘッドルームを提供したか 拡張されたコンピュートモードは、どの時点で ハードウェア4が必要になるとしたら 確信しているのは、ハードウェア3か フル・ストップ・ドライビング・コンピュータ1ならば 実現できると確信しています。 人間をはるかに超える安全レベルでの完全な 人間をはるかに超える安全性を実現できると確信しています。 わかりませんが 少なくとも200〜300%は 人間よりも優れていると思います。 将来的には、完全な自動運転のためのハードウェアや 完全な自動運転のコンピュータも サイバートラックと一緒に導入することになるでしょう。 サイバートラックと一緒に導入することになるでしょう。つまり、1年ほどで あるいは えー それは おそらく......約4倍の性能になるでしょう 約4倍の性能を持つ しかし ただ、実際には 例えば、議論のために 議論のために、人間より300安全なものから 1,000パーセントの安全性に えーと 道路上には様々な運転をする人がいるように 道路上には様々な運転能力を持った人がいますが 運転能力に差があっても運転させているのと同じです。 世界一のドライバーでなくても、道路を走ることはできるのです。 世界一のドライバーでなくても、道路を走ることはできます。 だから、私たちが見るように だから そう 何が新しくなったかというと すべて そうですね 車に深度センサーが付いていないので 車には深度センサーがないので 敵対的攻撃のようなことをされるのではないかと 攻撃のような プリントアウトした写真などを使って RGBニューラルネットワークを騙すような ニューラルネットワーク ワイリーコーディのようなものを引っ張ってくるような のようなもの 壁にトンネルを描くように 壁に おっとという感じです うん あまり見たことがありませんね。 つまり 確かに今のような状況では のTシャツを持っていたとしましょう。 のTシャツを持っていたとします。 ストップサインが描かれたTシャツを持っていたら 私は実際にストップサインの入ったTシャツを持っています。 ストップサインの入ったTシャツを持っていて 車を点滅させる 車は止まるでしょう。 私はそれを証明しました でも しかし、これらの......敵対的攻撃を目の当たりにすれば、明らかに 敵対的な攻撃を目の当たりにすれば、車を訓練して 車を訓練して... 実際にはTシャツを着た人が Tシャツを着た人がいて、そのTシャツには一時停止の標識がある。 Tシャツを着ている人がいて、そのTシャツには一時停止の標識が描かれているので、おそらく本物の一時停止の標識ではないだろうと サイン こんにちは......私の質問は......予測と計画についてです。 予測と計画について聞きたいのですが 不確実性をどのようにして 不確実性をどのように計画アルゴリズムに組み込むのか 基本的には、知っていることを前提にしているのでしょうか? あなたは、他の車の自動操縦を 道路上の他のすべての車の自動操縦を行っていると言いましたが 道路上の他の車の自動操縦をしているとおっしゃいましたが、他の車がすべてそのルールに従うと仮定しますか? それとも、他の車が あるいは、例えば それとも、例えば運転の下手な人がいるかもしれないという可能性を考慮しているのでしょうか? マルチモーダルな未来を考慮しています。 未来を選択しているわけではありません。 この人は実際にいろいろなことができて いろいろなことができることを考慮して そのためには、実際の 物理学や運動学を駆使して 実際の物理学や運動学を使って、行動する前に、その人が私たちの邪魔になるようなことをしていないか 干渉するようなことをしていないかを確認してから行動します。 不確実性がある場合は 保守的になり、相手に譲ることになります。 もちろん、これには限界があります。 あまりにも保守的だと、おそらく実用的ではないので 保守的になりすぎると、おそらく実用的ではないからです。 断定しなければなりません。 その上で、相手が 相手が 相手がこちらに譲歩して 感覚的に行動する 言ってみれば えーと 艦隊に何かを導入する前に 艦隊に何かを導入する前にシャドウモードで実行して そうすることで、例えばこのニューラルネットが 例えば、このニューラル・ネットが、この特定の状況で この特定の状況で うん なぜなら、効果的にドライバーが ネットをトレーニングしているわけですから もし、ニューラルネットが ニューラルネットが制御して 右に曲がったと言っても、実際には左に曲がっていたとしたら 実際には左に行ってしまったとしたら、「ああ、違いがある」となるわけです。 なぜそのような違いがあるのか そう、そして第二に 人間のドライバーは、基本的に ニューラルネットに何が正しい行動なのかを学習させています。 正しい行動をとるように 衝突に至らないことを前提として その場合はカウントされません。 その場合 そして第二に、我々は様々な 不確実性の推定値があります。 これを見ると、私たちは実際に... 何かを見ることができなかった場合、私たちは 安全のために車の速度を落とし 安全のために車を減速させ、行動する前にもっと情報を得る。 行動する前にもっと情報を得ようとする......そう、私たちは図々しくなりたくない。 何も知らずに突っ込んでいくような図々しさは 知っている場所にしか行きません。 知っている場所にしか行かない。 でも......うん それは、まるで 憧れの車になるべきだ 知らなければ知らないほど、遅いほど 遅くなるんだ これはある時点では真実ではないが、今は そう、そう、そうなんだよ 私たちは 自信に比例するスピード プレゼンテーションに感謝します。 好奇心旺盛な FSDが改善されているという事実に感謝します。 改善しているという事実に感謝していますが、もしAIスタックに沿って一つのコンポーネントを改善する能力があれば AIスタックに沿って1つのコンポーネントを改善する能力があれば それが以下のようなものであっても、今日発表することができます。 シミュレーション データ収集 計画 コントロールなど、あなたの意見ではどのコンポーネントが あなたの意見では、どのコンポーネントが最も大きな影響を 自動運転のパフォーマンスに最も大きな影響を与えると思われるのは 自動運転 システム 曲線の下の部分で、複数のポイントがあるように見えます。 複数のポイントがあり、もし何かを改善すれば 何かを改善すれば......それは 面積 つまり、短期的には、それは間違いなく すべてのネットをサラウンドビデオにする必要があります。 サラウンドビデオにする必要がありますが、そのためにはまだ これは非常に短期的なものです。 これは非常に短期的なもので、明らかに我々はそれを素早く修正していますが しかし、まだ まだ、サラウンド・ビデオを使っていないネットがあります。 サラウンドビデオを使っていないネットもあります。 すべてのネットがサラウンドビデオを使用するのが理想だと思います。 サラウンドビデオ そうですね、そうですね、多くのパズルのピースが 成功のためのピースは揃っています。 ただ、もっと強力な人材が必要です。 協力して それが実際の箱なんです。 それが実際のボトルネックなんです。 私がこのイベントを開催する理由の1つです。 このイベントを開催した理由のひとつは、まさに アンドレがよく言っていたように とてつもない量の仕事があります。 を実現するためには このイベントを成功させるためには、膨大な作業が必要です。 才能ある人たちに参加してもらい 問題を解決してくれる才能ある人々が必要なのです。 素晴らしいプレゼンテーションをありがとうございました。 たくさんの質問に答えていただきました。 しかし、ひとつだけ それは 大量のデータがあると 膨大な量のデータがあると想像したとき、不必要なものまで ニューラルネットワークの忘却問題のように ニューラルネットワークにおける忘却の問題のように そういった点をどのように考えているのか また もう1つは、オンラインでの学習を考慮していますか? オンライン学習や継続的な学習 そう 各ドライバーが 各ドライバーがそれぞれのバージョンの 自動運転の ソフトウェア 私はその文献を知っていると思います。 あなたが参照している文献を知っていると思いますが、それは私たちが見てきた問題の一部ではありません。 私たちが見てきた問題の一部ではありません。 あまり継続的な学習を行っていません。 一度システムをトレーニングして 何度か見つけて 車に乗っているようなものだから、評価できる 評価できる安定したものが必要です。 広く評価できる安定したものが必要です。 車に搭載されることになります。 スポットでの学習や継続的な学習をあまりせずに 継続的に学習することで、忘却の問題に直面することもありません。 忘却の問題に直面することもありません。 といった設定も可能です。 一般的に保守的なドライバーにしたいのか 保守的な運転をしたいのか、速く走りたいのか、遅く走りたいのか 速く走りたいのか、遅く走りたいのか......それはまるで 空港に遅刻しそうなんだけど......。 もっと速く走れないかな? 基本的には、あなたがuberのドライバーにする指示は 運転手に指示を出すようなものです フライトに遅れそうなんですが、お願いします 急いでくださいとか、ゆっくりしてくださいとか あなたのスタイルが何であれ それでは、もう少し質問をしてみましょう。 今日はこれで終わりにしましょう。 さて、私たちのモデルはますます有能になり モデルの性能が上がってきていて 現実の世界にモデルを展開していると思いますが 可能性があると思うのは AIがもっと人間の望むものと 人間が望むものとのズレが生じる可能性があります。 そのことをあなた方は ロボットをどんどん導入していく中で、あなた方が心配していることは ロボットをどんどん導入していく中で、あなた方はそのことを心配しているのでしょうか? それとも、その時になったらその問題を解決しようと思っていますか? と思うのか ええ、私たちはAIを心配すべきだと思います。 AIについては......その......例えば 私たちがここでやろうとしているのは、つまり 狭いAI かなり狭い範囲で......例えば、車を人間よりも 人間よりもうまく運転できるようにするとか そして、人型ロボットには 基本的なことができる えー そうですね。 超人的な知性を手に入れようとする時点で 超人的な知能を持ち始める時点で 全ての賭けが始まるのか うん でも それはそれとして、それはそれとして、それはそれとして そう そうなるかもしれないけど、でも テスラでやろうとしているのは 役に立つ 人々に愛される 人々に愛され、そして 紛れもなく良いものを作ることです。 それを目指しています。 さて、もう一つ質問です。 こんにちは......私の質問はカメラについてです センサーについてです。 合成動物を作るという話をされていましたが 動物 考えてみると カメラは人間の目の非常に貧弱な近似品です。 カメラは人間の目の非常に貧弱な近似品であり、人間の目は一連のフレームを撮るだけでなく 人間の目は、一連のフレームを撮るだけではありません。 最近のカメラのようなものは 最近では、イベントカメラのようなカメラがあります。 カメラのようなものがありますが、それについて調べたことがありますか? より柔軟なカメラを検討していますか? より柔軟なカメラの設計や独自のカメラの構築を検討していますか? 例えば ハードウェア4では、次世代のカメラができるでしょう。 次世代のカメラを用意する予定ですが しかし、現在のカメラでは 現在のカメラの限界には達していません。 現在のカメラの限界には達していません。 ええと 完全な自動運転を、より高い安全性で実現できると確信しています。 完全な自動運転をより高い安全性で 人間よりも 現在のカメラと 現在の計算機ハードウェア うん しかし でも 300%よりも1,000%良くなった方がいいのか 300%ではなく1,000%でいいのか だから 私たちのレベルの進化は続くでしょう。 レベルの進化を その目標を追求し、将来的には 将来 将来、人々は振り返ってこう言うでしょう 自分たちで運転しなければならなかったなんて、信じられない 自分で運転しなければならないなんて 自動運転車のようなものが のように普通のことになるでしょう。 自動運転のエレベーター エレベーターには昔、エレベーター・オペレーターがいたことをご存知でしょうか。 エレベーター・オペレーター 誰かがそこにいて、その人が 大きな大きなリレースイッチを エレベータを操作する そして、時々、彼らは疲れてしまったり 疲れてしまったり、ミスをしてしまったりして 誰かを半分に分けてしまったり それで、今は......エレベータを自動化して エレベーターは自動化され、ボタンを押すだけで ボタンを押せば、100階建ての超高層ビルでも 100階建ての超高層ビルでも 心配することなく、ただ行って ボタンを押せば エレベーターが目的の場所に連れて行ってくれるんです。 行くことができます。 しかし、かつてはすべてのエレベータが 手動で操作していましたが、これからは車と同じように 自動車も同じように すべての車が自動運転になる そして電気自動車へと変わっていくでしょう。 ガソリン車もマニュアル車もあるでしょう。 ガソリン車もマニュアル車もあるだろう。 馬がまだいるように だから 皆さま、ご来場ありがとうございました。 このプレゼンテーションを楽しんでいただけましたか? プレゼンテーションを楽しんでいただけたでしょうか。 質問