1. 背景近年、人工知能はセキュリティ、教育、医療、観光などの産業や生活の場面に徐々に根付き、繁栄してきました。 Ctripの旅行事業においても、AI技術は複数の観光商品や観光サービス分野を幅広くカバーしています。観光の具体的なシナリオとビジネスニーズに基づき、Ctripの休暇AI研究開発は、自然言語処理、機械翻訳、コンピュータービジョン、検索ソートなどの主流のAI技術を、無料旅行、団体旅行、ビザ、娯楽、レンタカーなど、観光と休暇の複数の事業分野にうまく適用しています。 技術的な観点から見ると、さまざまなビジネスシナリオのニーズに適応するために、従来の機械学習、畳み込みニューラルネットワーク、Transformerなどのディープラーニングモデル構造、ナレッジグラフやグラフニューラルネットワークなどの技術分野を含むさまざまなAIテクノロジーが関与しています。同時に、AI技術の利点を十分に引き出すために、モデルの深さ、幅、構造の複雑さなど、さまざまな次元を含むモデル設計の複雑さが増しています。コンピューティング能力の増加により、AI推論パフォーマンスのボトルネックがますます顕著になり、特にリアルタイムのビジネスニーズでは推論速度に対する要件が高まっています。最高の推論パフォーマンスを追求するには、多くの場合、手動での最適化を 1 つずつ行う必要があり、開発、展開、通信に多大なコストがかかります。主な問題は次のとおりです。
そのため、最適化、展開、反復のコストを削減し、作業効率を向上させ、安定したパフォーマンスを確保するために、モデル自動化最適化プラットフォームの構築に取り組んでおり、アルゴリズムモデルに、より包括的で使いやすく、より安定しており、使用と保守のための低コストの最適化ソリューションを提供することを目指しています。 2. プラットフォームのメインフレームワークを最適化するパフォーマンス最適化方法論の観点から、自動最適化であれ手動最適化であれ、私たちは主に次の 2 つの方向に焦点を当てています。
これら 2 つの最適化の方向性と人工知能の主流の技術の方向性に焦点を当てると、最適化プラットフォームの全体的なアーキテクチャは、下から上に向かって次のように分けることができます。
3. 自動化された最適化プロセス最適化プラットフォームを確立することで、最適化技術を体系的かつ効果的に統合し、実際のニーズに迅速に適用することができます。ただし、自動最適化が実装されていない場合、最適化の効率は比較的低く、展開および反復コスト、通信およびアクセスコストが高くなります。そのため、当社は、サポートされているすべての最適化テクノロジーを網羅する自動最適化プロセスを確立し、モデルトレーニングプラットフォームとデータ注釈プラットフォームを組み合わせて、モデル設計、モデルトレーニングからモデル推論の最適化、モデル展開まで、ゼロ関与と知覚できない最適化効果を実現し、作業効率と全体的な最適化効果の安定性を大幅に向上させました。 図 2 は、データ プラットフォーム、モデル トレーニング プラットフォーム、モデルの最適化と展開の一般的なプロセスを示しています。プロセスを自動化するための具体的な最適化方法とプロセスの詳細は、図 3 に示されています。 4. 機能モジュール自動最適化プラットフォームの主な機能モジュールは、次の 4 つの部分に分かれています。
4.1 高性能演算子ライブラリ このモジュールは、畳み込み、完全接続層、バッチノルム、ソフトマックスなどの基本的な演算子、およびトランスフォーマーエンコーダー、デコーダーなどの統合された古典的なモデル構造を含む、一般的に使用される演算子と活性化関数を主に実装します。これは、TensorFlow に基づいており、C++ で実装されており、CPU および GPU プラットフォームの最適化をサポートしています。 具体的な最適化手法は次のとおりです。
両者を比較すると、最適化後に転置演算が 4 回削減され、メモリ アクセスのオーバーヘッドが削減されたことがはっきりとわかります。同時に、行列乗算の場合、単一の行列乗算演算ではなくバッチ行列乗算を呼び出す方が効率的です。
4.2 モデルの圧縮 モデル圧縮は推論性能を向上させるもう 1 つの効果的な手段です。主にアルゴリズム レベルでのモデル最適化を指します。精度を確保するという前提の下、モデル構造またはパラメータ量を合理的に削減することで、モデル全体の計算の複雑さを軽減するという目的を達成します。 モデル圧縮の主な機能は次のとおりです。
一般的に、現在の最適化プラットフォームでサポートされているモデル圧縮方法には、モデル蒸留、モデルプルーニング、低精度量子化などがあります。 4.2.1 モデルの蒸留 モデル蒸留では転移学習が使用されます。転移学習では、事前トレーニング済みの複雑なモデル (教師モデル) の出力を、別の単純な生徒ネットワーク (生徒モデル) をトレーニングするための監視信号として使用し、モデルを簡素化してモデル パラメータを削減します。モデル蒸留は非常に一般的であり、小さなモデルの精度を効果的に向上させることができますが、パラメータの調整は比較的困難です。主な中核的な問題には、特徴レイヤーの選択方法、損失関数の設計方法、学生モデルの設計方法、およびデータセットの選択方法が含まれます。図 8 は、圧縮フレームワークにおける Transformer デコーダー モデルの蒸留実装を示しています。 総損失関数は次の要素で構成されます。 ここで、α と β は対応する損失値の重み係数を表し、α∈(0,1]、β∈R、Lsoft は教師ネットワークの出力と生徒ネットワーク モデルの出力間の損失値、Lhard - トレーニング データ コーパスの真のラベルと生徒ネットワーク モデルの出力間の損失値、LAT_FMT - 教師ネットワーク モデルと生徒ネットワーク モデルのデコーダーの中間出力コンテンツの損失値であり、段階的な階層蒸留法が採用されています。最終的な推論速度の加速比は 2 倍に達し、精度損失 BLEU 値は許容範囲内 (4%) です。 4.2.2 低精度量子化 低精度の量子化は、コンピュータのハードウェア設計の観点から、データ型を変更し、データの精度を下げることで、プロセスを高速化し、ハードウェア実装に依存することを意味します。量子化には、トレーニング後の量子化 (PTQ トレーニング後の量子化)、トレーニング中の量子化 (QAT、量子化を考慮したトレーニング) など、さまざまな方法があります。 現在、当社の最適化されたプラットフォームは float16 と int8 をサポートしていますが、そのうち int8 量子化は PTQ 方式のみをサポートしています。一般的に、モデルの精度を確保するために、int8 量子化では量子化モデルのキャリブレーションが必要です。キャリブレーション方法は複雑な数学アルゴリズムに依存しています。最も一般的に使用されるのは KL ダイバージェンスです。CV モデルの場合、精度の低下は許容範囲です。 Transformer ベースの NLP モデルの場合、精度の損失が大きく、現在は GPU プラットフォームで float16 実装のみをサポートしています。 float32 と比較すると、ストレージ容量と帯域幅は半分になり、精度はほとんど変わらず、スループットは最大 3 倍に増加します。 4.2.3 モデルの剪定 プルーニングの主な考え方は、重みマトリックス内の比較的「重要でない」重みを削除してから、ネットワークを微調整することです。この方法は単純で、圧縮効果は制御可能ですが、プルーニングの粒度と方法の選択には定義されたルールが必要であり、構造化されていないプルーニング効果は、実装されるハードウェアプラットフォームに依存する必要があります。モデルプルーニングはコンピュータービジョンの分野で広く使用されており、良好な結果が得られています。 図9は典型的な構造化剪定法の例を示しています[4]。 CVモデルでは、元のモデルにbatch_normalレイヤーを追加しました。batch_normalの参考論文2:ChannelPruning for Accelerating Very Deep Neural Networksでは、チャネルを使用してプルーニングを行うことを提案しています。実験は次のとおりです。超解像実験では、元のモデルにbatch_normalレイヤーを追加し、batch_nomalのα値を正規化し、最後にこの値をプルーニングの基準として使用することを検討しました。トレーニング済みモデルのbatch_normalレイヤーのパラメーターαを分析し、同じ方法をさまざまな畳み込みモデルに適用したところ、一部のモデルのパラメーターのほぼ半分が1e-5のオーダーであることがわかりました。また、同じレイヤー内の分布の分散は極めて小さかった。これに基づいて、チャネルレベルでモデルをプルーニングし、微調整トレーニングを実行しました。プルーニング効果は明らかで、モデルサイズは元のサイズの1/4に縮小されました。精度が変わらないという前提で、加速率は4倍に達する可能性があります。 Yolov3モデルの場合、ほとんどのパラメータはそれほど変わらない(MAPが2%削減)ため、限られた数を切り捨てることができるため、精度を維持するためにパラメータ数を半分に減らし、高速化率は約1.5倍になります。 4.3 インターフェース設計 モデル最適化プラットフォームは、プラグアンドプレイのモジュール設計を採用しており、モデルトレーニングプラットフォーム、モデル公開プラットフォームなどにシームレスに接続できます。
具体的な使用方法は図10と図11に示されています。 図 11 は、モデル圧縮モジュールを呼び出す方法を示しています。 5. 最適化の結果機械翻訳のTransformerモデルを例にとると、テストプラットフォームはCPU: Intel(R) Xeon(R) Silver 4210CPU @ 2.20GHz、GPU: Nvidia T4で、固定サンプルの平均応答遅延をテストデータとして使用しています。最適化前後のスピードアップを図12に示します。 本来のパフォーマンスは、Tensorflow1.14をテストベンチマークとして採用し、GPUプラットフォームフレームワーク層の最適化やコンパイル、ランタイムなどの複数の層の最適化によって実現されています。図13は、T4プラットフォームに基づくモデル圧縮と高性能演算子ライブラリの最適化後のTransformer変換モデルの比較です。この図は、トークン長が64の場合の異なるバッチサイズのレイテンシとスループットの改善率を示しています。実際には、トークンが大きくなるほど、float16の利点がより明らかになります。 CPU ハードウェア プラットフォームに基づいて、CV および NLP モデル (yolov3、bert、albert など) に対して優れた最適化効果が達成され、遅延加速比は 5 倍以上に達しました。 VI. 将来の見通しAI 最適化の可能性と需要は非常に大きいです。AI の理論とモデルがますます洗練され、アプリケーション シナリオでモデルの精度やその他の推論サービスの品質に対する要求が高まるにつれて、モデル構造と計算の複雑さは必然的に増加し、推論サービスのパフォーマンス要件は高まるばかりです。コストと効率の観点から、自動最適化は避けられない流れであり、業界も関連する研究を行い、一定の進歩を遂げています。 依然として2つの側面から見ると、どちらも自動最適化の一般的な方向性に基づいています。オペレーター最適化などのシステムレベルの最適化は、最終的にはtvmなどのAIコンパイラーを通じて実装されますが、モデル圧縮はAutoMLのアイデアを使用することに重点を置いています。現在のプラットフォームと実際のニーズに基づいて、構造検索を使用して、要件を満たす最も単純なネットワークを見つけます。もちろん、蒸留やプルーニングなどの現在の従来の圧縮方法も AutoML のアイデアと組み合わせて、同様の効率的な圧縮効果を実現できます。 そのため、当社の自動最適化プラットフォームは、自動最適化の理念に基づき、ビジネスシナリオの要件を総合的に考慮し、業界のより先進的な最適化技術を参考にして、観光シナリオにおけるAIモデルにさらに効率的な最適化ソリューションをもたらし、観光ビジネスにおけるAI技術のより良い実装を促進します。 |
>>: 53 フレームが 900 フレームになります。 AIを使えば高価な高速カメラなしでスローモーションが作れる
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
今年が進むにつれて、持続可能な開発をめぐる話題はますます高まるばかりであり、気候変動が近づいていると...
[[337550]] 2019年末現在、わが国の中核人工知能産業の規模は510億人民元を超え、人工知...
著者: 徐潔成最近、センセーショナルなAlphaGo囲碁ロボットを発売したDeepMindが再び大き...
道路交通自動運転技術の開発と応用の促進に関する運輸省の指導意見:道路交通の自動運転技術の開発と応用を...
人工知能 (AI) は、過去 10 年ほどの間に SF の世界から現実の世界へと移行し、地球上のほぼ...
「ディープラーニングは人工知能を大規模な工業生産の段階に押し上げています。ディープラーニングのフレー...
[[346568]] 1 スケジュールされたタスクNetty、Quartz、Kafka、Linux ...
高速鉄道網がますます充実するにつれ、列車は人々が長距離を移動する際に好まれる交通手段となってきました...
今日は、Java のさまざまなソート アルゴリズムについてお話します。以前、上級開発者との面接があり...
本日は、有名な SemiAnalysis アナリストの Dylan Patel 氏と Daniel ...
従来、パラメータの数が満たすべき方程式の数より多い場合は常に、パラメータ化されたモデルを使用してデー...