この記事では、ディープラーニングにおけるモデルを合理化する技術、量子化と蒸留について詳しく説明します。 ディープラーニング モデル、特に多数のパラメータを持つモデルは、リソースが制限された環境に展開することはほぼ不可能です。そのため、量子化と蒸留という 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年は「意味のある人工知能時代」の到来を告げる
DeepSense は、エンドデバイス上で実行されるディープラーニング フレームワークです。ローカル...
GenAIの急速な出現はすでにサイバーセキュリティに大きな変化をもたらし、各国政府に対策を取らせてお...
今日の人工知能、ビッグデータ、自動化の時代では、技術的なスキルとデータリテラシーが非常に重要です。し...
過去数か月間、COVID-19ウイルスは世界中に大きな影響を与えてきました。世界保健機関によると、4...
普段は人工知能技術にあまり興味がない人でも、この特別な期間中はAIという文字の組み合わせに注目するで...
[[360029]]記者 | 趙孟近年、顔認識技術の普及に伴い、国民の個人情報のセキュリティに関する...
データサイエンスの分野は競争が激しく、人々はますます多くのスキルと経験を急速に身につけています。 「...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
この論文は浙江大学CAD&CG国家重点実験室の視覚化と視覚分析グループが特別にまとめたもので...
YESOUL高反発腹筋ローラーは、1月7日よりXiaomi Youpinでクラウドファンディングで販...