模型简介
模型特点
模型能力
使用案例
🚀 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 许可证。



