使用 KoboldCPP 在本地部署 DeepSeek 大模型
KoboldCPP 是一个基于 C++ 的高性能推理引擎,专门用于在本地部署和运行大模型。它支持多种模型格式,并且能够高效地利用硬件资源(如 GPU)。本文将详细介绍如何使用 KoboldCPP 在本地部署 DeepSeek 大模型。
一、 什么是 KoboldCPP?
KoboldCPP 是一个轻量级、高性能的推理引擎,专注于在本地运行大模型。它支持以下特性:
- 高性能:通过 C++ 实现,能够充分利用硬件资源。
- 多平台支持:支持 Linux、Windows 和 macOS。
- 易于使用:提供简单的命令行接口,方便快速部署和运行模型。
二、 准备工作
在开始之前,确保你的本地环境满足以下要求:
- 操作系统:Linux、Windows 或 macOS。
- Python:3.8 或更高版本(用于模型转换和工具脚本)。
- GPU:推荐使用 NVIDIA GPU,并安装 CUDA 和 cuDNN(可选,用于加速推理)。
- 内存:至少 16GB RAM(具体需求取决于模型大小)。
- 软件: 下载并安装KoboldCPP。
- 模型文件:下载DeepSeek大模型的权重文件。
三、 安装 KoboldCPP
A、 下载 KoboldCPP
KoboldCPP是一个用于本地部署大模型的工具,支持多种模型格式。以下是安装步骤:
首先,从 KoboldCPP 的 GitHub 仓库下载预编译的二进制文件:
选择适合你操作系统的版本(Windows、Linux 或 macOS),并下载。
B、安装依赖
确保你的系统已安装以下依赖:
- CUDA(如果使用 GPU):安装与你的 GPU 驱动兼容的 CUDA 版本。
- OpenBLAS 或 MKL(用于 CPU 加速):可以通过包管理器安装。
C、安装,运行KoboldCPP
window版本,是exe格式,直接运行即可
四、 准备 DeepSeek 大模型
KoboldCPP 支持多种模型格式(如 GGML、GPTQ 等)。你需要将 DeepSeek 大模型转换为 KoboldCPP 支持的格式。
A、下载模型
- 可以访问huggingface.co:
从 Hugging Face 或其他来源下载 DeepSeek 大模型。例如:
git lfs install
git clone https://huggingface.co/deepseek-ai/deepseek-large
- 不能访问huggingface.co(国内)
pip install hf_transfer huggingface-cli --trusted-host mirrors.huaweicloud.com -i https://mirrors.huaweicloud.com/repository/pypi/simple
# 然后命令行开启镜像网站并加速:
export HF_ENDPOINT=https://hf-mirror.com # 镜像网站
export HF_HUB_ENABLE_HF_TRANSFER=1 # 开启加速
# 最后下载模型:
huggingface-cli download --resume-download AAA/BBB
# AAA/BBB是HugglingFace官网复制的模型的名字,比如说hfl/rbt3
hf_transfer是指Hugging Face官方开发的一个基于Rust的加速模块,用于提升从
Hugging Face Hub下载模型的速度。它可以通过设置环境变量
HF_HUB_ENABLE_HF_TRANSFER=1
来启用,并且需要先安装
pip install hf-transfer
。启用后,该模块可以显著提高下载速度,尤其是在带宽充足的机器上,可以达到500MB/s的下载速度。尽管它在优化下载速度方面表现优秀,但也有一些限制和问题,比如缺乏进度条、在网络不稳定时鲁棒性较差。从0.19版本开始,hf_transfer支持了进度条,使得用户更容易判断下载状态。在使用时,如果遇到网络中断或不稳定的情况,可能会导致下载失败,此时建议关闭该模块以提高容错性。此外,尽管它能显著加速下载过程,但在某些网络环境下可能不如直接使用Hugging Face CLI稳定。
B、转换模型格式
使用 transformers
或其他工具将模型转换为 KoboldCPP 支持的格式(如 GGML)。以下是一个示例脚本:
pip install --trusted-host mirrors.huaweicloud.com -i https://mirrors.huaweicloud.com/repository/pypi/simple torch transformers
转换脚本如下:
from transformers import AutoModelForCausalLM
import torch
model_name = "deepseek-ai/deepseek-large"
model = AutoModelForCausalLM.from_pretrained(model_name)
# 转换为 GGML 格式
model.save_pretrained("./deepseek-ggml", save_format="ggml")
五、配置KoboldCPP,使用 KoboldCPP 运行模型
A、模型路径配置
将DeepSeek大模型的权重文件放置在KoboldCPP的models
目录下。确保模型文件的路径正确。
B、启动 KoboldCPP
打开终端或命令提示符,导航到KoboldCPP的目录,然后运行以下命令:
./koboldcpp --model ./models/deepseek-ggml.bin --gpu # 使用 GPU 加速
如果使用 CPU,可以省略 --gpu
参数:
./koboldcpp --model ./models/deepseek-ggml.bin
其中,./models/deepseek-ggml.bin
是你的DeepSeek模型文件的路径。
B、参数说明
--model
:指定模型文件路径。--gpu
:启用 GPU 加速(需要 CUDA 支持)。--threads
:设置 CPU 线程数(适用于 CPU 模式)。--port
:指定服务端口(默认为 5000)。
C、KoboldCPP 配置说明
1. Presets(预设模式)
在软件首页的 Presets 选项中,提供了多种预设模式,包括旧版 N 卡、新版 N 卡、A 卡、英特尔显卡等不同硬件的优化配置。
-
仅使用 CPU 的 OpenBLAS
该模式通过 OpenBLAS 进行快速处理和推理,但由于仅依赖 CPU,运行速度相对较慢。 -
CuBLAS(Nvidia GPU 加速)
该功能专为 Nvidia GPU 设计,启用后软件会自动识别显卡并调用 CuBLAS 进行加速,显著提升推理效率。 -
CLblast(通用 GPU 加速)
对于没有 Intel 显卡的用户,可以选择 CLblast 模式。CLblast 是基于 OpenCL 的开源计算库,强调通用性,支持多种 GPU 硬件,适合生产环境使用。
2. Context Size(上下文长度)
在主页设置中,Context Size 是一个关键参数,用于调整模型能够处理的上下文长度。
- 为了获得更好的上下文理解和连贯性,建议将 Context Size 设置为 4096。
- 需要注意的是,Context Size 越大,模型能够记住的上下文信息越多,但同时也会显著影响推理速度。因此,需要根据硬件性能和实际需求进行权衡。
3. 大模型资源获取
目前,开源大模型主要可以通过以下平台获取:
-
Hugging Face(huggingface.co)
全球知名的模型托管平台,提供丰富的开源模型资源。 -
国内镜像站(HF-Mirror)
如果无法直接访问 Hugging Face,可以使用国内的镜像站点下载模型。 -
ModelScope(魔搭社区)
阿里巴巴推出的模型共享平台,提供大量中文优化模型,适合国内用户使用。
D、 KoboldCPP Web 界面详解
启动KoboldCPP后,你会看到一个Web界面。以下是界面中各项的详细说明:
1. 模型选择
在界面的左上角,你可以选择要加载的模型。确保选择的是你刚刚放置的DeepSeek模型。
2. 推理设置
- Temperature: 控制生成文本的随机性。值越高,生成的文本越随机;值越低,生成的文本越确定。
- Top-K: 限制生成时考虑的词汇数量。值越小,生成的文本越集中。
- Top-P: 通过概率累积来选择词汇。值越小,生成的文本越集中。
4. 输入框
在界面的中央,有一个输入框,你可以在这里输入提示文本(prompt),模型将根据提示生成后续文本。
4. 生成按钮
点击“Generate”按钮后,模型将开始生成文本。生成的文本会显示在输入框下方。
5. 历史记录
在界面的右侧,你可以看到生成的历史记录。每次生成的文本都会保存在这里,方便你查看和比较。
六、访问 KoboldCPP Web 界面
启动 KoboldCPP 后,它会自动启动一个本地 Web 服务。打开浏览器,访问以下地址:
http://localhost:5000
你将看到一个简单的 Web 界面,可以在其中输入文本并查看模型的生成结果。
1. 运行模型
在配置好所有设置后,点击“Generate”按钮,模型将开始生成文本。你可以根据需要调整参数,以获得不同的生成效果。
2. 保存和导出
生成的文本可以直接在界面上复制,或者通过KoboldCPP提供的导出功能保存为文本文件。
七、 使用 API 访问模型
KoboldCPP 还提供了一个简单的 API,可以通过 HTTP 请求与模型交互。以下是一个示例:
A、发送请求
使用 curl
或其他 HTTP 客户端发送请求:
curl -X POST http://localhost:5000/api/v1/generate -d '{
"prompt": "你好,DeepSeek!",
"max_length": 50
}'
B、响应示例
{
"text": "你好,DeepSeek!我是一个基于 DeepSeek 大模型的 AI 助手。"
}
八、进一步优化
- 量化模型:如果资源有限,可以将模型量化为 4-bit 或 8-bit 以减少内存占用。
- 多 GPU 支持:如果你的系统有多个 GPU,可以启用多 GPU 推理以进一步提高性能。
- 批处理:通过调整批处理大小,优化推理速度。
九、关闭KoboldCPP
当你完成所有操作后,可以通过关闭终端或命令提示符来停止KoboldCPP的运行。
十、常见问题
- 模型加载失败: 确保模型路径正确,并且模型文件完整。
- 生成速度慢: 如果你的计算机性能不足,建议使用GPU加速。
十一、总结
通过 KoboldCPP,我们可以在本地高效地部署和运行 DeepSeek 大模型。无论是用于研究、开发还是生产环境,KoboldCPP 都提供了一个简单而强大的解决方案。希望本文能帮助你顺利在本地部署 DeepSeek 大模型,并充分发挥其潜力。
如果你有任何问题或建议,欢迎在评论区留言!
通过以上步骤,你应该能够成功在本地部署并运行DeepSeek大模型。如果有任何问题,可以参考KoboldCPP的官方文档或社区支持。
© 著作权归作者所有