在 Android 上使用本地翻译模型

主要观点:作者介绍了在 Firefox 引入浏览器内设备翻译功能后,希望在浏览器外使用该功能,经过一系列研究和尝试,成功在 Linux 和 Android 上运行bergamot-translator,包括构建、运行、解决各种依赖和错误等,但在 Android 上仍遇到诸多问题,如缺少 Intrinsics、iconv 问题、运行时崩溃等,最终使翻译库在 Android 上工作并实现基本的 Android 应用,还介绍了一些应用的功能如直接从其他应用翻译、检测输入语言等,以及速度测试和结果等。

关键信息和重要细节:

  • Firefox 引入浏览器内设备翻译,作者因不愿发送浏览数据给 Google 而寻找在浏览器外使用的方法。
  • bergamot-translator可运行 Firefox 翻译模型,需特定 YAML 文件,模型等应从firefox-translations-models获取。
  • 在 Linux 上构建bergamot-translator及运行步骤,如克隆仓库、安装依赖、设置配置等。
  • 在 Android 上构建共享库遇到诸多问题,如 CMake 错误、PCRE2 依赖、缺少 Intrinsics、iconv 问题等,通过各种设置和修改解决。
  • 运行时出现崩溃,如在全局构造函数中出现 SIGILL 错误,原因是模拟器的处理器不支持 AVX 指令,通过启用 AVX 在模拟器上解决。
  • 实现基本的 Android 应用,包括获取模型文件、生成 YAML、连接到libbergamot,以及实现直接从其他应用翻译和检测输入语言的功能。
  • 速度测试表明初始加载模型耗时约 100ms,后续翻译短短语约 5ms,中长文本分别约 20ms 和 80ms 以上。
  • 应用约 15MB,模型约 40MB 需单独下载,翻译质量不如 Google Translate 等,支持的语言有限。
  • 作者对 CMake、Android Studio 等工具表达不满,如 CMake 复杂、Android Studio 存在各种问题等。

总结:作者通过不懈努力在不同平台上实现了 Firefox 翻译功能的外推,过程中克服了诸多技术和工具方面的困难,最终取得了一定成果,但仍存在一些待改进之处。

阅读 10
0 条评论