国際翻訳コンテストで優勝したモデルがByteDanceによってオープンソース化された。

国際翻訳コンテストで優勝したモデルがByteDanceによってオープンソース化された。

Transformer などの主流のテキスト生成アルゴリズムの単語単位の生成は、並列計算に適した GPU に適していないため、GPU の使用率が低下します。並列ビルドはこの問題の解決に役立ちます。少し前、ByteDanceのVolcano Translationチームの並列生成翻訳システムGLATが、WMT2021 De-En/En-Deのダブル優勝を果たしました。この成果を誰もがフォローアップできるように、Volcano Translation は、GLAT モデルの複製と WMT21 のコードを含む、ParaGen と呼ばれる Pytorch ディープラーニング フレームワークをオープンソース化しました。

コードアドレス: https://github.com/bytedance/ParaGen

テキスト生成は自然言語処理における重要な研究方向であり、幅広い応用シナリオがあります。たとえば、テキストの要約、機械翻訳、コピーライティングの生成など。分類やラベル付けなどの一般的なタスクとは異なり、テキスト生成では、各単語の重要性を考慮して単語の予測精度を向上させるだけでなく、単語間のコロケーションを考慮してテキスト全体の流暢性を維持する必要があります。したがって、一般的なアプローチは、単語を 1 つずつ生成し、単語が生成されるたびに、既存の単語との関係を考慮することです。

上記の手順でテキストを生成するこのタイプのモデルは、現在主流の生成アルゴリズムであるTransformerなどの自己回帰モデルと呼ばれます。モデルはまず、機械翻訳で翻訳されるテキストやテキスト要約の元のテキストなどの元のテキストをエンコードします。次に、左から右へ単語ごとにデコードして、翻訳されたテキストまたは要約を作成します。このアルゴリズムに基づくオープンソース ソフトウェアには、tensor2tensor、fairseq などがあります。ただし、単語ごとの生成は並列計算に適した GPU に優しくないため、GPU の使用率が低下し、文の生成が遅くなります。そのため、近年では並列的にテキストを生成し、応答の遅延を減らす方法についての研究が盛んに行われています。

以前、バイトダンスの人工知能研究所(AI-Lab)のVolcano Translationチームは、並列生成翻訳システムであるGlancing Transformer(GLAT)を開発し(「ACL 2021 | バイトダンスGlancing Transformer:並列生成モデルの概要」を参照)、それを使用して優勝しました。   WMT2021 De-En/En-De ダブルチャンピオン  (「並列生成のシンギュラリティが近づいています!ByteDance GLATがWMT2021のドイツ語と英語の自動評価で1位を獲得」を参照)これは並列生成の強力な可能性を示しています。このような背景から、ParaGen が誕生しました。チームの研究者らは、並列生成においては、モデルの改善だけではもはや研究ニーズを満たすことができず、トレーニング方法とデコードアルゴリズムの改善がますます重要になっていることを発見した。 ParaGen は、並列生成研究の生産性を解き放つために開発されました。

ParaGenでは、Huoshan TranslationがGLATモデルの再現とWMT21のコードをオープンソース化し、並行して生成された研究結果を誰もがよりよくフォローアップできるようにしています。今後、Volcano Translation は、並列生成関連の技術をさらにオープンソース化し、並列生成技術のさらなる発展を促進し、並列生成技術が徐々により多くの生産アプリケーションに移行できるよう支援していきます。同時に、ParaGen は並列生成に加えて、自己回帰翻訳、多言語翻訳、事前トレーニング済みモデル、生成タスク、抽出タスク、分類タスクなど、さまざまな自然言語処理タスクもサポートし、ゼロから再現できるコードを提供することで、自然言語処理研究に不慣れな学生がより早く研究状態に入ることを支援します。

ParaGenは開発をより柔軟に、より自由に、より簡単にします

ParaGen は、データ読み取り、データ前処理、データ サンプリング、データ読み込み、ネットワーク モジュール、トレーニング モデル、推論モデル、最適化目標、検索アルゴリズム、オプティマイザー、数値プランナー、トレーニング アルゴリズム、評価目標など、最大 13 個のカスタマイズ可能なモジュールをサポートしています。同様のテキスト生成フレームワークと比較して、二次開発の柔軟性が大幅に向上します。 ParaGen は、さまざまなモジュールに対してマイクロカーネル設計を採用しています。各モジュールは、数値最適化の InverseSquareRootRateScheduler、ネットワーク モジュールの位置埋め込み、データ読み取り用の JsonDataset など、いくつかの共通の基本実装のみを提供し、互いに独立しています。 13 個のモジュールに細かく分類されているため、ParaGen をより便利にカスタマイズできます。たとえば、一瞥トレーニングを実装する必要がある場合、カスタマイズされたトレーニングをモジュールで実装するには、ParaGen で forward_loss 関数をオーバーロードするだけで済みます。

 輸入トーチ
paragen.trainers.trainer からTrainer インポート
paragen.trainers からregister_trainer をインポートします


