写点什么

引领人工智能革命的程序员、OpenAI 的秘密武器 Greg Brockman:五年前,我并不擅长机器学习

  • 2023-12-05
    北京
  • 本文字数:3756 字

    阅读完需:约 12 分钟

大小:1.76M时长:10:14
引领人工智能革命的程序员、OpenAI的秘密武器Greg Brockman:五年前,我并不擅长机器学习

编辑 | Tina

 

Greg Brockman 因担任 OpenAI 联合创始人兼首席技术官而闻名。

 

Brockman 曾于 2008 年在哈佛大学就读,后来转到麻省理工学院,但也没待多久,2010 年,他退学加入金融科技初创公司 Stripe。随后,Brockman 在 Stripe 待了五年,最终成了公司 CTO,在这段时间里,Stripe 实现了爆炸式增长,成为科技行业中最有价值的创业公司之一。2015 年他离开 Stripe 并创立了 OpenAI。

 

虽然 OpenAI 的 CEO Sam Altman 代表公司的公众形象,但 Brockman 是公司的秘密武器

Brockman 作为 OpenAI 的总裁,一直在推动 OpenAI 的产品前进。Altman 说: “如果没有他的参与,整个项目不可能以如此高的质量交付。”Quora 的 CEO Adam D’Angelo 则评论说,“Greg 是那个真正能使技术变成现实的人。”

 

Brockman 的日常职责与拥有该头衔的大多数科技领导者几乎没有任何相似之处——34 岁的 Brockman 没有直接下属,这使他免于常规的管理类繁琐事务,可以将大约 80% 的时间用于编程工作。

 

“Greg 有极强的能力,能够看到每个技术问题的细节,对每个层次都了如指掌,同时也能非常有战略性地考虑每个部分需要如何协同工作。”Altman 说。

 

Brockman 是一位“流动人员”,在不同的团队之间游走,制定目标并推动团队在软件效率方面逐步改进。在达到特定节点时,他将项目交给管理者,并转向新项目。“我一直在不断地探索新领域。”Brockman 说。

 

在 OpenAI 的前几年,Brockman 和 Ilya Sutskever 做了大部分日常决策,Brockman 管理公司的软件工程师,而 Sutskever 则负责管理研究员。

 

因此,Brockman 需要解决的一个难题是让研究员和工程师协同工作的问题,这让他必须需要了解人工智能相关的工作。而作为一个长期从事软件方面的工作,并且没有接受过正规的“人工智能”方面的本科教育的人来说,自学机器学习肯定具有挑战性。

 

Brockman 自称是“人工智能方面的新手”,在 OpenAI 工作的头三年里,虽然他一直梦想可以成长为一名机器学习专家,但是他的机器学习技术能力一直没有长进。但之后,他花了九个月的时间,终于完成了向机器学习实践者的转变。

 


Greg Brockman 过去的文章和演讲主要集中在软件方面。

 

他曾写过一篇文章,来总结他的学习过程,在这篇“励志”文章中,Brockman 指出,这很难,但并非不可能。在他看来,大多数优秀的程序员都会一些(或愿意学习)数学,既然如此他们就也能做到这一点。他给我们的一个建议是:花时间进行试验、快速失败,然后继续根据现实世界的用例进行研究。下面让我们一起看看这篇文章:

 

Greg Brockman 的自述:我是如何成为一名机器学习从业者的?

 


在 2018 年假期期间学习机器学习

早期

 

OpenAI 的一个基本原则是重视研究和工程——我们的目标是构建能够解决以前不可能完成的任务的工作系统(我们团队中有 25%的人主要使用软件技能,还有 25%主要使用机器学习技能,剩下 50%混合使用这两种技能)。所以从入职 OpenAI 的第一天开始,我的软件技能就一直很受欢迎,这也致使我一直拖延学习机器学习技能。

 

在帮助完成了OpenAI Gym项目之后,我被安排负责Universe项目。之后,我们团队又开始致力于DOTA项目——在开始机器学习之前,我们需要有人将游戏场景变成一个机器强化学习环境。

 

DOTA

 

在没有源代码的情况下将如此复杂的游戏转换成一个研究环境是一项非常有挑战性工作,每当我有所突破的时候,团队都会感到很兴奋。我知道如何打破游戏的 Lua 沙箱,在 GRPC 服务器上以编程的方式使用LD_PRELOAD控制游戏, 增量地将整个游戏状态转储到原 buf 中, 并为我们可能想要使用的许多不同的代理配置构建一个对未来兼容的 Python 库和抽象层。

 

但我感到当时有点盲目了。在Stripe时,尽管我更倾向于基础设施解决方案,但我可以在堆栈的任何地方进行更改,因为我非常熟悉产品代码。在 DOTA 项目中,我不得不从软件的角度来思考所有的问题,这意味着有时我会碰到一些困难的问题,而这些问题本可以通过稍微不同的机器学习来避免。

 

