模型概述
模型特點
模型能力
使用案例
🚀 CodeLlama 34B Instruct - GPTQ
本項目提供了 Meta的CodeLlama 34B Instruct 的GPTQ模型文件。包含多種GPTQ參數排列,可根據自身硬件和需求進行選擇。
📦 安裝指南
安裝必要的包
需要安裝:Transformers 4.32.0 或更高版本,Optimum 1.12.0 或更高版本,以及 AutoGPTQ 0.4.2 或更高版本。
pip3 install transformers>=4.32.0 optimum>=1.12.0
pip3 install auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/ # 如果使用CUDA 11.7,請使用cu117
如果使用預構建的輪子安裝 AutoGPTQ 時遇到問題,可以從源代碼安裝:
pip3 uninstall -y auto-gptq
git clone https://github.com/PanQiWei/AutoGPTQ
cd AutoGPTQ
pip3 install .
僅針對CodeLlama模型:必須使用Transformers 4.33.0或更高版本
如果在閱讀本文時 4.33.0 版本尚未發佈,則需要從源代碼安裝 Transformers:
pip3 uninstall -y transformers
pip3 install git+https://github.com/huggingface/transformers.git
💻 使用示例
如何在 text-generation-webui 中輕鬆下載和使用此模型
請確保使用的是 text-generation-webui 的最新版本。強烈建議使用 text-generation-webui 的一鍵安裝程序,除非你確定自己知道如何手動安裝。
- 點擊 模型 選項卡。
- 在 下載自定義模型或LoRA 下,輸入
TheBloke/CodeLlama-34B-Instruct-GPTQ
。- 若要從特定分支下載,例如輸入
TheBloke/CodeLlama-34B-Instruct-GPTQ:main
。 - 請參閱上述 提供的文件 以獲取每個選項的分支列表。
- 若要從特定分支下載,例如輸入
- 點擊 下載。
- 模型將開始下載。下載完成後會顯示 “已完成”。
- 在左上角,點擊 模型 旁邊的刷新圖標。
- 在 模型 下拉菜單中,選擇你剛剛下載的模型:
CodeLlama-34B-Instruct-GPTQ
。 - 模型將自動加載,現在可以使用了!
- 如果你需要自定義設置,請進行設置,然後點擊右上角的 保存此模型的設置,接著點擊 重新加載模型。
- 注意,你不再需要也不應該手動設置 GPTQ 參數。這些參數會從
quantize_config.json
文件中自動設置。
- 注意,你不再需要也不應該手動設置 GPTQ 參數。這些參數會從
- 準備好後,點擊 文本生成 選項卡並輸入提示以開始!
如何從Python代碼使用此GPTQ模型
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model_name_or_path = "TheBloke/CodeLlama-34B-Instruct-GPTQ"
# 若要使用不同的分支,請更改revision
# 例如:revision="main"
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'''[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]
'''
print("\n\n*** Generate:")
input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
output = model.generate(inputs=input_ids, temperature=0.7, do_sample=True, top_p=0.95, top_k=40, max_new_tokens=512)
print(tokenizer.decode(output[0]))
# 也可以使用transformers的pipeline進行推理
print("*** Pipeline:")
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
max_new_tokens=512,
do_sample=True,
temperature=0.7,
top_p=0.95,
top_k=40,
repetition_penalty=1.1
)
print(pipe(prompt_template)[0]['generated_text'])
📚 詳細文檔
描述
此倉庫包含 Meta的CodeLlama 34B Instruct 的GPTQ模型文件。提供了多種GPTQ參數排列,具體選項、參數以及創建它們所使用的軟件詳情,請參閱下面的 提供的文件。
可用的倉庫
- 用於GPU推理的AWQ模型。
- 用於GPU推理的GPTQ模型,具有多種量化參數選項。
- 適用於CPU+GPU推理的2、3、4、5、6和8位GGUF模型。
- Meta原始的未量化fp16 PyTorch格式模型,用於GPU推理和進一步轉換。
提示模板:CodeLlama
[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]
提供的文件和GPTQ參數
提供了多種量化參數,以便你根據自己的硬件和需求選擇最佳參數。每個單獨的量化版本位於不同的分支中。有關從不同分支獲取文件的說明,請參閱下面的 如何從分支下載。所有近期的GPTQ文件均使用AutoGPTQ生成,非主分支中的所有文件也使用AutoGPTQ生成。main
分支中2023年8月之前上傳的文件使用GPTQ-for-LLaMa生成。
GPTQ參數說明
- 位:量化模型的位大小。
- GS:GPTQ組大小。數值越高,使用的顯存越少,但量化精度越低。“無” 是可能的最低值。
- 激活順序:真或假。也稱為
desc_act
。真可獲得更好的量化精度。一些GPTQ客戶端在使用激活順序加組大小的模型時遇到過問題,但現在這個問題通常已解決。 - 衰減百分比:一個影響量化樣本處理方式的GPTQ參數。默認值為0.01,但0.1可獲得稍高的精度。
- GPTQ數據集:用於量化的數據集。使用更適合模型訓練的數據集可以提高量化精度。請注意,GPTQ數據集與用於訓練模型的數據集不同 - 有關訓練數據集的詳細信息,請參閱原始模型倉庫。
- 序列長度:用於量化的數據集序列的長度。理想情況下,這應與模型序列長度相同。對於一些非常長序列的模型(16+K),可能需要使用較低的序列長度。請注意,較低的序列長度不會限制量化模型的序列長度。它僅影響較長推理序列的量化精度。
- ExLlama兼容性:此文件是否可以使用ExLlama加載,目前ExLlama僅支持4位的Llama模型。
分支 | 位 | GS | 激活順序 | 衰減百分比 | GPTQ數據集 | 序列長度 | 大小 | ExLlama兼容性 | 描述 |
---|---|---|---|---|---|---|---|---|---|
main | 4 | 128 | 否 | 0.1 | Evol Instruct Code | 4096 | 18.33 GB | 是 | 4位,無激活順序,組大小為128g。 |
gptq-4bit-32g-actorder_True | 4 | 32 | 是 | 0.1 | Evol Instruct Code | 4096 | 20.28 GB | 是 | 4位,有激活順序,組大小為32g。可獲得最高的推理質量,但顯存使用量最大。 |
gptq-4bit-64g-actorder_True | 4 | 64 | 是 | 0.1 | Evol Instruct Code | 4096 | 18.98 GB | 是 | 4位,有激活順序,組大小為64g。比32g使用的顯存少,但精度稍低。 |
gptq-4bit-128g-actorder_True | 4 | 128 | 是 | 0.1 | Evol Instruct Code | 4096 | 18.33 GB | 是 | 4位,有激活順序,組大小為128g。比64g使用的顯存更少,但精度稍低。 |
gptq-8bit--1g-actorder_True | 8 | 無 | 是 | 0.1 | Evol Instruct Code | 4096 | 34.30 GB | 否 | 8位,有激活順序。無組大小,以降低顯存需求。 |
gptq-8bit-128g-actorder_True | 8 | 128 | 是 | 0.1 | Evol Instruct Code | 4096 | 35.07 GB | 否 | 8位,組大小為128g以提高推理質量,有激活順序以獲得更高的精度。 |
如何從分支下載
- 在text-generation-webui中,可以在下載名稱末尾添加
:分支名
,例如TheBloke/CodeLlama-34B-Instruct-GPTQ:main
。 - 使用Git,可以使用以下命令克隆分支:
git clone --single-branch --branch main https://huggingface.co/TheBloke/CodeLlama-34B-Instruct-GPTQ
- 在Python Transformers代碼中,分支是
revision
參數;請參閱上述代碼示例。
兼容性
提供的文件已測試可與AutoGPTQ一起使用,既可以通過Transformers使用,也可以直接使用AutoGPTQ。它們也應該可以與 Occ4m的GPTQ-for-LLaMa分支 一起使用。
ExLlama 與4位的Llama模型兼容。請參閱上述 提供的文件 表以獲取每個文件的兼容性信息。
Huggingface文本生成推理(TGI) 與所有GPTQ模型兼容。
🔧 技術細節
模型詳情
*注意:此模型的使用受Meta許可證的約束。Meta開發並公開發布了Code Llama系列大語言模型(LLM)。
模型開發者 Meta
變體 Code Llama有三種模型大小和三種變體:
- Code Llama:用於一般代碼合成和理解的基礎模型。
- Code Llama - Python:專門為Python設計。
- Code Llama - Instruct:用於遵循指令和更安全的部署。
所有變體都有7B、13B和34B參數的版本。
本倉庫包含34B參數模型的Instruct版本。
輸入 模型僅接受文本輸入。
輸出 模型僅生成文本。
模型架構 Code Llama是一種自迴歸語言模型,使用優化的Transformer架構。
模型日期 Code Llama及其變體於2023年1月至2023年7月期間進行了訓練。
狀態 這是一個基於離線數據集訓練的靜態模型。隨著我們根據社區反饋改進模型安全性,未來將發佈Code Llama - Instruct的新版本。
許可證 可在 https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 獲取自定義商業許可證。
研究論文 更多信息可在論文 "Code Llama: Open Foundation Models for Code" 或其 arXiv頁面 中找到。
預期用途
預期用例 Code Llama及其變體旨在用於英語和相關編程語言的商業和研究用途。基礎模型Code Llama可用於各種代碼合成和理解任務,Code Llama - Python專門用於處理Python編程語言,而Code Llama - Instruct旨在更安全地用於代碼助手和生成應用程序。
超出範圍的用途 以任何違反適用法律或法規(包括貿易合規法律)的方式使用。使用英語以外的語言。以Code Llama及其變體的可接受使用政策和許可協議禁止的任何其他方式使用。
硬件和軟件
訓練因素 我們使用了自定義訓練庫。已發佈模型的訓練和微調在Meta的研究超級集群上進行。
碳足跡 總體而言,訓練所有9個Code Llama模型需要在A100 - 80GB類型的硬件(TDP為350 - 400W)上進行400K GPU小時的計算。估計總排放量為65.3 tCO2eq,其中100%由Meta的可持續發展計劃抵消。
訓練數據
此處報告的所有實驗和已發佈的模型均使用與Llama 2相同的數據進行訓練和微調,但權重不同(有關詳細信息,請參閱 研究論文 的第2節和表1)。
評估結果
請參閱研究論文的第3節中主要模型的評估和詳細消融實驗,以及第4節中的安全評估。
倫理考慮和侷限性
Code Llama及其變體是一項新技術,使用時存在風險。迄今為止進行的測試均使用英語,且無法涵蓋所有場景。由於這些原因,與所有大語言模型一樣,Code Llama的潛在輸出無法提前預測,並且在某些情況下,模型可能會對用戶提示產生不準確或令人反感的響應。因此,在部署任何Code Llama應用程序之前,開發人員應針對其特定的模型應用進行安全測試和調整。
請參閱 https://ai.meta.com/llama/responsible-user-guide 上的《負責任使用指南》。
📄 許可證
本模型使用的許可證為 llama2,具體自定義商業許可證可在 https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 獲取。
其他信息
Discord
如需進一步支持,以及討論這些模型和一般人工智能,請加入我們的: TheBloke AI的Discord服務器
感謝與貢獻方式
感謝 chirper.ai 團隊!感謝來自 gpus.llm-utils.org 的Clay!
很多人詢問是否可以進行貢獻。我喜歡提供模型並幫助他人,也希望能夠花更多時間做這些事情,以及拓展到新的項目,如微調/訓練。
如果你有能力且願意貢獻,我將非常感激,這將幫助我繼續提供更多模型,並開始新的人工智能項目。捐贈者將在任何和所有人工智能/大語言模型/模型問題和請求上獲得優先支持,訪問私人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 Wilmers、Trenton Dambrowitz、vamX、Michael Levine、준교 김、Brandon Frisco、Kalila、Trailburnt、Randy H、Talal Aujan、Nathan Dryer、Vadim、阿明、ReadyPlayerEmma、Tiffany J. Kim、George Stoitzev、Spencer Kim、Jerry Meng、Gabriel Tamborski、Cory Kujawski、Jeffrey Morgan、Spiking Neurons AB、Edmond Seymore、Alexandros Triantafyllidis、Lone Striker、Cap'n Zoog、Nikolai Manek、danny、ya boyyy、Derek Yates、usrbinkat、Mandus、TL、Nathan LeClaire、subjectnull、Imad Khwaja、webtim、Raven Klaugh、Asp the Wyvern、Gabriel Puliatti、Caitlyn Gatomon、Joseph William Delisle、Jonathan Leane、Luke Pendergrass、SuperWojo、Sebastain Graf、Will Dee、Fred von Graf、Andrey、Dan Guido、Daniel P. Andersen、Nitin Borwankar、Elle、Vitor Caleffi、biorpg、jjj、NimbleBox.ai、Pieter、Matthew Berman、terasurfer、Michael Davis、Alex、Stanislav Ovsiannikov
感謝所有慷慨的贊助者和捐贈者!再次感謝a16z的慷慨資助。