@register_trainer
クラスGLATTrainer ( トレーナー):
「」 「
ちらっと見る戦略トレーナー
「」 「
def _forward_loss ( selfsamples ):
glancing_output = self._generator ( ** サンプル[ ' net_input' ])
fused_samples = self._fusing (サンプル glancing_output )
ログ記録状態= self._criterion ( ** fused_samples )
リターンロス

これまでのプロセスベースの開発とは異なり、ParaGen はアセンブリベースの開発に重点を置いています。手続き型開発では、フレームワークがプロセス コードを修正し、ユーザーは各モジュールをプロセスに組み込む方法を見つけます。 ParaGen のアセンブリベースの開発はまったく異なります。現在タスクを実装していると想像してください。ParaGen はツールボックスのようなものです。必要な機能に応じて完全なプロセスを組み立てることができます。たとえば、適切な Dataset クラスを選択してデータを読み取り、Sampler を選択してバッチを結合し、Metric を選択して結果を評価したり、独自のトレーニング プロセスを定義したりすることが可能です。実装されていないツールに遭遇した場合、ParaGen のツールを親クラスとして使用し、少数の関数をオーバーロードしてより多くのタスクに適応させることで、独自のツールをカスタマイズできます。

同時に、ParaGen のコード構造はより慎重に分解されており、ユーザーはコードを読むのに 2 ~ 3 時間しかかからず、プロジェクト全体のフレームワークを理解して独自のタスクをカスタマイズできます。それだけでなく、ParaGen は、初心者が ParaGen コード全体の基本的な知識と使用方法を学習できるように、対応するチュートリアルも提供しています。

ParaGenは開発をより安定させる

ParaGen は、さまざまな方向への同時開発を適切にサポートできます。 ParaGen はコード開発に対するプラグ可能なアプローチをサポートしており、ユーザーはフレームワーク外で開発することができます。ユーザーは任意のディレクトリで独自のモジュールを開発し、--lib {my_lib} コマンドを使用して ParaGen にインポートして実行できます。これにより、二次開発コードがメインコードから独立し、二次開発コードのメンテナンスとメインフレームワークの安定性が向上し、互いのコードに競合が発生することなく、異なるプロジェクトの開発の並列性と安定性が確保されます。

ParaGen は、非常に緩やかな Apache 2 オープンソース プロトコルを使用しています。たとえば、他の開発者が二次開発を行ってからソース コードをクローズできるため、より優秀な開発者やチームが参加しやすくなります。

ParaGen は、従来の自己回帰モデルを超える翻訳品質を備えた初の並列テキスト生成ソフトウェアとして、速度と品質のバランスをとる実現可能性を証明し、その後の研究に再現可能な実装を提供します。アプリケーションレベルでは、端末展開における低消費電力と高速応答のパフォーマンス要件を大幅に満たします。今後の開発では、ParaGen は条件付きランダム フィールド モデルなどの並列アルゴリズムをさらに検討し、パフォーマンスをさらに向上させます。一方、より実用的なシナリオでのアプリケーション開発を容易にするために、モバイル端末や組み込みシステムなど、より多くの展開環境が開かれることになります。​

<<:  疫病流行中に物流の円滑化に全力を尽くし、無人配送市場が活況を呈している

>>:  URLベースのクライアント監視と分析における機械学習の最適化と実践

ブログ    
ブログ    

推薦する

人工知能とビッグデータの隠れた危険性とは何でしょうか?

データの不足から現在では大量のデータが存在するまで、近年では利用可能なデータの量が飛躍的に増加し、ビ...

...

...

...

画像分類の精度を段階的に向上させるにはどうすればよいでしょうか?

[[205151]] 1. 問題の説明画像認識や画像分類、その他の機械学習タスクを扱う場合、どのよ...

APOS A5は従業員の健康情報登録管理をインテリジェントに強化します

訪問者は検問所で携帯電話の「健康コード」を開き、携帯電話の画面をコードスキャンウィンドウの前に置くこ...

...

Google の最新 AI モデル「Gemini」について知っておくべきことすべて

Google Geminiとは何ですか? Gemini は、テキストだけでなく画像、ビデオ、オーディ...

666!ボストンのロボット犬はすでにダンスができる、ネットユーザーは「早く飼いたい」と絶賛

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

庚子の年に流行したAIアプリのレビュー

2020年にはAIがより広く活用されるようになるでしょう。最先端の新興産業を開拓すると同時に、伝統的...

データセンター管理者は AI と ML の爆発的な増加にどのように備えればよいのでしょうか?

生成 AI と機械学習 (ML) は急速に一般の人々の意識に入り込み、これらの有望なテクノロジーの能...

ディープラーニングでは複素数を使うべきでしょうか?

マンデルブロ複素集合: https://en.wikipedia.org/wiki/Mandelbr...

人工知能は親密な関係の「大きな殺し屋」

人工知能の存在は仕事や生活だけではなく、感情にも存在します。仕事の後で退屈を感じたら、たまごっちを飼...

写真から3Dモデルを生成、GANとオートエンコーダが衝突して奇跡を起こす

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...