我想像我的同事 Jakub Pachocki 和 Szymon Sidor 那样,他们创造了驱动 DOTA 机器人的核心突破。他们并不认为 OpenAI 中的增强算法不能伸缩。为此他们编写了一个分布式强化学习框架,名为 Rapid,每两周左右就以指数形式进行扩展,运行的一直很顺畅。我希望能够做出一些关键的贡献,比如把软件和机器学习技能结合起来。

 


左边是 Szymon,右边是 Jakub

 

2017 年 7 月,我似乎有了机会。软件基础设施很稳定,我开始着手一个机器学习项目。 我的目标是利用行为克隆从人类训练数据中教授神经网络。但我并没有完全准备好,我感觉自己会像一个初学者。

 

我一直为一些小的工作流细节感到沮丧,这些细节让我不确定自己是否取得了进展,比如不确定某个给定的实验使用了哪些代码,或者意识到我需要将上周的结果与我没有正确存档的结果进行比较。更糟糕的是,我不断地发现一些小错误,这些错误一直在破坏我的结果。

 

我对自己的工作开始失去信心,但奇怪的是,别人对我很有信心。人们会安慰说从人类数据中克隆行为是多么多么困难。而我总会从自己身上找问题来说明是我自己的问题,这可能是我更愿意相信是我能力问题而非项目问题。

 

当我的代码被使用到机器人项目中时,我觉得一切困难都是值得的,Jie Tang 将我的代码用在蠕变阻塞上,然后通过强化学习对其进行微调。但是之后他找到了不用我的代码就能得到更好结果的方法,这也意味着我的努力没有带来任何成果。

 

之后我就再也没有在 DOTA 项目上尝试使用过机器学习。

 

超时

 

在 2018 年的国际比赛中,我们输掉了两场比赛,大多数人都认为我们已经竭尽所能。但从我们的度量标准中,我们知道我们离成功已经非常靠近了,最需要的是用更多的数据训练学习。这意味着,我们需要降低对时间的要求。2018 年 11 月,我觉得自己有了一个机会,可以用三个月的时间来赌一把。

 


队员们在国际比赛中输掉了第一场比赛后情绪高涨

 

当我的目标确定了之后,我往往能够做的更好。我决定试着做一个聊天机器人。我开始自学我们为学员制定的课程,只选择与 NLP 相关的模块。例如,我编写并训练了一个 LSTM 语言模型,然后是一个基于转换的模型。我还研读了信息论等主题的书,阅读了许多论文,每一行都细细研读,直到完全吸收。

 

其实进展过程很缓慢,这也是之前就预想到的。这让我想起了我刚开始编程时的感受,我一直在想,要花多少年的时间才能获得一种掌控感。老实说,我并不相信自己会擅长机器学习。但我一直在努力,因为……说实话,因为我不想被限制在只理解我项目的一部分,我想把全貌看清楚。

 

我的个人生活也是让我坚持下去的一个重要因素。我和一个人开始了一段感情,他让我觉得即使失败也没关系。我和她一起在解决机器学习的问题中度过了我们的第一个假期,但无论因为学习耽误了多少计划好的活动,她都能理解并陪着我。

 

一个重要的关键点是克服我不敢使用 DOTA 的障碍:对其他人的机器学习代码进行实质性的修改。我对找到的聊天数据集进行了GPT-1微调,并做了一些小修改,添加了我自己的原始采样代码。但当我试图生成更长的消息时,它变得非常慢,之前的恐惧也逐渐变成了沮丧, 我实现了 GPU 缓存——这一改变影响了整个模型。

 

我尝试了好多次,寻求各种帮助,因为它们超出了我头脑中所能容纳的复杂性。几天后,当它可以正常工作时,我才意识到我学到了一些以前我认为不可能的东西:我现在理解了整个模型是如何组合在一起的,包括一些小的风格细节,比如代码基如何优雅地处理 TensorFlow 变量范围。

 

改进

 

经过三个月的自学,我觉得自己已经准备好做一个真正的项目了。这也是我觉得我可以从 OpenAI 的许多专家那里受益的第一点,当 Jakub 和我的联合创始人 Ilya Sutskever 同意为我提供建议时,我很高兴。

 


Llya 在我们公司外唱卡拉 OK

 

我们开始得到非常令人兴奋的结果,Jakub 和 Szymon 全职加入了这个项目。每当我看到他们在我的机器学习代码库中做出 commit 时,我都感到很自豪。

 

我开始觉得自己具备机器学习能力了,虽然我还没有完全掌握。但这反映在了我能激励自己专注于机器学习工作的时间上——我现在的编程时间大约是我过去工作时间的 75%。

 

这是第一次,我觉得我正在步入正轨。起初,我被似乎无穷无尽的机器学习新概念淹没了。在最初的六个月里,我意识到我可以在不断学习全新的基础知识的情况下取得进步。我仍然需要在许多技能上获得更多的经验,比如初始化一个网络或设置一个学习进度计划,但现在的工作感觉是渐进的,而不是潜意识中认为不可能。

 

