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

ブログ    
ブログ    
ブログ    

推薦する

SDNアーキテクチャに基づくデータセンターネットワークルーティングアルゴリズムの需要分析

現在のネットワーク情報技術の急速な発展に伴い、ネットワーク アーキテクチャはますます複雑になっていま...

AIサイバーセキュリティの今後の課題:最初で最後の防衛線となる方法

ニューヨーク・タイムズ紙によると、世界の AI サイバーセキュリティの求人市場では、2021 年まで...

...

13Bモデルはあらゆる面でGPT-4を圧倒しますか?この裏にあるトリックは何でしょうか?

130 億のパラメータを持つモデルが実際にトップの GPT-4 に勝つのでしょうか?下の図に示すよ...

シリコンバレーのエンジニアの間で大人気だったこの技術共有セッションで、ディディはどんなことを話したのでしょうか?

11月19日、滴滴出行は米国の新研究オフィスで地元の科学研究者向けの技術サロンを開催した。 Did...

人工知能の長所と短所をどのように見ていますか?

人工知能は、人間の生活に強固な物質的基盤を築くだけでなく、より多くの人々を単純で退屈な反復作業から解...

役立つ情報 | 115 行のコードで数独パーサーを作成する方法を段階的に説明します。

あなたも数独愛好家ですか? Aakash Jhawar さんは、多くの人と同じように、新しい困難な課...

サービス最適化における人工知能の利点と欠点は何ですか?

AI は、複雑なデータセットを迅速に解析し、そのデータに基づいて洞察を生成することで、企業が IT...

この AI 商用リストをお見逃しなく: 生産上の問題はアプリケーションで解決できるかもしれません (続き)

[[220537]]リアム・ヘーネル編纂者:趙怡雲、江宝尚、銭天培新年を前に、温翁氏は音声認識から...

考えるべき5つのAIリスク

真の人工知能技術がまだ成熟していないため、人間が自律知能に対して想定するリスクは、高度な知能を持つロ...

...

Docker ネットワーク管理: コンテナとホストの接続

Docker ネットワーク管理は、コンテナをホストに接続し、Docker コンテナ環境での通信とネッ...

IoT と AI を組み合わせたユースケースにはどのようなものがありますか?

モノのインターネットは現代のビジネスと経済全体を急速に変革しています。この革新的なテクノロジーにより...

40年前、袁龍平が田んぼで教えている姿はこんな感じです!ネットユーザーがAIを使って貴重な動画を復元し悲しみを表現

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

DIYのセルフバランススクーターの事故で左足を失った男は、義足を改造してワイルドなアイアンマンに変身した。

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