Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fairseq v1.0およびFSDPへの対応 #1

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

jnishi
Copy link

@jnishi jnishi commented Mar 18, 2022

公式にはfairseq v0.10.2までにしか対応していませんが、fairseq v1.0に暫定的に対応させてみました。
また、おそらくFully Sharded Data Parallel使用時のwrapperのせいだと思いますが、TransformerのEncoderやDecoderがそれぞれBaseモデルで作成されてしまっているため、EL-attentionなどfastseqの機能が使えなかったのをすべてBaseクラスに移すことによって使えるようにしました。

注意点としては一か所だけfairseqに修正が必要です。SequenceGeneratorクラスのインスタンス変数に self.no_repeat_ngram_size を追加してください。0.10.2では存在していましたが、1.0では無くなったものです。

diff --git a/fairseq/sequence_generator.py b/fairseq/sequence_generator.py
index e7e02d82..fecea291 100644
--- a/fairseq/sequence_generator.py
+++ b/fairseq/sequence_generator.py
@@ -91,6 +91,7 @@ class SequenceGenerator(nn.Module):
         self.temperature = temperature
         self.match_source_len = match_source_len

+        self.no_repeat_ngram_size = no_repeat_ngram_size
         if no_repeat_ngram_size > 0:
             self.repeat_ngram_blocker = NGramRepeatBlock(no_repeat_ngram_size)
         else:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant