模型概述
模型特點
模型能力
使用案例
🚀 CodeLlama 7B Python - GGUF
本項目提供了 Meta的CodeLlama 7B Python 模型的GGUF格式文件,方便用戶在不同場景下使用該模型進行代碼生成等任務。
🚀 快速開始
本倉庫包含了Meta的CodeLlama 7B Python模型的GGUF格式文件。如果你想快速體驗該模型,可以按照以下步驟操作:
- 選擇合適的量化文件進行下載。
- 根據自己的使用場景,選擇對應的客戶端或庫進行模型的加載和運行。
✨ 主要特性
- 新格式優勢:GGUF是llama.cpp團隊在2023年8月21日引入的新格式,替代了不再受支持的GGML。它具有更好的分詞功能、支持特殊令牌、支持元數據,並且設計為可擴展的。
- 多客戶端支持:許多客戶端和庫都支持GGUF格式,包括llama.cpp、text-generation-webui、KoboldCpp等,用戶可以根據自己的需求選擇合適的工具。
- 多種量化方法:提供了多種量化方法的文件,用戶可以根據自己的硬件資源和對模型質量的要求選擇合適的量化文件。
📦 安裝指南
下載GGUF文件
自動下載
以下客戶端/庫會自動提供可用模型列表供你選擇並下載:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在text-generation-webui
中下載
在“Download Model”下,輸入模型倉庫地址:TheBloke/CodeLlama-7B-Python-GGUF,然後在下方輸入具體的文件名,如:codellama-7b-python.q4_K_M.gguf,最後點擊“Download”。
命令行下載
推薦使用huggingface-hub
Python庫:
pip3 install huggingface-hub>=0.17.1
然後使用以下命令高速下載單個模型文件到當前目錄:
huggingface-cli download TheBloke/CodeLlama-7B-Python-GGUF codellama-7b-python.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
安裝依賴庫
如果你想從Python代碼中使用GGUF模型,可以使用llama-cpp-python或ctransformers庫。以ctransformers
為例,安裝命令如下:
# 無GPU加速的基礎安裝
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
💻 使用示例
在llama.cpp
中運行示例
./main -ngl 32 -m codellama-7b-python.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "[INST] Write code to solve the following coding problem that obeys the constraints and passes the example test cases. Please wrap your code answer using ```:\n{prompt}\n[/INST]"
-ngl 32
:指定要卸載到GPU的層數,若沒有GPU加速可移除該參數。-c 4096
:指定所需的序列長度。對於擴展序列模型(如8K、16K、32K),必要的RoPE縮放參數會從GGUF文件中讀取並由llama.cpp自動設置。- 若想進行聊天式對話,可將
-p <PROMPT>
參數替換為-i -ins
。
在Python中使用ctransformers
加載模型示例
from ctransformers import AutoModelForCausalLM
# 設置要卸載到GPU的層數,若系統沒有GPU加速則設置為0
llm = AutoModelForCausalLM.from_pretrained("TheBloke/CodeLlama-7B-Python-GGUF", model_file="codellama-7b-python.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
📚 詳細文檔
關於GGUF
GGUF是llama.cpp團隊在2023年8月21日引入的新格式,替代了不再受支持的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:一個有吸引力且易於使用的基於角色的聊天GUI,適用於Windows和macOS(Silicon和Intel),支持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模型
- Meta的原始未量化fp16格式的pytorch模型,用於GPU推理和進一步轉換
提示模板
[INST] Write code to solve the following coding problem that obeys the constraints and passes the example test cases. Please wrap your code answer using ```:
{prompt}
[/INST]
兼容性
這些量化的GGUFv2文件與2023年8月27日之後的llama.cpp兼容,對應提交版本為d0cee0d36d5be95a0d9088b674dbb27354107221。它們也與許多第三方UI和庫兼容,具體請見本README頂部的列表。
量化方法解釋
點擊查看詳情
新的量化方法如下:
- GGML_TYPE_Q2_K:“type-1” 2位量化,超級塊包含16個塊,每個塊有16個權重。塊的尺度和最小值用4位量化,最終每個權重有效使用2.5625位(bpw)。
- GGML_TYPE_Q3_K:“type-0” 3位量化,超級塊包含16個塊,每個塊有16個權重。尺度用6位量化,最終使用3.4375 bpw。
- GGML_TYPE_Q4_K:“type-1” 4位量化,超級塊包含8個塊,每個塊有32個權重。尺度和最小值用6位量化,最終使用4.5 bpw。
- GGML_TYPE_Q5_K:“type-1” 5位量化,與GGML_TYPE_Q4_K具有相同的超級塊結構,最終使用5.5 bpw。
- GGML_TYPE_Q6_K:“type-0” 6位量化,超級塊有16個塊,每個塊有16個權重。尺度用8位量化,最終使用6.5625 bpw。
請參考下面的“提供的文件”表格,瞭解哪些文件使用了哪些方法以及如何使用。
提供的文件
名稱 | 量化方法 | 位數 | 大小 | 所需最大RAM | 使用場景 |
---|---|---|---|---|---|
codellama-7b-python.Q2_K.gguf | Q2_K | 2 | 2.83 GB | 5.33 GB | 最小,但質量損失顯著,不建議用於大多數場景 |
codellama-7b-python.Q3_K_S.gguf | Q3_K_S | 3 | 2.95 GB | 5.45 GB | 非常小,但質量損失高 |
codellama-7b-python.Q3_K_M.gguf | Q3_K_M | 3 | 3.30 GB | 5.80 GB | 非常小,但質量損失高 |
codellama-7b-python.Q3_K_L.gguf | Q3_K_L | 3 | 3.60 GB | 6.10 GB | 小,但質量損失較大 |
codellama-7b-python.Q4_0.gguf | Q4_0 | 4 | 3.83 GB | 6.33 GB | 舊版;小,但質量損失非常高,建議使用Q3_K_M |
codellama-7b-python.Q4_K_S.gguf | Q4_K_S | 4 | 3.86 GB | 6.36 GB | 小,但質量損失更大 |
codellama-7b-python.Q4_K_M.gguf | Q4_K_M | 4 | 4.08 GB | 6.58 GB | 中等,質量平衡,推薦使用 |
codellama-7b-python.Q5_0.gguf | Q5_0 | 5 | 4.65 GB | 7.15 GB | 舊版;中等,質量平衡,建議使用Q4_K_M |
codellama-7b-python.Q5_K_S.gguf | Q5_K_S | 5 | 4.65 GB | 7.15 GB | 大,質量損失低,推薦使用 |
codellama-7b-python.Q5_K_M.gguf | Q5_K_M | 5 | 4.78 GB | 7.28 GB | 大,質量損失非常低,推薦使用 |
codellama-7b-python.Q6_K.gguf | Q6_K | 6 | 5.53 GB | 8.03 GB | 非常大,質量損失極低 |
codellama-7b-python.Q8_0.gguf | Q8_0 | 8 | 7.16 GB | 9.66 GB | 非常大,質量損失極低,但不建議使用 |
注意:上述RAM數字假設沒有進行GPU卸載。如果將層卸載到GPU,將減少RAM使用並使用VRAM。
如何運行
在text-generation-webui
中運行
更多說明請參考:text-generation-webui/docs/llama.cpp.md。
如何與LangChain一起使用
以下是使用llama-cpp-python或ctransformers與LangChain的指南:
🔧 技術細節
模型信息
屬性 | 詳情 |
---|---|
模型類型 | llama |
訓練數據 | 未提及 |
模型創建者 | Meta |
基礎模型 | codellama/CodeLlama-7b-python-hf |
量化者 | TheBloke |
許可證 | llama2 |
模型使用說明
使用此模型時,請確保在新版本發佈之前從main
安裝transformers:
pip install git+https://github.com/huggingface/transformers.git@main accelerate
模型功能:
- [x] 代碼補全。
- [ ] 填充。
- [ ] 指令/聊天。
- [x] Python專業。
模型詳情
本模型由Meta開發並公開發布,屬於Code Llama系列大語言模型(LLMs)。
模型開發者:Meta
變體:Code Llama有三種模型大小和三種變體:
- Code Llama:用於一般代碼合成和理解的基礎模型。
- Code Llama - Python:專門為Python設計。
- Code Llama - Instruct:用於指令跟隨和更安全的部署。
所有變體都有7B、13B和34B參數的版本。本倉庫包含的是7B參數的Python版本模型。
輸入:模型僅接受文本輸入。
輸出:模型僅生成文本輸出。
模型架構:Code Llama是一個自迴歸語言模型,使用了優化的Transformer架構。
模型日期:Code Llama及其變體於2023年1月至7月期間進行訓練。
📄 許可證
本模型使用的許可證為llama2。使用該模型請遵守Meta的相關許可協議。
💬 Discord
如需進一步支持,或參與有關這些模型和AI的討論,歡迎加入: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等眾多支持者。
感謝所有慷慨的贊助者和捐贈者!再次感謝a16z的慷慨資助。



