🚀 Black-Ink-GuildによるPernicious_Prophecy_70BのLlamacpp imatrix量子化
このプロジェクトは、llama.cpp のリリース b4585 を使用して、Black-Ink-GuildのPernicious_Prophecy_70Bモデルを量子化したものです。量子化により、モデルのサイズを削減し、パフォーマンスを向上させることができます。
元のモデル: https://huggingface.co/Black-Ink-Guild/Pernicious_Prophecy_70B
すべての量子化モデルは、imatrixオプションを使用し、ここ のデータセットを用いて作成されています。
LM Studio で実行することもできますし、llama.cpp または他のllama.cppベースのプロジェクトで直接実行することも可能です。
✨ 主要な機能
- 多様な量子化タイプ:様々な量子化タイプ(Q8_0、Q6_K、Q5_K_Mなど)が用意されており、ユーザーのニーズに合わせて選択できます。
- 高速な実行:量子化によりモデルのサイズが削減され、GPUやCPUでの実行速度が向上します。
- 簡単なダウンロード方法:huggingface-cliを使用して、簡単にモデルをダウンロードできます。
📦 インストール
huggingface-cliを使用したダウンロード
まず、huggingface-cliがインストールされていることを確認してください。
pip install -U "huggingface_hub[cli]"
次に、ダウンロードしたい特定のファイルを指定してダウンロードできます。
huggingface-cli download bartowski/Black-Ink-Guild_Pernicious_Prophecy_70B-GGUF --include "Black-Ink-Guild_Pernicious_Prophecy_70B-Q4_K_M.gguf" --local-dir ./
モデルが50GB以上の場合、複数のファイルに分割されていることがあります。この場合、すべてのファイルをローカルフォルダにダウンロードするには、以下のコマンドを実行します。
huggingface-cli download bartowski/Black-Ink-Guild_Pernicious_Prophecy_70B-GGUF --include "Black-Ink-Guild_Pernicious_Prophecy_70B-Q8_0/*" --local-dir ./
新しいローカルディレクトリを指定することも、現在のディレクトリにダウンロードすることもできます。
💻 使用例
プロンプトフォーマット
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{system_prompt}<|eot_id|><|start_header_id|>user<|end_header_id|>
{prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
ダウンロード可能なファイル一覧
📚 ドキュメント
埋め込み/出力重み
一部の量子化(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 により、IQ4_NLを使用すると、ARM用に重みを再パッキングすることができ、少し品質を向上させることができます。ただし、現在は4_4のみです。ロード時間は長くなる可能性がありますが、全体的な速度が向上します。
どのファイルを選ぶべきか
詳細については、ここ を参照してください。
まず、実行できるモデルのサイズを決定する必要があります。これには、システムのRAMとGPUのVRAMの量を確認する必要があります。
できるだけ高速にモデルを実行したい場合は、モデル全体をGPUのVRAMに収めることを目指します。GPUの総VRAMよりも1-2GB小さいファイルサイズの量子化を選択してください。
絶対的な最高品質を求める場合は、システムのRAMとGPUのVRAMを合計し、その合計よりも1-2GB小さいファイルサイズの量子化を選択してください。
次に、「I-量子化」または「K-量子化」を使用するかを決定する必要があります。
あまり考えたくない場合は、K-量子化のいずれかを選択してください。これらは 'QX_K_X' 形式で、Q5_K_Mのようなものです。
もっと詳細に調べたい場合は、以下の非常に便利な機能チャートを参照してください。
llama.cpp feature matrix
基本的に、Q4以下を目指し、cuBLAS(Nvidia)またはrocBLAS(AMD)を使用している場合は、I-量子化を検討してください。これらはIQX_X形式で、IQ3_Mのようなものです。これらは新しく、サイズに対してより良いパフォーマンスを提供します。
これらのI-量子化は、CPUおよびApple Metalでも使用できますが、同等のK-量子化よりも遅くなります。したがって、速度とパフォーマンスのトレードオフを決定する必要があります。
I-量子化はVulcanと互換性がありません。VulcanもAMDのものです。したがって、AMDカードを使用している場合は、rocBLASビルドまたはVulcanビルドを使用しているかを確認してください。この記事を書いている時点では、LM StudioにはROCmサポートのプレビューがあり、他の推論エンジンにはROCm用の特定のビルドがあります。
🔧 技術詳細
量子化方法
このプロジェクトでは、llama.cpp のリリース b4585 を使用して量子化を行っています。量子化により、モデルのサイズを削減し、GPUやCPUでの実行速度を向上させることができます。
オンライン再パッキング
Q4_0では、「オンライン再パッキング」と呼ばれる重みの方法が導入されています。これにより、ARMおよびAVXマシンでのパフォーマンスが向上します。詳細は このPR を参照してください。
📄 ライセンス
このプロジェクトは、llama3.3ライセンスの下で提供されています。詳細については、こちら を参照してください。
クレジット
- kalomazeとDampfには、imatrixキャリブレーションデータセットの作成に協力してくれたことに感謝します。
- ZeroWwには、埋め込み/出力の実験のインスピレーションをくれたことに感謝します。
- LM Studioには、私の仕事を支援してくれたことに感謝します。
私の仕事を支援したい場合は、こちら のko-fiページを訪れてください。