OpenAI 共同创办人 Greg Brockman《我如何成为机器学习实践者》翻译文

2023年11月20日

💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

今天微软执行长 Satya Nadella 发文表示 Sam Altman 与 Greg Brockman 将与数个 OpenAI 员工一起加入微软新成立的事业体。在 Sam Altman 被 OpenAI 董事会移除执行长职位后,共同创办人 Greg Brockman 第一时间宣布自己辞职同进退,现在两人则将再度一起开启一个崭新的事业。

事实上,Sam Altman 几年前曾写过一篇文章,讲述为什么 Greg Brockman 是理想的共同创办人,在该文的开头 Sam 这样写“很多人问我理想的共同创办人长什么样子,我现在有答案了,Greg Brockman 就是理想共同创办人的样子”。

Greg 在共同创办 OpenAI 前,是 Stripe 的技术长,他过去的专长是软体后端的基础设施 (infra) 与架构 (architecture)。OpenAI 虽然是研究实验室起家,但最开始就强调产品化,因此 Greg 在软体设计与开发的专长让他能协助搭建起 OpenAI 早期的系统架构。然而 OpenAI 毕竟是做 AI 研究的,因此对 AI 领域的了解是不能少的。

Greg 从传统软体工程师,转向机器学习领域的学习路上,也一度信心低落。他几年前撰写了《我如何成为机器学习实践者 How I became a machine learning practitioner》一文 (原文在此),纪录了他的心路历程。我们推荐所有想转职的人,即使不是要转去机器学习领域,都很值得花时间读这篇文章。于是我们决定翻译成中文跟大家分享。

翻译这篇文的时候,真的很佩服 Greg 的努力、执行力,以及谦卑的心。他高中时拿国际奥林匹亚银牌,大学录取哈佛与麻省理工学院 (MIT),甚至当过估值超过五百亿美元的 Stripe 的技术长,聪明才智绝对是少不了,但他还是在文中分享了他在转领域所遇到的挫折,以及如何克服这些挫折。

--- (以下是我们翻译他所写的《我如何成为机器学习实践者》一文) ---

在 OpenAI 的前三年,我一直梦想成为一名机器学习专家,但在往这个目标迈进的路上,一直很没有太多进展。然而,在过去九个月,我终于实现了转往机器学习领域的目标。这个过程虽然困难,但并非不可能,我相信大多数拥有良好程式能力,并愿意去学习相关数学知识的人,都一定都能做到。网上有许多供你自学技术的课程,然而在这个过程中,我的最大阻碍,其实是我的心理障碍 — 要接受自己再次成为初学者。

早些年

在 OpenAI 的创立原则之一是研究 (research) 和工程 (engineering) 同等重要,我们的目标是打造出,能解决之前被视为不可能解决的任务的实用系统,因此我们需要研究与工程兼具 (事实上,我们团队有 25% 的人主要运用自己的软体开发技能、25%的人主要运用机器学习技能,还有 50% 的人则是两者兼用)。所以从 OpenAI 创立的第一天起,我的软体开发技能就一直很受用,但这也导致我一直拖延着学习我渴望习得的机器学习技能。

在协助建立 OpenAI Gym 之后,我参与了 Universe 专案。当 Universe 专案接近尾声时,我们决定开始着手进行 Dota 专案,而我们需要有人把这个游戏,在开始机器学习前,先转变成一个强化学习 的环境。

Dota

在没有原始码存取权的状况下,把 Dota 这种复杂的游戏转变成研究环境,是一项令人兴奋的任务;每当我克服一个新的难题时,团队的兴奋和肯定让我深感满足。我掌握了如何突破游戏的 Lua 沙盒、如何在 Go GRPC 伺服器中使用 LD_PRELOAD 来程序化地控制游戏、如何逐步将整个游戏状态转储到 Protobuf,以及如何构建一个 Python 程式库和抽象层,以适应未来可能会使用的许多不同的多代理配置。

但与此同时,我感到有点茫然。在 Stripe,虽然我更着重在基础设施解决方案,但我可以在任何地方进行更改,因为我非常熟悉产品得代码。只是在 Dota 专案中,我只能透过软体的视角来看待面对的问题,有时这意味着我试图解决一些,只要透过稍微不同的机器学习方法就可以避免的困难问题。

我希望自己能像团队中的 Jakub Pachocki 和 Szymon Sidor 那样,他们对 Dota 机器人的核心突破做出了贡献。他们挑战了 OpenAI 内部普遍认为强化算法无法扩展的观点。他们写出一个名为 Rapid 的分散式强化学习框架,大约每两周就指数级扩展一次,至今还没有到达它的极限。我希望能够像他们那样,做出结合软体和机器学习技能的关键贡献。

在 2017 年 7 月,我的机会终于来了。在软体基础设施稳定后,我开始了一个机器学习专案。我的目标是使用行为复制,来从人类训练数据中教导神经网络。但那时的我,还没有准备好像初学者一样重新学习。

