NAS のボトルネックを打破し、新しい方法 AIO-P がタスク全体のアーキテクチャ パフォーマンスを予測します
ファーウェイ ハイシリコン カナダ研究所とアルバータ大学は共同で、事前トレーニングと知識注入に基づいたニューラル ネットワークのパフォーマンス予測フレームワークを立ち上げました。
ニューラル ネットワークのパフォーマンス評価 (精度、再現率、PSNR など) には多くのリソースと時間が必要であり、ニューラル ネットワーク構造検索 (NAS) の主なボトルネックとなっています。初期の NAS 手法では、検索された新しい構造を最初からトレーニングするために多大なリソースが必要でした。近年、効率的な性能評価手法としてネットワーク性能予測手法が注目を集めています。
ただし、現在の予測器は、特定の検索空間からネットワーク構造をモデル化することしかできず、特定のタスクでの新しい構造のパフォーマンスを予測することしかできないため、使用範囲が制限されています。たとえば、トレーニング サンプルには分類ネットワークとその精度のみが含まれるため、トレーニングされた予測子は画像分類タスクにおける新しいネットワーク構造のパフォーマンスを評価するためにのみ使用できます。
この境界を打破し、予測器が複数のタスクで特定のネットワーク構造のパフォーマンスを予測し、タスク間およびデータ間の汎化機能を備えられるようにするために、ファーウェイ HiSilicon Canada Research Institute とアルバータ大学は、事前トレーニングと知識注入に基づいたニューラル ネットワークのパフォーマンス予測フレームワークを共同で導入しました。このフレームワークは、ニューラル ネットワーク構造検索のための分類、検出、セグメンテーションなどのさまざまな種類の CV タスクで、さまざまな構造および種類のネットワークのパフォーマンスを迅速に評価できます。研究論文がAAAI 2023に採択されました。
- 論文リンク: https://arxiv.org/abs/2211.17228
- コードリンク: https://github.com/Ascend -Research/AIO-P
AIO-P (オールインワン プレディクター) アプローチは、ニューラル プレディクターの範囲を分類を超えてコンピューター ビジョン タスクに拡張することを目的としています。 AIO-P は、K-Adapter テクノロジーを利用して、タスク関連の知識を予測子モデルに注入し、また、さまざまなパフォーマンス指標や分布に適応するために FLOP (浮動小数点オペランド) に基づいたラベル スケーリング メカニズムを設計します。 AIO-P は、独自の擬似ラベル付けスキームを使用して K-Adapter をトレーニングし、わずか数分で新しいトレーニング サンプルを生成します。実験結果は、AIO-P が強力なパフォーマンス予測機能を示し、いくつかのコンピューター ビジョン タスクで優れた MAE および SRCC 結果を達成することを示しています。さらに、AIO-P は、これまでにないネットワーク構造を直接移行してパフォーマンスを予測することができ、NAS と連携して、パフォーマンスを低下させることなく既存のネットワークの計算量を最適化することができます。
方法の紹介
AIO-P は、複数のタスクに一般化できる一般的なネットワーク パフォーマンス予測ツールです。 AIO-P は、予測子の事前トレーニングとドメイン固有の知識の注入を通じて、タスクと検索スペースにわたるパフォーマンス予測機能を実現します。 AIO-P は、K-Adapter テクノロジーを使用してタスク関連の知識を予測器に注入し、共通の計算グラフ (CG) 形式に依存してネットワーク構造を表現し、最終的には図に示すように、さまざまな検索スペースやタスクからネットワークをサポートできるようにします。以下の図 1 に示されています。
図 1. AIO-P がさまざまなタスクに使用されるネットワーク構造をどのように表現するか
さらに、疑似マーキング メカニズムAIO-P を使用すると、K-Adapter をトレーニングするための新しいトレーニング サンプルを迅速に生成できます。異なるタスクのパフォーマンス測定範囲間のギャップを埋めるために、AIO-P は、クロスタスク パフォーマンス モデリングを実現する FLOP に基づくラベル スケーリング方法を提案しています。広範な実験結果は、AIO-P がトレーニング サンプルを必要とせず、または少量の微調整のみで、姿勢推定やセグメンテーションなどのさまざまな CV タスクで正確なパフォーマンス予測を行えることを示しています。さらに、AIO-P は、これまでに見たことのないネットワーク構造でパフォーマンスを正確にランク付けでき、検索アルゴリズムと組み合わせることで Huawei の顔認識ネットワークを最適化するために使用され、パフォーマンスを変化させずに FLOP を 13.5% 以上削減します。この論文は AAAI-23 に受理され、コードは GitHub でオープンソース化されました。
コンピュータ ビジョン ネットワークは、通常、特徴抽出を実行する「バックボーン」と、抽出された特徴を使用して予測を行う「ヘッド」で構成されます。通常、「バックボーン」の構造は特定の既知のネットワーク構造 (ResNet、Inception、MobileNet、ViT、UNet) に基づいて設計されますが、「ヘッド」は分類、姿勢推定、セグメンテーション、などをデザインしました。従来の NAS ソリューションは、「バックボーン」の構造に基づいてサーチ スペースを手動でカスタマイズします。たとえば、「バックボーン」が MobileNetV3 の場合、サーチ スペースには MBConv ブロックの数、各 MBConv のパラメータ (カーネル サイズ、拡張) が含まれる場合があります。 )、チャンネル数など。ただし、このカスタマイズされた検索スペースは普遍的なものではなく、ResNet に基づいて設計された別の「バックボーン」がある場合、既存の NAS フレームワークでは最適化できず、検索スペースを再設計する必要があります。
この問題を解決するために、AIO-P はさまざまなネットワーク構造を計算グラフ レベルで表現することを選択し、あらゆるネットワーク構造の統一表現を実現しました。図 2 に示すように、計算グラフ形式により、AIO-P はヘッダーとバックボーンを一緒にエンコードしてネットワーク構造全体を表現できます。これにより、AIO-P は、さまざまなタスクでさまざまな検索スペース (MobileNet や ResNet など) からネットワークのパフォーマンスを予測することもできます。
図 2. 計算グラフ レベルでの MobileNetV3 の Squeeze-and-Excite モジュールの表現
AIO で提案P 予測子の構造は、画像分類ネットワークのパフォーマンスを予測する単一の GNN 回帰モデル (図 3、緑色のブロック) から始まります。検出やセグメンテーションなどの他の CV タスクの知識を追加するために、研究では元の回帰モデルに K アダプター (図 3、オレンジ色のブロック) を接続しました。 K アダプターは新しいタスクからのサンプルでトレーニングされますが、元のモデルの重みは凍結されます。したがって、この研究では、複数の K アダプター (図 4) を個別にトレーニングして、複数のタスクからの知識を追加します。
図 3. K アダプターを使用した AIO-P 予測器
図 4. 複数の K アダプターを使用した AIO-P 予測器
各 K アダプターのトレーニングのコストをさらに削減するために、この研究では賢い擬似ラベル付け技術を提案します。この手法では、潜在サンプリング スキームを使用して、異なるタスク間で共有できる「ヘッド」モデルをトレーニングします。その後、共有ヘッドをサーチ スペース内の任意のネットワーク バックボーンと組み合わせ、微調整して 10 ~ 15 分で疑似ラベルを生成できます (図 5)。
図 5. 異なるタスク間で共有できる「頭」モデルのトレーニング
実験によって次のことが証明されています。共有ヘッドの使用 取得された擬似ラベルは、ネットワークを 1 日以上最初からトレーニングして得られた実際のパフォーマンスと正の相関があり、ランク相関係数が 0.5 (スピアマン相関) を超える場合もあります。
さらに、タスクが異なれば、パフォーマンス指標も異なります。これらのパフォーマンス指標には、通常、独自の特定の配信間隔があります。たとえば、特定のバックボーンを使用する分類ネットワークの分類精度は、ImageNet では約 75% ですが、MS-COCO オブジェクト検出タスクの mAP は 30 ~ 35 % である可能性があります。 。これらの異なる間隔を説明するために、この研究では、正規化の概念に基づいた正規分布からネットワークのパフォーマンスを理解する方法を提案します。平たく言えば、予測値が 0 の場合、ネットワーク パフォーマンスは平均的です。> 0 の場合、より優れたネットワークです。図 6 に示すように、
#図 6. ネットワーク パフォーマンスを正規化する方法
ネットワークの FLOP は、モデル サイズ、入力データ、および一般に、パフォーマンス関連の傾向と正の相関があります。この研究では、FLOP 変換を使用して、AIO-P が学習するラベルを強化します。 実験と結果この研究では、まず人間の姿勢推定と物体検出タスクに関して AIO-P をトレーニングし、次にそれを使用して姿勢推定を含む複数のタスクにおけるネットワーク構造のパフォーマンスを予測しました ( LSP および MPII)、検出(OD)、インスタンス セグメンテーション(IS)、セマンティック セグメンテーション(SS)、およびパノラマ セグメンテーション(PS)。ゼロショット直接移行の場合でも、AIO-P を使用して、これらのタスクに関するワンスフォーオール (OFA) 検索スペース (ProxylessNAS、MobileNetV3、および ResNet-50) からネットワークのパフォーマンスを予測し、最終的な予測を行います。結果 1.0% 未満の MAE と 0.5 を超える順位相関が達成されました。AIO-P は、FLOP 変換を利用することで、3 つの DeepLab セマンティック セグメンテーション モデル ライブラリでほぼ完璧な SRCC を達成し、4 つすべての分類モデル ライブラリで正の SRCC を取得し、EfficientNet モデルで SRCC=1.0 を達成できます。
最後に、AIO-P の中心的な動機は、AIO-P を検索アルゴリズムと組み合わせて、それを使用して任意のネットワーク構造を最適化できることです。既知のモデルの検索空間またはライブラリの構造、またはトレーニングされたことのないタスクの構造にさえ属します。この研究では、AIO-P とランダム変異検索アルゴリズムを使用して、ファーウェイの携帯電話で使用されている顔認識 (FR) モデルを最適化しました。結果は、AIO-P がパフォーマンス (精度) を維持しながら、モデル計算の FLOP を 13.5% 以上削減できることを示しています。 (Pr) およびリコール (Rc))。
興味のある読者は、論文の原文を読んで研究の詳細を学ぶことができます。
以上がNAS のボトルネックを打破し、新しい方法 AIO-P がタスク全体のアーキテクチャ パフォーマンスを予測しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java フレームワークの商用サポートのコスト/パフォーマンスを評価するには、次の手順が必要です。 必要な保証レベルとサービス レベル アグリーメント (SLA) 保証を決定します。研究サポートチームの経験と専門知識。アップグレード、トラブルシューティング、パフォーマンスの最適化などの追加サービスを検討してください。ビジネス サポートのコストと、リスクの軽減と効率の向上を比較検討します。

