🚀 CodeLlama 70B Python - GPTQ
このモデルは、Pythonコード生成に特化したCodeLlama 70BモデルのGPTQ量子化バージョンです。複数の量子化パラメータオプションが用意されており、ハードウェアと要件に合わせて最適なものを選択できます。
🚀 クイックスタート
モデルの基本情報
利用可能なリポジトリ
プロンプトテンプレート
{prompt}
互換性のあるクライアント/サーバー
GPTQモデルは現在、Linux(NVidia/AMD)とWindows(NVidiaのみ)でサポートされています。macOSユーザーは、GGUFモデルを使用してください。
これらのGPTQモデルは、以下の推論サーバー/ウェブUIで動作することが知られています。
これは完全なリストではない可能性があります。他の互換性のあるクライアントがある場合は、教えてください!
📦 インストール
ダウンロード方法
text-generation-webuiでのダウンロード
main
ブランチからダウンロードするには、「Download model」ボックスにTheBloke/CodeLlama-70B-Python-GPTQ
を入力します。
他のブランチからダウンロードするには、ダウンロード名の末尾に:branchname
を追加します。例えば、TheBloke/CodeLlama-70B-Python-GPTQ:gptq-4bit-128g-actorder_True
コマンドラインからのダウンロード
huggingface-hub
Pythonライブラリを使用することをおすすめします。
pip3 install huggingface-hub
main
ブランチをCodeLlama-70B-Python-GPTQ
というフォルダにダウンロードするには:
mkdir CodeLlama-70B-Python-GPTQ
huggingface-cli download TheBloke/CodeLlama-70B-Python-GPTQ --local-dir CodeLlama-70B-Python-GPTQ --local-dir-use-symlinks False
異なるブランチからダウンロードするには、--revision
パラメータを追加します。
mkdir CodeLlama-70B-Python-GPTQ
huggingface-cli download TheBloke/CodeLlama-70B-Python-GPTQ --revision gptq-4bit-128g-actorder_True --local-dir CodeLlama-70B-Python-GPTQ --local-dir-use-symlinks False
gitを使用したダウンロード(推奨しません)
特定のブランチをgit
でクローンするには、次のようなコマンドを使用します。
git clone --single-branch --branch gptq-4bit-128g-actorder_True https://huggingface.co/TheBloke/CodeLlama-70B-Python-GPTQ
ただし、HFリポジトリでGitを使用することは強くお勧めしません。huggingface-hub
を使用するよりもはるかに遅く、モデルファイルを2回保存する必要があるため、ディスクスペースを2倍使います。
text-generation-webuiでの使用方法
- Modelタブをクリックします。
- Download custom model or LoRAの下に、
TheBloke/CodeLlama-70B-Python-GPTQ
を入力します。
- 特定のブランチからダウンロードするには、例えば
TheBloke/CodeLlama-70B-Python-GPTQ:gptq-4bit-128g-actorder_True
のように入力します。
- 各オプションのブランチのリストについては、上記の「Provided Files」を参照してください。
- Downloadをクリックします。
- モデルのダウンロードが開始されます。完了すると「Done」と表示されます。
- 左上のModelの横にある更新アイコンをクリックします。
- Modelドロップダウンで、先ほどダウンロードしたモデル
CodeLlama-70B-Python-GPTQ
を選択します。
- モデルは自動的に読み込まれ、使用可能になります!
- カスタム設定が必要な場合は、設定してから右上のSave settings for this modelをクリックし、続いてReload the Modelをクリックします。
- 手動でGPTQパラメータを設定する必要はなく、しないでください。これらは
quantize_config.json
ファイルから自動的に設定されます。
- 準備ができたら、Text Generationタブをクリックし、プロンプトを入力して開始します!
Text Generation Inference (TGI)からのモデルの提供
TGIバージョン1.1.0以降の使用をおすすめします。公式のDockerコンテナはghcr.io/huggingface/text-generation-inference:1.1.0
です。
例のDockerパラメータ:
--model-id TheBloke/CodeLlama-70B-Python-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'''{prompt}
'''
client = InferenceClient(endpoint_url)
response = client.text_generation(
prompt_template,
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}")
Pythonコードでの推論例
必要なパッケージのインストール
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 .
例のPythonコード
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model_name_or_path = "TheBloke/CodeLlama-70B-Python-GPTQ"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
device_map="auto",
trust_remote_code=False)
🔧 技術詳細
提供されるファイルとGPTQパラメータ
複数の量子化パラメータが提供されており、ハードウェアと要件に合わせて最適なものを選択できます。
各個別の量子化は異なるブランチにあります。異なるブランチから取得する手順については、以下を参照してください。
ほとんどのGPTQファイルはAutoGPTQで作成されています。Mistralモデルは現在、Transformersで作成されています。
GPTQパラメータの説明
- Bits: 量子化されたモデルのビットサイズ。
- GS: GPTQグループサイズ。数値が大きいほどVRAMの使用量が少なくなりますが、量子化精度が低下します。「None」は可能な最低値です。
- Act Order: TrueまたはFalse。
desc_act
とも呼ばれます。Trueの場合、より高い量子化精度が得られます。一部のGPTQクライアントでは、Act Orderとグループサイズを使用するモデルに問題がありましたが、現在は一般的に解決されています。
- Damp %: 量子化のためにサンプルが処理される方法に影響を与えるGPTQパラメータ。デフォルトは0.01ですが、0.1の方がわずかに精度が向上します。
- GPTQデータセット: 量子化中に使用されるキャリブレーションデータセット。モデルのトレーニングに適したデータセットを使用すると、量子化精度を向上させることができます。ただし、GPTQキャリブレーションデータセットは、モデルのトレーニングに使用されるデータセットとは異なります。トレーニングデータセットの詳細については、元のモデルリポジトリを参照してください。
- シーケンス長: 量子化に使用されるデータセットシーケンスの長さ。理想的には、モデルのシーケンス長と同じです。一部の非常に長いシーケンスモデル(16+K)では、より短いシーケンス長を使用する必要がある場合があります。ただし、シーケンス長を短くすると、量子化されたモデルのシーケンス長が制限されることはありません。長い推論シーケンスでの量子化精度にのみ影響します。
- ExLlama互換性: このファイルがExLlamaで読み込めるかどうか。現在、ExLlamaは4ビットのLlamaおよびMistralモデルのみをサポートしています。
📄 ライセンス
このモデルはllama2ライセンスの下で提供されています。