ホームページ  >  記事  >  テクノロジー周辺機器  >  定量化、枝刈り、蒸留、これらの大きなモデルのスラングは正確には何を言っているのでしょうか?

定量化、枝刈り、蒸留、これらの大きなモデルのスラングは正確には何を言っているのでしょうか?

WBOY
WBOY転載
2024-04-26 09:28:18715ブラウズ

定量化、枝刈り、蒸留など、大きな言語モデルによく注意を払うと、これらの単語を目にすることになるでしょう。これらの単語が何をするのかを理解するのは難しいですが、これらの単語は特に重要です。この段階では大規模な言語モデルの開発に使用されます。この記事は、それらを知り、その原則を理解するのに役立ちます。

モデル圧縮

量子化、枝刈り、抽出は、実際には一般的なニューラル ネットワーク モデルの圧縮テクノロジであり、大規模な言語モデルに限定されるものではありません。

モデル圧縮の重要性

圧縮後、モデルファイルは小さくなり、使用されるハードディスク容量も小さくなり、メモリにロードまたは表示するときに使用されるキャッシュ容量も小さくなり、モデルの実行速度も小さくなる可能性があります。

圧縮により、モデルを使用するとコンピューティング リソースの消費が減り、モデルのアプリケーション シナリオ、特に携帯電話、組み込みデバイスなど、モデル サイズとコンピューティング効率がより重要視される場所を大幅に拡張できます。

圧縮とは何ですか?

圧縮されるのはモデルのパラメータです モデルのパラメータとは何ですか?

現在の機械学習ではニューラル ネットワーク モデルが使用されていると聞いたことがあるかもしれません。ニューラル ネットワーク モデルは人間の脳のニューラル ネットワークをシミュレートします。

ここに簡単な図を描きましたので、ご覧ください。簡単にするために、A1、A2、A3 の 3 つのニューロンのみを説明します。各ニューロンは他のニューロンから信号を受信し、他のニューロンに信号を送信します。

定量化、枝刈り、蒸留、これらの大きなモデルのスラングは正確には何を言っているのでしょうか?A3はA1とA2から信号I_A1とI_A2を受信しますが、A3がA1とA2から受信する信号の強度は異なります(この強度を「重み」と呼びます)。ここでの強度をW_13と仮定します。 W_23、A3 はそれぞれ受信信号データを処理します。

最初に信号の加重加算を実行します。つまり、I_A1*W_13+I_A2*W_23、

次に、A3 独自のパラメータ B_3 (「バイアス」と呼ばれます) を追加します。

  • 最後に、このデータ特定の形式に変換され、変換された信号は次のニューロンに送信されます。
  • この信号データを処理する過程で使用される重み (W_13、W_23) とオフセット (B_3) はモデルのパラメーターです。 もちろん、モデルには他のパラメーターもありますが、重みとオフセットは一般的に次のとおりです。 all パラメータの大部分は、80/20 原則を使用して分割した場合、80% を超える必要があります。
  • 大規模な言語モデルを使用してテキストを生成する場合、これらのパラメーターは事前にトレーニングされており、変更することはできません。これは、未知の xyz を渡して出力結果を取得することしかできません。 。

モデル圧縮では、主に重みとバイアスを圧縮します。使用される具体的な方法は、この記事の焦点です。

量子化

量子化とは、モデルパラメータの数値精度を下げることです。例えば、最初に学習された重みは32ビット浮動小数点数ですが、実際に使用すると、ほとんど損失がないことがわかります。 16 ビットで表現されますが、モデル ファイルのサイズは半分に減り、ビデオ メモリの使用量も半分に減り、プロセッサとメモリ間の通信帯域幅要件も減ります。これは、コストの削減と利点の向上を意味します。

レシピに従うのと同じで、各材料の重量を決定する必要があります。 0.01グラムまで正確な電子秤を使用すると、各食材の重さを非常に正確に知ることができるので便利です。ただし、持ち寄りの食事を作るだけで、実際にはそれほど高い精度が必要ない場合は、最小目盛りが 1 グラムのシンプルで安価な秤を使用できます。これはそれほど正確ではありませんが、おいしい食事を作るには十分です。夕食。

