索尼开发者分享机器学习如何改进质量保证

2024-10-14 09:44:40 英文原文

作者:Academy by Alicia Haddick Contributor

在2024年的CEDEC上,PlayStation分享了更多关于它如何在《Astro的房间》中自动化一些质量保证操作的信息。

图片提供: Astro的游乐场,索尼互动娱乐

在日本横滨最近举行的CEDEC活动中,索尼的开发负责人讨论了他们近期为在质量保证过程中提高效率和准确性而实施人工智能和机器学习模型的努力。

此次演讲由该公司游戏服务研发部门的机器学习研究人员Hiroyuki Yabe和Yutaro Miynotauchi领导,以及专注于软件质量保证工程的软件工程师Nakahara Hiroki共同主持。演讲旨在向同行创作者介绍公司如何利用真实的PS5硬件将AI集成到QA流程中,仅反映屏幕上的信息和音频信息,类似于人类驱动的问答过程,同时使得游戏能够更频繁、更高效地进行测试。

以这种方式更频繁地自主进行测试,使团队能够更早地消除更多的错误,因为更频繁的测试可以发现更多问题,而手动测试在每个开发周期中只能进行几次。如果一个错误在开发后期被发现,则有可能影响到发布。

在这次演讲中,团队分享了他们使用软件自动化的质量保证操作在PlayStation 5首发游戏《Astro的玩室》中的发现。这值得注意是因为一个需要进行大量质量保证测试的关键功能是将游戏进度与硬件功能(如PS5的活动卡)集成在一起,这些卡片可以在玩家通过某个关卡时追踪特定目标的进度。

重播代理和模仿代理

在研究如何将技术整合到测试过程中的时候,团队提出了一些需要满足的条件:任何测试系统都不得依赖于特定游戏的工具,这些工具随后还需要为其他游戏重新制作——换句话说,射击游戏的人工智能测试不能依靠那种无法应用于平台游戏或其他射击游戏的目标辅助功能,等等。

它还必须在实际成本范围内实现,使得这样的自动化变得有意义,并且也必须足够简单,即使是没有技术经验的人也能创建一个模仿代理并运行测试模拟。

这导致在《Astro的玩乐园》中通过使用两个独立的自动化游戏系统实现了QA的自动化:一个回放代理和一个模仿代理。前者通过复制确切的按钮组合来确保一致性,用于选择性的情况,例如导航游戏内UI和PS5硬件菜单,或者从出生点移动到级别过渡这样的时刻,在这些时刻没有任何变量可以影响移动。

与此同时,模仿代理会以变化的形式重现人类的游戏玩法。这两个系统都是通过将PS5连接到PC来实现的,在这个过程中,屏幕上的信息会被发送到学习模块,然后控制器输入再返回硬件。

这些工具也可以按顺序使用:在一个视频示例中,重播代理可用于导航Astro的Playroom的UI或从主世界移动到一个关卡,在此之前模仿代理会接管并开始玩游戏。通常会使用场景过渡来标志这一变化,例如在进入关卡时打开活动卡片菜单以标志这两个系统之间可重复的方式转换。

正如矢部所解释的,“对于模仿代理,我们创建了一个能够重现人类游戏玩法的机器学习模型,并利用该模型来测试那些无法精确复制的游戏部分。为此,我们会让真人测试员多次游玩某个区域并将数据上传到模型中。在《Astro的游戏室》的情况下,每个区域大约需要进行10次至20次的重复测试以获取具有代表性的样本。然后我们将这些数据输入机器学习系统,并利用该系统复制人类游戏玩法以便进一步测试。”

我们创建了一个机器学习模型,该模型能够重现人类的游戏玩法,并利用这个模型来测试那些无法精确再现的游戏环节。矢部弘之

这将使团队能够反复测试这些部分,以确保没有遗漏任何错误。这种机器学习对于测试那些无法精确重现输入的区域是必要的,例如玩家可以自由控制相机和视角的场景,或者敌人AI可以根据玩家行为进行非固定模式攻击的场景。在这种情况下,精确地重复输入不会产生有用的测试结果或使机器完成关卡,因为这些因素在多次会话中不稳定。

为了协助机器学习模型,将会使用其他AI系统(如LoFTR,无检测器的局部特征匹配)来帮助系统识别场景与模型中的场景相同,即使摄像机角度和玩家位置与提供给系统的输入不同也是如此。在测试中,当自动测试模型在回放代理和模仿代理之间切换时,这种知识对于游戏理解何时到达过渡场景以在有用的代理之间进行切换至关重要。

正如矢部所指出的,“模仿代理模型只需要游戏屏幕信息作为输入。当输入游戏屏幕信息时,它被设置为输出下一帧控制器的状态,并通过以每秒10帧的速度运行[记录模型],能够在实时中确定操作。模仿代理的目标是针对那些回放代理无法应用的所有场景。”

说起来,需要进行一些简化和指导以确保游戏能够真正利用提供的播放数据来学习环境。例如,与其处理原始的模拟输入,不如将其简化为九个可由系统更有效地管理的移动象限。在重现人类的游戏玩法时,模型还会根据所提供的数据在特定时刻使用概率来确定按键操作。

图片提供:索尼互动娱乐

反映人类的游戏行为

