国際翻訳コンテストで優勝したモデルが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ベースのクライアント監視と分析における機械学習の最適化と実践

ブログ    
ブログ    
ブログ    

推薦する

エンタープライズデータ開発のための大規模言語モデル: 概念、懸念事項、ホットトピック

翻訳者|朱 仙中レビュー | Chonglou導入GPT-4 は、韻を踏んだプロンプトを出しながら素...

...

AIが材料科学を覆す!ディープマインドの主要な研究がネイチャー誌に掲載され、220万の結晶構造を予測し、人類より800年も先を行く

テレンス・タオ氏は、ChatGPT が数学的証明を覆すだろうと常に楽観的でしたが、現在、化学分野にお...

機械学習コードを単体テストするにはどうすればいいですか?

現在、ニューラル ネットワーク コードの単体テストに関する特に包括的なオンライン チュートリアルはあ...

...

マイクロソフトの面接アルゴリズムに関する 4 つの質問

(1)要素が0から65535までの任意の数値であり、同じ値が繰り返し出現しない整数列。 0 は例外で...

マスク氏がテスラFSD V12の試乗を生放送!世界初のエンドツーエンドAI自動運転、10,000台のH100でトレーニング

現地時間8月26日、マスク氏は自らオンラインにアクセスし、FSD Beta V12の試乗ライブ放送を...

パーシー・リャンらによる新しい研究:新しいBingのような生成型検索エンジンはそれほど役に立たないかもしれない

生成型検索エンジンは、入力クエリとオンライン引用に対する応答を直接生成することで、ユーザーの情報ニー...

FacebookはAI音声アシスタントを開発しているが、財務上の将来は不透明

Facebook は近年、世論の嵐に何度も巻き込まれてきたが、技術革新に関しては決して無縁ではなかっ...

意見: 顔認識 - 今後の展望

ここ数週間、世界的なハイテク企業3社(IBM、マイクロソフト、アマゾン)は、警察やその他の法執行機関...

2021年に機械学習を学ぶには?この詳細なガイドがあなたをカバーします!

「すべての人にAI」の時代を迎え、多くの人が機械学習(ML)に何らかの形で触れるようになりました。...

...

...

...

モデルの過剰適合を防ぐにはどうすればよいですか?この記事では6つの重要な方法を紹介します

バフェット氏は「正確に間違っているよりも、おおよそ正しい方が良い」と述べています。機械学習では、過剰...