Firefox Translations 模型:CPU 优化的神经机器翻译方案

Mozilla 维护的 firefox-translations-models 项目提供了一系列针对 Firefox Translations 优化的、CPU 可高效执行的神经机器翻译(NMT)模型。这些模型旨在提供高质量且快速的本地翻译体验,是 Firefox 浏览器内置翻译功能的核心。

主要特点:

  • CPU 优化: 模型专为 CPU 设计,无需依赖强大的 GPU 即可运行,降低了设备要求。
  • 持续评估: 通过持续集成 (CI) 对模型进行自动质量评估,使用 BLEU 和 COMET 等指标,并与 Microsoft、Google 翻译 API 以及其他开源翻译模型(如 Argos Translate、NLLB 和 Opus-MT)进行比较。
  • 灵活的模型部署: 模型通过 Remote Settings 部署到 Firefox,可以轻松地推送到不同的 Firefox 渠道。
  • 支持多种语言: 目前支持多种语言对,包括但不限于英汉、英法、英德以及其他欧洲语言(详情见下文)。
  • 区分生产和开发模型: 提供 “prod” 和 “dev” 两类模型。“prod” 模型质量较高,适用于所有 Firefox 渠道。“dev” 模型仍在开发中,可能质量较低或速度较慢,仅在 Nightly 版本中可用。完成测试后,“dev” 模型会被移到 “prod”。

模型类型:

  • 词汇表:
    • vocab.:源语言和目标语言使用相同的词汇表。
    • srcvocab.trgvocab.:源语言和目标语言使用不同的词汇表。
  • GEMM 精度:
    • intgemm8.bin:支持 gemm-precision: int8shiftAll 推理设置。
    • intgemm.alphas.bin:支持 gemm-precision: int8shiftAlphaAll 推理设置。

语言支持(生产环境 - “Prod”):

涵盖了以下语言与英语的互译:

  • 保加利亚语
  • 加泰罗尼亚语
  • 简体中文 -> 英语
  • 克罗地亚语
  • 捷克语
  • 丹麦语
  • 荷兰语
  • 爱沙尼亚语
  • 芬兰语
  • 法语
  • 德语
  • 希腊语
  • 匈牙利语
  • 印度尼西亚语
  • 意大利语
  • 日语 -> 英语
  • 韩语 -> 英语
  • 拉脱维亚语
  • 立陶宛语
  • 波兰语
  • 葡萄牙语
  • 罗马尼亚语
  • 俄语
  • 塞尔维亚语 -> 英语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 西班牙语
  • 瑞典语
  • 土耳其语
  • 乌克兰语
  • 越南语

语言支持(开发环境 - “Dev”):

  • 波斯尼亚语 -> 英语
  • 简体中文 <- 英语
  • 克罗地亚语 <- 英语
  • 冰岛语 -> 英语
  • 日语 <- 英语
  • 韩语 <- 英语
  • 拉脱维亚语 <- 英语
  • 马耳他语 -> 英语
  • 挪威博克马尔语 -> 英语
  • 挪威尼诺斯克语 -> 英语
  • 波斯语
  • 斯洛伐克语 <- 英语
  • 乌克兰语 <- 英语

模型贡献:

项目鼓励社区贡献新的语言模型。贡献者应先将模型提交到 “dev” 文件夹,经过评审和合并后,维护者会创建一个从 “contrib” 分支到 “main” 分支的 Pull Request,CI 便会自动运行评估流程。

本地测试:

开发者可以在本地运行模型评估,使用 scripts/update-results.sh 脚本。 需要设置环境变量 GCP_CREDS_PATHAZURE_TRANSLATOR_KEY 来使用 Google 和 Microsoft API。

如何下载模型:

可以使用 scripts/pull_models.sh 脚本从 Taskcluster 下载模型,需要提供 SRC (源语言), TRG (目标语言) 和 TASK_ID (Taskcluster ID)。

总结:

firefox-translations-models 项目为 Firefox 浏览器提供了一个强大的、离线的神经机器翻译解决方案。该项目不仅注重翻译质量,还兼顾了 CPU 性能,使其能够在各种设备上运行。通过持续的评估和社区参与,该项目将不断发展壮大,为用户带来更好的翻译体验。