另一条笔记是需要将类平衡整合到训练数据中,以确保更大的成功几率,特别是在处理预期的小样本学习时。在一个通用的数据集上无差别地训练模型可能会偏向于导致成功清除的结局,而这些结局并不反映人类玩家的行为。同时,一些影响较大的罕见任务(例如,在击败敌人后随机掉落的关键物品拾取),对于机器学习来说难以适应。类平衡被引入以优先处理此类任务,并使其即使在这些情况下也能使用。

正如宮内裕太郎所解释的,“在游戏里,偶尔需要按按钮拾取掉落于随机点但对进度至关重要的物品这种情况并不少见。然而,这些虽然不常出现但却对通关能力有重大影响的操作对于机器学习来说非常困难,因此很难创建相应的模型。我们使用了Class Balance来调整模型内部学习影响力的程度,以便给那些虽不常见但却非常重要操作赋予更大的权重,从而让它们在模型中得到更强的体现。”

模型也会通过数据训练它,以帮助其学习如何从失败的状态(例如撞到墙壁)恢复到正常状态,确保它可以更好地反映人类的玩法,并避免以不自然的方式进行不利于有效测试的游戏。

在演讲中展示的一个例子中,展示了有无平衡学习结果的情况下按钮点击和类比运动的概率,并且结果显示了明显的差异。在平衡的模型中,Astro Bot 在关卡中的移动方式反映了人类在世界中的移动方式,它可以有效地完成跳跃或越过障碍物,而不平衡的系统则会不断地撞墙或碰到路径上的障碍物,即使它最终可能实现目标(或者在很多情况下无法达成目标)。

通过向数据中加入平衡性,不仅可以用较少的数据集有效训练模型,还能使模型更好地适应一个游戏的世界,并快速适应同一类型的新游戏,方法是为选定的类型创建一个基础模型并应用于多个标题。

尽管系统仍在不断优化,研究人员在开发过程中对自动化QA的测试经验中注意到该模型存在诸多优点和缺点。以两款游戏A和B为例,他们发现,在游戏中即使为某个区域提供了大量的人类玩家训练数据,代理也并不总能依靠这些数据通关游戏。这将需要获取新的或额外的数据,从而可能延长测试时间,超过手动人工测试所需的时间。

然而,在游戏B的情况下,为自动化系统收集的人类数据可能需要一个小时才能产生相当于人工测试50小时的效果,这大大加快了质量保证的速度,整体上将实现自动化的必要人时数降至低于通过人工测试达到相同效果所需的人时数。

此外,由于系统目前尚不完全自给自足,在问答方面无法完全自主行动,因此在一定程度上仍需要人类的输入以取得有效结果。在演讲后的观众提问环节中,矢部承认当级别内的参数发生变化时(如敌人和平台的位置),先前的机器学习数据将不再有效。此时,需要创建新的机器学习模型,或者手动测试该区域,这限制了模型只能应用于功能更完善的 gameplay 部分。

由于系统并不完全自给自足,在问答方面不能完全自主行动,因此在某种程度上仍然需要人类的输入以获得有效结果。

总体而言,自动化测试的使用使团队在质量保证过程中比完全依赖人工的方法提高了效率。这个机器学习模型并没有完全消除对人工测试员的需求,而是允许在整个开发过程中进行更频繁的测试,以便尽早发现错误。此外,在更多游戏上的进一步测试表明该系统仍在不断改进和完善,预计随着时间的推移,模型可以继续得到改善和优化。

尽管将机器学习用于大型语言模型和生成式AI遭到了行业内外的批评和抵制,但在其他场景中使用的这些模型为游戏创作者提供了切实的好处。使用这些AI模型并没有取代对质量保证专家的需求——并非所有测试在机器驱动的质量保证下都比人工更快——而是将质量保证过程更深入地融入到开发流程中。

与其将这样的bug修复和质量保证工作留到开发结束时进行,从而导致一些复杂问题由于早期未被发现而更深层次地嵌入游戏的编程中,可以在整个开发过程中,在完成新功能和关卡后重复进行质量保证。

在QA过程中开发的机器学习系统使早期检测和修复错误更加顺畅和有效,有助于提高质量并减少发布给公众的标题中的错误数量。同时,其他开发者可以通过开发和实施自己的机器学习模块来模仿使用这些工具。

关于《索尼开发者分享机器学习如何改进质量保证》的评论


暂无评论

发表评论

摘要

在最近于日本横滨举行的CEDEC活动中,索尼的开发负责人讨论了他们近期为提高QA过程中的效率和准确性而实施的人工智能和机器学习模型的努力。以《Astro的游乐室》为例,测试人员需要对每个部分进行大约10到20次的游戏体验,以便获得一个具有代表性的样本数据。这种类型的机器学习在某些难以精确重现输入场景中是必要的,例如,在玩家可以自由控制相机视角和敌人AI根据玩家行为作出非固定模式攻击的场景下。模型也会基于能够帮助其从失败状态(如撞墙)恢复到正常游戏的数据进行训练,以确保它能更好地反映人类的游戏方式,并不会陷入不自然的状态,不利于有效的测试。在QA过程中开发机器学习系统使得早期检测和修复错误更加高效且具有可操作性,从而提高游戏质量并减少向公众发布时出现的bug数量,同时其他开发者也可以通过开发自己的机器学习模块来寻求效仿这些工具。