🚀 huihui-aiによるHuihui-gemma-3n-E4B-it-abliteratedのLlamacpp imatrix量子化
このプロジェクトは、llama.cpp のリリース b5856 を使用して、huihui-aiによるHuihui-gemma-3n-E4B-it-abliteratedモデルの量子化を行います。これにより、モデルのサイズを削減し、実行速度を向上させることができます。
🚀 クイックスタート
基本情報
- 量子化担当者: bartowski
- パイプラインタグ: テキスト生成
- 追加ゲート付きプロンプト: Hugging FaceでGemmaにアクセスするには、Googleの使用許諾契約を確認して同意する必要があります。これを行うには、Hugging Faceにログインして、以下のボタンをクリックしてください。リクエストは即座に処理されます。
- タグ: 自動音声認識、自動音声翻訳、音声テキスト変換、ビデオテキスト変換、消去、無修正
- ベースモデル: huihui-ai/Huihui-gemma-3n-E4B-it-abliterated
- ベースモデルの関係: 量子化
- ライセンス: gemma
量子化方法
- 量子化には llama.cpp のリリース b5856 を使用しています。
- すべての量子化は、ここ のデータセットを使用して、imatrixオプションで行われています。
実行方法
✨ 主な機能
- 多様な量子化形式: さまざまな量子化形式(BF16、Q8_0、Q6_K_Lなど)が用意されており、ユーザーのハードウェア環境や性能要件に合わせて選択できます。
- 高速な実行: 量子化により、モデルのサイズが削減され、実行速度が向上します。
- 柔軟な実行環境: LM Studioやllama.cppなどの複数の環境で実行できます。
📦 インストール
huggingface-cliを使用したダウンロード
まず、hugginface-cliをインストールします。
pip install -U "huggingface_hub[cli]"
特定のファイルをダウンロードするには、以下のコマンドを実行します。
huggingface-cli download bartowski/huihui-ai_Huihui-gemma-3n-E4B-it-abliterated-GGUF --include "huihui-ai_Huihui-gemma-3n-E4B-it-abliterated-Q4_K_M.gguf" --local-dir ./
モデルが50GBを超える場合、複数のファイルに分割されています。すべてのファイルをローカルフォルダにダウンロードするには、以下のコマンドを実行します。
huggingface-cli download bartowski/huihui-ai_Huihui-gemma-3n-E4B-it-abliterated-GGUF --include "huihui-ai_Huihui-gemma-3n-E4B-it-abliterated-Q8_0/*" --local-dir ./
💻 使用例
プロンプトフォーマット
チャットテンプレートが指定されていないため、デフォルトのものが使用されます。これは正しくない場合があるので、元のモデルカードを確認してください。
<bos><start_of_turn>user
{system_prompt}
{prompt}<end_of_turn>
<start_of_turn>model
<end_of_turn>
<start_of_turn>model
ファイルのダウンロード
以下からファイル(ブランチ全体ではない)をダウンロードできます。
📚 ドキュメント
埋め込み/出力重み
一部の量子化(Q3_K_XL、Q4_K_Lなど)は、標準の量子化方法で、埋め込みと出力重みが通常のデフォルトではなくQ8_0に量子化されています。
ARM/AVX情報
以前は、Q4_0_4_4/4_8/8_8をダウンロードし、これらの重みはメモリ内でインターリーブされていました。これにより、ARMおよびAVXマシンで一度により多くのデータをロードしてパフォーマンスを向上させることができます。
現在では、重みの「オンライン再パッキング」と呼ばれる機能があります。詳細は このPR を参照してください。Q4_0を使用し、ハードウェアが重みの再パッキングによって恩恵を受ける場合、自動的に実行されます。
llama.cppビルド b4282 以降、Q4_0_X_Xファイルを実行することはできず、代わりにQ4_0を使用する必要があります。
また、少し良い品質を得たい場合は、このPR により、ARM用に重みを再パッキングするIQ4_NLを使用できます。ただし、現在は4_4のみです。読み込み時間が長くなる可能性がありますが、全体的な速度が向上します。
どのファイルを選べばいいですか?
まず、実行できるモデルのサイズを決定する必要があります。これには、利用可能なRAMとVRAMの量を考慮する必要があります。
- 最高の速度が必要な場合: モデル全体をGPUのVRAMに収めることができるように、ファイルサイズがGPUの総VRAMより1 - 2GB小さい量子化形式を選択します。
- 最高の品質が必要な場合: システムRAMとGPUのVRAMを合計し、その合計より1 - 2GB小さいファイルサイズの量子化形式を選択します。
次に、「I-quant」または「K-quant」を使用するかを決定する必要があります。
- 考えるのが面倒な場合: K-quantのいずれかを選択します。これらは「QX_K_X」形式で、例えばQ5_K_Mです。
- 詳細を知りたい場合: llama.cpp機能マトリックス を参照してください。基本的に、Q4以下を目指し、cuBLAS(Nvidia)またはrocBLAS(AMD)を使用している場合は、I-quantを検討する必要があります。これらはIQX_X形式で、例えばIQ3_Mです。これらは新しく、サイズに対して良好なパフォーマンスを提供します。
これらのI-quantはCPUでも使用できますが、同等のK-quantよりも遅くなります。したがって、速度とパフォーマンスのトレードオフを決定する必要があります。
🔧 技術詳細
量子化の仕組み
量子化は、モデルの重みを低精度のデータ型に変換することで、モデルのサイズを削減し、実行速度を向上させる技術です。このプロジェクトでは、llama.cppを使用して量子化を行っています。
オンライン再パッキング
オンライン再パッキングは、重みを実行時に再パッキングすることで、特定のハードウェア(ARM、AVXなど)でのパフォーマンスを向上させる技術です。Q4_0を使用すると、自動的に実行されます。
📄 ライセンス
このプロジェクトは、gemmaライセンスの下で提供されています。
謝辞
- kalomazeとDampfには、imatrixキャリブレーションデータセットの作成における支援を感謝します。
- ZeroWwには、埋め込み/出力の実験のインスピレーションを提供してくれたことを感謝します。
- LM Studioには、このプロジェクトの支援を感謝します。
もしこのプロジェクトをサポートしたい場合は、こちら のko-fiページを訪問してください。