问题标签 [opennmt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

python - 机器翻译变压器输出 - “未知”令牌?

在基础 Transformer 模型(Vaswani 等人)上训练后解码/翻译测试数据集时,我有时会在输出中看到这个标记“unk”。

这里的“unk”指的是一个未知的令牌,但我的问题是这背后的原因是什么?基于https://nlp.stanford.edu/pubs/acl15_nmt.pdf,这是否意味着我为训练集构建的词汇不包含测试集中存在的单词?

作为参考,我为德语到英语的翻译任务构建了VocabusingSpacy en_core_web_smde_core_news_sm

示例输出:

正如你所看到的,牛仔裤在这里是“unk”的。

0 投票
0 回答
47 浏览

python - 翻译超过 10 亿个字符的文本 - 消除瓶颈并降低价格

我需要为一家非政府组织以快速、经济高效的方式将 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 中是否有任何设置可以优化性能?

0 投票
1 回答
333 浏览

python - TypeError: __init__() 得到了一个意外的关键字参数 'tensor_type'

我正在尝试运行与旧版本的 torch 和 torchtext 一起使用的代码。我在代码中进行了很多调整以使其正常工作。我能够预处理和训练我的数据。最后我尝试运行测试脚本,在解决了多个错误后,我收到了这个错误:

我曾尝试降级到旧版本的 PyTorch,但是这样做时我得到一个 ModuleError 即:

我也尝试在 Anaconda 上运行它,根据要求使用适当的 pytorch 和 torchtext 版本,但我得到一个完全不同的错误:

我现在只需要测试数据,其他一切似乎都已经解决了。任何帮助将不胜感激。

-U

0 投票
1 回答
23 浏览

pytorch - 如何在 opennmt 转换器中使用自定义标记器

我正在尝试使用 opennmt-py 进行转换。
而且我已经有句子(unigram)训练的分词器。
但我不知道如何在训练配置 yaml 中使用我的自定义标记器。
我指的是 opennmt-docs 的网站(https://opennmt.net/OpenNMT-py/examples/Translation.html)。
这是我的代码和错误。

当我输入 < onmt_train -config xxx.yaml >

所以,问题是两个。

  1. 我的句子标记器嵌入是浮动的。如何解决 int 错误?
  2. 当训练意外停止或我想训练更多一些 model.pt 时,从一些 model.pt 开始训练的命令是什么?

我会期待任何意见。谢谢。