注釈付き Transformer ブログ投稿のコード:
http://nlp.seas.harvard.edu/annotated-transformer/
ライブラリの依存関係を pip でインストールするには、 requirements.txt
を使用します。
pip install -r requirements.txt
注釈付きトランスフォーマーは jupytext を使用して作成されます。
通常のノートブックでは、ソース管理に問題が発生します。セルの出力はリポジトリ履歴に残り、コミット間の差分を調べるのが困難です。 jupytext を使用すると、jupytext プラグインによってノートブック ファイルと自動的に同期される Python スクリプト ( .py
ファイル) が存在します。
Python スクリプトにはすべてのセルの内容が含まれており、ノートブック ファイルの生成に使用できます。 Python スクリプトは通常の Python ソース ファイルであり、マークダウン セクションは標準のコメント規則を使用して含まれており、出力は保存されません。ノートブック自体はビルド アーティファクトとして扱われ、git リポジトリにはコミットされません。
このリポジトリを使用する前に、こちらのインストール手順に従って jupytext がインストールされていることを確認してください。
マークダウン ソースを使用して.ipynb
ノートブック ファイルを生成するには、次のコマンドを実行します (内部では、 notebook
ビルド ターゲットは単純にjupytext --to ipynb the_annotated_transformer.py
を実行します)。
make notebook
ノートブックの HTML バージョンを作成するには、次を実行します。
make html
make html
、 jupytext --to ipynb the_annotated_transformer.py
を使用してノートブックを生成し、続いて jupyter nbconvert コマンドを使用してjupyter nbconvert --to html the_annotated_transformer.ipynb
を使用して HTML を生成するためのショートカットです。
コードの書式設定をクリーンに保つために、アノテーション付きのTransformer gitリポジトリには、コードがPEP8コーディング標準に準拠しているかどうかをチェックするgitアクションがあります。
これを簡単にするために、black と flake8 で自動コード フォーマットを実行する 2 つのMakefile
ビルド ターゲットがあります。
blackとflake8は必ず装着してください。
その後、以下を実行できます。
make black
(または手動で black black --line-length 79 the_annotated_transformer.py
を呼び出して) 黒を使用してコードを自動的にフォーマットし、次のようにします。
make flake
(または手動で flake8 `flake8 --show-source the_annotated_transformer.py を呼び出して) PEP8 違反をチェックします。
PR を送信するときに、これら 2 つのコマンドを実行して、発生した flake8 エラーを修正することをお勧めします。そうしないと、github アクション CI がエラーを報告します。