モデル概要
モデル特徴
モデル能力
使用事例
🚀 CodeLlama 7B - GGUF
このプロジェクトは、MetaのCodeLlama 7BモデルのGGUF形式のモデルファイルを提供します。GGUF形式はGGMLの代替として開発され、多くの利点を持っています。

TheBlokeのLLM関連の作業は、andreessen horowitz (a16z)からの助成金によって支援されています。
📚 詳細ドキュメント
モデル情報
- モデル作成者: Meta
- オリジナルモデル: CodeLlama 7B
モデルの説明
このリポジトリには、MetaのCodeLlama 7BのGGUF形式のモデルファイルが含まれています。
GGUFについて
GGUFは、2023年8月21日にllama.cppチームによって導入された新しい形式です。これはGGMLの代替となるもので、現在ではllama.cppによってGGMLはサポートされなくなっています。GGUFはGGMLに比べて多くの利点を持っており、例えば、より良いトークン化や特殊トークンのサポートがあります。また、メタデータをサポートし、拡張性を持つように設計されています。
以下は、GGUFをサポートすることが知られているクライアントとライブラリの不完全なリストです。
- llama.cpp。GGUFのソースプロジェクトで、CLIとサーバーオプションを提供します。
- text-generation-webui、最も広く使われているWeb UIで、多くの機能と強力な拡張機能を備えています。GPUアクセラレーションをサポートします。
- KoboldCpp、全機能を備えたWeb UIで、すべてのプラットフォームとGPUアーキテクチャでGPUアクセラレーションをサポートします。特にストーリーテリングに適しています。
- LM Studio、WindowsとmacOS (Silicon)用の使いやすく強力なローカルGUIで、GPUアクセラレーションをサポートします。
- LoLLMS Web UI、多くの興味深い独自機能を備えた素晴らしいWeb UIで、モデル選択が容易な完全なモデルライブラリを含んでいます。
- Faraday.dev、WindowsとmacOS (SiliconとIntelの両方)用の魅力的で使いやすいキャラクターベースのチャットGUIで、GPUアクセラレーションをサポートします。
- ctransformers、GPUアクセラレーション、LangChainサポート、およびOpenAI互換のAIサーバーを備えたPythonライブラリ。
- llama-cpp-python、GPUアクセラレーション、LangChainサポート、およびOpenAI互換のAPIサーバーを備えたPythonライブラリ。
- candle、パフォーマンスに重点を置いたRustのMLフレームワークで、GPUサポートと使いやすさを備えています。
利用可能なリポジトリ
- GPU推論用のAWQモデル
- 複数の量子化パラメータオプションを持つGPU推論用のGPTQモデル
- CPU+GPU推論用の2、3、4、5、6、および8ビットのGGUFモデル
- GPU推論とさらなる変換用の、Metaのオリジナルの非量子化fp16モデル(pytorch形式)
プロンプトテンプレート
{prompt}
互換性
これらの量子化されたGGUFv2ファイルは、2023年8月27日以降のllama.cpp (コミット d0cee0d36d5be95a0d9088b674dbb27354107221) と互換性があります。
また、多くのサードパーティのUIやライブラリとも互換性があります。詳細はこのREADMEの上部のリストを参照してください。
量子化方法の説明
詳細を表示するにはクリック
利用可能な新しい方法は以下の通りです。
- GGML_TYPE_Q2_K - 16個のブロックを含むスーパーブロックでの「タイプ1」の2ビット量子化。各ブロックには16個の重みがあります。ブロックのスケールと最小値は4ビットで量子化されます。これにより、重みあたり実質的に2.5625ビット (bpw) が使用されます。
- GGML_TYPE_Q3_K - 16個のブロックを含むスーパーブロックでの「タイプ0」の3ビット量子化。各ブロックには16個の重みがあります。スケールは6ビットで量子化されます。これにより、3.4375 bpwが使用されます。
- GGML_TYPE_Q4_K - 8個のブロックを含むスーパーブロックでの「タイプ1」の4ビット量子化。各ブロックには32個の重みがあります。スケールと最小値は6ビットで量子化されます。これにより、4.5 bpwが使用されます。
- GGML_TYPE_Q5_K - 「タイプ1」の5ビット量子化。GGML_TYPE_Q4_Kと同じスーパーブロック構造で、5.5 bpwになります。
- GGML_TYPE_Q6_K - 「タイプ0」の6ビット量子化。16個のブロックを含むスーパーブロックで、各ブロックには16個の重みがあります。スケールは8ビットで量子化されます。これにより、6.5625 bpwが使用されます。
どのファイルがどの方法を使用しているか、およびその使用方法については、以下の「提供されるファイル」の表を参照してください。
提供されるファイル
名前 | 量子化方法 | ビット数 | サイズ | 必要な最大RAM | 使用ケース |
---|---|---|---|---|---|
codellama-7b.Q2_K.gguf | Q2_K | 2 | 2.83 GB | 5.33 GB | 最も小さいが、品質が大幅に低下する - ほとんどの目的には推奨されません |
codellama-7b.Q3_K_S.gguf | Q3_K_S | 3 | 2.95 GB | 5.45 GB | 非常に小さいが、高い品質低下 |
codellama-7b.Q3_K_M.gguf | Q3_K_M | 3 | 3.30 GB | 5.80 GB | 非常に小さいが、高い品質低下 |
codellama-7b.Q3_K_L.gguf | Q3_K_L | 3 | 3.60 GB | 6.10 GB | 小さいが、かなりの品質低下 |
codellama-7b.Q4_0.gguf | Q4_0 | 4 | 3.83 GB | 6.33 GB | レガシー; 小さいが、非常に高い品質低下 - Q3_K_Mの使用を推奨 |
codellama-7b.Q4_K_S.gguf | Q4_K_S | 4 | 3.86 GB | 6.36 GB | 小さいが、より大きな品質低下 |
codellama-7b.Q4_K_M.gguf | Q4_K_M | 4 | 4.08 GB | 6.58 GB | 中程度で、バランスの良い品質 - 推奨 |
codellama-7b.Q5_0.gguf | Q5_0 | 5 | 4.65 GB | 7.15 GB | レガシー; 中程度で、バランスの良い品質 - Q4_K_Mの使用を推奨 |
codellama-7b.Q5_K_S.gguf | Q5_K_S | 5 | 4.65 GB | 7.15 GB | 大きいが、低い品質低下 - 推奨 |
codellama-7b.Q5_K_M.gguf | Q5_K_M | 5 | 4.78 GB | 7.28 GB | 大きいが、非常に低い品質低下 - 推奨 |
codellama-7b.Q6_K.gguf | Q6_K | 6 | 5.53 GB | 8.03 GB | 非常に大きいが、極めて低い品質低下 |
codellama-7b.Q8_0.gguf | Q8_0 | 8 | 7.16 GB | 9.66 GB | 非常に大きいが、極めて低い品質低下 - 推奨されません |
注: 上記のRAMの数値は、GPUオフロードがない場合を想定しています。レイヤーをGPUにオフロードすると、RAMの使用量が減少し、代わりにVRAMが使用されます。
GGUFファイルのダウンロード方法
手動でダウンロードする方への注意: ほとんどの場合、リポジトリ全体をクローンする必要はありません!複数の異なる量子化形式が提供されており、ほとんどのユーザーは1つのファイルを選択してダウンロードするだけです。
以下のクライアント/ライブラリは、利用可能なモデルのリストを提供し、自動的にモデルをダウンロードします。
- LM Studio
- LoLLMS Web UI
- Faraday.dev
text-generation-webui
でのダウンロード方法
「Download Model」の下で、モデルリポジトリ TheBloke/CodeLlama-7B-GGUF
を入力し、その下にダウンロードする特定のファイル名(例: codellama-7b.q4_K_M.gguf)を入力します。
そして「Download」をクリックします。
コマンドラインでのダウンロード方法(複数のファイルを一度に含む場合)
huggingface-hub
Pythonライブラリの使用をお勧めします。
pip3 install huggingface-hub>=0.17.1
次に、以下のようなコマンドで、任意の個別のモデルファイルを高速で現在のディレクトリにダウンロードできます。
huggingface-cli download TheBloke/CodeLlama-7B-GGUF codellama-7b.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
より高度なhuggingface-cliのダウンロード使用方法
パターンを使用して複数のファイルを一度にダウンロードすることもできます。
huggingface-cli download TheBloke/CodeLlama-7B-GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
huggingface-cli
でのダウンロードに関する詳細なドキュメントは、HF -> Hub Python Library -> Download files -> Download from the CLI を参照してください。
高速接続(1Gbit/s以上)でのダウンロードを加速するには、hf_transfer
をインストールします。
pip3 install hf_transfer
そして、環境変数 HF_HUB_ENABLE_HF_TRANSFER
を 1
に設定します。
HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/CodeLlama-7B-GGUF codellama-7b.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows CLIのユーザーは、ダウンロードコマンドを実行する前に set HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1
を実行してください。
llama.cppでの実行方法
llama.cpp
のコミット d0cee0d36d5be95a0d9088b674dbb27354107221 以降のバージョンを使用していることを確認してください。
./main -ngl 32 -m codellama-7b.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "{prompt}"
-ngl 32
をGPUにオフロードするレイヤー数に変更してください。GPUアクセラレーションがない場合は、このオプションを削除してください。
-c 4096
を希望するシーケンス長に変更してください。拡張シーケンスモデル(例: 8K、16K、32K)の場合、必要なRoPEスケーリングパラメータはGGUFファイルから読み取られ、llama.cppによって自動的に設定されます。
チャットスタイルの会話を行いたい場合は、-p <PROMPT>
引数を -i -ins
に置き換えてください。
その他のパラメータとその使用方法については、llama.cppのドキュメント を参照してください。
text-generation-webuiでの実行方法
詳細な手順は text-generation-webui/docs/llama.cpp.md を参照してください。
Pythonコードからの実行方法
llama-cpp-python または ctransformers ライブラリを使用して、PythonからGGUFモデルを使用することができます。
ctransformersを使用してPythonからこのモデルをロードする方法
まずパッケージをインストールする
# GPUアクセラレーションなしの基本的なctransformers
pip install ctransformers>=0.2.24
# またはCUDA GPUアクセラレーション付き
pip install ctransformers[cuda]>=0.2.24
# またはROCm GPUアクセラレーション付き
CT_HIPBLAS=1 pip install ctransformers>=0.2.24 --no-binary ctransformers
# またはmacOSシステム用のMetal GPUアクセラレーション付き
CT_METAL=1 pip install ctransformers>=0.2.24 --no-binary ctransformers
これらのGGUFモデルの1つをロードする簡単なサンプルコード
from ctransformers import AutoModelForCausalLM
# gpu_layersをGPUにオフロードするレイヤー数に設定します。システムでGPUアクセラレーションが利用できない場合は0に設定します。
llm = AutoModelForCausalLM.from_pretrained("TheBloke/CodeLlama-7B-GGUF", model_file="codellama-7b.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
LangChainでの使用方法
以下は、llama-cpp-pythonまたはctransformersをLangChainとともに使用するためのガイドです。
📱 Discord
これらのモデルや一般的なAIに関するさらなるサポートや議論に参加するには、以下のDiscordサーバーに参加してください。 TheBloke AIのDiscordサーバー
🙏 謝辞と貢献方法
chirper.ai チームに感謝します!
gpus.llm-utils.org のClayに感謝します!
多くの人から貢献できるかどうか尋ねられています。私はモデルを提供し、人々を助けることが好きで、もっと多くの時間を費やして、微調整/トレーニングなどの新しいプロジェクトにも取り組めるようになりたいと思っています。
もし貢献できる方がいらっしゃれば、大変感謝していただけます。これにより、より多くのモデルを提供し、新しいAIプロジェクトの開発を開始するのに役立ちます。
寄付者は、すべてのAI/LLM/モデルに関する質問やリクエストに対する優先サポート、プライベートDiscordルームへのアクセス、その他の特典を受けることができます。
- Patreon: https://patreon.com/TheBlokeAI
- Ko-Fi: https://ko-fi.com/TheBlokeAI
特別な感謝: Aemon Algiz。
Patreonでの特別な言及: Alicia Loh、Stephen Murray、K、Ajan Kanaga、RoA、Magnesian、Deo Leter、Olakabola、Eugene Pentland、zynix、Deep Realms、Raymond Fosdick、Elijah Stavena、Iucharbius、Erik Bjäreholt、Luis Javier Navarrete Lozano、Nicholas、theTransient、John Detwiler、alfie_i、knownsqashed、Mano Prime、Willem Michiel、Enrico Ros、LangChain4j、OG、Michael Dempsey、Pierre Kircher、Pedro Madruga、James Bentley、Thomas Belote、Luke @flexchar、Leonard Tan、Johann-Peter Hartmann、Illia Dulskyi、Fen Risland、Chadd、S_X、Jeff Scroggin、Ken Nordquist、Sean Connelly、Artur Olbinski、Swaroop Kallakuri、Jack West、Ai Maven、David Ziegler、Russ Johnson、transmissions 11、John Villwock、Alps Aficionado、Clay Pascal、Viktor Bowallius、Subspace Studios、Rainer Wilm
📄 ライセンス
このモデルはLlama 2のライセンスの下で提供されています。



