このツールは、テンソルの形状エラーを数秒で検出し、ML モデルのトレーニングが無駄になるのを防ぐことができます。

このツールは、テンソルの形状エラーを数秒で検出し、ML モデルのトレーニングが無駄になるのを防ぐことができます。

[[442491]]

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

長い時間をかけてモデルをトレーニングした結果、テンソルの形状が誤って定義されていることが判明したのは、きっとイライラしたことでしょう。

では、この状況に対するより良い解決策はあるのでしょうか?

最近、韓国のソウル国立大学の研究者らが「強力なツール」であるPyTeaを開発しました。

研究者によると、モデルをトレーニングする前に、数秒以内に潜在的なテンソル形状エラーを静的に分析するのに役立つとのことです。

では、PyTea はどのようにそれを実現するのでしょうか? 信頼できるのでしょうか? 調べてみましょう。

PyTeaが誕生した経緯

テンソルの形状が間違っているとなぜ問題になるのでしょうか?

ニューラル ネットワークには一連の行列計算が含まれます。前の行列の列数は、次の行列の行数と一致している必要があります。次元が一致しないと、後続の操作は実行できません。

上記のコードは典型的なテンソル形状エラーです。[B x 120] * [80 x 10] は行列演算を実行できません。

PyTorch、TensorFlow、Keras のいずれであっても、ニューラル ネットワークをトレーニングするときには、そのほとんどはグラフのプロセスに従います。

まず、一連のニューラル ネットワーク レイヤー (つまり、マトリックス) を定義し、次にニューラル ネットワーク モジュールを合成します...

では、なぜ PyTea が必要なのでしょうか?

以前は、モデルが大量のデータを読み取り、トレーニングを開始し、コードが間違ったテンソルに対して実行された場合にのみ、テンソルの形状定義のエラーが発見されました。

モデルは非常に複雑で、トレーニング データは非常に大きいため、エラーを発見するための時間コストは非常に高くなります。コードがバックグラウンドでトレーニング用に残され、何か問題が発生しても誰も気付かないこともあります...

PyTea は、モデル コードを実行する前に形状エラーを分析できるため、この問題を効果的に回避できます。

ネットユーザーの間ではすでに熱い議論が巻き起こっている。

PyTea はどのように機能し、エラーを効果的に検出できますか?

さまざまな制約の影響を受け、コード実行パスは多数存在し、データによってパスも異なります。

したがって、PyTea は、すべての可能な実行パスを静的にスキャンし、テンソルの変更を追跡し、各テンソルの形状の正確で保守的な範囲を推測する必要があります。

上の図は PyTea の全体的なアーキテクチャを示しており、言語の翻訳制約の収集ソルバーの判断フィードバックの 4 つのステップに分かれています。

まず、PyTea は元の Python コードをカーネル言語に変換します。 PyTea 内部表現 (PyTea IR)。

次に、PyTea は PyTea IR の可能なすべての実行パスをトレースし、テンソルの形状に関する制約を収集します。

制約が満たされているかどうかの判断は、オンライン分析オフライン分析の2つのステップに分かれています。

  • node.js (TypeScript/JavaScript) のオンライン プロファイリング: テンソル シェイプ値の不一致と API 関数の誤用を検出します。 PyTea は問題を発見すると、現在の場所で停止し、ユーザーにエラーを報告します。
  • オフライン分析 Z3/Python: オンライン分析に問題がない場合、PyTea は収集された制約を SMT (Satisfiability Modulo Theories) ソルバー Z3 に渡します。ソルバーは、各パスの制約が満たされるかどうかを確認する役割を担います。満たされない場合は、最初のエラー パスの制約をユーザーに返します。

ソルバーが長時間沈黙していると、PyTea は問題があるかどうかを認識せずに返します。

しかし、すべての可能なパスを追跡するのは指数関数的な作業であり、複雑なニューラル ネットワークではパス爆発の問題が必ず発生します。

たとえば、この例では、ネットワークの最終的な構造は 24 個の同一モジュール ブロック (行 17) で構成されているため、可能なパスは最大1600 万通りあります。

したがって、パス爆発に対処する必要があります。PyTea はこれをどのように行うのでしょうか?

PyTea は、このパスの爆発的増加に対処するために、保守的なパスのプルーニングとタイムアウトの判断を選択します。

どのようなパスを剪定できますか?

PyTea が出した答えは、フィードフォワード関数がグローバル値を変更せず、その出力値が分岐条件の影響を受けず、各パスで等しい場合、完全に同一のパスを多数無視して計算リソースを節約できるというものです。

それでもパス プルーニングが機能しない場合は、タイムアウトとしてのみ処理できます。

原則はこれですべてです。試してみる価値はあると思います。コードは現在 GitHub でオープンソースになっています。ぜひチェックしてみてください。

使い方

依存関係:

インストール方法:

次のコマンドを実行します:

<<:  3 つの質問、7 人の CXO、「自動運転」に関するブレインストーミング

>>:  PyTorch | ニューラル ネットワークのトレーニングを最適化する 17 の方法

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

選択が難しいですか?最適な機械学習アルゴリズムの選び方を1つの記事で解説

機械学習アルゴリズムを適用して、関心のある問題を解決したいと考えている初心者/中級のデータ サイエン...

...

マイクロソフトは、劣化が著しい古い写真を復元できる新しいアルゴリズムを開発した。

海外メディアの報道によると、マイクロソフト研究チームのZiyu Wan氏、Zhang Bo氏らは、デ...

...

事故! GoogleのAIがチューリングテストに合格:4つのタスクに成功、うち3つは手動で実行

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

北本重型トラック、易欧、松山湖材料研究所が「易本デュアルカーボン研究所」設立に向けた戦略協力協定を締結

8月4日、中国北方工業集団公司、北奔重型トラック集団有限公司、渤海、松山湖材料研究所は調印式を開催し...

「大学受験5年間・シミュレーション3年間」の大型模型版が登場! 6141 の数学の問題、マルチモーダルの問題

「大学入試5年間・シミュレーション3年間」の数学の問題集が大幅パワーアップして登場! Microso...

AIに「子犬」を認識させますか? Facebookは変化を感知できるAIを構築

[[388981]]今まで見たことのない犬種や色であっても、私たちは一目見てその犬を認識することがで...

必要なのはソースコードだけです! 7Bコードの小型モデルは同サイズでは無敵で、その性能はChatGPTやGoogle Geminiに匹敵する

「GitHub Copilot のようなコード補完ツールは、100 万人以上の開発者に使用されており...

誰もが今から準備すべき、2020 年のキャリアを変える 6 つのテクノロジー トレンド

[51CTO.com クイック翻訳] 新しいテクノロジーの導入により、私たちの職場は変化しています。...

百度がスマートシティ向け「ACE計画」を発表、ロビン・リーはAI思考でインターネット思考に打ち勝ちたい

11月1日、北京で百度世界博覧会2018が開幕した。百度の創業者で会長兼CEOの李克強(ロビン・リー...

人工知能:この冷たい水はちょうどいいタイミングで注がれます!

最近、AI(人工知能)同時通訳詐欺事件をめぐる議論がテクノロジーや翻訳界で話題となり、「AIは人間を...

サービスロボット防疫シリーズ:食品の配達、消毒、誘導などにより、感染症の予防と抑制に貢献

新たな流行が猛烈に迫っており、特に河北省の流行は絶えず捜索されており、人々をパニックに陥れています。...

...