
汇总本地部署DeepSeek的N种方法
从零搭建打造你的私人智能助手,无需联网、保护隐私、免费使用——手把手教你用一台普通电脑运行DeepSeek大模型。N种部署方式,从小白一键安装到编码加速部署,总有一款适合你
1.为什么要本地部署
想象一下这样的场景:你在咖啡店用笔记本电脑写代码时,AI助手能直接调用本地模型帮你补全代码;医生在问诊时,无需联网就能通过本地模型分析患者病历;作家在飞机上断网状态下,依然能用AI润色文稿。这就是本地部署大模型所带来的变革。
随着开源模型DeepSeek的爆火,配合推理加速和量化技术的发展,普通人的本地设备运行智能助手成为可能,与云端服务相比,本地部署具有三个优势:
- 隐私安全:敏感数据不出本地
- 成本更低:无需为每次对话付费
- 实时响应:断网环境也能使用,时效更高
你可能会疑惑:对于自己的硬件条件和需求,该如何选择模型?如何选择工具或框架进行部署模型?同时本地部署的模型可以在哪些场景应用起来?这些问题在本文中会进行一一解答。
下面将介绍当下最热门的几种本地部署大模型的方法,从“一键安装”的傻瓜式工具到高性能推理框架,总有一款适合你的设备和需求。每一种部署方法的章节都是完整独立的,大家也可以直接跳到自己感兴趣的部署方式进行阅读,不会有任何的阅读影响。
2.部署方法对比
整理了主流工具的“能力画像”,可以快速找到适合你的方案。
工具/框架 | 上手难度 | 简介 | 核心优势 | 适合人群 | 支持的交互 |
---|---|---|---|---|---|
Ollama | ⭐ | 开箱即用的本地LLM运行框架,支持模型管理、微调和跨平台部署 | 一键部署、跨平台兼容 | 新手开发者,快速体验 | CLI、HTTP API、Python SDK。兼容OpenAI API |
LM Studio | ⭐⭐ | 可视化桌面工具,提供零代码模型管理与本地服务部署 | 零代码操作、文档问答 | 非技术人员/知识工作者,快速原型验证 | GUI、HTTP API、Python SDK、TypeScript SDK |
llama.cpp | ⭐⭐⭐ | 基于C/C++的高性能推理引擎,提供底层硬件加速和量化技术 | 极致压缩、跨硬件适配 | 极客/硬件受限用户 | CLI、HTTP API(兼容OpenAI) |
Transformers | ⭐⭐⭐ | HuggingFace的核心库,支持模型的训练与部署的全流程 | 全流程支持、模型生态丰富 | 学术研究/算法工程师 | Python SDK、HTTP API |
vLLM | ⭐⭐⭐⭐ | 高性能推理引擎,优化内存管理,具备高吞吐量与低成本部署 | 高吞吐量、企业级并发支持 | 企业级开发者、高并发场景 | Python SDK、REST API、gRPC |
TGI | ⭐⭐⭐⭐ | HuggingFace的用于文本生成推的RUST/Python/gRPC服务框架 | 生产级优化,多模型并行 | 企业级服务,与Huggingface生态深度集成 | HTTP API、Python SDK、gRPC |
Dify | ⭐⭐⭐ | 低代码LLM应用开发平台,支持可视化工作流与本地知识库集成 | 可视化工作流,多模型编排 | 企业级应用开发者、快速构建私有知识库系统的团队 | Web GUI、HTTP API、Python SDK |
DeepSpeed | ⭐⭐⭐⭐⭐ | 微软的深度学习库,利用模型和数据压缩技术,提升推理和训练效率 | 超大规模模型压缩,混合精度优化 | 科研机构、需微调超大规模模型的企业 | CLI、Python SDK |
3.部署实践
3.1.模型下载
想要在本地部署大模型,需要先将模型下载到本地,有些应用工具可以直接下载,有些则需要手动下载然后加载到程序中,各有利弊。工具下载简单方便,门槛低,不过对网络有要求,如huggingface国内网络就访问不了,且下载速度较慢。手动下载则需要掌握模型文件的知识,自主选择合适的模型文件,门槛高些。
手动下载模型的网站
社区 | 地址 |
---|---|
huggingface | https://huggingface.co/models AI开发者的“github”,提供模型、数据集、类库、教程社区等 |
hf-mirror | https://hf-mirror.com/models huggingface国内镜像网站 |
魔塔社区 | https://www.modelscope.cn/models 阿里通义发起的AI社区平台 |
常见的模型文件格式
目前常见的模型文件格式有:safetensors、gguf、pth(PyTorch)和onnx等。
safetensors
- Huggingface专为深度学习模型设计的格式,具有以下特性:1)安全性上比PyTorch的.pth要好;2)支持PyTorch、TensorFlow、JAX主流框架,能无缝集成HuggingFace生态;3)支持零拷贝加载,从磁盘映射内存,减少显存/内存消耗。
- 适用快速加载超大规模模型(如70B参数规模)、对生产环境安全性高的企业级部署等场景。
gguf
- 全称是GPT-Generated Unified Format,是llama.cpp为量化模型优化而设计。
- 1)支持多种量化策略;2)对CPU/边缘计算优化,如在Apple Silicon芯片通过Metal实现推理加速;3)文件内嵌模型架构、训练信息、量化参数等元数据,部署无额额外配置文件。
- 适用压缩模型体积的场景,在Macbook、手机登设备本地部署大模型,使用llama.cpp、ollama等轻量化推理框架。
pth
- PyTorch框架专用的文件格式,保存模型权重(参数)和模型结构。深度集成于PyTorch框架,适合学术研究与模型预训练。
onnx
- 开放神经网络交换格式(Open Neural Network Exchange),通过protobuf协议序列化,兼容TensorFlow、PyTorch、MXNet等框架,支持硬件加速。
模型选择指南:
- 1)从安全性考虑,推荐safetensors,适合企业服务、云端容器部署;
- 2)从手机/Mac低配硬件考虑,推荐GGUF,适合个人开发者、离线场景;
- 3)需要继续微调模型,推荐.pth(PyTorch),适合研究人员、模型迭代开发;
- 4)需要跨平台生成部署,推荐ONNX,适合工业级多硬件场景。
另外模型参数规模的选择也要看本地机器硬件的条件,有个经验公式可以参考:
- 无量化模型:模型显存占用(GB) = 大模型参数(B) * 2
- 4bit量化模型:模型显存占用(GB) >= 大模型参数(B) / 2
比如无量化的7B参数模型,机器的显存需要达到14GB以上。
3.2.Ollama
官方地址:https://ollama.com
Ollama是一个开源的本地大语言模型运行框架,专为在本地机器上便捷部署和运行LLM而设计。
Ollama具有以下特性:
- 支持众多模型:提供开箱即用的预训练模型,包括大部分当下热门的大模型。
- 集成和使用方便:提供命令行工具(CLI)和Python SDK,能够快速将Ollama集成到现有应用中。
- 本地部署和离线使用:允许本地部署,脱离外部服务依赖,保证数据隐私。
- 支持模型微调:支持使用自己的数据对模型再训练,优化模型的性能和准确度。
- 推理性能优化:支持多种硬件加速(如Apple Silicon)、批量处理,还提供对模型的量化能力。
- 跨平台:支持MacOS、Windows、Linux以及通过Docker容器运行
- 开源与社区:Ollama是开源项目,并具有活跃的社区。
3.2.1.安装部署
官网下载:https://ollama.com/download
- MacOS
- 下载直接双击安装,安装完后验证:
ollama --version
- 下载直接双击安装,安装完后验证:
- Windows
- 下载直接双击安装。默认安装在C盘用户目录下,若C盘空间不够可以更改安装路径。
OllamaSetup.exe /DIR="d:\some\location"
- 下载直接双击安装。默认安装在C盘用户目录下,若C盘空间不够可以更改安装路径。
- Linux
- 一键安装脚本:
curl -fsSL https://ollama.com/install.sh | sh
- 安装完后验证:
ollama --version
- 一键安装脚本:
- Docker
- 拉取Docker镜像:
docker pull ollama/ollama
- 运行容器:
docker run -p 11434:11434 ollama/ollama
- 访问:
http://localhost:11434
- 拉取Docker镜像:
安装完成后,可以使用ollama CLI对模型进行操作管理,从模型的下载运行,到模型管理,再到服务管理,详细可以使用ollama --help
进行查看。
支持的硬件平台
Windows | Nvidia GPU、AMD GPU、Intel GPU |
---|---|
macOS | Apple Silicon、Apple Intel CPU |
Linux | Nvidia GPU、AMD GPU、ARM64 CPU |
3.2.2.运行推理
① 命令行运行
命令行部署运行模型非常简单,使用ollama run
指令即可,若本地没有该模型则会自动下载,运行成功后即可在终端与模型进行对话交互,这也是ollama最方便的地方。
ollama run deepseek-r1:1.5b
结束对话输入/bye
或按Ctrl+d
结束,Ollama支持的模型:https://ollama.com/library
② Python SDK运行
Ollama支持Python SDK编码运行,引入python包并调用封装好的函数即可。
安装Python包
pip install ollama
快速开始-文本生成
import ollama
response = ollama.generate(
model="llama3.2", # 模型名称
prompt="你是谁。" # 提示文本
)
print(response)
对话模式
from ollama import chat
response = chat(
model="llama3.2",
messages=[
{"role": "user", "content": "你是谁啊?"}
]
)
print(response.message.content)
流式响应
from ollama import chat
stream = chat(
model="llama3.2",
messages=[{"role": "user", "content": "你是谁啊?"}],
stream=True
)
for chunk in stream:
print(chunk["message"]["content"], end="", flush=True)
3.2.3.模型集成
ollama在本地运行模型后,除了在命令行终端中进行简单地问答交互,还可以通过HTTP API或者Python SDK两种方式与模型进行交互,能够很方便地在现有的应用中将模型集成进去。
①HTTP Server
服务启动后,默认在本地这个端口运行http服务:http://localhost:11434
。常用的API有
- POST
/api/generate
,文本生成:向模型发送提示词,生成文本 - POST
/api/chat
,聊天:支持多轮对话
更多API与请求报文可以参考官方文档:https://github.com/ollama/ollama/blob/main/docs/api.md
②Python SDK
通过python编码与模型进行交互,在上面章节中已经介绍过ollama包的使用。
另外ollama也兼容OpenAI的 API规范,包括Python库、JavaScript库以及REST API。
另外Ollama作为目前最热门的模型推理工具之一,已经有非常多的Web或桌面应用接入Ollama的模型服务,如Open-WebUI、Dify等。
3.3.llama.cpp
官方地址:https://github.com/ggml-org/llama.cpp
llama.cpp是一个基于C/C++的高性能的模型推理引擎,通过底层硬件加速和量化技术,实现各种硬件平台上的高效推理。
llama.cpp具有以下特性:
- 支持广泛的硬件平台:Apple Silicon(通过ARM NEON、Metal和Accelerate)、x86、NVIDIA GPU(通过CUDA)、AMD GPU(通过hipBLAS)、Intel GPU(通过SYCL)、昇腾NPU(通过CANN)和摩尔线程GPU(通过MUSA)
- CPU + GPU混合推理,能部分加速大于总VRAM容量的模型
- 提供模型量化的工具
3.3.1.安装部署
① 手动安装
克隆项目到本地构建
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
编译CPU版本:
cmake -B build
cmake --build build --config Release -j 8
编译GPU版本:
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j 8
② brew安装
MacOS、Linux可以直接使用brew安装:brew install llama.cpp
,除了Homebrew安装,Mac/Linux还可以使用Nix、Flox工具安装,区别不大。
除了上面的两种构建方法,还可以使用Docker镜像,或直接下载预构建好的二进制文件。
3.3.2.模型准备
llama.cpp使用的是GGUF格式的模型文件,可以直接下载gguf模型文件使用,也可以下载safetensors格式的模型,然后转换成gguf格式。
1、先下载好safetensors的模型文件:
XXXX/DeepSeek-R1-Distill-Qwen-1.5B/
└── config.json
└── generation_config.json
└── model.safetensors
└── tokenizer_config.json
└── tokenizer.json
2、使用llama.cpp直接转化为目标格式
# 安装python依赖库
pip install -r requirements.txt
# 转换模型:将模型转换成FP16精度的格式
python convert_hf_to_gguf.py DeepSeek-R1-Distill-Qwen-1.5B/
成功后会生成一个FP16精度、GGUF格式的模型文件DeepSeek-R1-Distill-Qwen-1.5B-F16.gguf
3、量化模型
FP16精度的模型运行可能有点慢,可以进行量化来提升推理速度。量化类型分级:Q2_K至Q8_K等多种量化级别,如采用Q4_K_M的量化策略:
./build/bin/llama-quantize DeepSeek-R1-Distill-Qwen-1.5B-F16.gguf DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf Q4_K_M
3.3.3.运行推理
①命令行运行
./build/bin/llama-cli -m DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf
llama.cpp会自动激活对话模式,如果没有,可添加参数-cnv
启用。
也可以使用简单的提示词生成回答完成推理:
./build/bin/llama-cli -m DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf -p "你是谁" -n 128 -no-cnv
②HTTP Server
./build/bin/llama-server -m DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf --port 8080
启动http服务,llama.cpp提供了兼容OpenAI的API服务,浏览器访问http://127.0.0.1:8080即可进行对话。
3.4.Transformers库
官方地址:https://github.com/huggingface/transformers
**huggingface的transformers库,是当前AI领域最热门的开源工具库之一,支持从模型下载、加载、训练、微调到部署的全流程。**它通过对底层机器学习框架(如PyTorch、TensorFlow、JAX)进行抽象,简化了transformer模型的实现,降低了transformer模型的训练、部署的复杂性。
transformers具有以下特性:
- 丰富的预训练模型支持:10万+预训练模型,依托huggingface生态,涵盖BERT、GPT、RoBERTa、T5等主流架构,以及微调版本。
- 多框架兼容:支持PyTorch、TensorFlow、JAX三种深度学习框架,并能够无缝切换。
- 统一的API:模型加载(AutoModel.from_pretrained)、分词处理(AutoTokenizer)、任务管道(pipeline)
支持的硬件平台
transformers是基于底层机器学习框架使用的,包括PyTorch、TensorFlow、JAX,因此transformers库支持在多种硬件平台加载大模型进行推理。
硬件 | 说明 |
---|---|
Nvidia GPU | 通过CUDA加速,通过accelerate实现多卡并行 |
Apple Silicon | M1/M2/M3,通过PyTorch的MPS实现加速 |
Intel CPU/GPU | 通过optimum-intel支持Intel CPU和集成显卡 |
TPU | 通过TensorFlow 或 JAX 在Google Cloud TPU上运行 |
3.4.1.安装python库
使用transformers库运行推理,需要先安装这两个python库,这里使用PyTorch库:
pip install transformers,torch
3.4.2.运行推理
随着llama.cpp越来越火,gguf格式的模型也被广泛使用,transformers框架即支持safetensors格式的模型,也支持gguf格式的模型,只是在函数调用上有一点差异。
一、safetensors格式模型部署
将safetensors模型的相关文件都要下载到本地,注意包含下面的目录文件
XXXX/DeepSeek-R1-Distill-Qwen-1.5B/
└── config.json
└── generation_config.json
└── model.safetensors
└── tokenizer_config.json
└── tokenizer.json
使用python库函数进行加载运行,transformers需要单独创建分词器进行输入输出的编解码
from transformers import AutoTokenizer, AutoModelForCausalLM
# safetensors模型文件所在目录
model_path = "XXXX/DeepSeek-R1-Distill-Qwen-1.5B"
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_path)
# 加载模型
model = AutoModelForCausalLM.from_pretrained(model_path)
input_text = "请问1+1等于多少"
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.decode(outputs[0]))
二、gguf格式模型部署
要运行gguf模型,还需要再安装这两个库
pip install gguf,accelerate
将gguf模型文件下载到本地,直接加载模型文件即可使用,使用方式基本类似。
XXXX/DeepSeek-GGUF/
└── DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf
from transformers import AutoTokenizer, AutoModelForCausalLM
# gguf文件
path = "XXXX/DeepSeek-GGUF"
gguf_file_name = "DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf"
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(path, gguf_file=gguf_file_name)
# 加载模型
model = AutoModelForCausalLM.from_pretrained(path, gguf_file=gguf_file_name)
input_text = "请问1+1等于多少"
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.decode(outputs[0]))
3.5.vLLM
官方地址:https://github.com/vllm-project/vllm
vLLM是一款高性能推理的服务引擎,核心目标是通过创新的内存管理和计算优化,提升LLM推理的吞吐量与资源效率,降低部署成本。
核心功能:
- 支持的模型数量多且类型多:与Hugging Face模型能无缝集成,且支持多种类型,包括LLM(如Llama)、混合专家模型(如DeepSeek)、嵌入模型(如E5-Mistral)、多模态模型(如LLaVA)
- 高性能推理:具有高吞吐量服务、使用PagedAttention高效管理注意力键值内存,并支持连续批处理;优化CUDA集成,包括FlashAttention 和 FlashInfer和集成。
- 支持多种量化技术:GPTQ, AWQ, INT4, INT8, and FP8
- 兼容OpenAI API服务
3.5.1.安装部署
vLLM支持多种硬件平台:
- GPU:NVIDIA CUDA、AMD ROCm、Intel XPU
- CPU:Intel/AMD x86、ARM AArch64、Apple silicon
- Other AI accelerators:Google TPU、Intel Gaudi、AWS Neuron、OpenVINO
vLLM是基于python环境,因此先创建独立的python环境
conda create -n forvllm python=3.12
conda activate forvllm
①GPU
如果使用的是NVIDIA的GPU,可以直接使用pip安装vLLM。
pip install vllm
②CPU
git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -r requirements-cpu.txt
pip install -e .
vLLM对macOS的芯片提供了实验性支持,支持FP32和FP16数据类型。
3.5.2.推理运行
①编码推理
加载本地模型或者从远程下载模型,支持从HuggingFace和ModelScope下载模型,并支持离线批量推理。
from vllm import LLM, SamplingParams
# 提示词 数据,支持批量
prompts = [
"你是谁",
"AI的未来是什么样子",
]
# 指定采样过程的参数
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
# Create an LLM.
llm = LLM(model="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B")
# 为提示词生成文本,输出是list
outputs = llm.generate(prompts, sampling_params)
# 打印输出
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
- 默认从HuggingFace下载模型,若要切换到ModelScope,需要设置环境变量:
export VLLM_USE_MODELSCOPE=True
。(注意modelscope库要提前安装:pip install modelscope
)
②OpenAI兼容服务
vLLM能够部署OpenAI API的服务,可以对使用OpenAI API的应用程序的替代品。
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
默认部署在8000端口,可以使用--host
和--port
参数指定地址。
部署成功可以尝试进行http交互
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
"prompt": "你是谁",
"max_tokens": 7,
"temperature": 0
}'
也可以使用python sdk进行交互
from openai import OpenAI
# Modify OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
completion = client.completions.create(model="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
prompt="你是谁")
print("Completion result:", completion)
3.6.LM Studio
官网地址:https://lmstudio.ai/
LM Studio是一款用于本地开发和试验LLM的应用程序,在可视化界面上做的比较好,不需要编码技能。
核心特点:
- 体验好的可视化界面,操作便捷
- 可管理模型和配置,通过HuggingFace搜索和下载
- 可搭建本地服务,多种方式与模型交互:REST API、Python SDK、TypeScript SDK、CLI
- 跨平台支持:macOS(M1-M4,不支持Intel芯片)、Windows(x64、ARM)、Linux(x64)。
- 支持使用
llama.cpp
运行LLM,支持使用Apple的MLX运行LLM。 - 支持RAG文档集成
3.6.1.安装部署
直接安装桌面版lmstudio即可,相关的模型引入有两种方式
①手动下载模型
也可以直接在模型社区下载.gguf
模型文件,如HF国内镜像网站(https://hf-mirror.com/)、魔塔(https://www.modelscope.cn/home)等社区,将模型文件放到指定目录,下面是LMStudio的模型目录结构,publisher是发布者名称
~/.lmstudio/models/
└── publisher/
└── model/
└── model-file.gguf
②应用直接下载
可以在Discover选项卡中直接搜索并下载模型,LMStudio是通过HuggingFace,国内网络会连不上。
如果本地网络无法连接huggingface,可以将下载地址替换huggingface的国内镜像网络,借用IDE工具的全局替换能力,打开LM Studio.app
:
将关键字**huggingface.co
替换成hf-mirror.com
**,重启应用即可。
核心目的是将所有地址是https://huggingface.co
替换成https://hf-mirror.com
,Mac版本下主要是这两个文件,不过不同系统、版本的LM Studio可能有些不同,全局替换更稳妥
/Applications/LM\ Studio.app/Contents/Resources/app/.webpack/main/index.js
/Applications/LM\ Studio.app/Contents/Resources/app/.webpack/renderer/main_window.js
3.6.2.推理运行
在桌面应用程序中,将模型文件放入指定目标或下载模型后,可以直接选择模型使用。
另外将LM Studio作为本地部署服务使用,可通过API与模型交互,LM Studio支持三种模式:
- OpenAI兼容模式
- REST API模式
- lmstudio.js客户端模式
3.7.其他工具与框架
除了上面提到的部署大模型的工具与框架,还有很多没有详细介绍到,目前整个生态呈现百花齐放且高速发展的阶段,每隔一段时间就会有新的应用出现。本地部署的还有下面几种方式:
- TGI:huggingface推出的text generation inference(TGI),是一个用于文本生成推理的Rust/Python/gRPC服务,相比transformers,TGI使用方便且做了推理优化。在集成上兼容OpenAI的API,并支持量化与微调能力。
- Dify:开源的低代码LLM应用开发平台,支持可视化构建AI应用,能集成本地知识库和插件,需要依赖后端模型服务如vLLM或Ollama
- DeepSeed:微软的开源深度学习优化库,在深度优化硬件设备、操作系统、框架多个层面,利用模型和数据压缩技术,极大提升了推理和训练效率。
4.未来发展
本地部署大模型正在重塑人工智能应用的边界,从Ollama的极简交互到vLLM的高吞吐推理,从llama.cpp的跨硬件适配到transformers的全流程支持,各种部署方案为不同场景提供了灵活选择。这些技术不仅降低了AI应用的门槛,更是在保障数据隐私的同时,实现成本可控、实时响应、自主迭代的智能体验。
随着大模型的高速发展,各种技术能力的突破,硬件与框架的持续升级,在本地设备部署的大模型将会在越来越多的场景得到使用。当然,各种部署方式各有利弊,根据自己的场景选择合适的部署方式即可。
公众号:机智工坊
原文:汇总本地部署DeepSeek的N种方法
更多推荐
所有评论(0)