模型概述
模型特點
模型能力
使用案例
🚀 [MaziyarPanahi/WizardLM-2-7B-GGUF]
[MaziyarPanahi/WizardLM-2-7B-GGUF] 項目提供了 [microsoft/WizardLM-2-7B] 的 GGUF 格式模型文件,可用於文本生成任務,具有多語言支持和良好的性能表現。
🚀 快速開始
本項目包含了 [microsoft/WizardLM-2-7B] 的 GGUF 格式模型文件。以下是使用該模型的一些基本信息和步驟:
模型信息
屬性 | 詳情 |
---|---|
模型名稱 | WizardLM-2 7B |
開發者 | WizardLM@Microsoft AI |
基礎模型 | mistralai/Mistral-7B-v0.1 |
參數數量 | 7B |
語言 | 多語言 |
博客 | Introducing WizardLM-2 |
倉庫 | https://github.com/nlpxucan/WizardLM |
論文 | WizardLM-2 (即將發佈) |
許可證 | Apache2.0 |
提示模板
{system_prompt}
USER: {prompt}
ASSISTANT: </s>
或者
A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful,
detailed, and polite answers to the user's questions. USER: Hi ASSISTANT: Hello.</s>
USER: {prompt} ASSISTANT: </s>......
以上模板取自原始 README。
推理示例腳本
我們在 GitHub 上提供了一個 WizardLM-2 推理演示 代碼。
✨ 主要特性
模型能力
MT-Bench
我們採用了 lmsys 提出的基於 GPT-4 的自動 MT-Bench 評估框架來評估模型性能。WizardLM-2 8x22B 與最先進的專有模型相比,表現出極具競爭力的性能。同時,WizardLM-2 7B 和 WizardLM-2 70B 在 7B 到 70B 模型規模的其他領先基線模型中,均為表現最佳的模型。
人工偏好評估
我們精心收集了一組複雜且具有挑戰性的真實世界指令集,其中包括人類的主要需求,如寫作、編碼、數學、推理、代理和多語言。我們報告了無平局的勝負率:
- WizardLM-2 8x22B 僅略遜於 GPT-4-1106-preview,顯著強於 Command R Plus 和 GPT4-0314。
- WizardLM-2 70B 優於 GPT4-0613、Mistral-Large 和 Qwen1.5-72B-Chat。
- WizardLM-2 7B 與 Qwen1.5-32B-Chat 性能相當,且超越了 Qwen1.5-14B-Chat 和 Starling-LM-7B-beta。
方法概述
我們構建了一個 完全由人工智能驅動的合成訓練系統 來訓練 WizardLM-2 模型。有關該系統的更多詳細信息,請參閱我們的 博客。
📦 安裝指南
關於 GGUF
GGUF 是 llama.cpp 團隊在 2023 年 8 月 21 日推出的一種新格式,它取代了不再受 llama.cpp 支持的 GGML。
以下是已知支持 GGUF 的客戶端和庫的不完全列表:
- llama.cpp。GGUF 的源項目,提供 CLI 和服務器選項。
- text-generation-webui,最廣泛使用的 Web UI,具有許多功能和強大的擴展,支持 GPU 加速。
- KoboldCpp,一個功能齊全的 Web UI,支持所有平臺和 GPU 架構的 GPU 加速,特別適合講故事。
- GPT4All,一個免費開源的本地運行 GUI,支持 Windows、Linux 和 macOS,具有全 GPU 加速。
- LM Studio,一個易於使用且功能強大的本地 GUI,適用於 Windows 和 macOS(Silicon),支持 GPU 加速,截至 2023 年 11 月 27 日,Linux 版本處於測試階段。
- LoLLMS Web UI,一個很棒的 Web UI,具有許多有趣和獨特的功能,包括一個完整的模型庫,便於模型選擇。
- Faraday.dev,一個有吸引力且易於使用的基於角色的聊天 GUI,適用於 Windows 和 macOS(Silicon 和 Intel),支持 GPU 加速。
- llama-cpp-python,一個支持 GPU 加速、LangChain 支持和 OpenAI 兼容 API 服務器的 Python 庫。
- candle,一個專注於性能的 Rust ML 框架,包括 GPU 支持和易用性。
- ctransformers,一個支持 GPU 加速、LangChain 支持和 OpenAI 兼容 AI 服務器的 Python 庫。請注意,截至 2023 年 11 月 27 日,ctransformers 已有很長時間未更新,不支持許多近期的模型。
量化方法說明
點擊查看詳情
可用的新方法如下:
- 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。
如何下載 GGUF 文件
手動下載注意事項:你幾乎不需要克隆整個倉庫!我們提供了多種不同的量化格式,大多數用戶只需要選擇並下載單個文件。
以下客戶端/庫將自動為你下載模型,並提供可用模型列表供你選擇:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在 text-generation-webui
中
在“下載模型”下,你可以輸入模型倉庫地址:MaziyarPanahi/WizardLM-2-7B-GGUF,並在其下方輸入要下載的具體文件名,例如:WizardLM-2-7B-GGUF.Q4_K_M.gguf,然後點擊“下載”。
在命令行中,同時下載多個文件
我建議使用 huggingface-hub
Python 庫:
pip3 install huggingface-hub
然後,你可以使用以下命令將任何單個模型文件高速下載到當前目錄:
huggingface-cli download MaziyarPanahi/WizardLM-2-7B-GGUF WizardLM-2-7B.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
更高級的 huggingface-cli 下載用法(點擊查看)
你還可以使用模式同時下載多個文件:
huggingface-cli download [MaziyarPanahi/WizardLM-2-7B-GGUF](https://huggingface.co/MaziyarPanahi/WizardLM-2-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
:
HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download MaziyarPanahi/WizardLM-2-7B-GGUF WizardLM-2-7B.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows 命令行用戶:你可以在下載命令前運行 set HF_HUB_ENABLE_HF_TRANSFER=1
來設置環境變量。
💻 使用示例
基礎用法
./main -ngl 35 -m WizardLM-2-7B.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
。 - 有關其他參數及其用法,請參閱 llama.cpp 文檔。
高級用法
在 text-generation-webui
中運行
更多說明可在 text-generation-webui 文檔中找到,地址為:text-generation-webui/docs/04 ‐ Model Tab.md。
從 Python 代碼運行
你可以使用 llama-cpp-python 或 ctransformers 庫從 Python 中使用 GGUF 模型。請注意,截至 2023 年 11 月 27 日,ctransformers 已有很長時間未更新,不兼容一些近期的模型。因此,我建議你使用 llama-cpp-python。
如何在 Python 代碼中加載此模型,使用 llama-cpp-python
首先安裝包:
# 無 GPU 加速的基礎 ctransformers
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
簡單的 llama-cpp-python 示例代碼
from llama_cpp import Llama
# 將 gpu_layers 設置為要卸載到 GPU 的層數。如果你的系統沒有 GPU 加速,請將其設置為 0。
llm = Llama(
model_path="./WizardLM-2-7B.Q4_K_M.gguf", # 首先下載模型文件
n_ctx=32768, # 要使用的最大序列長度 - 請注意,更長的序列長度需要更多的資源
n_threads=8, # 要使用的 CPU 線程數,根據你的系統和性能進行調整
n_gpu_layers=35 # 要卸載到 GPU 的層數,如果你有 GPU 加速可用
)
# 簡單推理示例
output = llm(
"<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant", # 提示
max_tokens=512, # 生成最多 512 個令牌
stop=["</s>"], # 示例停止令牌 - 不一定適用於此特定模型!請在使用前檢查。
echo=True # 是否回顯提示
)
# 聊天完成 API
llm = Llama(model_path="./WizardLM-2-7B.Q4_K_M.gguf", chat_format="llama-2") # 根據你使用的模型設置 chat_format
llm.create_chat_completion(
messages = [
{"role": "system", "content": "You are a story writing assistant."},
{
"role": "user",
"content": "Write a story about llamas."
}
]
)
如何與 LangChain 一起使用
以下是使用 llama-cpp-python 和 ctransformers 與 LangChain 的指南:
📚 詳細文檔
模型系統提示使用說明
❗重要提示
WizardLM-2 採用了 Vicuna 的提示格式,並支持 多輪 對話。提示應如下所示:
A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful,
detailed, and polite answers to the user's questions. USER: Hi ASSISTANT: Hello.</s>
USER: Who are you? ASSISTANT: I am WizardLM.</s>......
新聞 🔥🔥🔥 [2024/04/15]
我們推出並開源了 WizardLM-2,這是我們的下一代先進大語言模型,在複雜聊天、多語言、推理和代理方面都有改進。新系列包括三個前沿模型:WizardLM-2 8x22B、WizardLM-2 70B 和 WizardLM-2 7B。
- WizardLM-2 8x22B 是我們最先進的模型,與那些領先的專有模型相比,表現出極具競爭力的性能,並且始終優於所有現有的先進開源模型。
- WizardLM-2 70B 達到了頂級推理能力,是相同規模下的首選。
- WizardLM-2 7B 是最快的模型,並且與現有的 10 倍大的開源領先模型相比,性能相當。
有關 WizardLM-2 的更多詳細信息,請閱讀我們的 發佈博客文章 和即將發佈的論文。
🔧 技術細節
本項目構建了一個 完全由人工智能驅動的合成訓練系統 來訓練 WizardLM-2 模型,採用了特定的量化方法(如 GGML_TYPE_Q2_K、GGML_TYPE_Q3_K 等)對模型進行處理,以提高模型的性能和效率。同時,在推理過程中,根據不同的硬件環境(如是否有 GPU 加速)和任務需求(如序列長度、對話模式等),可以調整相應的參數。
📄 許可證
本項目採用 Apache2.0 許可證。
🤗 HF Repo •🐱 Github Repo • 🐦 Twitter • 📃 [WizardLM] • 📃 [WizardCoder] • 📃 [WizardMath]
👋 加入我們的 Discord



