我需要为一家非政府组织以快速、经济高效的方式将 15 亿个字符的文本翻译成英文。在我的项目的这个阶段,使用付费 API 的成本过高,价格从 DeepL/Google 的 35,000 美元到 AWS 的 21,000 美元不等(假设分别为每百万字符 25 美元/15 美元)。在这一点上,成本比时间更重要。
我目前的解决方案是使用 LibreTranslate 并在 AWS EC2 上使用并行 Docker 容器运行机器翻译模型。LibreTranslate 支持我要翻译的所有语言(主要是法语、意大利语、德语和西班牙语)。我估计在 m5.metal 实例上运行 4 个 Docker 容器将提供 2 条记录/秒的吞吐量(假设每条记录 2 秒)。有 700 万条记录,代表 15 亿个字符语料库,这需要 40 天。在 EC2 现场运行 m5.metal 40 天将花费约 1500 美元(40 天 * 24 小时 * 1.5 美元/小时)。所以,我目前最好的解决方案是 40 天和 1500 美元。
在我开始执行这个计划之前,我想问一下:上面的架构有什么明显的改进吗?其他人有这种规模的机器翻译经验吗?Docker 或 OpenNMT 项目的 CTranslate2 引擎是否有更快的实现?最后,为了防止这个问题被标记为过于笼统,Docker 中是否有任何设置可以优化性能?