この記事では、ディープラーニングにおけるモデルを合理化する技術、量子化と蒸留について詳しく説明します。 ディープラーニング モデル、特に多数のパラメータを持つモデルは、リソースが制限された環境に展開することはほぼ不可能です。そのため、量子化と蒸留という 2 つの一般的な手法があり、これらを使用すると、パフォーマンスにあまり影響を与えずにモデルを軽量化できます。しかし、それらは何を意味するのでしょうか、そしてどのように比較されるのでしょうか? 量子化: 効率のために精度を犠牲にする量子化は数値の精度に関するものです。モデル内の重みとアクティベーションのビット幅を減らすことで、モデルのサイズが縮小され、推論速度が向上する可能性があります。 ニューラル ネットワークには相互接続されたニューロンがあり、それぞれのニューロンの重みとバイアスはトレーニング プロセス中に調整されます。これらのパラメータ値は通常 32 ビットの浮動小数点数で保存され、精度は保証されますが、大量のメモリを消費します。たとえば、50 層の ResNet では、2,600 万個の 32 ビット重み値と 1,600 万個の 32 ビット活性化値を格納するために 168 MB が必要です。 量子化は、重みとアクティベーションを表すために、より少ないビット数 (8 ビット整数など) を使用することで、メモリ使用量を削減することを目的としています。しかし、これによって量子化誤差が発生するため、量子化の目標は精度とメモリ使用量のバランスを取ることです。チャネルごとの量子化、ランダムな丸め、再トレーニングなどの高度な手法により、モデルの精度への影響を最小限に抑えることができます。 最も一般的な量子化のケースは、float32 -> float16 と float32 -> int8 です。 量子化の背後にある数学理論: 上記の式は、実数を量子化された整数に変換するためのシンプルで計算効率の高い方法を提供するため、多くの量子化スキームでよく使用されます。 機械学習モデルを量子化するにはどうすればいいですか?トレーニング後の量子化: これは、通常のペンで本全体を書き、書き終わった後に、より細いペンで書き直して小さくするようなものです。ストーリーを変更する必要はありません。テキストを小さくするだけです。これは非常に簡単ですが、小さいテキストは読みにくい場合があります (つまり、ニューラル ネットワークの精度が低下する可能性があります)。 量子化を考慮したトレーニング: 最初から良いペンで本を書くようなものです。書きながら、文字をどのくらい小さくすべきかが分かるので、書きながら書き方を調整していきます。この方法では、本の小さいバージョンについて考えていたため、最終的な小さいバージョンは最初から読みやすくなります (つまり、ニューラル ネットワークは、最初から小さい量子化バージョンで適切に動作するようにトレーニングされます)。 どちらの場合も、ストーリーの本質 (またはネットワークの正確さ) を失うことなく、本 (またはニューラル ネットワーク) をより小さく、より効率的にすることが目標です。 アドバンテージ:
欠点
蒸留:教師から生徒への知識の伝達蒸留では、より小さなニューラル ネットワーク (生徒と呼ばれる) をトレーニングして、より大きな事前トレーニング済みネットワーク (教師と呼ばれる) を模倣します。 以下の例はすべて書籍の執筆に基づいており、より明確になっています。 大まかに言えば、蒸留の分類には 3 つの種類があります。 オフライン蒸留:作家は、すでに出版されている成功した本から学んでいます。出版された本(教師用モデル)が完成し、修正されました。新しい作家(学生モード)はこの本から学び、得られた洞察に基づいて独自の作品を書こうとします。ニューラル ネットワークのコンテキストでは、これは、完全にトレーニングされた複雑なニューラル ネットワークを使用して、より単純で効果的なネットワークをトレーニングするようなものです。生徒のネットワークは、教師の確立された知識を修正することなく学習します。 オンライン蒸留:作家と経験豊富な作家が同時に本を書いているところを想像してください。経験豊富な著者が新しい章を開発する(教師モデルを更新)と、新しい著者も自分の章を書き(生徒モデルを更新)、その過程で経験豊富な著者から学びます。この2冊の本は同時期に執筆され、2人の著者の作品は互いにインスピレーションを与え合いました。ニューラル ネットワークでは、これは教師モデルと生徒モデルの両方を同時にトレーニングし、一緒に学習して適応できるようにすることで、生徒モデルの学習プロセスを強化することを意味します。 自己蒸留:著者が教師であり生徒でもある本。彼は現在のスキルレベルで本を書き始めました。彼は新たな洞察を得て文章力を向上させるにつれて、以前の章を改訂します。これは、著者が理解を深めるにつれて作品を継続的に改良していく自己学習モデルです。ニューラル ネットワークでは、このアプローチには単一のネットワークの学習と自己改善が含まれ、より高度なレイヤーまたは後のトレーニング段階を使用して、より初期のレイヤーまたは初期段階を強化し、より効率的で正確になるように効果的に自己学習します。 蒸留の背後にある数学:蒸留の目的は、教師の予測と生徒の予測の差を最小限に抑えることです。この乖離を測る最も一般的に使用される指標は、Kullback-Leibler 乖離です。 アドバンテージ
欠点
要約する量子化は通常、ハードウェア固有の展開で使用されますが、蒸留は、大規模なモデルに近いパフォーマンスを備えた軽量モデルが必要な場合に必要なアプローチです。多くの場合、この 2 つを組み合わせて、モデルを改良してから定量化することで、両方のアプローチの利点を生かすことができます。選択は、展開要件、利用可能なリソース、精度と効率の許容可能なトレードオフに合わせて調整することが重要です。 |
>>: 今後のAIの5大発展トレンドとは?2024年は「意味のある人工知能時代」の到来を告げる
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
テクノロジー大手のBATから市場に参入する多数の新興企業まで、業界には10社を超える高精度地図サプラ...
ノア著制作:51CTO テクノロジースタック(WeChat ID:blog)最近、マイクロソフトは、...
編集者注: 人工知能技術によって引き起こされる失業危機は、業界ではよく話題になります。人々がもっと議...
人類は物質とエネルギーの新しい時代を迎えようとしているのでしょうか?未来のテクノロジーへの扉が開かれ...
近年、科学技術の発展に伴い、顔認識技術は人々の日常生活で頻繁に使用されるようになりました。たとえば、...
[[390133]]予測区間は、回帰問題の予測における不確実性の尺度を提供します。たとえば、95% ...
[[202259]]最近、「少量のデータによるニューラル ネットワークのトレーニング - ドラフト」...
工業情報化部は4月9日、「工業情報化部弁公室による2020年の業務・生産再開を支援するための中小企業...
背景分割とは、推奨、広告、検索システムの結果に基づいてユーザーの視覚的なエクスペリエンスを向上させる...
人工知能は、テクノロジーやビジネスの世界で広く議論されている人気のテクノロジーの 1 つです。 さま...
[[377307]] 1. アルゴリズムの評価基準ソートアルゴリズムを説明する前に、まずアルゴリズム...