借助多语言翻译模型打破语言障碍

试想一下,当你发现自己在Roblox上结识的新朋友——那个与你在全新体验中畅聊打趣的人——其实身在韩国,而且他一直用韩语打字,而你却用英语回复,双方都浑然不觉。 得益于我们全新的实时AI聊天翻译功能,我们在Roblox上实现了现实世界中甚至无法实现的事情——让说不同语言的人在我们的沉浸式3D体验中无缝交流。这得益于我们的定制多语言模型,该模型现在支持我们当前支持的16种语言(包括这15种语言以及英语)之间的任意组合直接翻译。
在任何启用了我们体验内文字聊天服务的场景中,来自不同国家的玩家现在都能被不懂其母语的玩家理解。 聊天窗口将自动显示韩语译为英语,或土耳其语译为德语,反之亦然,确保每个人都能以母语阅读对话内容。这些翻译以实时方式呈现,延迟仅约100毫秒,因此后台进行的翻译过程几乎无感。利用AI实现文本聊天中的实时自动翻译,消除了语言障碍,让世界各地的人们能够更紧密地联结在一起。

构建统一翻译模型
AI 翻译并非新鲜事物,我们体验内容中的大部分已实现自动翻译。我们希望突破仅翻译静态内容的局限,进而实现交互内容的自动翻译——并且要覆盖平台支持的全部 16 种语言。 这一目标之所以大胆,有两个原因:首先,我们不仅要将内容从一种主要语言(例如英语)翻译成另一种语言,更希望构建一个能够在我们支持的 16 种语言之间任意组合进行翻译的系统。其次,系统必须足够快。其速度需足以支持真实的聊天对话,对我们而言,这意味着将延迟降至约 100 毫秒。
Roblox 拥有超过 7000 万全球日活跃用户,且用户数量仍在持续增长。人们全天候在我们的平台上用各自的母语进行交流和创作。显然,要手动实时翻译发生在 1500 多万个活跃体验中的每一场对话,是完全不可行的。 要将这些实时翻译服务扩展至数百万用户——他们同时在不同的体验中进行着各不相同的对话——需要一个兼具极高速度和准确度的 LLM。我们需要一个具备语境感知能力的模型,能够识别 Roblox 特有的语言,包括俚语和缩写(例如 obby、afk 或 lol)。除此之外,我们的模型还必须支持 Roblox 当前支持的 16 种语言的任意组合。
为实现这一目标,我们本可以为每对语言(例如日语和西班牙语)构建一个独立的模型,但这将需要16×16,即256个不同的模型。 因此,我们构建了一个基于Transformer的统一翻译大语言模型(LLM),通过单一模型处理所有语言对。这就像拥有多个翻译应用,每个应用专攻一组相似的语言,且均可通过单一界面访问。给定源句和目标语言后,我们可以激活相关的“专家”来生成翻译。
这种架构能更有效地利用资源,因为每个“专家”都有不同的专长,从而实现了更高效的训练和推理——同时不牺牲翻译质量。

这种架构在训练和维护模型方面效率更高,原因有以下几点。首先,我们的模型能够利用不同语言之间的语言相似性。当所有语言一起进行训练时,相似的语言(如西班牙语和葡萄牙语)在训练过程中可以相互借鉴,从而有助于提高这两种语言的翻译质量。 此外,随着大语言模型(LLMs)的新研究成果和技术进步陆续发布,我们能够更轻松地将其测试并集成到系统中,从而充分利用最新最先进的技术。 当源语言未指定或设置错误时,这种统一模型还展现出另一项优势:模型具备足够的准确性,能够识别正确的源语言并将其翻译成目标语言。事实上,即使输入内容包含多种语言,系统仍能进行识别并翻译成目标语言。在这些情况下,虽然准确度可能稍低,但最终译文仍具有合理的可读性。
为了训练这个统一模型,我们首先利用现有的开源数据进行预训练,同时结合我们自己的内部翻译数据、人工标注的聊天翻译结果,以及常见的聊天句式和短语。我们还构建了专用的翻译评估指标和模型来衡量翻译质量。大多数现成的翻译质量指标都是将AI翻译结果与某种基准翻译或参考翻译进行对比,主要关注翻译的可理解性。 而我们希望在没有基准翻译的情况下,评估翻译的质量。
我们从多个维度进行评估,包括准确性(是否存在增译、漏译或误译)、流畅性(标点、拼写和语法)以及引用错误(与文本其他部分的不一致)。我们将这些错误按严重程度分类:是关键错误、重大错误还是轻微错误?为了评估质量,我们构建了一个机器学习模型,并利用人工标注的错误类型和评分对其进行训练。 随后,我们对多语言语言模型进行了微调,使其能够预测词级错误及其类型,并基于我们的多维标准计算评分。这使我们能够全面了解翻译质量及出现的错误类型。通过这种方式,我们仅需源文本和机器翻译结果,无需参考标准译文,即可评估翻译质量并检测错误。利用该质量评估的结果,我们可以进一步提升翻译模型的质量。

