顔認識のリアルタイム パフォーマンスを向上させるために、私たちのチームは従来のニューラル ネットワーク フレームワークの推論を統合された TensorRT 加速推論にアップグレードしました。実験的な比較により、TensorRT FP16 モード推論によって高速化された顔認識は、ほぼロスレスの精度を実現するだけでなく、一部のシナリオでは精度が向上し、認識速度は元の 2.3 倍に増加しました。顔認識の統合加速推論は、顧客に高品質で応答性の高いサービスを提供できるだけでなく、AIサーバーリソースの利用率を向上させ、サービスコストを削減し、さまざまなモデルの推論の統合と統一に役立ちます。 1. 目的と背景 まず、定量的推論の出現により、顔認識サービスの応答速度を向上させ、顧客に優れたサービス体験を提供するための選択肢が増えます。 第二に、さまざまなビジネス ニーズに対応するニューラル ネットワーク モデルは、さまざまなニューラル ネットワーク フレームワークでトレーニングおよび生成される可能性があります。たとえば、顔検出には TensorFlow、顔認識には MxNet、ポートレート生成には PyTorch が使用されます。すべてのオンライン サービスが推論にディープラーニング フレームワークを使用する場合、サーバーに複数のフレームワークを展開する必要があります。統合された推論エンジンと比較すると、複数のフレームワークは構造の最適化やデータ間の通信に役立たず、アップグレードとメンテナンスのコストが増加します。 最後に、AI サービスの需要が高まる中、応答性の高いサービス品質を確保するために、企業はより多くのサーバー リソース、特に GPU サーバーを購入する必要があります。サーバーリソースの利用率を向上させ、それに伴うサービスコストを削減することも緊急のニーズとなっています。モデルの量子化と推論により、コンピューティングとストレージのリソース使用量を削減できる一方、推論の高速化により、サーバーのリソース使用量も削減できます。 上記のような背景を踏まえ、当チームでは既存の定量推論サービスとディープラーニング推論サービスに関する研究と実験を実施しました。 2. 関連技術 1. テンソルRT TensorRT とは何ですか? TensorRT は、高性能なディープラーニング推論用に Nvidia が開発した SDK です。高性能ニューラル ネットワーク推論オプティマイザーと本番環境展開用のランタイム エンジンが含まれています。 TensorRT を使用すると、すべての主要なディープラーニング フレームワークでトレーニングされたニューラル ネットワーク モデルを最適化し、低精度に対して高精度に調整し、最終的にハイパースケール データ センター、組み込みデバイス、または自動車製品プラットフォームに展開できます。図1に示すように: TensorRT は、レイヤーを融合してカーネルを最適化することでネットワークを最適化し、レイテンシ、スループット、電力効率、メモリ消費を改善します。アプリケーションで指定されている場合は、ネットワークをより低い精度で動作するように最適化し、パフォーマンスをさらに向上させ、メモリ要件を削減します。図2に示すように: TensorRT は、ビデオ ストリーミング、音声認識、推奨、自然言語処理などのディープラーニング推論アプリケーションの本番環境展開向けに INT8 および FP16 の最適化を提供します。精度を下げた推論により、多くのリアルタイム サービス、自動運転、組み込みアプリケーションに必要なアプリケーションのレイテンシを大幅に削減できます。 ① 低精度推論 MxNet、TensorFlow、PyTorchなどの既存のディープラーニングフレームワークでは、モデルをトレーニングする際に重み、バイアス、活性化値などを表すためにFloat 32(略してFP32)精度を使用するのが一般的です。ResNetやVGGなどのネットワークでは、ネットワーク層の数が徐々に増えるため、パラメータ計算量が非常に大きくなります。推論プロセス中に FP32 精度を使用すると、このような大量の計算には時間がかかり、リソースも消費されます。コンピューティング リソースが限られているモバイル デバイスや組み込みデバイスの場合、このような大量のコンピューティングは想像もできない、あるいは実行不可能です。 推論を展開するときに INT8 や FP16 などの低精度データを使用することは、大規模なコンピューティング ワークロードを解決し、推論速度を向上させる方法です。もちろん、計算量の多い問題を解決するためにモデル圧縮などの方法もあります。ただし、私たちのアプローチは、モデル推論フェーズ中の最適化に重点を置いています。 すると、精度の低い数値表現を使用すると元のモデルの精度が低下するのではないかという疑問が生じます。結局のところ、表 1 に示すように、さまざまな精度のダイナミック レンジは大きく異なります。 多くの学者が経験レベルでの精度低下の問題について対応する分析を行ってきました。例えば、「なぜディープニューラルネットワークには8ビットで十分なのか?」[1]や「TensorRTによる低精度推論」[2]では、推論時に低精度のデータを使用しても推論速度に大きな影響はなく、精度が大幅に向上することが示唆されています。ブログ投稿の著者は、ニューラル ネットワークがデータ サンプル内のパターンの分離可能性を学習すると考えています。同時に、データ内のノイズにより、ネットワークは強力な堅牢性を備えており、入力サンプルのわずかな変更が結果のパフォーマンスにそれほど影響を及ぼさないことを意味します。いくつかの研究では、シナリオによっては、低精度の推論によって結果の精度が向上する可能性があることもわかっています。さらに、「CPU上のニューラルネットワークの速度の向上」[3]と「低精度乗算によるディープニューラルネットワークのトレーニング」[4]という2つの論文では、理論的な分析とデモンストレーションが提供されています。 INT8 はストレージ占有率が低く、スループット率が高いですが、その表現範囲が FP32 とまだ大きく異なるため、実際には FP32 の精度が INT8 の精度に下げられ、つまり、元々 32 ビットで表現されていたテンソルを 8 ビットで表現することになります。これは実際には情報の再エンコード処理に相当し、明らかな精度の低下があってはなりませんが、これは依然として非常に困難です。変換プロセスでは、各レイヤーの入力テンソルとネットワーク学習パラメータを元の FP32 表現から INT8 表現に変換する必要があります。したがって、変換プロセスにおける情報損失を最小限に抑える必要があり、変換方法は単純かつ計算効率が高いものでなければなりません。 TensorRT は、シンプルで効果的な線形量子化変換方式を使用します。すなわち、式(1): FP32 テンソル(T) = FP32 スケール係数 * 8 ビット テンソル(t) + FP32_bias(b) (1) その中で、Nvidiaの研究者は、バイアス項を除去できること、つまり式(2)が成り立つことを証明しました。 FP32 テンソル(T) = FP32 スケール係数 * 8 ビット テンソル(t) (2) 変換プロセスで最も重要なことは、スケール係数を決定することです。最も簡単な方法は、図3の左側に示すように、FP32テンソル値の-|max|と|max|の値を、INT8に対応する-127と127に直接マッピングすることです。その間の値は線形にマッピングされます。この方法は、飽和マッピングなしとも呼ばれます。しかし、実験により、この方法では精度が大幅に低下することが分かりました。そのため、TensorRT の開発者は、図 3 の右側に示すように、彩度マッピングと呼ばれる方法を採用しました。 非飽和マッピングと比較すると、両端の ±|max| 値は ±127 に直接マッピングされなくなりました。代わりに、しきい値 |T| が選択され、±|T| が ±127 にマッピングされます (|T| < |max|)。区間[-|T|、|T|]外の値は、±127に直接マッピングされます。たとえば、図3の3つの赤いx点は、-127に直接マッピングされます。区間[-|T|、|T|]内の値は線形にマッピングされます。 TensorRT 開発者は、ネットワーク推論プロセスに関与する重みと活性化値に関する実験を行い、重みの飽和マッピングでは不飽和マッピングと比較して精度が向上しない一方で、活性化値の飽和マッピングでは精度が大幅に向上することを発見しました。そのため、TensorRT では、重みには不飽和マッピング方式が使用され、活性化値には飽和マッピング方式が使用されます。 では、なぜ非飽和マッピング法は飽和マッピング法に比べて精度が向上するのでしょうか?さらに、非飽和マッピングで T を選択するにはどうすればよいでしょうか?まず、右の図を見てみましょう。この図は、resnet-152 ネットワークモデルの中間層の活性化値の統計を示しています。横軸は活性化値、縦軸は統計量の正規化された表現です。 図4の白線の左側の活性化値は集中して重なり合っているのに対し、白線の右側(閾値T線に相当)の活性化値、つまり赤枠内の活性化値は比較的分散しており、赤枠内の活性化値がレイヤー全体に占める割合は比較的小さいため、図の右側に示すように、マッピング関係においてこの部分は無視できることがわかります。研究により、ほとんどのネットワークは、ほとんどの活性化値が集中し、少数の活性化値が分散しているという特性を持っていることがわかりました。 T値はFP32モードからINT8モードへの変換による情報損失を最小限に抑える必要があり、情報損失は式(3)に示すようにKLダイバージェンス(相対エントロピーとも呼ばれる)によって測定できる。 KL_divergence(P, Q) := SUM( P[i] * log( P[i] / Q[i] ), i) (3) ここで、P と Q はそれぞれ FP32 モードと INT8 モードでの分布を表します。テンソルの各層に対応する T 値は異なり、T 値を決定するプロセスはキャリブレーションと呼ばれます。キャリブレーションの原理図を図 5 に示します。 まず、キャリブレーション データセットに対して FP32 推論を実行し、各レイヤーのアクティベーション値のヒストグラムを取得し、異なる量子化しきい値を使用して対応する量子化分布を生成する必要があります。量子化しきい値は、上記の活性化値ヒストグラムのようなものです。等間隔の点線に対応する活性化値が量子化しきい値です。必要な T 値は、KL ダイバージェンスを最小化できるこれらの点線の活性化値です。このキャリブレーションにはある程度の時間がかかるため、量子化を実行するたびに、キャリブレーションによって得られた T 値が対応するファイルに保存されます。次回 FP32 から INT8 への推論モード変換を実行するときに、各レイヤーの T 値を保存したファイルが直接読み込まれるため、プロセス全体の時間を節約できます。 キャリブレーション データセットが活性化値の分布に直接影響し、T 値の選択にも影響することは明らかです。キャリブレーション データセットは代表的で多様性に富んでいる必要があります。たとえば、画像分類アプリケーションでは、キャリブレーション データセットはすべての分類ターゲットを表現できる必要があります。検証データセットのサブセットは理想的なキャリブレーション セットです。もちろん、すべてのデータをキャリブレーションに使用するのが元のデータ分布を反映する最善の方法ではないかと疑問に思う人もいるかもしれません。ただし、これによりプロセス全体の時間が長くなり、研究と実験により、キャリブレーション セットに必要なサンプルは 1,000 個だけであることがわかっています。 TensorRT INT8 量子化のパフォーマンスと精度、図 6 と 7 は Nvidia の公式 PPT からの抜粋です。 上記の図 6 と 7 から、調整された INT8 推論は、FP32 推論と比較して精度がわずかに低下していることがわかります。また、場合によっては (図 6 の表で緑色で表示)、INT8 推論の精度が FP32 推論と比較してわずかに向上していることもわかります。さらに、キャリブレーション データセット内の画像数が増えるにつれて、FP32 に対する INT8 の精度損失が徐々に減少する傾向が見られます。パフォーマンス グラフから、さまざまな推論バッチ サイズ設定での INT8 推論と FP32 推論の高速化率を比較できます (実際の推論のバッチ サイズとキャリブレーション プロセスのバッチ サイズは一致している必要がないことに注意してください)。図からわかるように、バッチサイズが大きいほど加速効果は高くなります。バッチサイズが128の場合、加速率は約3.5倍になります。もちろん、実際の加速率はハードウェアプラットフォームとニューラルネットワーク自体にも関係します。速度の向上に加えて、低精度推論では、図 8 に示すように、FP32 と比較してストレージ消費も最適化されています。 図 8 の INT8 on P40 は、P40 グラフィック カードでの INT8 推論を意味します。FP32 推論モードと比較すると、メモリ使用量が 3 倍以上削減され、速度が 3 倍以上向上していることがわかります。 FP16 モードでは、メモリ使用量も 30% 削減され、速度もほぼ 2 倍になります。 もちろん、上記の実験比較テストはすべて Nvidia の公式によるものです。実際のディープラーニング シナリオに関しては、精度の低下と速度の向上を比較するための実験をまだ行う必要があります。第 3 章では、TensorRT を使用して顔認識を高速化する私たちのチームの実験プロセスと効果、および実装で発生した問題と解決策について概説します。 ② ニューラルネットワークの最適化 TensorRT は、FP16 と INT8 という 2 つの低精度モードでの推論をサポートすることで速度を向上させるほか、最下層の GPU の特性に応じてニューラル ネットワークを再構築し、最適化します。 1 つ目は、不要な計算を避けるために、出力が使用されないレイヤーをいくつか削除することです。次に、ニューラル ネットワーク内で統合できるいくつかの操作を統合します。たとえば、図 9 に示す元のネットワークでは、TensorRT は conv、bias、relu の 3 つのレイヤーを 1 つのレイヤー、つまり図 10 に示す CBR レイヤーに統合します。この統合操作は、垂直レイヤー融合とも呼ばれます。さらに、水平層の融合があり、つまり、図10から図11までのプロセスに示すように、同じ水平レベルにある1x1CBRが融合されます。 2. 推論サーバー Inference Server は、機械学習モデルのワンストップ管理、推論サービス、統合などの機能を提供する高性能モデル サービス システムです。以下では、いくつかの一般的な推論サーバーについて簡単に紹介します。 ① TensorFlow サービング TensorFlow Serving は、Google の TensorFlow チームによって開発され、本番環境向けに設計された、柔軟で高性能な機械学習モデル サービング システムです。機械学習の推論に関しては、トレーニング済みのモデルのライフサイクル管理を実行し、高性能の参照カウントされたルックアップ テーブルを通じてクライアントにバージョン管理されたアクセスを提供できます。 TensorFlow モデルとのすぐに使用できる統合が提供され、他のモデルにも拡張できます。モデルが TensorFlow トレーニングによって生成される場合は、TensorFlow Serving を使用するのが最も便利です。詳細については、https://github.com/tensorflow/serving を参照してください。 ② MMS(マルチモデルサーバー) マルチモデル サーバー (MMS) は、任意の ML/DL フレームワークを使用してトレーニングされたディープラーニング モデルに推論サービスを提供する、柔軟で使いやすいツールです。これは Amazon の AWSlab によって開発されたモデル推論ツールで、元々は MxNet Model Server と呼ばれていました。 Amazon は主に MxNet をサポートしているため、MMS は MxNet に対してより優れた最適化が行われ、MxNet の機能に対するより積極的なサポートが提供されます。詳細については、https://github.com/awslabs/multi-model-server を参照してください。 ③ TensorRT推論サーバー 上記で紹介した TensorFlow Serving と MMS はどちらもディープラーニング フレームワーク ベンダーによってリリースされており、それぞれのディープラーニング フレームワークに対するサポートもそれに応じて向上します。 TensorRT Inference Server (最新バージョンは Nvidia Triton Inference Server と呼ばれます) は、グラフィック カード メーカーの Nvidia が開発したディープラーニング モデル推論サーバーです。 Nvidia GPU 向けに最適化されています。サーバーは、HTTP または GRPC エンドポイントを通じて推論サービスを提供できます。最大の特徴は、複数のフレームワークをサポートしていることです。TensorRT自体が生成したモデルだけでなく、TensorFlow、Caffe2、ONNX、PyTorchのモデルもサポートしています。また、混合モデルの推論や、異なるフレームワークのモデルの同時推論もサポートします。これは、推論サービスをニューラル ネットワーク フレームワークから分離するというビジネス ニーズとよく一致しています。詳細については、https://github.com/NVIDIA/triton-inference-server を参照してください。 ここでは、一般的な推論サーバーについて簡単に紹介します。もちろん、TorchServe など他のメーカーの推論サーバーもあります。https://github.com/pytorch/serve を参照してください。 3. TensorRTが顔認識を高速化する 1. TensorRT の典型的な INT8 ワークフロー: まず、FP32 モードでトレーニングされたモデル ファイルとキャリブレーション データセットが必要です。次: ① TensorRTはキャリブレーションセットに対してFP32推論を実行します。 ②各ネットワーク層の対応するアクティベーション値の統計を取得します。 ③各層に対応する最適な閾値Tを取得し、最適な量子化係数を取得するためのキャリブレーションアルゴリズムを実装する。 ④ FP32の重みをINT8モードに量子化します。 ⑤対応するキャリブレーションテーブル(CalibrationTable)とINT8実行エンジンを生成します。 2. TensorRT を高速化する際に注意が必要な問題: ①ディープラーニングフレームワークとTensorRTの統合度合いが異なる 上記のように TensorRT 推論アクセラレーションを実装するには、まず FP32 モードでトレーニングされたニューラル ネットワーク モデルが必要です。 INT8 推論を実行する場合は、通常は検証セットのサブセットであるキャリブレーション データセットも必要です。さまざまなディープラーニング フレームワークと TensorRT の統合とサポート レベルが異なるため、TensorRT を統合した TensorFlow と MATLAB を除き、ディープラーニング フレームワークによって生成されたほとんどのモデルは、ONNX 形式で TensorRT にインポートする必要があります。図12に示すように: TensorFlow は TensorRT との統合のための API を実装しているため、TensorFlow コードから推論バックエンドとして TensorRT を指定できます。TensorRT は、TensorFlow によって生成されたモデル ファイルを解析するための TensorFlow Parser も実装しています。 PyTorch と MXNET では、トレーニング中にモデル ファイルを ONNX 形式で保存するか、元のモデル ファイルをフレームワークにインポートしてから ONNX 形式で保存する必要があります。もちろん、これらのディープラーニング フレームワークも TensorRT のサポートと統合を進めています。たとえば、MXNET の新しいバージョン 1.60 では、推論を高速化するために TensorRT の呼び出しが実装されていますが、現在のバージョンでは FP16 推論のみがサポートされており、INT8 推論はサポートされていません。もちろん、フレームワークに用意されているTensorRTインターフェースを高速化のために使うことには利点がありますが、それに伴う問題も生じます。利点は、より便利になり、変換などの中間プロセスが減ることですが、それでもフレームワーク自体から切り離すことはできません。これは、統合推論エンジンを使用し、ディープラーニングフレームワーク自体から切り離すという出発点に反しています。 ② TensorRTはニューラルネットワークの演算子とレイヤーをサポートします 現在業務で使用している顔認識はmxnetフレームワーク上で実装されているため、TensorRT FP32、FP16、INT8の3つのモードでその精度低下と高速化効果を実現し比較します。まず、元の mxnet 形式 (.params + .json) のモデル ファイルを mxnet にインポートし、次に mxnet 内の onnx インターフェイスを使用してモデル ファイルを onnx 形式に変換します。ここで注意すべき点は、Mxnet モデルを onnx 形式にエクスポートするには、mxnet バージョン 1.3.0 以上をインストールする必要があり、対応するコンポーネント onnx もバージョン 1.2.1 が必要であることです。ただし、onnx バージョン 1.3.0 もテスト済みで、動作しています。詳細についてはMxNetの公式チュートリアル「ONNX形式へのエクスポート」[5]を参照してください。 onnx-1.2.1 バージョンで生成された onnx ファイルは、デフォルトでバージョン V7 の onnx 演算子を使用しますが、onnx バージョン 1.3.0 で生成された onnx ファイルは、バージョン V8 の onnx 演算子をサポートします。 onnx オペレータの異なるバージョンは異なるオペレータをサポートし、同じオペレータであっても、異なるバージョンでは内部実装が異なる場合があります。 TensorRTのバージョンによってサポートされるONNX演算子は異なります。MXNetのONNX演算子サポートの詳細については、ONNX演算子カバレッジ[6]を参照してください。 TensorRTのONNX演算子のサポートについては、「サポートされているONNX演算子」[7]および「TensorRTサポートマトリックスガイド」[8]を参照してください。 私たちのチームは、TensorRT を使用して顔認識 onnx モデルを TensorRT 対応モデル ファイル (.trt) に変換するときに、オペレーターのサポートの問題に遭遇しました。 mxnet によって生成された onnx モデル ファイルを TensorRT にインポートした後、TRT ファイルを正常にエクスポートできません。その後、調査の結果、問題は Prelu 演算子に対する TensorRT のサポート モードにあることが判明しました。これら 2 つの Prelu モードの違いは、Netron (ニューラル ネットワーク視覚化ツール) を通じて明確に確認できます。図13に示すように: 緑の太線の左側にある PRelu は、mxnet でサポートされているモードです。これは、mxnet によって onnx にエクスポートされるデフォルトの PRelu モードです。緑の太線の右側にある Reshape 付きの PRelu は、TensorRT でサポートされているモードです。この目的のために、mxnet の対応する onnx 変換のソース コードを手動で変更し、エクスポートされた onnx ファイルの Prelu を図の右側のモードに変更しました。さらに、チームは、他のディープラーニング タスクを onnx 形式に変換するときに、softmaxactivation、アップサンプリング、クロップなどの演算子のサポート問題にも遭遇しました。 mxnet のソースコードを変更するだけでなく、元のニューラル ネットワーク構造を変更して TensorRT をサポートし、モデルを再トレーニングすることもできます。ただし、一部のビジネス シナリオでは、モデルの再トレーニングに多くの時間と労力がかかります。また、TensorRT が提供するプラグイン関数を使用して、サポートされていない演算子やネットワーク レイヤーの解析を自分で実装することもできます。 ③ グラフィックカードによってサポートされるコンピューティングモードが異なる アーキテクチャと機能の違いにより、グラフィック カードによって FP16、INT8、INT4 のサポートが異なり、FP32 に対する実際の加速効果も異なります (図 14 の表を参照)。 図 14 では、N/A はサポートされていないことを意味し、2x、4x、8x はそれぞれこのモードでの高速化率が FP32 モードに比べて 2 倍、4 倍、8 倍であることを示します。たとえば、表からわかるように、Tesla P100 は FP32 と FP16 をサポートしていますが、INT8 と INT4 のアクセラレーションはサポートしていません。 Tesla P40 は INT8 をサポートしていますが、FP16 はサポートしていません。 NVIDIA の新しい Turing アーキテクチャ (表のチップは tu102 と tu104) カードでは、FP16、INT8、および INT4 が完全にサポートされています。 TensorRT で高速化された顔認識の公平性を保証するために、私たちのチームは Tesla T4 の FP32、FP16、および INT8 で実験を実施しました。言及する価値のあるもう 1 つの点は、さまざまなモデルのグラフィック カードで生成された TensorRT 推論エンジン ファイル (TRT) が汎用的ではないことです。たとえば、Tesla P40 で生成された TRT ファイルは Tesla P100 では実行できず、その逆も同様です。 3. TensorRTによる高速化後の顔認識の効果 テスト セット: 顧客フロー クラウド システムのフロントエンド カメラによって収集された 506 枚の従業員の写真。 キャリブレーション セット: LFW、INT8 モードではキャリブレーションが必要、FP16 モードではキャリブレーションは不要。 テストプラットフォーム: Nvidia Tesla T4; 関連設定: キャリブレーション バッチ サイズは 64 に設定され、推論バッチ サイズは 1 に設定されています。これは、1 つずつ処理し、処理結果がリアルタイムで返されることを保証する必要がある実際のビジネス シナリオと同じです。 上の図 15 は、TensorRT を使用して顔認識を高速化した当チームの推論効果を示しています。MX は MXNET フレームワークを使用した推論、TR は TensorRT を使用した推論、FP32、FP16、INT8 はそれぞれ対応する推論モードを表します。まず、青い列の部分を見てみましょう。MX FP32をベンチマークとして、FP32精度のTensorRTを使用した場合、推論速度はMX FP32モードの1.557倍になります。この高速化は主に、TensorRTによるニューラルネットワーク内のレイヤーと演算子の対応する融合と最適化によるものです。 TensorRT を FP16 モードと INT8 モードで使用すると、それぞれ 2.296 倍と 3.185 倍の高速化が実現します。オレンジ色の列を見ると、TR FP32 に比べて TR FP16 と TR INT8 が 1.475 倍高速化しているのは、主に FP32 に比べて FP16 と INT8 の計算効率が高く、合格率も高いためです。 INT8 アクセラレーションの効果は非常に満足のいくものです。速度が向上するだけでなく、メモリ使用量も削減されます。サービスが向上するだけでなく、対応するリソース コストも削減されます。 私たちの目標は、可能な限り元の精度を維持しながら高速化を実現することです。その後の精度比較実験では、FP16 モードでは精度の低下がほとんどなく、場合によってはわずかに精度が向上する一方で、INT8 モードでは精度の低下がわずかに大きいことがわかりました。チームは総合的に検討した結果、推論を加速するために TensorRT FP16 モードをオンラインで展開する予定です。FP16 モードは、ロスレス精度、優れた加速効果、比較的使いやすい (キャリブレーション不要) という特徴があります。また、FP16 モードは NVIDIA の He Kun 氏も推奨しています。 IV. 結論 Keliuyun のサービス速度を向上させ、対応するサービスコストを削減するために、私たちのチームは関連する定量的推論加速ソリューションを調査および実験し、TensorRT を使用して、精度を損なうことなく顔認識サービスの推論速度を元の速度の 2.3 倍に向上させました。統合された推論バックエンドは TensorRT であり、これにより、さまざまなニューラル ネットワーク フレームワーク モデルを後で統合することも可能になり、ビジネス展開のコストと手間が削減されます。注目すべき主な課題は、オペレーター向けのニューラル ネットワーク フレームワーク、ONNX、TensorRT のサポートです。さらに、独自のビジネス シナリオ実験の定量的推論を組み合わせて、精度を損なうことなく対応する高速化を確保する必要があります。これは、他の AI サービスのその後の高速化にも貴重な経験をもたらします。 |
<<: オブジェクト ストレージが AI と機械学習に適している 3 つの理由!
クラウド向けに最適化された機械学習および分析のための最新プラットフォームを提供する Cloudera...
最近、IBMは人工知能、スマートセンサー、スマート望遠鏡、検出器、医療機器の開発という5つの側面から...
C# データ構造とアルゴリズムのシーケンス テーブルとは何ですか?まず、C# のデータ構造とアルゴリ...
AI を活用したクラウド管理ツールはまだ導入の初期段階にありますが、IT 業界の専門家は、このような...
[[252632]]はじめに:最近、「このスクリーンはあなたの運命を変えるかもしれない」という記事が...
私たちの子供たちが今後20年、30年でどのような仕事に就くことになるのかを予測するのは本当に難しいこ...
ディープフェイクの世界では、真実と虚偽を区別することが難しい場合があります。 AIアルゴリズム「ディ...
ノーベル物理学賞を受賞し、宇宙のビッグバン理論を証明したアメリカの物理学者で電波天文学者のアーノ・ア...
この化粧品大手は、視覚障害者が簡単に化粧を行えるよう、AIと拡張現実(AR)技術を活用した音声対応の...
人工知能とロボット工学はテクノロジー分野に大きな変化をもたらしています。 20年前に人々が夢見ていた...