Alipay のディープラーニング エンジン xNN を公開

Alipay のディープラーニング エンジン xNN を公開

この記事では、Alipay アプリのディープラーニング エンジンである xNN を紹介します。 xNN は、モデルとコンピューティング フレームワークの両方を最適化することで、モバイル端末でのディープラーニングの実装における一連の問題を解決します。 xNN のモデル圧縮ツール (xqueeze) は、ビジネスモデルで約 50 倍の圧縮率を実現し、パッケージ予算が極めて限られているモバイル アプリにディープラーニング アルゴリズムを大規模に導入することを可能にします。 xNN のコンピューティング パフォーマンスは、アルゴリズム レベルと命令レベルの両方で徹底的に最適化されており、モバイル DL のモデルしきい値が大幅に削減されています。

[[205186]]

ディープラーニング — クラウドかモバイルか?

最近、ディープラーニング(DL)は、画像認識、音声認識、自然言語処理など多くの分野で画期的な進歩を遂げています。 DL というと、複雑な計算や巨大なモデルという印象を受けることが多いが、音声アシスタントの Siri からさまざまなチャット ロボット、Alipay の「五福スキャン」まで、モバイル デバイスでデータを収集し、クラウドで処理することが常識となっているようだ。しかし、多くのアプリケーションにとって、このモデルは実際には無力な選択肢にすぎません。

[[205187]]

昨年の春節期間中の「五福スキャン」キャンペーンでは、手書きの「福」の文字を認識するために、アリペイのマルチメディアチームが約1,000台のサーバーを動員して画像認識モデルを展開した。しかし、この規模の集団は、全国の人々の五福を集めようとする熱意に抵抗することはできませんでした。クラウド コンピューティング容量が過負荷になるのを防ぐため、アクティビティの後半の段階でダウングレード プランを開始する必要がありました。つまり、DL モデルを、計算量が少なくて済むものの精度が低い従来の視覚アルゴリズムに置き換えるというものでした。格下げによって、誰もが熱心にラッキーカードを集め続けることが妨げられるわけではありませんが、ユーザー体験に一定の影響を与えることは間違いありません。たとえば、一部の発音できない漢字も誤って「Fu」という単語と判断されました。

一方、クラウドでDLするということは、データをアップロードする必要があるということです。コンピューティングの負荷を考慮しなくても、ユーザー エクスペリエンスは、ネットワークの遅延、トラフィック、プライバシー保護の観点から、依然としてさまざまな制限を受けます。したがって、多くのアプリケーションでは、DL モデルをモバイル端末に移行して展開することは、厳格な要求と見なすことができます。

2つの大きな課題

最近、携帯電話のプロセッサ性能の向上とモデルの軽量化技術の発展により、モバイル DL はますます実現可能になり、広く注目を集めています。 AppleとGoogleは、それぞれのOS上でDLフレームワークであるCore MLとTensorflow Liteを発表しており、これらは間違いなくモバイルDLの開発を大きく促進するだろう。しかし、特に Alipay のような国内アプリの場合、メーカーのソリューションを直接適用するだけでは解決できない深刻な課題がまだいくつか残っています。

1. 幅広いデバイスモデル: Alipay アプリには数億人のユーザーがおり、そこに実装されているビジネスは、できるだけ多くのユーザーとできるだけ多くのデバイスモデルに高品質のエクスペリエンスを提供する必要があります。 Alipay の場合、Core ML を参照して、一部のハイエンド モデルにのみ機能を開放するのは不適切です。そのため、実行速度やメモリ使用量などのパフォーマンス指標の面でも、互換性の面でも、Alipay のモバイル DL は、使用の敷居を大幅に下げるために最適化する必要があります。

2. 厳格なパッケージ サイズ要件: Alipay アプリには多くのビジネス機能が統合されており、インストール パッケージのリソースは非常に限られています。新しいモデルをインストール パッケージに統合すると、他の機能をオフラインにする必要があることがよくあります。動的に展開された場合でも、DL モデルのサイズはユーザー エクスペリエンスに大きな影響を与えます。モバイル端末の知能化が進むにつれ、端末上で直接実行されるDLアプリケーションが必然的に増えていきますが、現在の単一モデルのサイズが数十MBから数百MBであることを考えると、これはほとんど想像もできません。同時に、モバイル DL エンジン自体の SDK も可能な限りスリムにする必要があります。

5つの主要目標

Alipay xNN は、国内のアプリ環境向けにカスタマイズされたモバイル DL ソリューションです。このプロジェクトでは、次の技術目標を設定しました。

1. 軽量モデル: 効率的なモデル圧縮アルゴリズムにより、アルゴリズムの精度を確保しながらモデルのサイズを大幅に削減できます。

2. 小型エンジン: モバイル SDK の大幅な削減。

3. 高速: 命令層とアルゴリズム層の最適化を組み合わせて、DL コンピューティングの効率を総合的に向上します。

4. ユニバーサル: モデルの適用範囲を最大限にするため、より強力な GPU ではなく、最もユニバーサルな CPU が主要な最適化プラットフォームとして使用されます。従来の CNN および DNN ネットワークをサポートするだけでなく、RNN、LSTM などのネットワーク形式もサポートします。