一些不常见的翻译对(例如法语到泰语),由于缺乏高质量数据,翻译起来颇具挑战。为弥补这一缺口,我们采用了回译技术:将内容翻译回源语言,然后与源文本进行比对以验证准确性。在训练过程中,我们采用了迭代回译方法,通过策略性地混合使用这些回译数据和监督(标注)数据,从而扩大了模型用于学习的翻译数据量。

为了帮助模型理解现代俚语,我们邀请人工评估员为每种语言翻译流行和热门的术语,并将这些翻译纳入我们的训练数据中。我们将定期重复这一过程,以确保系统及时掌握最新的俚语。
最终生成的聊天翻译模型拥有约10亿个参数。通过如此庞大的模型进行翻译,其资源消耗之大使得大规模部署难以实现,且在实时对话中耗时过长——而低延迟对于支持每秒超过5,000次聊天至关重要。因此,我们采用师徒学习方法,利用该大型翻译模型构建了一个更小、更轻量级的模型。 我们通过知识蒸馏、量化、模型编译及其他服务端优化技术,将模型规模缩减至6.5亿参数以下,并提升了服务效率。此外,我们对应用内文本聊天背后的API进行了调整,使其同时将原始消息和翻译后的消息发送至用户设备。这使得接收方既能以母语查看消息,也能快速切换查看发件人未翻译的原始消息。
当最终的大语言模型准备就绪后,我们构建了后端系统以连接模型服务器。该后端负责应用额外的聊天翻译逻辑,并将系统与我们常规的信任与安全系统集成。这确保了翻译文本与其他文本一样受到同等程度的审查,从而能够检测并屏蔽违反我们政策的词语或短语。安全与文明是Roblox一切工作的重中之重,因此这是整个解决方案中至关重要的一环。
持续提升准确率
在测试中,我们发现这一全新的翻译系统显著提升了平台用户的参与度和会话质量。根据我们的内部指标,该模型在处理 Roblox 内容方面的表现优于市面上的商业翻译 API,这表明我们已成功针对 Roblox 上的用户沟通方式进行了优化。 我们期待看到这一功能如何提升平台用户的体验,让他们能够畅玩游戏、购物、协作,或与说不同语言的朋友轻松交流。
让用户能够用母语进行流畅自然的对话,使我们更接近“以乐观和文明的态度连接十亿人”这一目标。
为了进一步提高翻译准确性并为模型提供更优质的训练数据,我们计划推出一款工具,让平台用户能够对翻译结果提供反馈,从而帮助系统更快地改进。这样,当用户发现翻译错误时,不仅可以告知我们,甚至可以建议更佳的译文,我们将将其纳入训练数据以进一步优化模型。
目前,我们支持的全部 16 种语言均已提供翻译服务——但这还远远不够。 我们计划持续更新模型,纳入平台体验中的最新翻译实例,以及各支持语言中流行的聊天短语和最新俚语。此外,随着各语言的训练数据逐渐丰富,该架构将使我们能够以相对较低的投入对新语言进行模型训练。长远来看,我们正在探索如何在多维度上实现自动翻译:包括图像中的文字、纹理、3D模型等。
我们已开始探索令人振奋的新领域,包括自动语音聊天翻译。试想一位在 Roblox 上说法语的用户,能够与只说俄语的人进行语音聊天。双方都能用各自的语言交流并相互理解,甚至能捕捉到对方语调、语速和情感的细微差别,且延迟极低。虽然这在今天听起来像科幻小说,实现起来也需要一些时间,但我们将继续在翻译领域不断突破。 在不久的将来,Roblox将成为一个让世界各地的人们不仅能通过文字聊天,更能通过所有可能的沟通方式,无缝且轻松交流的地方!


