🚀 [MaziyarPanahi/SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF]
このモデルは、MaziyarPanahi/SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1 のGGUF形式のモデルファイルを含んでいます。テキスト生成に最適で、様々な量子化方法が用意されています。
🚀 クイックスタート
このモデルを使用するには、まずGGUFファイルをダウンロードする必要があります。その後、llama.cpp
やtext-generation-webui
、Pythonコードなどを使ってモデルを実行できます。
✨ 主な機能
- 複数の量子化方法(2-bitから8-bit)をサポート
- 様々なクライアントやライブラリでの使用が可能
- 長いシーケンス長に対応
📦 インストール
GGUFファイルのダウンロード
自動ダウンロード
以下のクライアント/ライブラリは、利用可能なモデルのリストを提供し、自動でモデルをダウンロードします。
- LM Studio
- LoLLMS Web UI
- Faraday.dev
text-generation-webui
でのダウンロード
「Download Model」の下に、モデルのリポジトリ MaziyarPanahi/SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF を入力し、その下にダウンロードするファイル名(例:SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF.Q4_K_M.gguf)を入力して、「Download」をクリックします。
コマンドラインでのダウンロード
huggingface-hub
Pythonライブラリを使用することをおすすめします。
pip3 install huggingface-hub
次に、以下のコマンドで任意のモデルファイルを現在のディレクトリに高速でダウンロードできます。
huggingface-cli download MaziyarPanahi/SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
llama-cpp-python
のインストール
システムに応じて以下のコマンドを実行します。
# ベースのctransformers(GPUアクセラレーションなし)
pip install llama-cpp-python
# NVidia CUDAアクセラレーション付き
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
# またはOpenBLASアクセラレーション付き
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
# またはCLBLastアクセラレーション付き
CMAKE_ARGS="-DLLAMA_CLBLAST=on" pip install llama-cpp-python
# またはAMD ROCm GPUアクセラレーション付き(Linuxのみ)
CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python
# またはmacOSシステム用のMetal GPUアクセラレーション付き
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
# Windowsコマンドラインユーザー:PowerShellで変数CMAKE_ARGSを設定するには、以下の形式に従います。例:NVidia CUDAの場合
$env:CMAKE_ARGS = "-DLLAMA_OPENBLAS=on"
pip install llama-cpp-python
💻 使用例
基本的な使用法
from llama_cpp import Llama
llm = Llama(
model_path="./SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF.Q4_K_M.gguf",
n_ctx=32768,
n_threads=8,
n_gpu_layers=35
)
output = llm(
"<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant",
max_tokens=512,
stop=["</s>"],
echo=True
)
llm = Llama(model_path="./SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF.Q4_K_M.gguf", chat_format="llama-2")
llm.create_chat_completion(
messages = [
{"role": "system", "content": "You are a story writing assistant."},
{
"role": "user",
"content": "Write a story about llamas."
}
]
)
高度な使用法
./main -ngl 35 -m SauerkrautLM-7b-HerO-Mistral-7B-Instruct-v0.1-GGUF.Q4_K_M.gguf --color -c 32768 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant"
-ngl 32
をGPUにオフロードするレイヤー数に変更します。GPUアクセラレーションがない場合は削除します。
-c 32768
を希望するシーケンス長に変更します。拡張シーケンスモデル(例:8K、16K、32K)の場合、必要なRoPEスケーリングパラメータはGGUFファイルから読み取られ、llama.cppによって自動的に設定されます。ただし、長いシーケンス長はより多くのリソースを必要とするため、この値を減らす必要がある場合があります。
- チャットスタイルの会話を行いたい場合は、
-p <PROMPT>
引数を -i -ins
に置き換えます。
その他の使用方法
text-generation-webui
での実行
詳細な手順は、text-generation-webuiのドキュメント を参照してください。
LangChainとの連携
🔧 技術詳細
GGUFについて
GGUFは、2023年8月21日にllama.cppチームによって導入された新しい形式です。GGMLの代替となるもので、現在はllama.cppではGGMLがサポートされなくなっています。
量子化方法の説明
新しい量子化方法は以下の通りです。
- GGML_TYPE_Q2_K - 16個のブロックを含むスーパーブロック内の「タイプ1」2-bit量子化。各ブロックは16個の重みを持ちます。ブロックのスケールと最小値は4-bitで量子化されます。これにより、重みあたり実効的に2.5625 bit (bpw) が使用されます。
- GGML_TYPE_Q3_K - 16個のブロックを含むスーパーブロック内の「タイプ0」3-bit量子化。各ブロックは16個の重みを持ちます。スケールは6-bitで量子化されます。これにより、3.4375 bpwが使用されます。
- GGML_TYPE_Q4_K - 8個のブロックを含むスーパーブロック内の「タイプ1」4-bit量子化。各ブロックは32個の重みを持ちます。スケールと最小値は6-bitで量子化されます。これにより、4.5 bpwが使用されます。
- GGML_TYPE_Q5_K - 「タイプ1」5-bit量子化。GGML_TYPE_Q4_Kと同じスーパーブロック構造で、5.5 bpwになります。
- GGML_TYPE_Q6_K - 「タイプ0」6-bit量子化。16個のブロックを含むスーパーブロック。各ブロックは16個の重みを持ちます。スケールは8-bitで量子化されます。これにより、6.5625 bpwが使用されます。
📄 ライセンス
このモデルはApache-2.0ライセンスの下で提供されています。