当前位置:网站首页>这116名学生,用3天时间复刻了字节跳动内部真实技术项目
这116名学生,用3天时间复刻了字节跳动内部真实技术项目
2022-07-06 09:29:00 【字节跳动技术范儿】
给你三天时间,能开发出怎样的项目?
在字节跳动 Byte Camp 夏令营,116 名来自清华、北大、中科院等全国各大高校计算机专业的同学,组队完成了 32 个各具特色的计算机不同方向的实践项目。
除去夏令营的分享、交流、评审等环节,留给他们的创造时间只有短短的三天。
三天里完成的项目有多厉害呢?
有人做了完整的 Roguelike 游戏通关 AI,成绩已经接近人类水平,甚至这个 AI 帮游戏找到了bug;
有人完成了复杂的推荐系统功能,准确率超过90%;
有人完成了手写数学公式的自动识别系统,在业界权威数据集上达到了领先水平;
甚至,还有这种十分有趣的「好好说话纠正器」:
还有自动 debug 插件、广告标题自动生成、视频画质增强……许多不同领域的任务。
无一例外的是,这些项目和学校里的大作业、研究项目非常不一样,都是字节跳动的研发同学们在真实业务场景下遇到的问题,为了让夏令营营员们有最好的体验,字节跳动的全职研发同学作为 mentor 均自己提前完成并验证了这些项目。
三天做完一个这样完整的项目,约等于光速拥有实习经验了。
接下来我们就来看看,这届字节跳动 Byte Camp 夏令营都涌现了哪些厉害的项目~
纯视觉方案的游戏 AI
在《射手大陆》游戏中,玩家需要在特定的地图里进行移动、战斗等步骤,通过难度不一的关卡。
这届 Byte Camp 的游戏 AI 项目需要借助纯视觉的方式,不提供游戏中的各种地图与道具数据,直接把游戏画面作为输入,判断出地形道路和最优动作策略,控制游戏角色来做出动作。
来自清华大学、中国科学技术大学、北京理工大学、南京信息工程大学的 4 位同学采取了固定规则、模仿学习、强化学习 3 种不同的技术路线,在简单关卡普通人类玩家 1 分钟通关的情况下,实现了最高 AI 1 分 30 秒通关,不少夏令营营员都对他们的成果刮目相看。
该项目主要用来做游戏测试。
目前,游戏测试都是人工手动测试,或是专门开辟测试服邀请玩家参与测试。项目组的一位同学说:“用 AI 程序的话,可以同时跑 1000 个游戏找 Bug ,提升测试效率,还可以看看服务器能不能承受这么多用户同时玩。另外,对于游戏策划而言,AI 也提供了对于游戏难度、不同游戏角色通关时间的量化指标,方便把控每个游戏关卡的难度和游戏的职业平衡度。”
因此,这个游戏 AI 项目有非常高的产业落地实践性:“我在学校做的是强化学习算法,因为学校不像公司有这么多游戏产品,所有没有机会做这类游戏 AI 相关的项目,如果明年有合适的项目我应该还会来挑战一下。”
这个项目也获得了整个 Byte Camp 夏令营的一等奖,项目组同学拿到了 20000 元奖金,“最后很荣幸能让李航老师给我们颁奖,有种追星成功的感觉。”
吃鸡游戏地图生成
这个「吃鸡游戏」地图自动生成的项目,在整场夏令营中都获得了非常高的关注度,也是获得三等奖的项目之一。
该项目需要根据游戏玩家所设定的需求,比如土地的大小、高低起伏程度,借助泥地块、水体块、草地块、树木块、建筑墙体模型、家具模型等现有的素材,一键自动生成不同的地图。
并且,不仅有宏观的地形图,还有微观的景象甚至室内装饰,所有细节都是随机生成的,保证玩家每次进入游戏之后都能在一个全新的地图上探索。
项目组同学分别来自北京大学、香港科技大学、山东大学、福州大学四所高校,按照生成原始地形图-划分岛屿-规划丘陵-生成河流-生成城镇的顺序,让整个系统运转了起来。
“整体的起伏、高低都能设计,丘陵的大小也可设计,另外我们的系统还能保证山脉、房屋、道路这些元素的比例是匹配的。”项目组同学说。
几位同学在夏令营期间实现了很多重大的突破:“C#语言我之前都没学过,我们来了第一个半天现场学的C#,之后又完成了大量的代码。还复现了一篇论文,并且我们在复现完之后才发现论文写得不够详细,甚至还找出了错误。”
项目组组长是一位在读硕士生,他对这场夏令营的内容非常有激情:“我平常是做后端开发的,但这次夏令营我就是专门选择没做过的题目来做一下,这让我感到非常有意思。因为我很喜欢玩吃鸡游戏,我对它很有激情,所以我就想能不能生成有意思的地图,让其他爱玩这个游戏的人也来玩一把。”
Linux 内核内存管理
除了这些直观视觉效果惊人的项目之外,本届 Byte Camp 夏令营还有非常硬核的实践项目。
比如如何让Linux系统精细化管理内存。
这个项目要求在非统一内存访问架构(Non-uniform Memory Access, NUMA)上,为 Linux 内核增加新的特性,来更精细的管理内存,为不同的进程定量分配不同性能的内存,在保证性能的情况下降低成本。
比如上图的黄色、粉色两个进程,在这个项目实现之前,内核无法按照实际的内存需求在不同 Node 上限制内存的分配;项目实现之后,就可以按需分配了。
项目组中一位来自中科院计算所的同学说,这类项目主要应用于大型云计算公司的内存控制,和自己平时所做的方向非常不同,收获了不一样的知识。整个项目的专业性也引来夏令营其他营员连连称赞。
除了做项目,夏令营还有什么?
03:15
Byte Camp 是字节跳动从 2018 年开始的一年两度的训练营活动,今年已经是第四届了,面向全球各大高校在校生招募营员。活动不仅邀请了字节跳动内部和业界的学者提供封闭式的课程,还有公司内部优秀工程师带教,帮助营员们完成项目实践。
除了有趣的项目环节,Byte Camp 夏令营还准备了丰富多彩的活动。
夏令营的举办地正是字节跳动北京工区方恒时尚中心,活动一开始,就可以先行参观体验。
还有字节跳动公司内外技术大咖的独家分享,帮助同学们了解字节跳动的技术体系、技术分工、前沿研究等,和学校的理论知识相比,更加贴近企业界的落地实践,而且都是仅此一处、不对外公开的分享。
在每组同学的项目完成之后,还有展示 poster 的「游园会」环节,所有参与者自由交流,学习不同项目团队的精华。
一位做推荐算法相关项目的同学说,相比学校项目,Byte Camp 中很多项目的指标都是项目组自己制定的,自己讨论思路,自己确定标准。在这样自驱的研究与实践中,能够收获思考带来的成就感,激发不同的 idea 。
整个夏令营活动有 73 位不同部门的字节跳动全职研发同学作为 mentor ,他们提供了所有项目的课题和前期准备,整个夏令营期间也利用休息时间每天来现场指导同学们完成项目。
正如夺冠队伍的获奖感言:“我们有优秀的 mentor 指导,有优秀的队友并肩作战,也有优秀的对手激发着我们,我们正在和优秀的人做有挑战的事儿。”
Byte Camp 夏令营,也正在持续为优秀技术同学提供贴近真实产业的挑战机会。
边栏推荐
- Chapter 1 overview of MapReduce
- (lightoj - 1354) IP checking (Analog)
- LeetCode 1447. Simplest fraction
- Install Jupiter notebook under Anaconda
- 两个礼拜速成软考中级软件设计师经验
- Story of [Kun Jintong]: talk about Chinese character coding and common character sets
- Codeforces Global Round 19
- Audio and video development interview questions
- (lightoj - 1323) billiard balls (thinking)
- Research Report on hearing health care equipment industry - market status analysis and development prospect prediction
猜你喜欢
随机推荐
我在字节跳动「修电影」
LeetCode 1566. Repeat the pattern with length m at least k times
原生js实现全选和反选的功能 --冯浩的博客
Tree of life (tree DP)
Detailed explanation of FLV format
Pull branch failed, fatal: 'origin/xxx' is not a commit and a branch 'xxx' cannot be created from it
Acwing: the 56th weekly match
Anaconda下安装Jupyter notebook
Research Report on market supply and demand and strategy of China's tetraacetylethylenediamine (TAED) industry
本地可视化工具连接阿里云centOS服务器的redis
Kubernetes集群部署
LeetCode 1020. Number of enclaves
Market trend report, technological innovation and market forecast of China's double sided flexible printed circuit board (FPC)
China double brightening film (dbef) market trend report, technical dynamic innovation and market forecast
QT implementation window gradually disappears qpropertyanimation+ progress bar
(multiple methods, need to continue to see) 7-11 go deep into the tiger's Den
解决Intel12代酷睿CPU单线程只给小核运行的问题
字节跳动新程序员成长秘诀:那些闪闪发光的宝藏mentor们
Market trend report, technical innovation and market forecast of China's desktop capacitance meter
Business system compatible database oracle/postgresql (opengauss) /mysql Trivia