PHP フレームワークの学習曲線は、言語熟練度、フレームワークの複雑さ、ドキュメントの品質、コミュニティのサポートによって異なります。 PHP フレームワークの学習曲線は、Python フレームワークと比較すると高く、Ruby フレームワークと比較すると低くなります。 Java フレームワークと比較すると、PHP フレームワークの学習曲線は中程度ですが、開始までの時間は短くなります。

軽量の PHP フレームワークは、サイズが小さくリソース消費が少ないため、アプリケーションのパフォーマンスが向上します。その特徴には、小型、高速起動、低メモリ使用量、改善された応答速度とスループット、および削減されたリソース消費が含まれます。 実際のケース: SlimFramework は、わずか 500 KB、高い応答性と高スループットの REST API を作成します。

ベンチマークによると、小規模で高性能なアプリケーションの場合、Quarkus (高速起動、低メモリ) または Micronaut (TechEmpower に優れた) が理想的な選択肢です。 SpringBoot は大規模なフルスタック アプリケーションに適していますが、起動時間とメモリ使用量が若干遅くなります。

明確で包括的なドキュメントを作成することは、Golang フレームワークにとって非常に重要です。ベスト プラクティスには、Google の Go コーディング スタイル ガイドなど、確立されたドキュメント スタイルに従うことが含まれます。見出し、小見出し、リストなどの明確な組織構造を使用し、ナビゲーションを提供します。スタート ガイド、API リファレンス、概念など、包括的で正確な情報を提供します。コード例を使用して、概念と使用法を説明します。ドキュメントを常に最新の状態に保ち、変更を追跡し、新機能を文書化します。 GitHub の問題やフォーラムなどのサポートとコミュニティ リソースを提供します。 API ドキュメントなどの実践的なサンプルを作成します。

