🚀 TesslateのTessa-Rust-T1-7BのLlamacpp imatrix量子化バージョン
このプロジェクトは、TesslateのTessa-Rust-T1-7Bモデルの量子化バージョンです。llama.cppツールを使用して量子化処理を行い、さまざまなハードウェア条件で効率的に実行でき、テキスト生成タスクにより多くの選択肢を提供します。
🚀 クイックスタート
llama.cpp の b5173 バージョンを使用して量子化を行います。
元のモデルのアドレス:https://huggingface.co/Tesslate/Tessa-Rust-T1-7B
すべての量子化モデルは、imatrixオプションと ここ のデータセットを使用して生成されています。
これらの量子化モデルは、LM Studio で実行することも、llama.cpp や他のllama.cppベースのプロジェクトを直接使用して実行することもできます。
✨ 主な機能
プロンプト形式
<|im_start|>system
{system_prompt}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
ダウンロードファイル
埋め込み/出力重み
一部の量子化モデル(Q3_K_XL、Q4_K_Lなど)は、標準的な量子化方法を採用し、埋め込みと出力の重みをデフォルト値ではなくQ8_0に量子化しています。
📦 インストール
huggingface-cliを使用したダウンロード
ダウンロードの説明を表示するにはクリック
まず、huggingface-cliがインストールされていることを確認してください。
pip install -U "huggingface_hub[cli]"
次に、ダウンロードする特定のファイルを指定できます。
huggingface-cli download bartowski/Tesslate_Tessa-Rust-T1-7B-GGUF --include "Tesslate_Tessa-Rust-T1-7B-Q4_K_M.gguf" --local-dir ./
モデルのサイズが50GBを超える場合、複数のファイルに分割されます。すべてのファイルをローカルフォルダにダウンロードするには、次のコマンドを実行します。
huggingface-cli download bartowski/Tesslate_Tessa-Rust-T1-7B-GGUF --include "Tesslate_Tessa-Rust-T1-7B-Q8_0/*" --local-dir ./
新しいローカルディレクトリ(Tesslate_Tessa-Rust-T1-7B-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のみをサポートしています。ロード時間は長くなる可能性がありますが、全体的な速度は向上します。
(非推奨の)Q4_0_X_X情報を表示するにはクリック
この部分を残しているのは、オンライン再パッキングをサポートするQ4_0を使用した場合の理論上のパフォーマンス向上を示すためです。
AVX2システム(EPYC7702)でのベンチマークを表示するにはクリック
モデル |
サイズ |
パラメータ |
バックエンド |
スレッド数 |
テストタイプ |
トークン/秒 |
Q4_0に対する割合 |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp512 |
204.03 ± 1.03 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp1024 |
282.92 ± 0.19 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp2048 |
259.49 ± 0.44 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg128 |
39.12 ± 0.27 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg256 |
39.31 ± 0.69 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg512 |
40.52 ± 0.03 |
100% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp512 |
301.02 ± 1.74 |
147% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp1024 |
287.23 ± 0.20 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp2048 |
262.77 ± 1.81 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg128 |
18.80 ± 0.99 |
48% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg256 |
24.46 ± 3.04 |
83% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg512 |
36.32 ± 3.59 |
90% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp512 |
271.71 ± 3.53 |
133% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp1024 |
279.86 ± 45.63 |
100% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp2048 |
320.77 ± 5.00 |
124% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg128 |
43.51 ± 0.05 |
111% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg256 |
43.35 ± 0.09 |
110% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg512 |
42.60 ± 0.31 |
105% |
Q4_0_8_8は、プロンプト処理において大幅な向上が見られ、テキスト生成においても小幅な向上が見られます。
ファイルの選択方法
詳細を表示するにはクリック
Artefact2は、さまざまなパフォーマンスを示すグラフ付きの素晴らしい記事を提供しています。 ここ を参照してください。
まず、実行可能なモデルのサイズを決定する必要があります。このためには、持っているメモリ(RAM)および/またはグラフィックメモリ(VRAM)の容量を把握する必要があります。
モデルをできるだけ速く実行したい場合は、モデル全体をGPUのグラフィックメモリに格納する必要があります。GPUの総グラフィックメモリよりも1 - 2GB小さいファイルサイズの量子化モデルを選択してください。
絶対的な最高品質を追求する場合は、システムメモリとGPUのグラフィックメモリを合計し、その合計よりも1 - 2GB小さいファイルサイズの量子化モデルを選択してください。
次に、「I量子化」または「K量子化」のどちらを使用するかを決定する必要があります。
あまり考えたくない場合は、K量子化モデルを選択してください。これらのモデルは「QX_K_X」の形式で、Q5_K_Mなどがあります。
詳細を知りたい場合は、非常に便利な機能グラフを参照してください。
llama.cpp機能マトリックス
基本的に、Q4より低い量子化モデルを使用し、cuBLAS(Nvidia)またはrocBLAS(AMD)を使用する場合は、I量子化モデルを検討する必要があります。これらのモデルはIQX_Xの形式で、IQ3_Mなどがあります。これらのモデルは新しく、同じサイズでより良いパフォーマンスを提供します。
これらのI量子化モデルはCPUでも使用できますが、同等のK量子化モデルよりも遅いため、速度とパフォーマンスのトレードオフを行う必要があります。
📄 ライセンス
このプロジェクトは、Apache 2.0ライセンスを採用しています。
謝辞
kalomazeとDampfがimatrixキャリブレーションデータセットの作成に協力してくれたことに感謝します。
ZeroWwが埋め込み/出力実験に関する啓発をしてくれたことに感謝します。
LM Studioがこのプロジェクトをサポートしてくれたことに感謝します。
もし私の仕事をサポートしたい場合は、私のko-fiページにアクセスしてください:https://ko-fi.com/bartowski