Pictures

量子化のもう 1 つの利点は、計算が高速になることです。最新のプロセッサには、通常、低精度のベクトル計算ユニットが多数含まれており、これらのハードウェア機能を最大限に活用して、より多くの並列演算を実行できます。同時に、低精度の演算は高精度の演算よりも高速です。 1 回の乗算と加算の消費時間が短くなります。これらの利点により、このモデルは、高性能 GPU を搭載していない通常のオフィスや家庭のコンピューター、携帯電話、その他のモバイル端末などの低構成のマシンでも実行できます。

この考えに従って、サイズが小さく、コンピューティング リソースの使用量が少ない 8 ビット、4 ビット、2 ビット モデルの圧縮が続けられています。ただし、重みの精度が低下すると、さまざまな重みの値が近づくか等しくなるため、モデル出力の精度と精度が低下し、モデルのパフォーマンスがさまざまな程度で低下します。

量子化テクノロジーには、動的量子化、静的量子化、対称量子化、非対称量子化など、さまざまな戦略と技術的詳細があります。大規模な言語モデルの場合、通常、モデルのトレーニングが完了した後、静的量子化戦略が使用されます。パラメーターは一度定量化されるため、モデルの実行時に定量的な計算が必要なくなるため、配布と展開が容易になります。

枝刈り

枝刈りは、モデル内の重要でない、またはめったに使用されない重みを削除することです。これらの重みの値は通常 0 に近くなります。一部のモデルでは、プルーニングにより高い圧縮率が得られ、モデルがよりコンパクトで効率的になります。これは、リソースに制約のあるデバイスにモデルを展開する場合、またはメモリとストレージが制限されている場合に特に役立ちます。

枝刈りにより、モデルの解釈可能性も向上します。不要なコンポーネントを削除することで、プルーニングによりモデルの基礎となる構造がより透明になり、分析が容易になります。これは、ニューラル ネットワークなどの複雑なモデルの意思決定プロセスを理解するために重要です。

次の図に示すように、枝刈りには重みパラメータの枝刈りだけでなく、特定のニューロン ノードの枝刈りも含まれます。モデル (ほとんどのパラメーターが 0 または 0 に近い) では、枝刈りは効果がない可能性があります。比較的少数のパラメーターを持つ一部の小規模なモデルでは、枝刈りによってモデルのパフォーマンスが大幅に低下する可能性があります。医療診断など死活問題となるモデルの枝刈りには向きません。

定量化、枝刈り、蒸留、これらの大きなモデルのスラングは正確には何を言っているのでしょうか?実際に枝刈り技術を適用する場合、通常、モデルの実行速度の向上と枝刈りによるモデルのパフォーマンスへの悪影響を総合的に考慮し、モデル内の各パラメータをスコアリングするなどのいくつかの戦略を採用する必要があります。パラメータの評価がモデルのパフォーマンスにどの程度寄与するか。スコアが高いものは削除してはいけない重要なパラメータであり、スコアが低いものはそれほど重要ではないため削除を検討してもよいパラメータです。このスコアは、パラメーターのサイズを確認する (通常、絶対値が大きいほど重要です) など、さまざまな方法で計算したり、より複雑な統計分析方法で決定したりできます。

蒸留

蒸留とは、大規模モデルで学習した確率分布を小規模モデルに直接コピーすることです。コピーされたモデルは教師モデルと呼ばれ、一般に多数のパラメータと強力なパフォーマンスを備えた優れたモデルです。新しいモデルは学生モデルと呼ばれ、一般に比較的少ないパラメータを備えた小規模なモデルです。

蒸留中、教師モデルは入力に基づいて複数の可能な出力の確率分布を生成し、その後、生徒モデルはこの入力と出力の確率分布を学習します。広範なトレーニングの後、学生モデルは教師モデルの動作を模倣したり、教師モデルの知識を学習したりできます。

