Over the past few years, we have built large-scale computer systems for training neural networks, and then applied these systems to a wide variety of problems that have traditionally been very difficult for computers. We have made significant improvements in the state-of-the-art in many of these areas, and our software systems and algorithms have been used by dozens of different groups at Google to train state-of-the-art models for speech recognition, image recognition, various visual detection tasks, language modeling, language translation, and many other tasks. In this talk, I''ll highlight some of the distributed systems and algorithms that we use in order to train large models quickly. I''ll then discuss ways in which we have applied this work to a variety of problems in Google''s products, usually in close collaboration with other teams. This talk describes joint work with many people at Google.