🚀 SkyworkによるSkywork - SWE - 32BのLlamacpp imatrix量子化
このプロジェクトは、Skywork - SWE - 32Bモデルに対してLlamacpp imatrix量子化を行うものです。大規模モデルがリソース制限のある環境で動作しにくいという問題を解決し、一定の性能を維持しながら、モデルの保存容量と計算リソースの要件を大幅に削減し、モデルの実行効率を向上させます。
🚀 クイックスタート
以下の方法でこれらの量子化モデルを使用できます。
✨ 主な機能
- 複数の量子化タイプ:
bf16
、Q8_0
、Q6_K_L
など、様々な量子化タイプを提供し、さまざまな性能と品質の要件を満たします。
- オンライン再パッケージ化:一部の量子化モデルはオンライン再パッケージ化をサポートしており、ハードウェアに応じて自動的に重みを最適化し、性能を向上させます。
📦 インストール
huggingface - cliを使用したダウンロード
まず、huggingface - cli
がインストールされていることを確認してください。
pip install -U "huggingface_hub[cli]"
次に、ダウンロードする特定のファイルを指定できます。
huggingface-cli download bartowski/Skywork_Skywork-SWE-32B-GGUF --include "Skywork_Skywork-SWE-32B-Q4_K_M.gguf" --local-dir ./
モデルが50GBを超える場合、複数のファイルに分割されます。これらをすべてローカルフォルダにダウンロードするには、次のコマンドを実行します。
huggingface-cli download bartowski/Skywork_Skywork-SWE-32B-GGUF --include "Skywork_Skywork-SWE-32B-Q8_0/*" --local-dir ./
新しいローカルディレクトリ(例:Skywork_Skywork-SWE-32B-Q8_0
)を指定することも、現在のディレクトリ(./
)にすべてダウンロードすることもできます。
💻 使用例
基本的な使用法
プロンプトの形式は次の通りです。
<|im_start|>system
{system_prompt}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
📚 ドキュメント
ファイルのダウンロード
次のリストから単一のファイル(ブランチ全体ではなく)をダウンロードできます。
埋め込み/出力の重み
一部の量子化モデル(例: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
を使用する必要があります。
また、少し高い品質が必要な場合は、IQ4_NL
を使用できます。詳細は このPR を参照してください。これもARM用に重みを再パッケージ化しますが、現在は 4_4
のみサポートしています。ロード時間は長くなる可能性がありますが、全体的な速度は向上します。
ファイルの選び方
詳細を表示するにはクリック
Artefact2 は、さまざまな性能を示す素晴らしいグラフ付きの記事を提供しています。リンクは こちら です。
まず、実行可能なモデルのサイズを決定する必要があります。このためには、所有している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 機能マトリックス](https://github.com/ggerganov/llama.cpp/wiki/Feature - matrix)。
基本的に、Q4
以下の量子化を目標とし、cuBLAS(Nvidia)またはrocBLAS(AMD)を使用する場合は、I - quantを検討する必要があります。これらの形式は IQX_X
で、例えば IQ3_M
です。これらは新しい量子化方法で、同じサイズでより良い性能を提供します。
これらのI - quantはCPUでも使用できますが、同等のK - quantよりも遅いため、速度と性能のトレードオフを考慮する必要があります。
🔧 技術詳細
llama.cpp のバージョン b5697 を使用して量子化を行いました。元のモデルは [Skywork/Skywork - SWE - 32B](https://huggingface.co/Skywork/Skywork - SWE - 32B) です。すべての量子化は、imatrixオプションと ここ のデータセットを使用して行われました。
📄 ライセンス
このプロジェクトは apache - 2.0
ライセンスの下で提供されています。
謝辞
kalomaze と Dampf には、imatrixキャリブレーションデータセットの作成を支援していただき、感謝します。
ZeroWw には、埋め込み/出力の実験を啓発していただき、感謝します。
LM Studio には、私の仕事を支援していただき、感謝します。
私の仕事を支援したい場合は、私のko - fiページにアクセスしてください:[https://ko - fi.com/bartowski](https://ko - fi.com/bartowski)