たとえば、画像分類タスクでは、画像が与えられた場合、教師モデルは次のような確率分布を出力する可能性があります:

Cat: 0.7

Dog: 0.4

  • Car : 0.1
  • 次に、この画像と出力確率分布情報を模倣学習用の学生モデルに送信します。
  • 写真

蒸留により教師モデルの知識がより小さく単純な生徒モデルに圧縮されるため、新しいモデルでは一部の情報が失われる可能性があり、さらに、生徒モデルは教師モデルに依存しすぎる可能性があります。モデルの一般化能力が低下します。

定量化、枝刈り、蒸留、これらの大きなモデルのスラングは正確には何を言っているのでしょうか?学生モデルの学習効果を高めるために、いくつかの方法と戦略を採用できます。

温度パラメータの紹介: 非常に早く教える教師がいて、情報密度が非常に高いと仮定します。生徒はそれについていくのが少し難しいかもしれません。このとき、教師がスピードを落として簡潔に説明すると、生徒も理解しやすくなります。モデルの蒸留では、温度パラメータは「講義速度の調整」と同様の役割を果たし、学生モデル (小さなモデル) が教師モデル (大きなモデル) の知識をよりよく理解して学習できるようにします。専門的に言えば、モデルの出力をより滑らかな確率分布にし、学生モデルが教師モデルの出力の詳細を取得して学習しやすくすることです。

教師モデルと生徒モデルの構造を調整します: 専門家間の知識の差が大きすぎて、直接学習しても理解できない可能性があるため、生徒が専門家から何かを学ぶのは難しいかもしれません。専門家の言葉を理解し、それを生徒が理解できる言語に翻訳できる教師を真ん中に加えます。中間に追加される教師は、いくつかの中間層または補助ニューラル ネットワークである場合があります。あるいは、教師は、教師モデルの出力とよりよく一致するように生徒モデルに調整を加えることができます。

上で 3 つの主要なモデル圧縮テクノロジーを紹介しましたが、実際にはまだ詳細がたくさんありますが、原理を理解するにはこれでほぼ十分です。低ランク分解など、他のモデル圧縮テクノロジーもあります。パラメータの共有、スパース接続など。興味のある学生は、さらに関連するコンテンツを確認できます。

さらに、モデルが圧縮された後は、そのパフォーマンスが大幅に低下する可能性があります。現時点では、特に医療診断や財務リスクなど、モデルの高い精度が必要なタスクの場合は、モデルを微調整することができます。制御や自動運転などを微調整することで、モデルの性能をある程度回復させ、ある面では精度や精度を安定させることができます。

モデルの微調整について言えば、最近 AutoDL で Text Generation WebUI の画像を共有しました。 Text Generation WebUI は、大規模な言語モデルの推論と微調整を簡単に実行できる、Gradio を使用して書かれた Web プログラムです。 Transformers、llama.cpp (GGUF)、GPTQ、AWQ、EXL2、その他のさまざまな形式のモデルを含む、さまざまなタイプの大規模言語モデル。最新のイメージには、Meta によって最近オープンソース化された Llama3 大型モデルが組み込まれています。興味のある学生は試してみて、使い方を確認してください: 10 分で大規模な言語モデルを微調整する方法を学びましょう

定量化、枝刈り、蒸留、これらの大きなモデルのスラングは正確には何を言っているのでしょうか?写真

参考記事:

https:/ /www.php.cn/link/d7852cd2408d9d3205dc75b59 a6ce22e

https://www.php.cn/link/f204aab71691a8e18c3f6f00872db63b

https://www.php.cn/link/b31f0c758bb498b5d56b5fea80 f313a7

https://www.php.cn/link/129ccfc1c1a82b0b23d4473a72373a0a

https://www.php.cn/link/bdffc7973c9f8f88ab4effb397 c59f92

https://www. php.cn/link/8fc81fd7630f52aca6381ff6df0f6cec

以上が定量化、枝刈り、蒸留、これらの大きなモデルのスラングは正確には何を言っているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。