从我们的研究员和学者项目中,我知道拥有扎实的线性代数和概率基础的软件工程师只需几个月的自学就能成为机器学习工程师。但不知何故,我说服自己,让自己认为是一个例外,无法学习。但是我错了——即使是在 OpenAI 这样的公司,我也不能进行角色转换,因为我不愿意再次成为一个初学者。

 

你可能也不是一个例外。如果你想成为一个深度学习的实践者,你一定可以。你需要给自己失败的机会。如果你从失败中学到足够多的东西,你就会成功——而且成功所花的时间可能比你想象的要少得多。

 

在某种程度上来说,和优秀的专家一起工作对你会很有帮助。这是我非常幸运的一个地方。如果你是一个优秀的软件工程师,请记住,有一种方法可以让你跟优秀的人一起工作——来 OpenAI工作吧!

 

原文链接:

https://www.infoq.cn/article/xFSNjrv9MaNdsODqOITh

2023-12-05 14:475346

评论 1 条评论

发布
用户头像
有一种方法可以让你跟优秀的人一起工作——来 OpenAI工作吧!
2023-12-07 16:32 · 浙江
回复
没有更多了
发现更多内容

你管这破玩意叫缓存穿透?还是缓存击穿?

Java你猿哥

redis 缓存 缓存穿透 缓存击穿 缓存雪崩

什么是好代码/坏代码?给普通人的图解示例

越长大越悲伤

后端 好代码的衡量标准

Orillusion引擎开源一周,荣登Github Trending榜单

Orillusion

开源 3D 渲染引擎 元宇宙 #WebGPU

Unity3D 对接 workerman 实现联机游戏

北桥苏

php socket Gateway Unity3D workerman

实力入选!赛格导航荣获“深圳知名品牌”

科技热闻

Prompt learning 教学[最终篇]:Chatgpt使用场景推荐、优秀学习资料推荐、AI工具推荐

汀丶人工智能

人工智能 自然语言处理 ChatGPT 人工智能ChatGPT 吗? prompt learning

CSS小技巧之圆形虚线边框

南城FE

CSS css3 前端开发

C语言编程-程序结构

芯动大师

C语言 结构 三周年连更

Java Web实战 | 设计一个监听器

TiAmo

JDBC 事件监听 监听

ui设计软件Sketch 96.3中文激活版~ 支持m1

真大的脸盆

Mac ui设计 矢量设计

workerman 自定义的协议如何解决粘包拆包

北桥苏

php Unity3D workerman GatewayWorker

软件测试|不会Python RPC,一篇文章教你入门

霍格沃兹测试开发学社

软件测试|Pytest的必会技巧(一)

霍格沃兹测试开发学社

Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题

汀丶人工智能

人工智能 自然语言处理 ChatGPT prompt learning

MySql 索引的失效与优化

Andy

从原理到实战,手把手教你在项目中使用RabbitMQ

Java你猿哥

Java ssm RabbitMQ 消息队列 RabbitMQ延时队列

Nacos必知必会:这些知识点你一定要掌握!

王中阳Go

Go 微服务 nacos 服务治理 配置管理

背靠香港影视集团星光文化,StarNFT问世了

西柚子

Django笔记二十八之数据库查询优化汇总

Hunter熊

Python django 查询优化

Zabbix电话短信报警技巧

外滩运维专家

zabbix电话报警 zabbix短信报警 zabbix飞书报警 zabbix钉钉报警 zabbix微信报警

AI DevOps | ChatGPT 与研发效能、效率提升(中)

laofo

DevOps 研发效能 ChatGPT

Tensorflow.js 多分类,机器学习区分企鹅种类

北桥苏

JavaScript 深度学习 tensorflow

软件测试|PC端应用自动化最佳解决方案——Pywinauto

霍格沃兹测试开发学社

软件测试|手把手教你用Python来模拟绘制自由落体运动过程中的抛物线

霍格沃兹测试开发学社

聊一聊模板方法模式

设计模式 模板方法模式

用友BIP成功入围工信部《2022年信息技术应用创新解决方案》

用友BIP

KubeCon EU 2023 落幕,哪些技术趋势值得关注?

SEAL安全

云原生 KubeCON FinOps 平台工程

设计模式之美--应用LOD法则实现“高内聚低耦合”

GalaxyCreater

设计模式

定风波、渡重山、至未来:2023中国数字能源生态大会开启的新旅程

脑极体

新能源

2023-05-14:你的赛车可以从位置 0 开始,并且速度为 +1 ,在一条无限长的数轴上行驶, 赛车也可以向负方向行驶, 赛车可以按照由加速指令 ‘A‘ 和倒车指令 ‘R‘ 组成的指令序列自动行驶

福大大架构师每日一题

Go 算法 rust 福大大

如何使用Go语言实现LSP原则

Jack

引领人工智能革命的程序员、OpenAI的秘密武器Greg Brockman:五年前,我并不擅长机器学习_生成式 AI_Tina_InfoQ精选文章