モデル概要
モデル特徴
モデル能力
使用事例
🚀 Saiga Mistral 7B - GPTQ
このモデルは、Ilya Gusev氏によって作成されたSaiga Mistral 7BをGPTQ形式に量子化したものです。複数の量子化パラメータが用意されており、ハードウェアと要件に合わせて最適なものを選ぶことができます。
📦 インストール
必要パッケージのインストール
このモデルを使用するには、Transformers 4.33.0以降、Optimum 1.12.0以降、AutoGPTQ 0.4.2以降が必要です。
pip3 install --upgrade transformers optimum
# PyTorch 2.1 + CUDA 12.xを使用する場合:
pip3 install --upgrade auto-gptq
# または、PyTorch 2.1 + CUDA 11.xを使用する場合:
pip3 install --upgrade auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
PyTorch 2.0を使用している場合は、AutoGPTQをソースからインストールする必要があります。同様に、事前構築されたホイールに問題がある場合は、ソースからビルドすることを試してください。
pip3 uninstall -y auto-gptq
git clone https://github.com/PanQiWei/AutoGPTQ
cd AutoGPTQ
git checkout v0.5.1
pip3 install .
モデルのダウンロード
text-generation-webuiでのダウンロード
- Modelタブをクリックします。
- Download custom model or LoRAの下に、
TheBloke/saiga_mistral_7b-GPTQ
を入力します。- 特定のブランチからダウンロードする場合は、例えば
TheBloke/saiga_mistral_7b-GPTQ:gptq-4bit-32g-actorder_True
のように入力します。 - 各オプションのブランチのリストについては、「提供されるファイル」を参照してください。
- 特定のブランチからダウンロードする場合は、例えば
- Downloadをクリックします。
- モデルのダウンロードが開始されます。完了すると「Done」と表示されます。
- 左上のModelの横にある更新アイコンをクリックします。
- Modelのドロップダウンで、先ほどダウンロードしたモデル
saiga_mistral_7b-GPTQ
を選択します。 - モデルは自動的にロードされ、使用可能な状態になります!
- カスタム設定が必要な場合は、設定してから右上のSave settings for this modelをクリックし、続いてReload the Modelをクリックします。
- 手動でGPTQパラメータを設定する必要はなく、しないでください。これらは
quantize_config.json
ファイルから自動的に設定されます。
- 手動でGPTQパラメータを設定する必要はなく、しないでください。これらは
- 準備ができたら、Text Generationタブをクリックし、プロンプトを入力して使用を開始します!
コマンドラインからのダウンロード
huggingface-hub
Pythonライブラリを使用することをおすすめします。
pip3 install huggingface-hub
main
ブランチをsaiga_mistral_7b-GPTQ
というフォルダにダウンロードするには:
mkdir saiga_mistral_7b-GPTQ
huggingface-cli download TheBloke/saiga_mistral_7b-GPTQ --local-dir saiga_mistral_7b-GPTQ --local-dir-use-symlinks False
別のブランチからダウンロードするには、--revision
パラメータを追加します。
mkdir saiga_mistral_7b-GPTQ
huggingface-cli download TheBloke/saiga_mistral_7b-GPTQ --revision gptq-4bit-32g-actorder_True --local-dir saiga_mistral_7b-GPTQ --local-dir-use-symlinks False
git
を使用したダウンロード(非推奨)
特定のブランチをgit
でクローンするには、次のようなコマンドを使用します。
git clone --single-branch --branch gptq-4bit-32g-actorder_True https://huggingface.co/TheBloke/saiga_mistral_7b-GPTQ
ただし、HFリポジトリでgit
を使用することは強く推奨されません。huggingface-hub
を使用するよりもはるかに遅く、モデルファイルを2回保存する必要があるため、ディスクスペースを2倍使います(目的のターゲットフォルダと.git
フォルダの両方に保存されます)。
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model_name_or_path = "TheBloke/saiga_mistral_7b-GPTQ"
# 別のブランチを使用する場合は、revisionを変更します
# 例: revision="gptq-4bit-32g-actorder_True"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
device_map="auto",
trust_remote_code=False,
revision="main")
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=True)
prompt = "Tell me about AI"
prompt_template=f'''<|im_start|>system
{{system_message}}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
'''
# 推論
input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
output = model.generate(inputs=input_ids, temperature=0.7, max_new_tokens=128)
print(tokenizer.decode(output[0]))
📚 ドキュメント
モデル情報
属性 | 詳情 |
---|---|
モデル作成者 | Ilya Gusev |
元のモデル | Saiga Mistral 7B |
モデルタイプ | mistral |
プロンプトテンプレート | `< |
量子化者 | TheBloke |
提供されるリポジトリ
- GPU推論用のAWQモデル
- GPU推論用のGPTQモデル(複数の量子化パラメータオプションあり)
- CPU+GPU推論用の2、3、4、5、6、8ビットGGUFモデル
- GPU推論およびさらなる変換用の、Ilya Gusev氏の元の未量子化fp16モデル(pytorch形式)
プロンプトテンプレート: ChatML
<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
互換性のあるクライアント/サーバー
これらのGPTQモデルは、以下の推論サーバー/ウェブUIで動作することが知られています。
これは完全なリストではない可能性があります。他にも互換性のあるものを知っている場合は、教えてください!
提供されるファイルとGPTQパラメータ
複数の量子化パラメータが提供されており、ハードウェアと要件に最適なものを選択できます。
各量子化は異なるブランチにあります。異なるブランチから取得する方法については、以下を参照してください。
ほとんどのGPTQファイルはAutoGPTQで作成されています。Mistralモデルは現在、Transformersで作成されています。
GPTQパラメータの説明
- ビット数: 量子化モデルのビットサイズ。
- GS: GPTQグループサイズ。数値が大きいほどVRAMの使用量が少なくなりますが、量子化精度が低下します。「None」は最小値です。
- Act Order: TrueまたはFalse。
desc_act
とも呼ばれます。Trueの場合、量子化精度が向上します。一部のGPTQクライアントでは、Act Orderとグループサイズを使用するモデルに問題がありましたが、現在は一般的に解決されています。 - Damp %: 量子化のためにサンプルが処理される方法に影響を与えるGPTQパラメータ。デフォルトは0.01ですが、0.1の方がわずかに精度が高くなります。
- GPTQデータセット: 量子化中に使用されるキャリブレーションデータセット。モデルの学習に適したデータセットを使用すると、量子化精度が向上します。ただし、GPTQキャリブレーションデータセットはモデルの学習に使用されるデータセットとは異なります。学習データセットの詳細については、元のモデルリポジトリを参照してください。
- シーケンス長: 量子化に使用されるデータセットシーケンスの長さ。理想的にはモデルのシーケンス長と同じです。一部の非常に長いシーケンスモデル(16K以上)では、より短いシーケンス長を使用する必要がある場合があります。ただし、シーケンス長を短くすると、量子化モデルのシーケンス長が制限されるわけではありません。長い推論シーケンスでの量子化精度にのみ影響します。
- ExLlama互換性: このファイルをExLlamaでロードできるかどうか。現在、ExLlamaは4ビットのLlamaおよびMistralモデルのみをサポートしています。
ブランチ | ビット数 | GS | Act Order | Damp % | GPTQデータセット | シーケンス長 | サイズ | ExLlama | 説明 |
---|---|---|---|---|---|---|---|---|---|
main | 4 | 128 | Yes | 0.1 | Russian Instructions 2 | 4096 | 4.16 GB | Yes | 4ビット、Act Orderあり、グループサイズ128g。64gよりもVRAMの使用量が少ないが、精度はわずかに低い。 |
gptq-4bit-32g-actorder_True | 4 | 32 | Yes | 0.1 | Russian Instructions 2 | 4096 | 4.57 GB | Yes | 4ビット、Act Orderあり、グループサイズ32g。可能な限り最高の推論品質を提供するが、VRAMの使用量が最大になる。 |
gptq-8bit--1g-actorder_True | 8 | None | Yes | 0.1 | Russian Instructions 2 | 4096 | 7.52 GB | No | 8ビット、Act Orderあり。グループサイズなし、VRAMの要件を低くする。 |
gptq-8bit-128g-actorder_True | 8 | 128 | Yes | 0.1 | Russian Instructions 2 | 4096 | 7.68 GB | No | 8ビット、グループサイズ128gで推論品質が高く、Act Orderでさらに精度が向上する。 |
gptq-8bit-32g-actorder_True | 8 | 32 | Yes | 0.1 | Russian Instructions 2 | 4096 | 8.17 GB | No | 8ビット、グループサイズ32gとAct Orderで最大の推論品質を実現する。 |
gptq-4bit-64g-actorder_True | 4 | 64 | Yes | 0.1 | Russian Instructions 2 | 4096 | 4.30 GB | Yes | 4ビット、Act Orderあり、グループサイズ64g。32gよりもVRAMの使用量が少ないが、精度はわずかに低い。 |
Text Generation Inference (TGI)からのモデルの提供
TGIバージョン1.1.0以降の使用をおすすめします。公式のDockerコンテナはghcr.io/huggingface/text-generation-inference:1.1.0
です。
例のDockerパラメータ:
--model-id TheBloke/saiga_mistral_7b-GPTQ --port 3000 --quantize gptq --max-input-length 3696 --max-total-tokens 4096 --max-batch-prefill-tokens 4096
TGIとやり取りするための例のPythonコード(huggingface-hub 0.17.0以降が必要):
pip3 install huggingface-hub
from huggingface_hub import InferenceClient
endpoint_url = "https://your-endpoint-url-here"
prompt = "Tell me about AI"
prompt_template=f'''<|im_start|>system
{{system_message}}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
'''
client = InferenceClient(endpoint_url)
response = client.text_generation(prompt,
max_new_tokens=128,
do_sample=True,
temperature=0.7,
top_p=0.95,
top_k=40,
repetition_penalty=1.1)
print(f"Model output: {response}")



