模型概述
模型特點
模型能力
使用案例
🚀 Mixtral-8x7B-v0.1-GGUF
Mixtral-8x7B-v0.1-GGUF 是一個包含特定格式模型文件的項目,為 mistralai/Mixtral-8x7B-v0.1 模型提供了 GGUF 格式的版本,方便用戶在不同環境下使用該模型進行文本生成任務。
🚀 快速開始
模型信息
- 模型創建者:mistralai
- 原始模型:mistralai/Mixtral-8x7B-v0.1
模型下載
自動下載
以下客戶端/庫會自動為你下載模型,並提供可用模型列表供你選擇:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在 text-generation-webui
中下載
在“Download Model”下,你可以輸入模型倉庫地址:MaziyarPanahi/Mixtral-8x7B-v0.1-GGUF,並在下方輸入要下載的特定文件名,例如:Mixtral-8x7B-v0.1-GGUF.Q4_K_M.gguf,然後點擊“Download”。
命令行下載
推薦使用 huggingface-hub
Python 庫進行下載:
pip3 install huggingface-hub
然後可以使用以下命令將任何單個模型文件高速下載到當前目錄:
huggingface-cli download MaziyarPanahi/Mixtral-8x7B-v0.1-GGUF Mixtral-8x7B-v0.1-GGUF.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
模型運行
在 llama.cpp
中運行
確保使用的是 d0cee0d 或更高版本的 llama.cpp
:
./main -ngl 35 -m Mixtral-8x7B-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
文檔中找到:text-generation-webui/docs/04 ‐ Model Tab.md。
使用 Python 代碼運行
可以使用 llama-cpp-python 或 ctransformers 庫從 Python 中使用 GGUF 模型。由於截至 2023 年 11 月 27 日,ctransformers
已有一段時間未更新,且與一些最新模型不兼容,因此推薦使用 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 的層數。如果系統沒有 GPU 加速,將其設置為 0。
llm = Llama(
model_path="./Mixtral-8x7B-v0.1-GGUF.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="./Mixtral-8x7B-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."
}
]
)
使用 LangChain
以下是使用 llama-cpp-python 和 ctransformers 與 LangChain 的指南:
✨ 主要特性
GGUF 格式
GGUF 是 llama.cpp 團隊在 2023 年 8 月 21 日引入的新格式,它取代了不再受 llama.cpp 支持的 GGML 格式。
量化方法
提供多種量化方法,包括 2-bit、3-bit、4-bit、5-bit、6-bit 等不同量化級別,以滿足不同的性能和資源需求。
多客戶端和庫支持
支持多種客戶端和庫,如 llama.cpp、text-generation-webui、KoboldCpp、GPT4All 等,方便用戶在不同環境下使用模型。
📦 安裝指南
安裝 huggingface-hub
庫
pip3 install huggingface-hub
安裝 hf_transfer
以加速下載
pip3 install hf_transfer
安裝 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
💻 使用示例
基礎用法
from llama_cpp import Llama
# 設置要卸載到 GPU 的層數。如果系統沒有 GPU 加速,將其設置為 0。
llm = Llama(
model_path="./Mixtral-8x7B-v0.1-GGUF.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="./Mixtral-8x7B-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."
}
]
)
📚 詳細文檔
關於 GGUF
GGUF 是 llama.cpp 團隊在 2023 年 8 月 21 日引入的新格式,它是 GGML 的替代格式,不再受 llama.cpp 支持。以下是已知支持 GGUF 的客戶端和庫的不完全列表:
- llama.cpp:GGUF 的源項目,提供 CLI 和服務器選項。
- text-generation-webui:最廣泛使用的 Web UI,具有許多功能和強大的擴展,支持 GPU 加速。
- KoboldCpp:功能齊全的 Web UI,支持所有平臺和 GPU 架構的 GPU 加速,特別適合講故事。
- GPT4All:免費開源的本地運行 GUI,支持 Windows、Linux 和 macOS,具有完整的 GPU 加速。
- LM Studio:適用於 Windows 和 macOS(Silicon)的易於使用且功能強大的本地 GUI,支持 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-bit 量化,超級塊包含 16 個塊,每個塊有 16 個權重。塊的比例和最小值使用 4 位量化。最終每個權重有效使用 2.5625 位(bpw)。
- GGML_TYPE_Q3_K:“type-0” 3-bit 量化,超級塊包含 16 個塊,每個塊有 16 個權重。比例使用 6 位量化。最終使用 3.4375 bpw。
- GGML_TYPE_Q4_K:“type-1” 4-bit 量化,超級塊包含 8 個塊,每個塊有 32 個權重。比例和最小值使用 6 位量化。最終使用 4.5 bpw。
- GGML_TYPE_Q5_K:“type-1” 5-bit 量化。與 GGML_TYPE_Q4_K 具有相同的超級塊結構,最終使用 5.5 bpw。
- GGML_TYPE_Q6_K:“type-0” 6-bit 量化。超級塊有 16 個塊,每個塊有 16 個權重。比例使用 8 位量化。最終使用 6.5625 bpw。
下載 GGUF 文件
手動下載者注意:幾乎不需要克隆整個倉庫!提供了多種不同的量化格式,大多數用戶只需要選擇並下載單個文件。
命令行下載多個文件
可以使用模式同時下載多個文件:
huggingface-cli download [MaziyarPanahi/Mixtral-8x7B-v0.1-GGUF](https://huggingface.co/MaziyarPanahi/Mixtral-8x7B-v0.1-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/Mixtral-8x7B-v0.1-GGUF Mixtral-8x7B-v0.1-GGUF.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows 命令行用戶:可以在下載命令前運行 set HF_HUB_ENABLE_HF_TRANSFER=1
來設置環境變量。
🔧 技術細節
llama.cpp 命令參數說明
-ngl
:要卸載到 GPU 的層數。如果沒有 GPU 加速,刪除該參數。-c
:所需的序列長度。對於擴展序列模型(例如 8K、16K、32K),必要的 RoPE 縮放參數會從 GGUF 文件中讀取並由 llama.cpp 自動設置。注意,更長的序列長度需要更多資源,因此可能需要減小該值。-p
:提示信息。若要進行聊天式對話,將其替換為-i -ins
。
模型運行環境要求
- 更長的序列長度需要更多的資源,包括內存和計算能力。
- 不同的量化方法對性能和資源的需求不同,用戶可以根據自己的需求選擇合適的量化方法。
📄 許可證
本項目採用 Apache-2.0 許可證。