5. 使いやすさ: ツール チェーンはビジネス フレンドリーであるため、アルゴリズム エンジニアはアルゴリズム自体に集中でき、モデル圧縮やモバイル開発の専門家にならなくても、クラウド モデルからモバイル モデルへの変換と展開を迅速に完了できます。

主な特徴

xNN は、圧縮から展開、実行時の統計監視まで、DL モデルの完全なライフサイクル ソリューションを提供します。 xNN 環境は、開発バックエンドとデプロイメント フロントエンドの 2 つの部分で構成されます。

開発バックエンドは xqueeze ツール チェーンに基づいており、複数のトレーニング フレームワークをサポートしています。企業は xqueeze を使用して独自の DL モデルを圧縮および最適化し、サイズが大幅に削減され、実行速度が大幅に高速化されたモデル バージョンを取得できます。圧縮モデルは、使用シナリオに応じて、アプリのインストール パッケージに組み込むか、オンデマンドで配布することで、モバイル端末に展開できます。

展開のフロントエンドでは、xNN コンピューティング フレームワークが効率的な前方予測機能を提供します。 xNN のアプリケーション層は、コンピューティングに加えて、モデル配信、データ統計、エラーレポートなどのワンストップ機能も提供します。 xNN は、jsapi を介して H5 アプリケーションに直接接続する機能も提供します。DL モデルと H5 の動的な配信により、完全なダイナミズムを実現できるため、クライアントにバージョンをリリースせずにアルゴリズムとロジックの同時更新を完了できます。

上図はxNNの主な特徴を示しています。 xqueeze モデル圧縮に基づいて、xNN はスパース ネットワークを迅速に処理することでパフォーマンスの向上もサポートします。 xNN は、従来の CNN/DNN、SSD ターゲット検出、LSTM など、さまざまなネットワーク構造タイプをサポートしています。 xNN のデプロイメント フレームワークは、Caffe とネイティブに互換性があります。企業は、変換せずに既存の Caffe モデルをモバイル デバイス上で直接実行し、結果を迅速に評価できます。圧縮された独自形式のモデルはサイズが小さく、高速です。 Tensorflow および Keras プラットフォームでトレーニングされたモデルも、元の環境で圧縮し、xNN でサポートされている形式に変換してモバイル端末に展開できます。 Core ML とは異なり、xNN は理論的には Android と iOS 上のすべてのモデルをサポートします。

xqueeze モデル圧縮

xNN-xqueeze のモデル圧縮プロセスは下図 (a) に示されており、ニューロン刈り込み、シナプス刈り込み、量子化、ネットワーク変換、適応ハフマン符号化の合計 5 つのステップが含まれます。最初の 3 つのステップは理論的には損失が伴いますが、xqueeze を使用してネットワークの重みと圧縮ハイパーパラメータを微調整することで、精度の低下を制御可能なレベル、あるいは無視できるレベルに抑えることができます。最後の 2 つのステップは、ネットワークの出力精度にまったく影響しません。プロセス全体により、モデルのサイズが縮小されるだけでなく、ネットワークのスパース化と構造の最適化を通じて前方予測の速度も大幅に向上します。

この分野の古典的なソリューションである DeepCompression に基づいて、xqueeze はニューロンプルーニングとネットワーク変換の機能をさらに拡張します。その中で、ニューロン プルーニングは、「重要でない」ニューロンとそれに対応する重みパラメータを徐々に削除することができます。ニューロンのプルーニングとシナプスのプルーニングを組み合わせることで、モデルの精度と圧縮率のバランスが向上します。 Xqueeze には、ネットワークのマクロ レベルで最適化する機能であるネットワーク変換もあります。ネットワーク変換スクリプトは、ネットワーク全体をスキャンし、条件が許せばレイヤーの自動結合や同等の置き換えなど、最適化できるポイントを診断します。さらに、xqueeze は、ハフマン コーディングを適応的に使用することで、さまざまなスパース レベルを持つモデルの圧縮率を効果的に向上させます。

下の図に示すように、ビジネス分類モデルの場合、xqueeze ツールチェーンは 45.5 倍の圧縮を実現できます。精度の損失は同じ程度ですが、圧縮率は従来のソリューションを 60% 上回ります。

xNN計算パフォーマンスの最適化

xNN のパフォーマンス最適化は基盤レイヤーに限定されず、xqueeze ツール チェーンとの連携により、アルゴリズム レベルと命令レベルの両方で同時に取り組み、より詳細な最適化のための余地を生み出します。

下の図に示すように、アルゴリズム レベルでは、xqueeze プルーニングはモデル サイズを圧縮するだけでなく、ネットワークのスパース化を促進します。つまり、大量のゼロ値の重みを生成します。それに応じて、xNN は命令層にスパース演算モジュールを実装します。このモジュールは、畳み込みおよび完全接続計算でこれらのゼロ値の重みを自動的に無視し、計算オーバーヘッドを削減して速度を向上させます。前述したように、xqueeze のネットワーク変換フェーズでは、計算の冗長性を減らし、メモリ アクセスの効率を向上させるために、隣接するレイヤーを同等の結果で結合および置換するなど、ネットワークがマクロ レベルで最適化されます。ネットワーク変換の有効性を十分に実現するには、命令層実装のサポートも不可欠です。

