问题标签 [fairseq]

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 回答
431 浏览

machine-learning - 如何获取火炬中心模型生成的翻译的对齐或注意信息?

火炬中心提供预训练模型,例如:https ://pytorch.org/hub/pytorch_fairseq_translation/

这些模型可以在 python 中使用,或者与 CLI 交互。--print-alignment使用 CLI,可以使用标志进行对齐。安装fairseq(和 pytorch)后,以下代码在终端中工作

在 python 中,可以指定关键字 argsverboseprint_alignment

但是,这只会将对齐输出为日志消息。而对于 fairseq 0.9,它似乎被破坏并导致错误消息(问题)。

有没有办法从 python 代码访问对齐信息(甚至可能是完整的注意力矩阵)?

0 投票
1 回答
107 浏览

deep-learning - 为什么 FairSeq 的 VQ-Wav2Vec 的输出会丢失帧?

我正在使用 fairseq 库运行示例代码以使用 VQ-Wav2Vec 代码进行特征提取,如下所示:

我的理解是,vq-wav2vec 每 10ms 处理一次输入语音(假设以 16K 样本/秒采样)样本,并为这 10ms 的每一个语音输出一个大小为 [512] 个样本的特征向量。因此,假设输入语音是 10000 个样本,我们应该得到 62 帧(62 * 160 = 9920 个样本)。

为什么我只看到 60 帧?

0 投票
0 回答
2009 浏览

python - 在 google colab 中安装并运行 fairseq (ModuleNotFoundError: No module named 'fairseq')

直到昨天,我们正常安装了 fairseq 并执行了它。

今天突然出现一个名为“ModuleNotFoundError: No module named 'fairseq'”的错误。

有谁知道如何解决这个问题?

安装 fairseq...

安装日志...

跑...

运行日志...

0 投票
1 回答
457 浏览

pytorch - 使用 PyTorch 在 Cloud TPU 上训练 FairSeq RoBERTa 时,RPC 失败,状态 =“不可用:套接字已关闭”错误

我按照教程“使用 Pytorch 在 Cloud TPU 上预训练 FairSeq RoBERTa ”来设置 Preemptible (v2-8) TPU 环境并训练我的 RoBERTa 模型。PyTorch env 按照文档的说明基于 torch-xla-1.6。但是,它不会像往常一样在 GPU 中输出任何训练日志,并且会在 2-3 天(间隔 12 小时)内两次抛出 RPC 失败警告(见下文 - 网络端点已在此处删除)。

我每个 epoch 的训练步数是 161,529。根据文档,按照我的配置,v2-8 将花费 80 小时进行 5 个 epoch。但是,我的工作似乎悬而未决。

请问有什么建议吗?

0 投票
1 回答
1332 浏览

pytorch - 如何以非交互方式使用 fairseq interactive.py?

我正在尝试使用 Fairseq 从英语翻译成阿拉伯语。但是interactive.py 脚本会即时翻译文本片段。但我需要将它用作读取输入文本文件并写入输出文本文件写入。我提到了这个 GitHub 问题 - https://github.com/pytorch/fairseq/issues/858但它并没有清楚地解释一般如何做到这一点。有什么建议么 ?

0 投票
1 回答
620 浏览

python-3.x - 如何运行教程:fairseq 上的简单 LSTM

在尝试学习 fairseq 时,我正在关注网站上的教程并实施:

https://fairseq.readthedocs.io/en/latest/tutorial_simple_lstm.html#training-the-model

但是,在完成所有步骤之后,当我尝试使用以下方法训练模型时:

! fairseq-train data-bin/iwslt14.tokenized.de-en \ --arch tutorial_simple_lstm \ --encoder-dropout 0.2 --decoder-dropout 0.2 \ --optimizer adam --lr 0.005 --lr-shrink 0.5 \ --max-tokens 12000

我收到一个错误:

一些附加信息:我正在使用 google colab。我正在编写整个代码,直到 train 进入 .py 文件并根据我对说明的解释将其上传到 fairseq/models/... 路径。我正在关注链接中的确切教程。而且,在 colab 上运行它之前,我正在使用以下命令安装 fairseq:

!git clone https://github.com/pytorch/fairseq %cd fairseq !pip install --editable ./

