GitHub 上的大佬们打完招呼,会聊些什么?

你好 GitHub!每一位开源爱好者的好朋友「HelloGitHub」

GitHub 上的大佬们打完招呼,会聊些什么?

大家好,今儿 HG 有幸邀请到:Lanking 一位亚马逊 AI 软件工程师、开源爱好者和贡献者。他是亚马逊开源的 Java 深度学习框架 DJL 的核心维护者、Apache MXNet 的 Committer(提交者),一枚喜欢滑雪的大佬程序员。

GitHub 上的大佬们打完招呼,会聊些什么?

下面就让这位大佬聊聊他在 GitHub 和一个开源项目的作者互道“你好”后聊了些什么、搞出了什么好玩的东西~

一、故事的开头

我是 Lanking 一位 AI 软件工程师、《HelloGitHub 月刊》的读者,故事的开始是我们 DJL 项目:

https://github.com/awslabs/djl

正在找增强学习的例子,然后目前全网提供的方案也没什么 Java 的实现和实战项目。

偶然间,在程序员都爱看的《HelloGitHub 月刊》最近的一期,看到了一个仅用 Java 基础类库写的愤怒小鸟开源游戏项目。

https://github.com/kingyuluk/FlappyBird

该项目结构十分清晰,代码也很规范,我感觉自己的某些东西被触动了。于是乎,我就给这个项目提了一个 issue:

GitHub 上的大佬们打完招呼,会聊些什么?

如上图,我打完招呼就直切主题,说明我的来意:您有没有兴趣用 DJL 做一个 RL 的愤怒小鸟,就是用深度学习框架 DJL 赋予这个小鸟“永生”,做个“不死鸟”。

二、他不理我了

FlappyBird 项目的作者叫:kingyuluk(后面就叫他“K”)

Issue 是开发者之间有效的沟通手段,但我发完 issues 后,虽然 K 当时说感兴趣,然后就没然后了...过了差不多三个月,突然有一天,他回复了这个 issue:

GitHub 上的大佬们打完招呼,会聊些什么?

K 说他在用 DJL 实现的过程中遇到了问题。原来他自己闷头去搞了,现在遇到问题才想起我!

哼~虽然等待有些难熬,但我还是开心地开始帮他看代码,最开始只是在这个项目里开了一个分支,但是后来越做改的东西越多,于是作者 K 就开了一个新的项目来做这件事情。

https://github.com/kingyuluk/RL-FlappyBird

三、办法总比困难多

我和 K 开始在新的项目进行正式开发,期间出现了各种波折和奇奇怪怪的问题:

从一开始项目跑不起来,到中间连续跑两天都没好效果,到最后在 GPU 上做性能优化改进。

眨眼两个月时间过去了,我很多次都担心 K 会半途而废,放弃不做了。因为这些对于一个大三刚接触 Java 半年的本科学生来说真的有些困难。

让我们继续开发下去的动力就是经过多次改动和优化之后,这个“笨”鸟终于能稍微变得聪明些了,但是离“不死”还差很远。然后我就拉来了同为 DJL 维护者的 Zach 他比我更懂 RL,来帮我们:

GitHub 上的大佬们打完招呼,会聊些什么?

通过他的鼓励,并按照他的建议修改后,我们在 CPU 上训练的小鸟可以玩到 6-7 分。然后我们决定试试看 GPU,就开了一台带 T4 显卡的机器,然后跑了几个小时,感觉训练速度还是不够快。这可不行,我就想到了 HelloGitHub 的 Java 技术群的小伙伴们,他们甩了个表情后:

GitHub 上的大佬们打完招呼,会聊些什么?

开始帮我解决相关的性能问题并提供了一些解决思路,在他们的认真回答和热心指导下,问题总算解决了!然后训练就变得快的飞起,几个小时就跑了 300 万步,最后这个不死鸟就诞生了!

GitHub 上的大佬们打完招呼,会聊些什么?

详细的实现过程,会在本周的另外一篇文章《用 Java 训练出“不死鸟”》细细道来~

四、故事的结尾

这个故事起于一个 “Say hi” 的 issue,结束的时候我和项目的作者成为了朋友。开源都是用课余和休息时间,真的很容易半途而废。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfzpw.html