2017年9月份,我们发布了第一版Unity Machine Learning Toolkit(ML-Agents),目的十分简单:将最新的机器学习糅合进Unity中,鼓励游戏开发者和AI研究者使用Unity作为训练和应用人工智能的平台。发布以来,相关社区的建设和工具的开发已有了长足的进步,项目在GitHub上收藏数累计超过8400次。
今天,经过两年半的开发、15次以上的版本更新后,我们要向各位宣布ML-Agents Unity资源包v1.0版本正式作为预览包发布。同时,我们还启动了一个ML-Agents的产品和资源页面。
先给大家介绍下背景:ML-Agents是一项开源项目,可将游戏和模拟作为环境来训练智能代理。项目使用C# SDK来设置场景、制定代理机器人,且包含一个最前端的机器学习库来协助训练2D、3D,及VR/AR环境中的代理机器人。
今天,ML-Agents达到了一个里程碑:套件首次进入第一个正式版本周期v1.0,且作为预览包“com.untiy.ml-agents”在Unity包管理器中发布,为Unity用户带来三个益处:
- 稳定的API。ML-Agents的C# SDK在过去两年的开发中不断演进,在各个Unity环境(包括对象移动、多人游戏和机器手臂)和MWU游戏中经过多次测试,API现在灵活、丰富、稳定,可轻松整合到任意游戏或Unity环境中。
- 安装简便。无需访问GitHub复制项目,直接可在包管理器(Package Manager)中下载ML-Agents Unity资源包。
- 经过验证(即将上线)。ML-Agents Unity资源包将在Unity 2020.2中成为经过验证的资源包。
本文将粗略地介绍ML-Agents的历史、最新版本ML-Agents Release 1相关概览。
彼时在宣布启动项目时,我们写道:
作为世界上最受欢迎的创作引擎,Unity走到了机器学习和游戏的交叉路口。机器学习对Unity意义重大,我们的使命是为研究者们提供强大的机器学习训练场景,为游戏开发带去最新的机器学习技术,反哺游戏社区。在接下来的两年半时间里,ML-Agents在游戏和机器学习社群中不断演进。我们加入了Curriculum Learning训练方案、Curiosity学习模组,改善了训练效率,添加了应对多代理情景的Self-Play(自对弈)功能,还为ML-Agents的模型加上了跨平台推理功能(访问GitHub上的ML-Agents Overview页面查看所有功能的详细描述)。所有这些改善促生了一系列的新demo和环境,如Puppo,其还被使用在游戏中,如Jam City的Snoopy Pop和Carry Castle的Source of Madness。https://github.com/Unity-Technologies/ml-agents/blob/release_1/docs/ML-Agents-Overview.mdSnoopy Pop(左上),Puppo Day at the Races(右上),以及Source of Madness(下)我们专为AI研究者们制作了Obstacle Tower Environment(带有ML-Agents)、并举办了相关挑战,树立机器学习视觉、控制和规划的标杆。我们也见到有不少研究者和实验室采用了ML-Agents来制定研究标准,其中较为突出的有Arena多代理环境、Animal AI Olympics和可持续控制的Marathon Environments(马拉松环境)。Obstacle Tower(左上)、Marathon Environments(右上)、Animal AI Olympics(坐下)和Arena(右下)发布以来,ML-Agents社区从寥寥可数的AI研究者、游戏开发者和学生壮大为上千人的群体,创造了不少线上展示项目。GitHub代码库的收藏量已超过8400次、复制次数超过2300次,而相关研究报告《Unity:智能代理的综合性开发平台》(Unity: A General Platform for Intelligent Agents)被引用了超过115次。
ML-Agents Unity Package v1.0
今天,我们很高兴地宣布最新发布的ML-Agents Unity资源包已经进入v1.0.0版本,并可在Unity包管理器中作为预览包下载。而《Unity:智能代理的综合性开发平台》研究报告也做出了相应的更新。本次版本更新包括了ML-Agents的两个核心改善:- 资源包组织形式。ML-Agents现在由四个包组成:一个Unity包,及三个包含Unity与Python通讯器机器学习算法的Python包。如果你想修改我们的训练算法或制作自己的算法,可以下载使用Python包,不然只需Unity包整合进项目,使用训练用的CLI即可。
- API改善。在几个月前,我们修改了C#的SDK,使其使用更为简便。整个改动分为多个版本逐步发布,自2019年9月的v0.10.0开始,直到本次最新发布。关于改动的更多细节可以在发布公告中找到。
自ML-Agents Release 1开始,每次GitHub发布将同时发布四个包的新版本。本次发布中,各个包的版本如下:com.unity.ml-agents (v1.0.0, C#)添加了公用API,且会同步未来的语言更新。此外,包已作为预览包加入了Unity包管理器。我们计划在2020.2时发布一个经验证的版本。Unity和Python间的通讯协议进一步稳定,且会同步未来的语言更新。功能将向上、向下兼容使用相同版本通讯协议的C#和Python包。ml-agents、ml-agents-envs、gym-unity (v0.16.0,Python)Python包将持续更新,但不会向下兼容。未来CLI的改善可能涉及大幅改动,我们计划尽快确定CLI的最终版。关于包版本更新和相应GitHub改动的详细信息可在Versioning(版本更新)页面找到。https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Versioning.md
ML-Agents Release 1是一个全新的开端。我们将继续开发套件,提高训练算法的性能和效用,根据反馈不断改进,为游戏和工业制作更多的示例环境。你可以在ML-Agents论坛中为路线图提供意见。
除了核心工具套件的改进,我们有其他改进计划,将在下方简单介绍。» 在Unity 2020.2中推出经验证的包
经验证意味着包经过大量的测试,能安全地在某版Unity上运行。同时,如果你想在制作游戏时使用ML-Agents,我们会提供相应的支持。我们计划在Unity 2020.2中发布一个经验证的包,并且会在2020 LTS发布周期期间一直支持ML-Agents。我们经常见到有用户反馈说希望不安装Python就开始训练。同时也清楚用户使用自己的计算机训练时会有许多局限,可同时使用的环境数量和超参数变量非常有限。ML-Agents Cloud是我们计划在今年晚些时候发布的云服务,允许ML-Agents在我们可扩容的云设备上进行训练。用户可以上传多个并行训练,利用多个设备来快速取得成果。目前,我们开放了ML-Agents Cloud的抢先预览。如果你在实验的规模和管理上遇到了问题,可以在此注册试用。Unity正使用数据导向技术栈(DOTS)重新搭建引擎的核心。DOTS可以让程序的体积更小、运行更快,极大地提升性能。这些优点在模拟和机器学习方面更为突出。因此,我们内部也在为DOTS制作ML-Agents的原型,迄今已成功地将原型应用到了几个示例场景(在上方列出)和Unity的MegaCity和TinyRacing等demo中。实验结果非常出色。我们可以使用普通的笔记本在复杂、庞大的环境下(如MegaCity)训练代理机器人。在今年晚些时候,我们将发布实验版用于DOTS的ML-Agents。» 机器人
对于机器人研究者,Unity带有的NVIDIA PhysX 4.0可以大幅改善机器人模拟的质量(详见Unity 2019.3物理更新)。Unity 2020.1带有由Nvidia’s PhysX 4.1驱动的全新活动关节系统,极大地改善了机器人手臂和连续性关节的模拟质量。功能使用了Featherstone算法,减少了坐标表示,还包含一个全新非线性可迭代算子,可大幅减少关节不合理的伸展。在使用时,即使将许多关节线性衔接起来,机器人也能做出稳定、精确的动作。新的活动关节系统在Unity 2020.1(beta)中已经可用。如果你想试试上述的机器人环境,或在其基础上制作自己的环境,可以查看Unity Robotics Demo项目代码库(已整合ML-Agents Release 1)。此外,我们还计划用ML-Agents加入更多的机器人和连续性控制环境。
学习如何应用ML-Agents Release 1
我们与Immersive Limit合作制作了一款Unity Learn课程:ML-Agents: Hummingbirds,通过实践、代码介绍和建议讨论来教授如何应用ML-Agents Release 1。
学习如何训练神经网络来执行复杂任务:训练带有六自由度的蜂鸟完成复杂的飞行路径。在课程结束时,你将掌握如何使用ML-Agents Release 1来制作智能代理,将其整合到自己的Unity游戏和模拟项目中。此外,我们在Unity Connect App上开辟的“Unity机器学习小组”,已经超过2400位开发者参与其中,包括Unity ML Team的工程师、了解ML-Agents的Unity技术专家在内的许多大牛都在小组中,积极向大家回答问题。内容方面还附上了最新的Unity ML-Agents 0.14.1环境搭建指南,之后还会有更多精彩技术与案例资料上传到小组内。欢迎各位对于机器学习有兴趣的Unity开发者,或者是对于Unity感兴趣的机器学习研究者,扫一扫下面的二维码,加入小组,参与讨论。