我认为发生此错误是因为未正确设置根据教程创建的命令行参数。

任何人都可以解释一下我是否需要做其他事情。

对于您的投入,我将不胜感激,因为对于初学者来说,来自社区的帮助大有帮助。

0 投票
1 回答
39 浏览

python - 给定一个指示段边界的值,为张量生成段标签

有没有人知道一种为张量生成“段标签”的方法,给定一个表示张量内段边界的唯一值?

例如,给定一个 1D 输入张量,其中值1表示段边界,

x = torch.Tensor([5, 4, 1, 3, 6, 2])

生成的段标签张量应该具有相同的形状,其值代表两个段:

segment_label = torch.Tensor([1, 1, 1, 2, 2, 2])

同样,对于一批输入,例如批量大小 = 3,

生成的段标签张量(1用作段分隔符)应如下所示:

上下文:我目前正在 PyTorch 中使用 Fairseq 的 Transformer 实现来完成 seq2seq NLP 任务。我正在寻找一种在编码器前向传递期间将类似 BERT 的片段嵌入合并到 Transformer 中的方法,而不是修改用于翻译任务的现有数据集,例如language_pair_dataset.

提前致谢!

0 投票
1 回答
34 浏览

speech-to-text - FairSeq 的语音到任务模型可以预测标点符号(例如,句子边界)吗?

我阅读了他们的论文,查看了他们的 repo,但找不到答案。FairSeq 的语音到任务模型是否预测标点符号(例如,句子边界)?我只是想在投入时间和精力来实施它之前找出答案。

0 投票
1 回答
1341 浏览

pytorch - Fairseq 变换模型不起作用(浮点数不能转换为长)

我已经在一台新机器上安装了 python 3.8、pytorch 1.7 和 fairseq 0.10.1,然后从具有 python 3.6、pytorch 1.4 和 fairseq 0.9.0 的机器复制了脚本和模型,它正在工作。

模型已加载并准备好:

然后用于:

inputs看起来像[tensor([ 116, 1864, 181, 6, 2]), tensor([ 5, 432, 7, 2])]

它断言,调用堆栈的最后一位是:

相反,如果我fairseq-interactive从命令行使用它会失败,并显示RuntimeError: result type Float can't be cast to the desired output type Long. (下面的完整堆栈跟踪。)

由于使用 cli 也失败了,我的直觉是我用 fairseq 0.9.x 构建的模型不能与 fairseq 0.10.x 一起使用。如果是这样,有没有办法更新模型(即无需重新训练)。如果没有,问题可能是什么,我该如何解决?

顺便说一句,如果我添加到命令行参数,则会出现完全相同的错误--cpu,因此可以消除 GPU 或 cuda 版本作为可能的原因。

0 投票
0 回答
387 浏览

python - 如何将图表从 fairseq 记录到 tensorboard

我从阅读教程中得到的印象是这很容易:打个电话给add_graph().

第一个棘手的部分是找出把它放在哪里。我在循环的最顶部使用了fairseq_cli/train.pyenumerate()train()

我正在--tensorboard-logdir mydir/调用fairseq-train. 这会导致TensorboardProgressBarWrapper包装器SimpleProgressBar(或您使用的任何日志记录格式),因此我正在尝试重新使用编写器实例。(也许这是我的错?)

我可以从对象中取出模型,trainer我们需要的另一件事add_graph是一些数据,这就是为什么我把它放在上面的循环中,所以我可以使用samples. 我也尝试samples[0]过完全相同的错误消息。

这是:

我希望有人可能比我更好地理解该错误消息?也欢迎有关更好的调用位置add_graph()或处理整个事情的更好方法(获得我的模型的可视化表示)的提示。(PyTorchViz已经 2 年多没有更新了,显然不能与最新的 pytorch 一起使用。)

顺便说一句,训练的 Tensorboard 记录正在工作。

额外的

我又看了看,发现它会调用forward()我的模型,它(忽略可选参数)看起来像:

所以我尝试手动创建空数据:

那失败了:

如果我使用 kwargs 风格:

它失败了:

我开始认为这可能是一个限制,add_graph()它只适用于简单的def forward(self, x):?