この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。 長い時間をかけてモデルをトレーニングした結果、テンソルの形状が誤って定義されていることが判明したのは、きっとイライラしたことでしょう。 では、この状況に対するより良い解決策はあるのでしょうか? 最近、韓国のソウル国立大学の研究者らが「強力なツール」であるPyTeaを開発しました。 研究者によると、モデルをトレーニングする前に、数秒以内に潜在的なテンソル形状エラーを静的に分析するのに役立つとのことです。 では、PyTea はどのようにそれを実現するのでしょうか? 信頼できるのでしょうか? 調べてみましょう。 PyTeaが誕生した経緯
ニューラル ネットワークには一連の行列計算が含まれます。前の行列の列数は、次の行列の行数と一致している必要があります。次元が一致しないと、後続の操作は実行できません。 上記のコードは典型的なテンソル形状エラーです。[B x 120] * [80 x 10] は行列演算を実行できません。 PyTorch、TensorFlow、Keras のいずれであっても、ニューラル ネットワークをトレーニングするときには、そのほとんどはグラフのプロセスに従います。 まず、一連のニューラル ネットワーク レイヤー (つまり、マトリックス) を定義し、次にニューラル ネットワーク モジュールを合成します...
以前は、モデルが大量のデータを読み取り、トレーニングを開始し、コードが間違ったテンソルに対して実行された場合にのみ、テンソルの形状定義のエラーが発見されました。 モデルは非常に複雑で、トレーニング データは非常に大きいため、エラーを発見するための時間コストは非常に高くなります。コードがバックグラウンドでトレーニング用に残され、何か問題が発生しても誰も気付かないこともあります... PyTea は、モデル コードを実行する前に形状エラーを分析できるため、この問題を効果的に回避できます。 ネットユーザーの間ではすでに熱い議論が巻き起こっている。
さまざまな制約の影響を受け、コード実行パスは多数存在し、データによってパスも異なります。 したがって、PyTea は、すべての可能な実行パスを静的にスキャンし、テンソルの変更を追跡し、各テンソルの形状の正確で保守的な範囲を推測する必要があります。 上の図は PyTea の全体的なアーキテクチャを示しており、言語の翻訳、制約の収集、ソルバーの判断、フィードバックの 4 つのステップに分かれています。 まず、PyTea は元の Python コードをカーネル言語に変換します。 PyTea 内部表現 (PyTea IR)。 次に、PyTea は PyTea IR の可能なすべての実行パスをトレースし、テンソルの形状に関する制約を収集します。 制約が満たされているかどうかの判断は、オンライン分析とオフライン分析の2つのステップに分かれています。
ソルバーが長時間沈黙していると、PyTea は問題があるかどうかを認識せずに返します。 しかし、すべての可能なパスを追跡するのは指数関数的な作業であり、複雑なニューラル ネットワークではパス爆発の問題が必ず発生します。 たとえば、この例では、ネットワークの最終的な構造は 24 個の同一モジュール ブロック (行 17) で構成されているため、可能なパスは最大1600 万通りあります。
PyTea は、このパスの爆発的増加に対処するために、保守的なパスのプルーニングとタイムアウトの判断を選択します。
PyTea が出した答えは、フィードフォワード関数がグローバル値を変更せず、その出力値が分岐条件の影響を受けず、各パスで等しい場合、完全に同一のパスを多数無視して計算リソースを節約できるというものです。 それでもパス プルーニングが機能しない場合は、タイムアウトとしてのみ処理できます。 原則はこれですべてです。試してみる価値はあると思います。コードは現在 GitHub でオープンソースになっています。ぜひチェックしてみてください。 使い方依存関係: インストール方法: 次のコマンドを実行します: |
<<: 3 つの質問、7 人の CXO、「自動運転」に関するブレインストーミング
>>: PyTorch | ニューラル ネットワークのトレーニングを最適化する 17 の方法
2016年はボットにとって歴史的な年でした。Facebookなどの主要プラットフォームがMessen...
組織内の利害関係者の視点から IT の役割を理解することは、IT がどのように変革する必要があるかを...
先週、Github で最も人気のあるプロジェクトは、最近バージョン 2.0 に更新された自然言語処理...
「人類の発展以来、テクノロジーの継続的な進化により、接続性、インタラクション、オンライン機能が絶えず...
AI飽和私は、Google やハーバード大学のコース、YouTube の完全なチュートリアルなど、...
[[438709]]大規模なコーパスでトレーニングされた Transformer モデルは、自然言...
活性化関数(変換関数とも呼ばれる)は、ニューラル ネットワークを設計するための鍵となります。活性化関...
多くの小売業者にとって、2020年のコロナウイルスの流行は、その存続と運営に深刻な影響を及ぼしました...
背景ChatGPTを日常的に使用する際に、ネットワーク制限、アカウント制限、公式フロー制限など、次の...
ガベージ コレクターについて説明する前に、まずガベージ コレクション アルゴリズムと JVM のガベ...