tag:blog.gregbrockman.com,2014:/sitemapGreg Brockman2022-04-11T09:05:00-07:00Greg Brockmanhttps://blog.gregbrockman.comSvbtle.comtag:blog.gregbrockman.com,2014:Post/its-time-to-become-an-ml-engineer2022-04-11T09:05:00-07:002022-04-11T09:05:00-07:00It's time to become an ML engineer<p>AI has recently crossed a utility threshold, where cutting-edge models such as <a href="https://www.nytimes.com/2020/11/24/science/artificial-intelligence-ai-gpt3.html">GPT-3</a>, <a href="https://openai.com/blog/openai-codex/">Codex</a>, and <a href="https://openai.com/dall-e-2/">DALL-E 2</a> are actually useful and can perform tasks computers cannot do any other way. The act of producing these models is an exploration of a new frontier, with the discovery of unknown capabilities, scientific progress, and incredible product applications as the rewards. And perhaps most exciting for me personally, because the field is fundamentally about creating and studying software systems, great engineers are able to contribute at the same level as great researchers to future progress.</p>
<p><i>“A self-learning AI system.” by DALL-E 2.</i><br>
<a href="https://svbtleusercontent.com/h7okNiku7ZnoeP3DHHGMNG0xspap.png"><img src="https://svbtleusercontent.com/h7okNiku7ZnoeP3DHHGMNG0xspap_small.png" alt=""></a></p>
<p>I first got into software engineering because I wanted to build large-scale systems that could have a direct impact on people’s lives. I attended a math research summer program shortly after I started programming, and my favorite result of the summer was a scheduling app I built for people to book time with the professor. Specifying every detail of how a program should work is hard, and I’d always dreamed of one day putting my effort into hypothetical AI systems that could figure out the details for me. But after taking one look at the state of the art in AI in 2008, I knew it wasn’t going to work any time soon and instead started building infrastructure and product for web startups.</p>
<p><i>DALL-E 2’s rendition of “The two great pillars of the house of artificial intelligence” (which according to my co-founder Ilya Sutskever are great engineering, and great science using this engineering)</i><br>
<a href="https://svbtleusercontent.com/9hLuUuzAAvJUzqWAADUQw10xspap.png"><img src="https://svbtleusercontent.com/9hLuUuzAAvJUzqWAADUQw10xspap_small.png" alt=""></a></p>
<p>It’s now almost 15 years later, and the vision of systems which can learn their own solutions to problems is becoming incrementally more real. And perhaps most exciting is the underlying mechanism by which it’s advancing — at OpenAI, and the field generally, precision execution on large-scale models is a force multiplier on AI progress, and we need more people with strong software skills who can deliver these systems. This is because we are building AI models out of unprecedented amounts of compute; these models in turn have unprecedented capabilities, we can discover new phenomena and explore the limits of what these models can and cannot do, and then we use all these learnings to build the next model.</p>
<p><i>“Harnessing the most compute in the known universe” by DALL-E 2</i><br>
<a href="https://svbtleusercontent.com/tu42hQzrNKYtd4kNQFtXEi0xspap.png"><img src="https://svbtleusercontent.com/tu42hQzrNKYtd4kNQFtXEi0xspap_small.png" alt="DALL·E 2022-04-09 17.35.04.png"></a></p>
<p>Harnessing this compute requires deep software skills and the right kind of machine learning knowledge. We need to coordinate <a href="https://openai.com/blog/scaling-kubernetes-to-7500-nodes/">lots of computers</a>, build <a href="https://github.com/openai/gym">software frameworks</a> that allow for <a href="https://openai.com/blog/triton/">hyperoptimization</a> in some cases and flexibility in others, <a href="https://openai.com/api/">serve these models</a> to customers really fast (which is what I worked on in 2020), and make it possible for a small team to manage a massive system (which is what I work on now). Engineers with no ML background can contribute from the day they join, and the more ML they pick up the more impact they have. The OpenAI environment makes it relatively easy to <a href="https://blog.gregbrockman.com/how-i-became-a-machine-learning-practitioner">absorb the ML skills</a>, and indeed, many of OpenAI’s best engineers transferred from other fields.</p>
<p>All that being said, AI is not for every software engineer. I’ve seen about a 50-50 success rate of engineers entering this field. The most important determiner is a specific flavor of technical humility. Many dearly-held intuitions from other domains will not apply to ML. The engineers who make the leap successfully are happy to be wrong (since it means they learned something), aren’t afraid not to know something, and don’t push solutions that others resist until they’ve gathered enough intuition to know for sure that it matches the domain.</p>
<p><i>“A beaver who has humbly recently become a machine learning engineer” by DALL-E 2</i><br>
<a href="https://svbtleusercontent.com/rrN7pqfXC3qYFpS251K3hF0xspap.png"><img src="https://svbtleusercontent.com/rrN7pqfXC3qYFpS251K3hF0xspap_small.png" alt=""></a></p>
<p>I believe that AI research is today by far the most impactful place for engineers who want to build useful systems to be working, and I expect this statement to become only more true as progress continues. If you’d like to work on creating the next generation of AI models, email me (<a href="mailto:gdb@openai.com">gdb@openai.com</a>) with any evidence of exceptional accomplishment in software engineering.</p>
tag:blog.gregbrockman.com,2014:Post/how-i-became-a-machine-learning-practitioner2019-07-30T07:41:28-07:002019-07-30T07:41:28-07:00How I became a machine learning practitioner<p>For the first three years of OpenAI, I dreamed of becoming a machine learning expert but made little progress towards that goal. Over the past nine months, I’ve finally made the transition to being a machine learning practitioner. It was hard but not impossible, and I think most people who are good programmers and know (or are willing to learn) the <a href="https://www.deeplearningbook.org/">math</a> can do it too. There are many online courses to <a href="https://course.fast.ai/">self-study</a> <a href="https://github.com/openai/spinningup">the</a> <a href="http://cs231n.stanford.edu/">technical</a> <a href="http://rll.berkeley.edu/deeprlcoursesp17/">side</a>, and what turned out to be my biggest blocker was a mental barrier — getting ok with being a <a href="https://www.goodreads.com/quotes/309485-nobody-tells-this-to-people-who-are-beginners-i-wish">beginner</a> again.</p>
<p><img src="https://svbtleusercontent.com/dvwQxNxkr6FKLVsDTBoqwm0xspap_small.png" alt="gdb-ml1.png"> <em>Studying machine learning during the 2018 holiday season.</em></p>
<h1 id="early-days_1">Early days <a class="head_anchor" href="#early-days_1">#</a>
</h1>
<p>A founding principle of OpenAI is that we value research and engineering equally — our goal is to build working systems that solve previously impossible tasks, so we need both. (In fact, our team is comprised of 25% people primarily using software skills, 25% primarily using machine learning skills, and 50% doing a hybrid of the two.) So from day one of OpenAI, my software skills were always <a href="https://blog.gregbrockman.com/define-cto-openai#gym_1">in demand</a>, and I kept procrastinating on picking up the machine learning skills I wanted.</p>
<p>After helping build <a href="https://openai.com/blog/openai-gym-beta/">OpenAI Gym</a>, I was called to work on <a href="https://openai.com/blog/universe/">Universe</a>. And as Universe was winding down, we decided to start working on <a href="https://openai.com/five/#timeline">Dota</a> — and we needed someone to turn the game into a reinforcement learning environment before any machine learning could begin.</p>
<h1 id="dota_1">Dota <a class="head_anchor" href="#dota_1">#</a>
</h1>
<p>Turning such a complex game into a research environment without source code access was <a href="https://www.youtube.com/watch?v=UdIPveR__jw">awesome</a> <a href="https://openai.com/blog/more-on-dota-2/#infrastructure">work</a>, and the team’s excitement every time I overcame a new obstacle was deeply validating. I figured out how to break out of the game’s Lua sandbox, <a href="https://stackoverflow.com/a/426260">LD_PRELOAD</a> in a Go GRPC server to programmatically control the game, incrementally dump the whole game state into a Protobuf, and build a Python library and abstractions with future compatibility for the many different multiagent configurations we might want to use.</p>
<p>But I felt half blind. At <a href="https://blog.gregbrockman.com/figuring-out-the-cto-role-at-stripe">Stripe</a>, though I gravitated towards infrastructure solutions, I could make changes anywhere in the stack since I knew the product code intimately. In Dota, I was constrained to looking at all problems through a software lens, which sometimes meant I tried to solve hard problems that could be avoided by just doing the machine learning slightly differently.</p>
<p>I wanted to be like my teammates Jakub Pachocki and Szymon Sidor, who had made the core breakthrough that powered our Dota bot. They had questioned the common wisdom within OpenAI that reinforcement algorithms didn’t scale. They wrote a distributed reinforcement learning framework called Rapid and scaled it exponentially every two weeks or so, and we never hit a wall with it. I wanted to be able to make critical contributions like that which combined software and machine learning skills.</p>
<p><img src="https://svbtleusercontent.com/pKEBrnXKw7dzHBrccoTvZF0xspap_small.jpg" alt="jakub-szymon-gdb.jpg"> <em>Szymon on the left; Jakub on the right.</em></p>
<p>In July 2017, it looked like I might have my chance. The software infrastructure was stable, and I began work on a machine learning project. My goal was to use behavioral cloning to teach a neural network from human training data. But I wasn’t quite prepared for just how much I would feel like a beginner.</p>
<p>I kept being frustrated by small workflow details which made me uncertain if I was making progress, such as not being certain which code a given experiment had used or realizing I needed to compare against a result from last week that I hadn’t properly archived. To make things worse, I kept discovering small bugs that had been corrupting my results the whole time.</p>
<p>I didn’t feel confident in my work, but to make it worse, other people did. People would mention how how hard behavioral cloning from human data is. I always made sure to correct them by pointing out that I was a newbie, and this probably said more about my abilities than the problem.</p>
<p>It all briefly felt worth it when my code made it into the bot, as Jie Tang used it as the starting point for creep blocking which he then fine-tuned with reinforcement learning. But soon Jie figured out how to get better results without using my code, and I had nothing to show for my efforts.</p>
<p>I never tried machine learning on the Dota project again.</p>
<h1 id="time-out_1">Time out <a class="head_anchor" href="#time-out_1">#</a>
</h1>
<p>After we lost two games in The International in 2018, most observers thought we’d <a href="https://twitter.com/polynoamial/status/1032988066967965696">topped out</a> what our approach could do. But we knew from our metrics that we were right on the edge of success and mostly needed more training. This meant the demands on my time had relented, and in November 2018, I felt I had an opening to take a gamble with three months of my time.</p>
<p><img src="https://svbtleusercontent.com/xeofo3DevLKYRqsiq7D5yR0xspap_small.png" alt="ti-elevator.png"> <em>Team members in high spirits after losing our first game at The International.</em></p>
<p>I learn best when I have something specific in mind to build. I decided to try building a chatbot. I started self-studying the curriculum we developed for our <a href="https://openai.com/blog/openai-fellows/">Fellows</a> program, selecting only the NLP-relevant modules. For example, I wrote and trained an LSTM language model and then a Transformer-based one. I also read up on topics like <a href="https://colah.github.io/posts/2015-09-Visual-Information/">information theory</a> and read many papers, poring over each line until I fully absorbed it.</p>
<p>It was slow going, but this time I expected it. I didn’t experience flow state. I was reminded of how I’d felt when I just started programming, and I kept thinking of how many years it had taken to achieve a feeling of mastery. I honestly wasn’t confident that I would ever become good at machine learning. But I kept pushing because… well, honestly because I didn’t want to be constrained to only understanding one part of my projects. I wanted to see the whole picture clearly.</p>
<p>My personal life was also an important factor in keeping me going. I’d begun a relationship with someone who made me feel it was ok if I failed. I spent our first holiday season together beating my head against the machine learning wall, but she was there with me no matter how many planned activities it meant skipping.</p>
<p>One important conceptual step was overcoming a barrier I’d been too timid to do with Dota: make substantive changes to someone else’s machine learning code. I fine-tuned <a href="https://github.com/openai/finetune-transformer-lm">GPT-1</a> on chat datasets I’d found, and made a small change to add my own naive sampling code. But it became so painfully slow as I tried to generate longer messages that my frustration overwhelmed my fear, and I implemented GPU caching — a change which touched the entire model.</p>
<p>I had to try a few times, throwing out my changes as they exceeded the complexity I could hold in my head. By the time I got it working a few days later, I realized I’d learned something that I would have previously thought impossible: I now understood how the whole model was put together, down to small stylistic details like how the codebase elegantly handles TensorFlow variable scopes.</p>
<h1 id="retooled_1">Retooled <a class="head_anchor" href="#retooled_1">#</a>
</h1>
<p>After three months of self-study, I felt ready to work on an actual project. This was also the first point where I felt I could benefit from the many experts we have at OpenAI, and I was delighted when Jakub and my co-founder Ilya Sutskever agreed to advise me.</p>
<p><img src="https://svbtleusercontent.com/4EsPtaedTxAUj3GCBLBvNe0xspap_small.png" alt="ilya.png"> <em>Ilya singing karaoke at our company offsite.</em></p>
<p>We started to get very exciting results, and Jakub and Szymon joined the project full-time. I feel proud every time I see a commit from them in the machine learning codebase I’d started.</p>
<p>I’m starting to feel competent, though I haven’t yet achieved mastery. I’m seeing this reflected in the number of hours I can motivate myself to spend focused on doing machine learning work — I’m now around 75% of the number of coding hours from where I’ve <a href="https://twitter.com/sama/status/792898456650076160?lang=en">been historically</a>.</p>
<p>But for the first time, I feel that I’m on trajectory. At first, I was overwhelmed by the seemingly endless stream of new machine learning concepts. Within the first six months, I realized that I could make progress without constantly learning entirely new primitives. I still need to get more experience with many skills, such as initializing a network or setting a learning rate schedule, but now the work feels incremental rather than potentially impossible.</p>
<hr>
<p>From our Fellows and Scholars programs, I’d known that software engineers with solid fundamentals in linear algebra and probability can become machine learning engineers with just a few months of self study. But somehow I’d convinced myself that I was the exception and couldn’t learn. But I was wrong — even embedded in the middle of OpenAI, I couldn’t make the transition because I was unwilling to become a beginner again.</p>
<p>You’re probably not an exception either. If you’d like to become a deep learning practitioner, you can. You need to give yourself the space and time to fail. If you learn from enough failures, you’ll succeed — and it’ll probably take much less time than you expect.</p>
<p>At some point, it does become important to surround yourself by existing experts. And that is one place where I’m incredibly lucky. If you’re a great software engineer who reaches that point, keep in mind there’s a way you can be surrounded by the same people as I am — <a href="https://openai.com/jobs/">apply</a> to OpenAI!</p>
tag:blog.gregbrockman.com,2014:Post/openai-five-finals-intro2019-04-15T09:20:01-07:002019-04-15T09:20:01-07:00OpenAI Five Finals Intro<p><img src="https://svbtleusercontent.com/nY9sbhsHCGDgJ759CLDhhk0xspap_small.png" alt="gdb.png"></p>
<p>The text of my <a href="https://www.twitch.tv/videos/410533063?t=46m21s">speech</a> introducing OpenAI Five at Saturday’s OpenAI Five Finals event, where our AI beat the world champions at Dota 2:</p>
<p>“Welcome everyone. This is an exciting day.</p>
<p>First, this is an historic moment: this will be the first time that an AI has even attempted to play the world champions in an esports game. OG is simply on another level relative to other teams we’ve played. So we don’t know what’s going to happen, but win or lose, these will be games to remember.</p>
<p>And you know, OpenAI Five and DeepMind’s very impressive StarCraft bot<br>
both have beaten good pros privately but no one has seen it it happen live — so if we win, it’ll be a first on that front too.</p>
<p>This event is really about something bigger than who wins or loses: letting people connect with the strange, exotic, yet tangible intelligences produced by today’s rapidly progressing AI technology.</p>
<p>We’re all used to computer programs which have been meticulously coded by a human programmer. Do one thing that the human didn’t anticipate, and the program will break. We think of our computers as unthinking machines which can’t innovate, can’t be creative, can’t truly understand.</p>
<p>But to play Dota, you need to do all these things.</p>
<p>So we needed to do something different. OpenAI Five is powered by deep reinforcement learning — meaning that we didn’t code in how to play Dota. We instead coded in the how to learn.</p>
<p>Five tries out random actions, and learns from a reward or punishment. In its 10 months of training, its experienced 45,000 years of Dota gameplay against itself. The playstyle it has devised are its own — they are truly creative and dreamed up by our computer — and so from Five’s perspective, today’s games are going to its first encounter with an alien intelligence (no offense to OG!).</p>
<p>The beauty of this technology is that our learning code doesn’t know it’s meant for Dota. That makes it general purpose with amazing potential to benefit our lives. Last year we used it to control a robotic hand that no one could program. And we expect to see similar technology in new interactive systems, from elderly care robots to creative assistants to other systems we can’t dream of yet.</p>
<p>This is the final public event for OpenAI Five, but we expect to do other Dota projects in the future.</p>
<p>I want to thank the incredible team at OpenAI, everyone who worked directly on this project or cheered us on. I want to thank those who have supported the project: Valve, dozens of test teams, today’s casters, and yes, even all the commenters on Reddit. And I want to give massive thanks today to our fantastic guests OG who have taken time out of their tournament schedule to be here today.</p>
<p>I hope you enjoy the show — and just to keep things in perspective, no matter how surprising the AIs are to us, know that we’re even more surprising to them!”</p>
tag:blog.gregbrockman.com,2014:Post/the-openai-mission2019-03-11T10:59:14-07:002019-03-11T10:59:14-07:00The OpenAI Mission<p><img src="https://svbtleusercontent.com/frkic5ULHq9GogeZiZnVAP0xspap_small.jpg" alt="Open_AI_Founders-064-Edit-2.jpg"> <em>This post is co-written by <a href="https://twitter.com/gdb">Greg Brockman</a> (left) and <a href="https://twitter.com/ilyasut">Ilya Sutskever</a> (right).</em> </p>
<p>We’ve been working on OpenAI for the past three years. Our mission is to ensure that artificial general intelligence (AGI) — which we define as automated systems that outperform humans at most economically valuable work — benefits all of humanity. Today we announced a new legal structure for OpenAI, called <a href="https://openai.com/blog/openai-lp/">OpenAI LP</a>, to better pursue this mission — in particular to raise more capital as we attempt to build safe AGI and distribute its benefits.</p>
<p>In this post, we’d like to help others understand how we think about this mission.</p>
<h1 id="why-now_1">Why now? <a class="head_anchor" href="#why-now_1">#</a>
</h1>
<p>The <a href="http://www-formal.stanford.edu/jmc/history/dartmouth/dartmouth.html">founding vision</a> of the field of AI was “<i>… to proceed on the basis of the conjecture that every aspect of learning or any other feature of intelligence can in principle be so precisely described that a machine can be made to simulate it</i>”, and to eventually build a machine that thinks — that is, an AGI. But over the past 60 years, progress stalled multiple times and people started thinking of AI as a field that wouldn’t deliver.</p>
<p>Since 2012, deep learning has generated sustained progress in many domains using a small simple set of tools, which have the following properties:</p>
<ul>
<li>
<strong>Generality:</strong> deep learning tools are simple, yet they apply to many domains, such as vision, speech recognition, speech synthesis, text synthesis, image synthesis, translation, robotics, and game playing.</li>
<li>
<strong>Competence:</strong> today, the only way to get competitive results on most “AI-type problems” is through the use of deep learning techniques.</li>
<li>
<strong>Scalability:</strong> <a href="https://en.wikipedia.org/wiki/Symbolic_artificial_intelligence">good old fashioned AI</a> was able to produce exciting demos, but its techniques had difficulty scaling to harder problems. But in deep learning, more computational power and more data leads <a href="https://arxiv.org/abs/1712.00409">to</a> <a href="https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf">better</a> <a href="https://twitter.com/quocleix/status/1064701099272093697">results</a>. It has also proven easy (if costly) to rapidly increase the amount of compute productively used by deep learning experiments.</li>
</ul>
<p>The rapid progress of useful deep learning systems with these properties makes us feel that it’s reasonable to start taking AGI seriously — though it’s hard to know how far away it is.</p>
<h1 id="the-impact-of-agi_1">The impact of AGI <a class="head_anchor" href="#the-impact-of-agi_1">#</a>
</h1>
<p>Just like a computer today, an AGI will be applicable to a wide variety of tasks — and just like computers in 1900 or the Internet in 1950, it’s hard to describe (or even predict) the kind of impact AGI will have. But to get a sense, imagine a computer system which can do the following activities with minimal human input:</p>
<ul>
<li>Make a scientific breakthrough at the level of the best scientists</li>
<li>Productize that breakthrough and build a company, with a skill comparable to the best entrepreneurs</li>
<li>Rapidly grow that company and manage it at large scale</li>
</ul>
<p>The upside of such a computer system is enormous — for an illustrative example, an AGI following the pattern above could produce amazing healthcare applications deployed at scale. Imagine a network of AGI-powered computerized doctors that accumulates a superhuman amount of clinical experience, allowing it to produce excellent diagnoses, deeply understand the nuanced effect of various treatments in lots of conditions, and greatly reduce the human error factor of healthcare — all for very low cost and accessible to everyone.</p>
<h1 id="risks_1">Risks <a class="head_anchor" href="#risks_1">#</a>
</h1>
<p>We already live in a world with entities that surpass individual human abilities, which we call companies. If working on the right goals in the right way, companies can produce huge amounts of value and improve lives. But if not properly checked, they can also cause damage, like logging companies that cut down rain forests, cigarette companies that get children smoking, or scams like Ponzi schemes.</p>
<p>We think of AGI as being like a hyper-effective company, with commensurate benefits and risks. We are concerned about AGI pursuing goals misspecified by its operator, malicious humans subverting a deployed AGI, or an out-of-control economy that grows without resulting in improvements to human lives. And because it’s hard to change powerful systems — just think about how hard it’s been to add security to the Internet — once they’ve been deployed, we think it’s important to address AGI’s safety and policy risks <em>before</em> it is created.</p>
<p></p><hr>
<p>OpenAI’s mission is to figure out how to get the benefits of AGI and mitigate the risks — and make sure those benefits accrue to all of humanity.</p>
<p>The future is uncertain, and there are many ways in which our predictions could be incorrect. But if they turn out to be right, this mission will be critical. If you’d like to work on this mission, <a href="https://openai.com/jobs/">we’re hiring</a>!</p>
<h1 id="about-us_1">About us <a class="head_anchor" href="#about-us_1">#</a>
</h1>
<p><strong>Ilya:</strong></p>
<p>I’ve been working on deep learning for 16 years. It was fun to witness deep learning transform from being a marginalized subfield of AI into one the most important family of scientific advances in recent history. As deep learning was getting more powerful, I realized that AGI might become a reality on a timescale relevant to my lifetime. And given AGI’s massive upside and significant risks, I want to maximize the positive parts of this impact and minimize the negative.</p>
<p><strong>Greg:</strong></p>
<p>Technology causes change, both positive and negative. AGI is the most extreme kind of technology that humans will ever create, with extreme upside and downside. I work on OpenAI because making AGI go well is the most important problem I can imagine contributing towards. Today I try to spend most of my time on technical work, and also work to spark better <a href="https://docs.house.gov/meetings/SY/SY15/20180626/108474/HHRG-115-SY15-Wstate-BrockmanG-20180626.pdf">public discourse</a> about AGI and related topics.</p>
tag:blog.gregbrockman.com,2014:Post/openai-five-benchmark-intro2018-08-06T09:46:36-07:002018-08-06T09:46:36-07:00OpenAI Five intro<p>The text of my speech introducing <a href="https://blog.openai.com/openai-five/">OpenAI Five</a> at yesterday’s <a href="https://blog.openai.com/openai-five-benchmark-results/">Benchmark</a> event:</p>
<p>“We’re here to watch humans and AI play Dota, but today’s match will have implications for the world. OpenAI’s mission is to ensure that when we can build machines as smart as humans, they will benefit all of humanity. That means both pushing the limits of what’s possible and ensuring future systems are safe and aligned with human values.</p>
<p>We work on Dota because it is a great training ground for AI: it is one of the most complicated games, involving teamwork, real time strategy, imperfect information, and an astronomical combinations of heroes and items.</p>
<p>We can’t program a solution, so Five learns by playing 180 years of games against itself every day — sadly that means we can’t learn from the players up here unless they played for a few decades. It’s powered by 5 artificial neural networks which act like an artificial intuition. Five’s neural networks are about the size of the brain of an ant — still far from what we all have in our heads.</p>
<p>One year ago, we beat the world’s top professionals at 1v1 Dota. People thought 5v5 would be totally out of reach. 1v1 requires mechanics and positioning; people did not expect the same system to learn strategy. But our AI system can learn problems it was not even designed to solve — we just used the same technology to learn to control a <a href="https://blog.openai.com/learning-dexterity/">robotic hand</a> — something no one could program.</p>
<p>The computational power for OpenAI Five would have been impractical two years ago. But the <a href="https://blog.openai.com/ai-and-compute/">availability of computation</a> for AI has been increasing exponentially, doubling every 3.5 months since 2012, and one day technologies like this will become commonplace.</p>
<p>Feel free to root for either team. Either way, humanity wins.”</p>
<hr>
<p>I’m very excited to see where the upcoming months of OpenAI Five development and testing take us.</p>
tag:blog.gregbrockman.com,2014:Post/define-cto-openai2017-01-09T10:21:41-08:002017-01-09T10:21:41-08:00#define CTO OpenAI<p>It’s been two years since I wrote <a href="https://blog.gregbrockman.com/figuring-out-the-cto-role-at-stripe">#define CTO</a>, in which I documented my quest for a role where I could have scalable impact by writing code. I’ve finally found that role, though not by seeking it — instead, I sought out a problem more important to me than my role within it, brought together the right people, and found that I can best make them effective by writing code.</p>
<h1 id="formation_1">Formation <a class="head_anchor" href="#formation_1">#</a>
</h1>
<p>In August 2015, OpenAI was just an idea articulated over a <a href="https://blog.gregbrockman.com/my-path-to-openai#the-dinner_1">dinner</a> with <strong>Elon Musk</strong>, <strong>Sam Altman</strong>, <strong>Ilya Sutskever</strong>, me, and a handful of others. We’d each come to the dinner with our own ideas, but Elon and Sam had a crisp vision of building safe AI in a project dedicated to benefiting humanity. I wanted to contribute however I could. Sam and I started rallying a team to turn this idea into reality.</p>
<p>We were missing a core ingredient: we needed an AI technical visionary, someone whose intuition and ideas we could follow to the breakthroughs.</p>
<p><a href="http://www.cs.toronto.edu/%7Eilya/">Ilya Sutskever</a> was clearly the best person in the world for this. Ilya is best described as an artist who expresses himself through machine learning (and sometimes through paint). <a href="http://www.cs.toronto.edu/%7Ehinton/">Geoff Hinton</a> once told me that <a href="https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf">AlexNet</a>, which triggered the deep learning revolution in computer vision, was due to <a href="http://www.cs.toronto.edu/%7Ekriz/">Alex Krizhevsky</a>’s GPU coding skills and Ilya’s conviction that a deep neural network was bound to win on <a href="http://image-net.org/">ImageNet</a>. (Geoff is proud to have contributed a management trick<sup id="fnref1"><a href="#fn1">1</a></sup>.)</p>
<p>I’d always thought I could only co-found a company with someone I’d already known for years. But when Ilya and I grabbed dinner in Mountain View in late August, I knew it was going to work though we’d just met in July. Ilya and I had an extremely high-bandwidth interaction. I didn’t know much about machine learning research, and he didn’t know much about engineering and team building, but we were each impressed with the others’ accomplishments and wanted to learn from each other.</p>
<p>Our ideas enhanced and complemented one another. Ilya thought top researchers would want to work at an AI organization dedicated to making the best outcome for the world, and I’d long thought that combining the resources of private industry with the mission of academia was the way to solve otherwise intractable problems. Without intervention, AI will play out like self-driving cars — a cooperative start followed by a technological race once its potential is proven. But human-level AI will be a transformative technology unlike any other, with unique risks and benefits. Here we saw an opportunity to keep the field cooperative, and to gather many of the best researchers to make a responsible attempt for the most important technological breakthrough in history.</p>
<p>Ilya and I worked together up until launch defining the organization. We talked about strategy (what we would work on), culture (the kind of people we wanted to hire, valuing engineering and research equally), and tactics (hold a daily reading group). We had dinner with Alan Kay, who regaled us with <a href="http://www.goodreads.com/book/show/1101290.Dealers_of_Lightning">Xerox PARC</a> stories of building the <a href="https://en.wikipedia.org/wiki/Xerox_Alto">Alto</a> and “living in the future” by using hardware that would cost $1,000 in a decade. Afterwards, Ilya summed up the meal aptly: “I only understood 50% of what he said, but it was all so inspiring.” But that meal helped us validate many of our hypotheses for what would make an impactful organization combining engineering and research.</p>
<h1 id="founding-team_1">Founding team <a class="head_anchor" href="#founding-team_1">#</a>
</h1>
<p>Because Ilya was still at Google, he was unable to help recruit. Between August and November, the job of building the founding team fell to me. I was new to AI, and it wasn’t clear how to find and recruit great researchers. I started by focusing on the <a href="https://blog.gregbrockman.com/my-path-to-openai#the-dinner_1">July dinner</a> attendees, but wasn’t able to get anyone to join. My next step was to chain through my network, soliciting referrals from each person in turn. It was different from the recruiting I was used to. In startups, the first challenge is always selling the candidate on the mission, but here mission immediately resonated. The challenge was convincing the candidate to believe in this unformed organization.</p>
<p>The dense network of top people in the field helped a lot. I’d been introduced to <strong>Andrej Karpathy</strong> and <strong>Wojciech Zaremba</strong> by a friend, and both were pretty skeptical because I was from outside the field. Yoshua Bengio introduced me to <strong>Durk Kingma</strong>, who was tentatively interested. The tipping point was when a friend of a friend introduced me to <strong>John Schulman</strong> — he immediately knew that this organization, combining the openness and mission of academia with the resources of private industry, was what he was looking for and signed up. His endorsement made Andrej and Wojciech pay attention.</p>
<p>Hiring engineers was easier. <strong>Trevor Blackwell</strong> was a roboticist and YC partner who had been talking to Sam about this crazy idea we were planning. <strong>Vicki Cheung</strong> applied after we launched our sponsoring organization, <a href="http://ycr.org/">YC Research</a>: we hadn’t even announced that we were working on AI, but she was inspired by YC Research’s structure and was excited to work on whatever was needed.</p>
<h1 id="solidifying_1">Solidifying <a class="head_anchor" href="#solidifying_1">#</a>
</h1>
<p>By early November, we had a strong sense of who the founding team would be, but we still needed to get everyone to formally join. At Sam’s suggestion, we invited all of our candidates to an offsite. Everyone clicked in a really visceral way, and the ideas and vision were flowing. (In fact, this offsite is where Andrej suggested the idea that ultimately became <a href="https://universe.openai.com/">Universe</a>.) Our van got stuck in a traffic jam on the way back, but people were enjoying the conversation so much they barely noticed.</p>
<p><em>Stroll during the offsite.</em><br>
<a href="https://svbtleusercontent.com/yzuhfxt0alhwrq.jpg"><img src="https://svbtleusercontent.com/yzuhfxt0alhwrq_small.jpg" alt="Stroll during the offsite."></a></p>
<p>We made offers to each of the attendees, and set the offer expiry to December 1st so we could launch at the <a href="https://nips.cc/">NIPS</a> machine learning conference in early December.</p>
<p>Thus began “closing month”. Sam, Elon, and I chatted with each potential team member. Our priority was making people feel that this was really happening. Every candidate accepted, except one engineer who decided to switch away from AI entirely.</p>
<h1 id="spinup_1">Spinup <a class="head_anchor" href="#spinup_1">#</a>
</h1>
<p>In the Mythical Man Month, Fred Brooks references a Robert Heinlein story about a project to reach the moon<sup id="fnref2"><a href="#fn2">2</a></sup>. The project’s chief engineer is constantly distracted by operational tasks, such as decisions about trucks or telephones, until he takes on a report whose job it is to remove all non-technical tasks from his plate.</p>
<p>This struck me as the right way to run a project to build AI. Technical leadership should call the shots while still doing hands-on technical work. I didn’t know when my engineering skills would be needed, and in the meanwhile I resolved to do whatever was needed to remove all non-research tasks from Ilya’s plate.</p>
<p>On January 4th, the team showed up at our first office (my apartment) to begin work. In the midst of a discussion, John and Ilya turned to write something on the whiteboard, only to realize my apartment had no whiteboards. I quickly got them a whiteboard and any other office supplies they needed.</p>
<p><em>Our first office, complete with our first whiteboard.</em><br>
<img src="https://lh3.googleusercontent.com/gNw26-Q10Jr4uiWkWbBBZJN4q2ldL6-4cGfPCDGK6I2sx9foLzecPXoSAyQnNGRW1cyk57XSyUU0JVbCt1JigwZqL32Gc495NuKUXv3-2uUTHAET-UGn0aIshTr9SLZGebBfeqJmPkLU62j-Ayawg2JhI2gQk6DDalG8LbrozaXz3ZiDROJpLPOvBHWfFMEamJMrEdo3L5FbOMCjJtl7kjb6cAsCh2qfAB8ZrfiSMcAiThbJUqbVsok4YP4FAGDK5OHrxsA-kUXWB5bSHN-2A2bDNBIuEat_tyWa3c7m_zTiLAtWIEIxkQGzK86nRcjKo3ewptBqW1_DPFN0hx_R9nC3hlHWtnVkSpMfFX-sC5_ihjmfM5Pw_6J4i9X6ECheARrUn2mITCH_MHC8eRPPF8YcmVIhlzq0u2LJX3Ug8f50naVlpOPhfRgJ8ggMp3xVyx1wF1hULy1PufBlDazA_rK-5ZFFyzYcCI0Iy0dcy51RYseEXlS158mRp2VuCsL_sRKZrTJDA3giXE5IXJ0bhP0xQP0dLpIv0mpihPn54i2lsvDyVUkHFAd0zfhOFkeKUk6yrmrvN5YnBhR6mXC8SSHyYQRoZkaMJcl_MtVdRxqcJRGCc6owMKl67Ata3pXmYDU5GKZyWK3uUZVYhZtHysHW6M4h-zzcykPK0pZxgaA=w1440-h1080-no" alt="Our first office"></p>
<p>For the rest of January, my role was organizing the team, helping figure out who would be working on what, and what we wanted to get done. We talked about what we value in researchers, using our conclusions to design and run an interview process. We had conversations about our vision, how we wanted to work, and what we wanted to get done. Vicki and I procured servers, created Google Apps accounts, and did a bit of maintenance on the Kubernetes cluster that we had spun up in December.</p>
<p>I spent my remaining time reading <strong>Ian Goodfellow</strong>‘s deep learning <a href="http://www.deeplearningbook.org/">textbook</a>. (This doubled as a recruiting strategy, since he was impressed that my pages of comments were more thorough than those from his official reviewers.)</p>
<h1 id="gym_1">Gym <a class="head_anchor" href="#gym_1">#</a>
</h1>
<p>Problems in machine learning are more often solved when a new dataset becomes available than when a new algorithm becomes available. Wojciech suggested building a library to standardize <a href="http://karpathy.github.io/2016/05/31/rl/">reinforcement learning</a> environments (which are effectively dynamic datasets), now called <a href="https://github.com/openai/gym">Gym</a>. The quality of this codebase soon became the high-order bit on our iteration speed. At the end of February, John and I talked about how long it’d take to get to public release. On the current trajectory, he thought it’d probably take until the end of the year.</p>
<p><em>A <a href="http://fetchrobotics.com/research/">Fetch</a> robot we’re training with machine learning. Gym supports controlling <a href="https://github.com/openai/rosbridge">physical robots</a> as well as simulated ones.</em><br>
<a href="https://svbtleusercontent.com/v7kahsape0vjxw.jpg"><img src="https://svbtleusercontent.com/v7kahsape0vjxw_small.jpg" alt="IMG_3111.JPG"></a></p>
<p>Suddenly, engineering had become a bottleneck on research progress. Ilya and I swapped roles — he took on the administrative tasks so I could focus on technical work. After scoping out the work with John, we knew we could have the library built by the end of April.</p>
<p>At Stripe, I’d found a repeatable pattern for creating software systems from nothing: focus single-mindedly on the software, shutting out all distractions and working from wake until sleep, which would inspire others to contribute their best work (importantly, measured by output quality rather than hours). These are the times I feel most alive: coding feels like magic made real, where anything I can imagine and describe becomes possible. This pattern yielded Stripe’s credit card vault (built in my two weeks home for the holidays in 2010), credit card authorization flow (built in three weeks rather than the bank-speed 6-12 months), and <a href="https://stripe.com/blog/ctf3-launch">Capture the Flag</a> competitions (usually 3 weeks of my work, plus the same in total from others). Tactically, I choose a “soft” and a “hard” launch date spaced out by a week or two; I’ve never hit a soft launch date, but have never missed a hard one.</p>
<p>This work came with an unfamiliar challenge: I wasn’t a domain expert. At first, this caused a lot of friction. I’d build an abstraction to help Wojciech’s workflow, and John would find it hindered his. But pretty soon, I got a feel for which choices would impact the research workflow (such as how people record metrics) and which details the researchers wouldn’t care about (such as how people record videos). After identifying whether a case mattered for research, making the best choice required a certain humility — I would produce five possible alternatives, and John would say that four of them were bad. But the majority of design decisions could be made with domain-agnostic software engineering intuitions.</p>
<p>Fortunately, I did not have to go it alone. About six weeks prior to launch, <strong>Jonas Schneider</strong>, who had worked on CTF 3 with me at Stripe, reached out. Within a few days, we were collaborating on Gym. He was in Germany, and so we ended up with around-the-clock progress on the project with daily handoffs. There’s a real magic to someone where you’ve already established a working dynamic, and our close collaboration wouldn’t have worked if we were starting from scratch.</p>
<p><em>Handing out T-shirts at the OpenAI <a href="http://www.iclr.cc/doku.php?id=ICLR2016:main&redirect=1">ICLR</a> meetup, shortly after Gym launch.</em><br>
<a href="https://svbtleusercontent.com/ebwnsziejle1q.jpg"><img src="https://svbtleusercontent.com/ebwnsziejle1q_small.jpg" alt="IMG_1474.JPG"></a></p>
<p>Overall, machine learning systems can be thought of as a machine learning core — usually an advanced algorithm which requires a few chapters from Ian’s book to understand — surrounded by a huge amount of software engineering. The engineering can be shuffling around data, providing wrappers around inputs and outputs, or scheduling distributed code, all of which interface with the core as a black box. A machine learning advance happens when engineering effort plus research effort exceeds some threshold. Each incremental bit of engineering effort (such as decreasing <a href="https://universe.openai.com/">Universe</a> latencies) makes problems incrementally easier for our models, and has a chance to push the research over the finish line.</p>
<h1 id="universe_1">Universe <a class="head_anchor" href="#universe_1">#</a>
</h1>
<p>After the Gym launch in April, Ilya and I worked to scale our organizational processes, defining our team structure and goals with guidance from Sam and Elon during their weekly visits.</p>
<p><em>Team working in first actual office. Whiteboard is still present, just not pictured here.</em><br>
<img src="https://lh3.googleusercontent.com/6QBbL1-Osd4J6eJ67rNjhPnF6X3vgldSYdlKpVRgzethb49pMx1PWoBTOBDPOjqTl_1byIQAb5NBROyDQdj2l-TxjHOs5VTp-VxXM-gi0c5VsaywBYIoArKGwSeltmnd_LhM6mmJsUODIBrb8AR0iVOAsDVP-TYvfiXhDVgC7nlaFPkYZwcH2VwofpD_tMRmoRToCJCWOSk06k75vuoLb-BWZpdOOsBwyaPCJS4vdrfgp3cUiPfNeHHocYbXxEnN0YWSgyf4yrKOXbMvd8Ncj3sjBzLr6WntepNNEXs2DU6O6EfKiX5wduzfCipxNK1SNlvFo7WP-zpPi1LHeBpUkjNhN2octftugdhFZKrird-tnNbDcjXosGO2unooQVPfGxYe9Mq-L4w8eoOlfnYWNSxghanemebUwCYbnaqn78bC1vgnQchVNiTJPIk3N_7xg3r6e-3P78TAxNJkuYlnRSw_vEfbX-bRsam0RRYzmSY6EhBy90Y3NvsBXshc2aW2mTYbiehRzr6i6iZuX0DtohlXGBEbxdeyGRF1hoXNnxhFBWOx4-KWp2LKDyfw-ndvHJAF8U7aiW3BUOeN1UZFkQ310VMV0U1Iw6A_8f2h9Ujh5yjuCvE23uFF6WZGUHbrd1w-K4tyDL3sGlHWQghl9UvD2mVWaNLREvNoK2OxIZw=w1546-h404-no" alt="Team working in first actual office"></p>
<p>Our plans required an AI environment with a huge amount of diversity and complexity. Andrej’s suggestion of building an agent to control a web browser seemed like the right idea, but he’d run into friction with <a href="http://www.seleniumhq.org/">Selenium</a>. I started toying with the idea of using VNC to allow an agent to drive an entire desktop from pixels.</p>
<p>But we saw many risks with this approach. For example, DeepMind’s 2013 <a href="https://www.cs.toronto.edu/%7Evmnih/docs/dqn.pdf">Atari paper</a> took fifty hours to train Pong from pixels, and our environments would be harder than Pong. If even small-scale experiments would take us days, then we’d never make progress. So we set an internal derisking goal of getting an agent to learn Pong in an hour. (Today we have an implementation which solves Pong in ten minutes.)</p>
<p>As with Gym, I focused narrowly on building the VNC system, now called <a href="https://universe.openai.com/">Universe</a>. Unlike Gym, this project wasn’t to support our existing flavor of research, but instead to ask entirely new questions. At this point, each of our teams had leads, who were responsible for looking after their team members, and one of our engineers, <strong>Jie Tang</strong>, had taken the lead on recruiting. So the administrative burden didn’t fall entirely on Ilya. This was fortunate, since it allowed Ilya to build agents for the very first version of this risky project.</p>
<p><em>A Universe agent which is randomly sampling from the full action space (i.e. it’s randomly clicking and pushing keys). See the <a href="https://openai.com/blog/universe/#validating-infra">Universe release post</a> for more well-behaved agents.</em></p>
<div>
<video style="width:550px;margin:0 auto;display:block;">
Your browser does not support the video tag.
</video>
</div>
<p>Universe was a long enough project that I needed to split time with running the organization. I found a balance that works for me. When I’m in coding mode, I operate on a block time basis: a single meeting will kill productivity for the entire morning or afternoon. If I have meetings in both the morning and afternoon, I’ll be too drained for productive evening coding. So I started restricting my meetings to early morning or right after lunch, not doing more than three meetings on any given day, and not doing blocks with meetings more than once every other day.</p>
<p>Building Universe was a systems research effort unto itself: while the high-level specification was simple (allow an agent to use a keyboard/mouse/screen), no one had ever tried building a similar system. VNC has long allowed humans to control a remote machine, but there was no solution for programmatically controlling dozens at a time. When we needed to measure the system’s end-to-end latency, <strong>Catherine Olsson</strong> and I built a system to embed timestamps into the image. Sometimes the challenges were non-technical: when research became blocked due to limited training data, within 24 hours <strong>Tom Brown</strong> had spun up a team of contractors to play the games. Or sometimes they were just obscure, as when <strong>Jonathan Gray</strong> noticed that game dynamics could differ between our contractors and AIs due to low CPU on contractors’ laptops. One day I was slogging through restructuring some JSON benchmark specifications, and had a realization: we needed to restructure these because no one had ever tried benchmarking a single agent across thousands of games. At OpenAI, even the slogwork is fundamental.</p>
<p>Over the next few months, <strong>Dario Amodei</strong> and <strong>Rafał Józefowicz</strong> led the research on Universe. They were both night owls, and many nights I’d stay up with them, fixing any issues they ran into. Sometimes I’d wish I was in bed, but each bugfix accelerated the research by a few hours at a time. There’s something extremely validating about your work allowing researchers to ask questions that no human ever has before.</p>
<p><em>Universe team meeting in our current office.</em><br>
<img src="https://lh3.googleusercontent.com/P2RpgLXDDXyG7tmrXnnqc0l-lkA9tngFWwNtkWnv2vc6CakrLgNZ8cv5C2z3a31aWnhWgzFztIrDGOB09fKzGDEjsmhOQO9bN0CaZjI47oyYOJTeWEdfHVTuVDDEYCaHSKq2UvLPCvdf6HwCLfTPeVBLHDU-JYelB4K8vSfFCS31xn4KFSRaMuuFreQlPz452BVmGe-GY7U0j4wMPklQxkwNOoYhsMheT4-kl8zmgNty5hpLZLwH7Vk_EsHW4qYD3EUTlWQ9vZ59AMmMUQDgyXXAdJYc4KeELYDBFzUGfnLNoHKa1U8SmbuS8qyItbOS66Z0y6bJJnKk9mNKNOBwBzFiopNc7O9NBmeFw-oV94wArfsXqTt7gS3dHzwHjGB6Qea_ac6Y4wdRI7Uu_KLFVjPyPbJUNWoTp3rcqun-J4QniBgY52D0q_NKBIRfu08BT5er2JEP1NM6i4FM_WnOrjXWqXWKc7rhUs3luSOlJoj84Rgftov5Lpv-EgKuXkDBNxM5gCZPb2kKfudAK-y2lDD-pM2UFFK--kXNw3GiSwINTPBdYgpYX57a9F5rM_2yqhQUwMc-NBiFwh3m13UEdXGAI6rrTuxsz33kcDyqYQNYld4WDA1ta8xcfA6JKPsRI_P1ECFbE9iMT47Mt7KSXtYuhq3GWdc4G1XZmFcToPA=w1498-h1123-no" alt="Universe team meeting"></p>
<p>By launch, the Universe team had grown to about twenty people. It is now a flagship project and a core part of our research strategy (we’ll be ready to share initial results soon). Universe is an example of how engineering is the bottleneck for today’s ML research. It makes me wonder how there were ever days when all I had to do was read Ian’s book.</p>
<h1 id="what-comes-next_1">What comes next <a class="head_anchor" href="#what-comes-next_1">#</a>
</h1>
<p>We’re now an organization of forty people, and we now need someone optimizing the organization full-time. Since the beginning of OpenAI, we’d been looking for the right first manager to hire. A few months ago, Sam had clued me into a particularly outstanding engineering executor: <strong>Erika Reinhardt</strong>, who had been Director of Product Engineering at Planet Labs, and was now running <a href="http://voteplz.org/">voteplz.org</a> with him. At Planet Labs, Erika had one of the deepest understandings of the end-to-end satellite imaging system. She works hard, gets things done, is consistently described by former coworkers as one of the smartest people they’ve worked with, and is extremely motivated by mission and impact. So Sam and I launched a plan to recruit her.</p>
<p><em>OpenAI team retreat in early October 2016.</em><br>
<a href="https://svbtleusercontent.com/wfds31muayuq.jpg"><img src="https://svbtleusercontent.com/wfds31muayuq_small.jpg" alt="14608656_10102274815947598_1291726270290750856_o.jpg"></a></p>
<p>The most compelling pitch, however, was when she came in to work with us between the election and Universe launch. She found that her leadership skills apply extremely well in this environment, just as I found with my engineering skills. She told me the moment that she was sure she wanted to join was watching <a href="http://www.commerce.senate.gov/public/index.cfm/hearings?ID=042DC718-9250-44C0-9BFE-E0371AFAEBAB">OpenAI’s testimony</a> at the first Senate hearing on AI — we’re at the beginning of a major technological shift, and getting that right is all that matters.</p>
<p>At Stripe, <a href="https://blog.gregbrockman.com/figuring-out-the-cto-role-at-stripe#hiring-a-vp-engineering_1">Marc Hedlund</a> and I would often run into issues he’d seen at many previous organizations. He’d like to joke that all companies are the same. There’s remarkable truth to this: if you zoom out, they are all just groups of people organized around a goal. However, each organization has a differentiator that depends on the problem it’s solving.</p>
<p>Most startups create one technology, and then operate and scale it over time. OpenAI is a factory for creating new technologies, which means that we must structure the company to create new things. We have infrastructure and large codebases to maintain, but they serve our need to move quickly, innovate, and find new heights through a combination of software engineering and machine learning research.</p>
<p>OpenAI is an organization where the CTO role is naturally the activity I love most in the world: coding. But even so, people remain my focus: the journey to this point was about a social story, not a technical one. Going forward, this role is only sustainable because I’m part of a fantastic team who is willing to jointly handle the “trucks or telephones” from Heinlein’s short story<sup id="fnref2"><a href="#fn2">2</a></sup>. I feel incredible gratitude towards Ilya, Sam, Elon, and everyone else who is making OpenAI happen.</p>
<p>(Incidentally, it’s very possible to become one of the people who is making OpenAI happen — we’re <a href="https://jobs.lever.co/openai">hiring</a>. Our engineering projects vary widely, from infrastructure/reliability to abstraction design to distributed algorithm implementation to data visualization to dashboard creation. No machine learning background necessary. If you’re interested in AI but not quite ready to join, check out our <a href="https://openai.com/requests-for-research/">Requests for Research</a>.)</p>
<div class="footnotes">
<hr>
<ol>
<li id="fn1">
<p>Alex really hated writing papers, and had a review paper coming up. Geoff told him that each week he had a 1% improvement on ImageNet, he could put his paper off a week. Alex managed to put it off for 15 weeks. <a href="#fnref1">↩</a></p>
</li>
<li id="fn2">
<p>While discussing possible reporting relationships between the tech lead (“director”) and manager (“producer”) for a project, Fred Brooks writes: “<em>The director may be boss, and the producer [their] right-hand [person]. Robert Heinlein, in The Man Who Sold the Moon, describes such an arrangement in a graphic for-instance:</em> <a href="#fnref2">↩</a></p>
<p>Coster buried his face in his hands, then looked up. “I know it. I know what needs to be done— but every time I try to tackle a technical problem some bloody fool wants me to make a decision about trucks— or telephones— or some damn thing. I’m sorry, Mr. Harriman. I thought I could do it.”</p>
<p>Harriman said very gently, “Don’t let it throw you, Bob. You haven’t had much sleep lately, have you? Tell you what— we’ll put over a fast one on Ferguson. I’ll take that desk you’re at for a few days and build you a set-up to protect you against such things. I want that brain of yours thinking about reaction vectors and fuel efficiencies and design stresses, not about contracts for trucks.” Harriman stepped to the door, looked around the outer office and spotted a man who might or might not be the office’s chief clerk. “Hey you! C'mere.”</p>
<p>The man looked startled, got up, came to the door and said, “Yes?”</p>
<p>“I want that desk in the corner and all the stuff that’s on it moved to an empty office on this floor, right away.”</p>
<p>He supervised getting Coster and his other desk moved into another office, saw to it that the phone in the new office was disconnected, and, as an afterthought, had a couch moved in there, too. “We’ll install a projector, and a drafting machine and bookcases and other junk like that tonight,” he told Coster. “Just make a list of anything you need— to work on engineering.” He went back to the nominal chief-engineer’s office and got happily to work trying to figure where the organization stood and what was wrong with it.</p>
<p>Some four hours later he took Berkeley in to meet Coster. The chief engineer was asleep at his desk, head cradled on his arms. Harriman started to back out, but Coster roused.</p>
<p>“Oh! Sorry,” he said, blushing, “I must have dozed off.”</p>
<p>“That’s why I brought you the couch,” said Harriman. “It’s more restful. Bob, meet Jock Berkeley. […] You remain chief engineer and top, undisputed boss. Jock is Lord High Everything Else. From now on you’ve got absolute nothing to worry about— except for the little detail of building a Moon ship.”</p>
<p>They shook hands. “Just one thing I ask, Mr. Coster,” Berkeley said seriously, “bypass me all you want to— you’ll have to run the technical show— but for God’s sake record it so I’ll know what’s going on. I’m going to have a switch placed on your desk that will operate a sealed recorder at my desk.”</p>
<p>“Fine!” Coster was looking, Harriman thought, younger already.</p>
<p>“And if you want something that is not technical, don’t do it yourself. Just flip a switch and whistle; it’ll get done!”</p>
<p>Berkeley glanced at Harriman. “The Boss says he wants to talk with you about the real job. I’ll leave you and get busy.” He left.</p>
<p>Harriman sat down; Coster followed suit and said, “Whew!”</p>
<p>“Feel better?”</p>
<p>“I like the looks of that fellow Berkeley.”</p>
<p>“That’s good; he’s your twin brother from now on. Stop worrying; I’ve used him before. You’ll think you’re living in a well-run hospital.</p>
<p><em>This account hardly needs any analytic commentary. This arrangement, too, can be made to work effectively.</em></p>
</li>
</ol>
</div>
tag:blog.gregbrockman.com,2014:Post/my-path-to-openai2016-05-03T05:39:27-07:002016-05-03T05:39:27-07:00My path to OpenAI<p>I started programming seriously during a gap year after high school. I’d read Turing’s <a href="https://www.csee.umbc.edu/courses/471/papers/turing.pdf">Computing Machinery and Intelligence</a>, and was inspired by the notion of writing code that could understand something that I, as the code’s author, did not. I started writing a chatbot — how hard could it possibly be?</p>
<p>I managed to build something that could talk about the weather very convincingly. But no matter where I looked, it seemed that no one had any techniques that could make my bot really <strong>work</strong>.</p>
<p>I soon shelved my chatbot pursuits. I decided to focus on creating systems that can have a real impact, and have been doing that ever since.</p>
<h1 id="college_1">College <a class="head_anchor" href="#college_1">#</a>
</h1>
<p>In college, I found a field that captured what drew me to AI: programming languages. I was thrilled that a compiler or static analyzer could “understand” a program in a way that I couldn’t, and then apply that understanding to do something very useful (such as generate fast code or prove correctness).</p>
<p>I kept trying to find time for programming language research. But I also kept getting distracted by new startup ideas (generally pretty bad), and new people to work on them with (generally pretty good). I’d started out at Harvard and transferred to MIT, trying to constantly surround myself by people who I could learn from and build something useful with.</p>
<p>Junior year, I decided that it didn’t make sense to try to do a startup while still in school. Instead, I was going to meet with people doing startups, and over time pattern match what works and what doesn’t. In the meanwhile, I finally started my programming language research, securing research funds from a professor and recruiting some of my friends for a static buffer overrun detection project.</p>
<p>A few weeks later, I was contacted by an unlaunched startup in Palo Alto. Normally I would have discarded the email, but I’d decided to start meeting startups. The team and I instantly clicked, and I knew that these were exactly the kind of people I’d been looking for all along. So I left school, never to actually get our buffer overrun detector working.</p>
<h1 id="stripe_1">Stripe <a class="head_anchor" href="#stripe_1">#</a>
</h1>
<p>That company is <a href="https://www.quora.com/How-did-Stripe-come-up-with-its-name">now</a> <a href="https://stripe.com/">Stripe</a>. I helped scale it from 4 to 250 people, and in the year since I left it’s continued scaling without any of my help to over 450.</p>
<p>When I considered <a href="/leaving-stripe">leaving</a>, it was primarily because I felt like the company was in a great place, and it would continue to do great things with or without me. I cared most about working with great people to make something amazing happen — but developer infrastructure wasn’t the problem that I wanted to work on for the rest of my life.</p>
<p>However, there was one problem that I could imagine happily working on for the rest of my life: moving humanity to safe human-level AI. It’s hard to imagine anything more amazing and positively impactful than successfully creating AI, so long as it’s done in a good way.</p>
<h1 id="leaving-stripe_1">Leaving Stripe <a class="head_anchor" href="#leaving-stripe_1">#</a>
</h1>
<p>Before I finalized my decision to leave, <a href="https://en.wikipedia.org/wiki/Patrick_Collison">Patrick</a> asked me to go talk to <a href="https://en.wikipedia.org/wiki/Sam_Altman">Sam Altman</a>. He said Sam had a good outsider’s perspective, had seen lots of people in similar circumstances, and would probably have a good recommendation on what I should do.</p>
<p>Within five minutes of talking to Sam, he told me I was definitely ready to leave. He said to let him know if he could be helpful in figuring out my next thing.</p>
<p>I replied that AI was top of my list (and it was definitely my life goal). However, I wasn’t yet sure whether it was the right time, or what the best way for me to contribute would be.</p>
<p>He said, “We’ve been thinking about spinning up an AI lab through YC. We should keep in touch.”</p>
<h1 id="initial-exploration_1">Initial exploration <a class="head_anchor" href="#initial-exploration_1">#</a>
</h1>
<p>I left Stripe about a week or two later, and started digging into AI to try to better understand what was happening in the field. Even just from watching posts that made it onto Hacker News (such as <a href="http://karpathy.github.io/2015/05/21/rnn-effectiveness/">char-rnn</a>), it was clear that there was mounting excitement and activity around AI generally and deep learning particularly. But I approached the field with healthy skepticism: I wanted to be sure things were really working before diving in.</p>
<p>My first goal was to figure out what deep learning actually was. It turned out this was surprisingly hard. For example, <a href="http://deeplearning.net/">deeplearning.net</a> just says “Deep Learning is a new area of Machine Learning research, which has been introduced with the objective of moving Machine Learning closer to one of its original goals: Artificial Intelligence” — which sounds exciting but isn’t very descriptive <strong>[1]</strong>.</p>
<p>Fortunately, I had some friends working in AI, <a href="https://www.linkedin.com/in/dario-amodei-3934934">Dario Amodei</a> and <a href="https://colah.github.io/">Chris Olah</a>. I asked them for some pointers, and they gave me some good starter resources. The most useful of these was <a href="http://neuralnetworksanddeeplearning.com/">Michael Nielsen’s book</a>, and after reading it I practiced my newfound skills on <a href="https://www.kaggle.com">Kaggle</a>. (I was even number 1 for a while on my <a href="https://www.kaggle.com/c/denoising-dirty-documents">first contest</a>!)</p>
<h1 id="kindling_1">Kindling <a class="head_anchor" href="#kindling_1">#</a>
</h1>
<p>Along the way, I kept meeting super smart people in AI, and reconnected with some of my smartest friends from college, such as <a href="https://paulfchristiano.com/">Paul Christiano</a> and <a href="http://cs.stanford.edu/%7Ejsteinhardt/">Jacob Steinhardt</a>, who were now working in the field. This was a strong signal.</p>
<p>The more I dug, the more I became convinced that AI was poised for impact. Deep learning capabilities are incredibly impressive: for example, we can now classify objects in images with <a href="http://karpathy.github.io/2014/09/02/what-i-learned-from-competing-against-a-convnet-on-imagenet/">extreme accuracy</a> (despite this 2014 <a href="http://xkcd.com/1425/">XKCD</a>), <a href="https://www.technologyreview.com/s/544651/baidus-deep-learning-system-rivals-people-at-speech-recognition/">speech recognition</a> has gotten very good, and we can generate surprisingly <a href="https://github.com/Newmu/dcgan_code#bedrooms-after-5-epochs">realistic images</a>. That being said, these technologies are new enough that they haven’t yet changed how anyone lives: their impact today is limited to powering certain <a href="https://www.quora.com/How-is-Machine-Learning-applied-to-Google-Photos">product features</a>.</p>
<p>I remember saying this to one of my friends who had built Facebook News Feed back in the day. His reply was skeptical. “Simple algorithms, lots of data.” Everyone tries to peddle cool new AI algorithms, but in reality, if you just scale up a logistic regression it works really well. I then pulled out the <a href="http://www.forbes.com/sites/amitchowdhry/2015/07/30/google-translates-word-lens-feature-now-supports-27-languages">Google Translate app</a> from my pocket, put it in airplane mode, and demonstrated how it translates the text under the camera directly on the image. He was suitably impressed, and admitted simple algorithms wouldn’t help there. (It’s mostly but not 100% <a href="http://googleresearch.blogspot.com/2015/07/how-google-translate-squeezes-deep.html">deep learning</a>, but that’s not the point — the point is it <strong>works</strong>.)</p>
<h1 id="initial-spark_1">Initial spark <a class="head_anchor" href="#initial-spark_1">#</a>
</h1>
<p>In June, Sam pinged me asking if I’d figured out yet what to do next. I told him my current plan was to start an AI company within the next year. We jumped on a call, where he mentioned that they were moving forward with the YC AI project. I asked Sam what the purpose of the lab was.</p>
<p>“To build safe human-level AI”, he said.</p>
<p>At that moment I knew he was the right partner to build my next company with. Very few people today would have the audacity to explicitly try building human-level AI. I realized that sometimes an effort needs only someone bold enough to pronounce a goal, and then the right people will join them.</p>
<h1 id="the-dinner_1">The dinner <a class="head_anchor" href="#the-dinner_1">#</a>
</h1>
<p>About a month later, Sam set up a dinner in Menlo Park. On the list were Dario, Chris, Paul, <a href="http://www.cs.toronto.edu/%7Eilya/">Ilya Sutskever</a>, <a href="https://en.wikipedia.org/wiki/Elon_Musk">Elon Musk</a>, Sam, and a few others.</p>
<p>We talked about the state of the field, how far off human-level AI seemed to be, what you might need to get there, and the like. The conversation centered around what kind of organization could best work to ensure that AI was beneficial.</p>
<p>It was clear that such an organization needed to be a non-profit, without any competing incentives to dilute its mission. It also needed to be at the cutting edge of research (per the <a href="https://en.wikipedia.org/wiki/Alan_Kay">Alan Kay</a> quote, “the best way to predict the future is to invent it”). And to do that, it would need the best AI researchers in the world.</p>
<p>So the question became: would it be possible to create from scratch a lab with the best AI researchers? Our conclusion: not obviously impossible.</p>
<p>This was my first time meeting Elon and Ilya, and I strongly remember my impressions of both. I was struck by how inquisitive Elon was, and how much he sought others opinions and really listened to them. Ilya on the other hand was a source of grounding: he was a clear technical expert with a breadth of knowledge and vision, and could always dive into the specifics of the limitations and capabilities of current systems.</p>
<p>After the dinner concluded, Sam gave me a ride back to the city. We both agreed that it seemed worth starting something here. I knew it would only happen if someone was willing to go full-time on figuring out exactly what that would be and who would be a part of it. I volunteered myself as tribute.</p>
<p>And so the next day, I had something impactful to build once again.</p>
<p><strong>Footnotes:</strong></p>
<p><strong>[1]</strong> I asked Ilya to suggest a good definition:</p>
<blockquote>
<p>The goal of supervised deep learning is to solve almost any problem of the form “map <code class="prettyprint">X</code> to <code class="prettyprint">Y</code>”. <code class="prettyprint">X</code> can include images, speech, or text, and <code class="prettyprint">Y</code> can include categories or even sentences. Mapping images to categories, speech to text, text to categories, go boards to good moves, and the like, is extremely useful, and cannot be done as well with other methods.</p>
<p>An attractive feature of deep learning is that it is largely domain independent: many of the insights learned in one domain apply in other domains.</p>
<p>Under the hood, the model builds up layers of abstraction. These abstractions get the job done, but it’s really hard to understand how exactly they do it. The model learns by gradually changing the synaptic strengths of the neural network using the incredibly simple yet mysteriously effective <a href="http://neuralnetworksanddeeplearning.com/chap2.html">backpropagation algorithm</a>. As a result, we can build massively sophisticated systems using very few lines of code (since we only code the model and the learning algorithm, but not the end result).</p>
</blockquote>tag:blog.gregbrockman.com,2014:Post/stellar-board2015-07-30T11:04:20-07:002015-07-30T11:04:20-07:00Stellar board<p>I’ve been advising <a href="https://www.stellar.org/">Stellar</a> since Stripe helped it <a href="https://stripe.com/blog/stellar">launch</a> about a year ago. Today I’m joining their board.</p>
<p>Digital currencies are still nascent, and my <a href="https://stripe.com/blog/bitcoin-the-stripe-perspective">hopes</a> for them remain unchanged. Particularly, we need digital currency protocols like Stellar that work with the existing financial system and focus on a seamless user experience.</p>
<p>I’ve always been impressed with <a href="https://www.stellar.org/about/#Joyce_Kim">Joyce</a>, <a href="https://www.stellar.org/about/#Jed_McCaleb">Jed</a>, and their team’s approach to the space. Stellar is a non-profit entity producing open-source software, with a strong emphasis on financial inclusion. From launch day, they’ve been hyperfocused on the core technology and community. In the past year, they’ve made strong progress, including a provably-correct <a href="https://www.stellar.org/blog/stellar-consensus-protocol-proof-code/">consensus algorithm</a> (complete with explanatory <a href="https://www.stellar.org/stories/adventures-in-galactic-consensus-chapter-1/">graphic novel</a>), a redesign and from-scratch <a href="https://github.com/stellar/stellar-core">implementation</a> of the technology, and the groundwork for a pilot in <a href="https://gigaom.com/2015/02/05/stellar-south-african-nonprofit-to-bring-digital-savings-to-young-girls/">South Africa</a>.</p>
<p>Building anything valuable takes time, and Stellar is no exception. It’s still too early to say where it might end up. But I’m excited to help along the path.</p>
tag:blog.gregbrockman.com,2014:Post/recurse-center2015-05-19T10:29:09-07:002015-05-19T10:29:09-07:00Recurse Center<p>Coding requires collaboration. As <a href="http://boz.com/articles/be-kind.html">Andrew Bosworth</a> said recently: doing anything meaningful past a certain point requires more than one person. So if you want to build, it’s important to do so as part of a welcoming, collaborative environment.</p>
<p>One environment I’ve long admired is that of the <a href="https://www.recurse.com/">Recurse Center</a> (formerly known as Hacker School). They’ve been unusually <a href="https://www.recurse.com/manual#sub-sec-social-rules">thoughtful</a> about the dynamics of their culture. I’ve always thought that if I had three months to spare, I would attend a batch to experience the community directly (and hopefully contribute back however I can).</p>
<p>And, well, <a href="/leaving-stripe">now</a> I have that kind of time.</p>
<p></p><hr>
<p>I was initially surprised by how many experienced engineers told me that they too would attend a Recurse Center batch, if only they could make the timing and logistics work. But I think it shows that no matter how long you’ve been coding, there will always be areas of programming you’ve been meaning to try, and it’s best to do so around other people.</p>
<p>I’m <a href="https://www.recurse.com/apply">applying</a> to the Summer 2 batch (starting in July). If you have the time to spare, you should apply too!</p>
tag:blog.gregbrockman.com,2014:Post/leaving-stripe2015-05-06T10:02:44-07:002015-05-06T10:02:44-07:00Leaving Stripe<p>I originally got hooked on programming because I loved the act of creating something from nothing. I soon discovered the deep satisfaction of having others actually use my creations. It didn’t take me long to realize I wanted to build a startup.</p>
<h1 id="startups_1">Startups <a class="head_anchor" href="#startups_1">#</a>
</h1>
<p>Throughout college, I tried working on a bunch of startup ideas, none of which went anywhere. From each I learned another thing not to do (“don’t blindly follow someone just because they have an MBA”). I knew I needed to learn more, to find the right collaborators, before I could hope to be successful on my own.</p>
<p>When I met <a href="https://twitter.com/patrickc">Patrick</a>, <a href="https://twitter.com/collision">John</a>, and <a href="https://twitter.com/darraghbuckley">Darragh</a>, who were working on a stealth-mode startup called <a href="http://www.quora.com/How-did-Stripe-come-up-with-its-name">/dev/payments</a>, I knew my search was over. I left school to join their founding team.</p>
<p>Over time, my role <a href="/figuring-out-the-cto-role-at-stripe">evolved</a> as I did whatever was needed to help make the company more successful. About six months ago, I found myself in a strangely luxurious place: I’d successfully removed myself as a critical lynchpin for the company and could craft literally any role I wanted.</p>
<p>But the more that I explored, the more I realized: I was yearning to create something of my own. I’d helped build Stripe from four people in a room to nearly <a href="http://stripe.com/about">250 employees</a> across four continents. I’d worked on nearly every part of our business, and I’d seen many of the people I helped support grow into leaders within the company. While there would always be new skills to conquer, I felt I’d topped out the S-curve for what I could learn here about starting a company.</p>
<h1 id="departing_1">Departing <a class="head_anchor" href="#departing_1">#</a>
</h1>
<p>Choosing to leave something you love is never easy. In some ways, it would have been easier to have a forcing function: being fired or for the company to have failed or been acquired. But Stripe is doing better than ever, there’s plenty of <a href="http://www.quora.com/What-engineering-problems-and-challenges-is-Stripe-solving">impactful work</a> to be done, and we’ve successfully built an incredibly thoughtful company that keeps adapting as it grows.</p>
<p>Right now I’m in a rare window. I haven’t yet placed myself in a new critical role, and I’m confident that Stripe is being left in great hands. If I don’t take advantage of this opportunity, I’ll always wonder what could have been. Sam Altman put it well: <a href="http://blog.samaltman.com/the-days-are-long-but-the-decades-are-short">life is not a dress rehearsal</a>.</p>
<p>Friday will be my last day at Stripe. I’m incredibly grateful for having worked as part of such an amazing group of people (missing them already :/). I’ve learned more from them than I can possibly describe, and I’m looking forward to seeing everything they accomplish from here.</p>
<h1 id="what-comes-next_1">What comes next <a class="head_anchor" href="#what-comes-next_1">#</a>
</h1>
<p>I haven’t decided exactly what I’ll be building (feel free to <a href="mailto:greg@gregbrockman.com">ping</a> if you want to chat). But for now, I’m looking forward to exploring some ideas I’ve been thinking about for as long as I’ve been programming.</p>