アプリケーションのシナリオに基づいて最適な Go フレームワークを選択します。アプリケーションの種類、言語機能、パフォーマンス要件、エコシステムを考慮します。一般的な Go フレームワーク: Jin (Web アプリケーション)、Echo (Web サービス)、Fiber (高スループット)、gorm (ORM)、fasthttp (速度)。実際のケース: REST API (Fiber) の構築とデータベース (gorm) との対話。フレームワークを選択します。主要なパフォーマンスには fasthttp、柔軟な Web アプリケーションには Jin/Echo、データベース インタラクションには gorm を選択してください。

Go フレームワーク開発における一般的な課題とその解決策は次のとおりです。 エラー処理: 管理にはエラー パッケージを使用し、エラーを一元的に処理するにはミドルウェアを使用します。認証と認可: サードパーティのライブラリを統合し、資格情報を確認するためのカスタム ミドルウェアを作成します。同時処理: ゴルーチン、ミューテックス、チャネルを使用してリソース アクセスを制御します。単体テスト: 分離のために getest パッケージ、モック、スタブを使用し、十分性を確保するためにコード カバレッジ ツールを使用します。デプロイメントとモニタリング: Docker コンテナを使用してデプロイメントをパッケージ化し、データのバックアップをセットアップし、ログ記録およびモニタリング ツールでパフォーマンスとエラーを追跡します。

Go フレームワークの学習には、フレームワークへの過度の依存と柔軟性の制限という 5 つの誤解があります。フレームワークの規則に従わない場合、コードの保守が困難になります。古いライブラリを使用すると、セキュリティと互換性の問題が発生する可能性があります。パッケージを過度に使用すると、コード構造が難読化されます。エラー処理を無視すると、予期しない動作やクラッシュが発生します。