我不断被那些细碎的工作流程细节所困扰,这让我不确定自己是否有进展,比如不确定某个实验使用了哪些代码,或是意识到我需要和上周的某个结果进行比较,但上周的我并没有妥善存档。更糟的是,我不断发现一些小错误,这些错误弄乱我的实验结果。

我开始对自己所做的没有信心;但更糟的是,其他人却有。其他人常提到从人类数据中进行行为复制有多困难。我总是确保自己有纠正他们,说我是新手,这可能更多地反映了我的能力,而不是问题本身。

当我的代码终于被合进到机器人后,我短暂地感觉一切似乎都值得了。Jie Tang 用我的成果当做 creep blocking 的起点,然后用强化学习进行了微调。不过没多久后,Jie 就找到了一种不使用我的代码就能获得更好结果的方法。我感到自己的努力一无所获。

从那以后,我再也没有在 Dota 专案上尝试过机器学习。

暂停

2018 年,我们在国际赛事中输掉两场比赛后,多数人认为我们的方法已达极限。但我们从数据中得知,其实我们离成功并不远,只差在需要更多的训练。这意味着专案需要我参与的时间减少了,到了 2018 年 11 月,我觉得我有大约三个月的时间,来冒一点险。

当我有脑中有个明确想要打造的目标时,我学新东西会学得最快。在那三个月,我决定尝试建立一个聊天机器人。我开始自学我们为 Fellows 计划开发的课程,只选择与自然语言处理相关的内容。例如,我写了并训练了一个 LSTM 语言模型,然后也写了一个基于 Transformer 的模型。我还研究了信息理论等主题,并阅读了许多论文,仔细琢磨每一行,直到我完全搞懂为止。

进展虽然缓慢,但这是我预料之中的。在那段期间,我并没有进到心流状态中。这让我想起刚开始学习程式时的感觉,我一直在想,要达到精通感觉,到底需要多少年。老实说,我不确定自己是否最终能精通机器学习。但我仍旧继续努力,因为……老实说,因为我不想只懂专案的一部分。我想清楚地了解全貌。

我的个人生活也是让我继续前进的重要因素。我开始和一个让我觉得就算我失败了也没关系的人交往。我们在一起的第一个假期时,我一直在为机器学习烦恼,但无论我们错过多少原本计划好的活动,她一直都陪在我身边。

这时迎来了一个重要的概念性突破,我克服了我在 Dota 专案中,过于胆怯而不敢去做的事情:对别人的机器学习代码进行实质性的改变。我尝试对我找到的聊天数据集上的 GPT-1 进行了微调,并添加了我自己的原创的代码。但当我尝试用它来生成更长的讯息时,它变得极其缓慢,慢到我的挫折感超过了我的恐惧,我实作了 GPU 快取,而这个改变影响了整个模型。

我反覆地尝试了数次。几天后东西终于能动起来后,我意识到我学到了一些我之前认为不可能的东西:我总算理解了整个模型是如何构建的,我的理解深入到代码库,如何优雅处理 TensorFlow 变数范围这种微小的风格细节。

重新开始

经过三个月的自学之后,我觉得自己准备好参与一个真正的专案了。这也是我第一次感觉到,我能从 OpenAI 的许多专家那里获得帮助,当 Jakub 和我的共同创办人 Ilya Sutskever 答应指导我时,我感到兴喜若狂。

我们开始获得非常令人兴奋的成果,Jakub 和 Szymon 全职投入了这个专案。每当我看到他们在我发起的机器学习代码库中提交新内容时,我都感到非常自豪。

我开始感觉到自己是有能力的,虽然我还没有达到精通。这实际反映反映在,我能够激励自己专注于进行机器学习工作的时间上,现在我大约 75% 的写程式时间,是在机器学习上。

这是我第一次感觉自己在正轨上。最开始,我被看似无穷无尽的新机器学习概念所淹没。在接下来的六个月,我意识到我可以在不用学习全新基础的情况下取得进展。虽然我仍然需要在许多方面累积更多经验,例如初始化一个网络或设定学习速率计划;但现在的我能够一步步地完成它们,不再感到自己不可能做到的。

从我们的 Fellows 和 Scholars 计划中,我知道具有线性代数和概率基础的软体工程师,只需几个月的自学就可以成为机器学习工程师。但在过去不知为什么,我总觉得自己个例外,觉得自己没办法学会。但我错了,即使我人身在 OpenAI 的中心,如果我不愿意再次成为初学者,我将没有办法转变。

你也很可能不是例外。如果你想成为深度学习实践者,你也可以做到。你需要给自己空间和时间去失败。如果你从足够多的失败中学习,你会成功的——而且这可能比你预期的要快得多。

在某些时候,让自己被现有专家围绕是很重要的。在这一点上,我非常幸运。如果你是一位到达这一阶段的优秀软体工程师,请记住,有一种方法可以和我一样被这些专家围绕 — 加入 OpenAI。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們