命令レベルでは、xNN は各コアの負荷をインテリジェントに割り当てることで、マルチスレッド環境でのパフォーマンスを向上させます。 xNN の設計では、コンピューティング リソースに重点を置くだけでなく、メモリ アクセスのオーバーヘッドも十分に考慮し、データの読み取りと書き込みのスケジュールを微調整することでキャッシュ ヒット率を向上させます。最も重要なのは、すべてのコア コンピューティング モジュールが、チップ業界の命令セット アーキテクチャの専門家によってアセンブリ コードで 1 つずつ手書きされていることです。

SqueezeNetベースのビジネス分類モデルでは、xNNはQualcomm 820 CPUで29.4 FPS、Apple A10 CPU(iPhone 7)で52.6 FPSの前方予測フレームレートを出力でき、CPUとGPUの両方を使用するCore MLよりも高速です。

ビジネスランディング

Alipay アプリには xNN が統合されています。 Alipayの「ARスキャン」入り口では、AndroidとiOSモデルの90%以上がxNNを使用して事前アイテム分類を完了し、「ARフラワースキャンと認識」などの便利な機能をユーザーに推奨しています。 xNN 自体の堅牢性は、「中国のバレンタインデーに花を贈る」など、さまざまなモデルを高強度かつ広範囲にカバーする大規模な運用活動のテストにも耐えました。最新バージョンのモデルは、精度を確保しながら 100 KB 未満に圧縮されています。 Android プラットフォームでは、フル機能の xNN の SDK パッケージは 200 KB をわずかに超える程度です。特定のアプリケーションに合わせて調整すれば、簡単に 100 KB 以上に縮小できます。

xNN がオンラインになった後、Ant と Alibaba 内で大きな反響がありました。xNN をベースにした多数のモバイル DL アプリケーションが集中的に開発されており、今後数か月以内に徐々にユーザーに提供される予定です。

[この記事は51CTOコラムニスト「アリババオフィシャルテクノロジー」によるオリジナル記事です。転載については原著者にお問い合わせください。]

この著者の他の記事を読むにはここをクリックしてください

<<:  顔スキャンの時代、顔認識起業家の進むべき道

>>:  メモリ帯域幅とコンピューティング能力、どちらがディープラーニング実行パフォーマンスの鍵となるのでしょうか?

ブログ    
ブログ    
ブログ    

推薦する

エンタープライズ AI プラットフォーム選択ガイド

翻訳者 | 陳俊現在、人工知能(AI)はさまざまな企業や業界で広く利用されています。それは産業のトレ...

20B大型モデルの性能はLlama2-70Bに匹敵します!完全にオープンソースで、ベースからツールまですべてが明確に整理されています

たった今、国産オープンソースモデルのパラメータ数の記録がまた更新されました! 9月20日、上海人工知...

20,000語の記事を処理できる、初の商用32kコンテキストオープンソースモデル「Giraffe」が登場

注意メカニズムに依存する大規模言語モデル (LLM) は通常、トレーニング中に固定のコンテキスト長を...

GPT-4Vと人間のデモンストレーションによるロボットのトレーニング:目が学習し、手がそれに従う

言語/視覚入力をロボットの動作に変換するにはどうすればよいでしょうか?カスタムモデルをトレーニングす...

人工知能:現在も将来も有望

最近、2020年世界人工知能会議が中国上海で開催されました。各国の専門家らがオンラインで議論し、人工...

医療用ロボットの具体的な用途は2つありますか?

最近では、手術を補助するさまざまなロボットが病院のあちこちで見られるようになりました。これらのロボッ...

Facebook、ロボット開発プラットフォームDroidletをオープンソース化

最近、Facebook は、自然言語処理とコンピューター ビジョンを使用してロボットが周囲の世界を理...

...

CTOは「大きな衝撃を受けた」:GPT-4Vの自動運転テストを5回連続で実施

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

自動運転までどれくらい遠いのでしょうか?

[[412592]] 2021年、北京では初めて規制に従って無人配送車両の公道走行が許可された。写...

AI、機械学習、RPA業界への期待

毎年、IT 業界メディアの eWEEK では、新製品、革新的なサービス、開発動向など、IT 業界の今...

サプライチェーン管理における自動化の重要性

今日のペースが速く競争の激しいビジネス環境において、サプライ チェーン管理は成功に不可欠な要素です。...

メールを受け取りましたか? GPT-3.5-Turbo-Instructがリリースされ、マルチモーダル大型モデルGobiも公開されました

今月初め、OpenAIは初の開発者会議「OpenAI DevDay」を2か月後に開催することを公式発...

エレクトロニック・アーツは、人工知能によってゲームキャラクターがよりリアルになると述べている

どのビデオゲームでも、キャラクターが予想外の行動をとって没入感を壊してしまう瞬間が必ずあります。もし...