大模型私有化部署的意义、场景与整体流程
为什么要进行大模型私有化部署?
当前大语言模型(LLMs
)如 ChatGPT
、DeepSeek
、Qwen
、Claude
等迅速发展,在自然语言处理、知识问答、代码生成、办公助手等方面展现出强大能力。然而,很多企业、高校和组织在应用这些模型时,会面临以下问题:
- 数据隐私与安全
- 对话内容、业务数据传输至公有云存在泄密风险。
- 合规要求限制外部数据传输(如《数据安全法》《个人信息保护法》)。
- 稳定性与成本控制
- 公有 API 的调用成本昂贵,且调用次数或速率受限。
- 外部模型可能因网络波动、访问限制而无法使用。
- 对边缘计算和本地部署的需求
- 一些工业、政务、医疗等场景下只能部署在本地或内网。
因此,大模型私有化部署应运而生:将开源模型部署在本地服务器、GPU 算力平台、云原生平台或边缘设备中,构建独立的智能服务系统。
大模型私有化部署的典型应用场景
场景 | 应用方向 | 说明 |
---|---|---|
企业客服/办公助手 | 智能问答、文档总结、任务流派发 | 私有知识问答、高并发、知识保密 |
教育科研 | 教学助理、代码生成、学术写作辅助 | 跨院校部署、学生使用合规性要求 |
政务与金融 | 政策解读、报表生成、业务辅助 | 敏感信息保护,无法联网 |
医疗系统 | 病历解读、医学问答、报告生成 | 医疗数据保密,模型需本地优化 |
工业制造 | 设备诊断、日志分析、自动化决策 | 数据在工业边缘节点产生并推理 |
大模型私有化部署的整体流程图(逻辑架构)
AutoDL平台介绍与使用展示
AutoDL平台介绍
AutoDL
是一个在线算力租赁与模型部署平台,提供简便的 GPU
云主机、JupyterLab
环境、端口映射、公网访问、文件传输等能力,广泛用于:
- 快速搭建
LLM
推理环境(如Ollama
、LMDeploy
) - 开发 AI 应用(如
LangChain
、Gradio Web UI
) - 部署私有大模型(如
DeepSeek
、Qwen
、Baichuan
等)
它面向的用户包括:
- 无
GPU
的开发者 - 希望快速部署实验环境的科研人员
- 对私有化部署有一定隔离需求的企业用户
使用展示
账号注册
首先进入官网:https://www.autodl.com/home ,完成注册和充值。
算力租赁
接下来就是租赁服务器,租赁服务器的步骤非常简单,点击菜单栏中的算力市场。
在算力时长中就可以看到,可以租赁的算力以及对应的价格。为了方便大家快速找到自己想要的算力,AutoDL
对不同的GPU
型号进行的分区,这样我们就可以快速找到我们想要的GPU
。
例如,现在我想租赁一个3090
显卡,那么就需要勾选3090
这个GPU
型号。
注意,有些
GPU
型号,并不是每个地区都有,地区的不同对于算力影响不大,只需要找到对应的GPU
型号即可,无需关注具体地区。
算力租赁时,计费方式有4种方式可供选择
- 按量计费:选择按量计费,价格发生变动以实例开机时的价格为准。
- 包日:一天(24小时)使用时间。
- 包周:一周使用时间。
- 包月:一个月使用时间。
如果不是长期使用建议选择按量付费即可。
选择好合适的计费方式后,接下来就开始选择主机相关的硬件配置。
在硬件配置中根据自己的实际情况,选择GPU
卡的数量和数据盘的大小。
GPU
卡的数量一般选择单卡即可。数据盘默认是有50G
的空间,如果空间不够的话就需要付费购买额外的数据盘空间,付费数据盘将按 0.0070元/日/GB
在每日24点进行扣款(无论实例是否关机)。
最后选择合适的镜像创建服务器。
选择了对应的镜像后,会给你预安装一些开发环境,我们创建好镜像后就可以直接使用,不需要我们在进行额外的安装。
在这里,我们选择如图所示的镜像。
一切准备就绪后,点击创建并开机,这样我们的容器实例就创建好了。
创建好后,页面会自动跳转到【控制台】->【容器实例】目录,在该目录中会展示你创建的所有容器实例。
容器实例创建完成后会生成该实例的SSH
登录指令和密码,我们可以通过SSH
协议直接连接到对应的容器实例。
同时,AutoDL
也为我们提供了快捷工具,JupyterLab
服务。
点击JupyterLab
服务即可进入到容器示例环境,对容器示例进行相关的操作,这也是我们后续的主要操作方式。
在JupyterLab
页面下我们可以看到,默认的情况下有4个文件夹。
autodl-pub
:AutoDL
的公共数据路径。autodl-tmp
:容器实例相关文件存储路径。在该文件夹下的文件不占用系统盘空间。我们的工作目录一般就是存放到该目录下。miniconda3
:默认的Conda
环境,安装了在镜像选择中对应的环境。tf-logs
:该文件夹主要是提供,AutoDL
实例中内置TensorBoard
工具服务。只需将tensorboard
的event
文件保存到/root/tf-logs/
路径,或者将保存到其他路径的event
文件拷贝到该路径下,然后使用tensorboard
。
然后,在启动页下,我们可以创建notebook
编程文件和终端。这两个启动项是最常用的。
notebook
:提供了Python
编程环境。- 终端:提供了交互终端,用于直接和容器进行命令交互。
基础环境部署
点击终端进入终端页面。然后执行以下终端命令,更新系统相关软件。
1 | apt update && apt upgrade |
预计更新时间五分钟左右。
Ollama框架介绍、安装与使用展示
Ollama介绍
Ollama
是一款开源的专为本地部署大型语言模型(LLM
)而设计的轻量级推理引擎,旨在让用户能够在不依赖云计算资源的前提下,轻松地在个人电脑或服务器上运行如DeepSeek-R1
、Qwen3
等主流开源大模型。它以“本地部署、隐私保护、简洁易用”为核心理念,尤其适用于对数据安全有较高要求的开发者、科研人员及企业用户。
Ollama
的最大优势在于其极简的安装与使用方式。用户只需通过命令行输入 ollama run deepseek-r1
即可一键拉取并运行模型,省去了传统 LLM
环境配置中繁琐的依赖管理和编译过程。同时,它内置模型量化机制,大幅减少了对显存和计算资源的需求,使得主流模型能在消费级硬件(如笔记本电脑)上高效运行。
在数据隐私方面,Ollama
支持完全离线的本地推理流程。所有模型下载、加载与响应均在本地执行,无需将数据传输至云端,有效避免敏感信息泄露,特别适用于法律、医疗、金融等对隐私保护要求极高的行业场景。
Ollama安装部署与展示
接下来开始部署Ollama
服务。
Ollama
仓库地址:https://github.com/ollama/ollama ,在仓库中提供了详细的针对不同操作系统的安装教程,大家可以自行查看。在本教程中,主要介绍Ubuntu
操作系统的安装。
首先,进入到/root/autodl-tmp
目录,并开启学术加速
1 | cd /root/autodl-tmp && source /etc/network_turbo |
然后执行以下命令,下载ollama
安装文件
1 | curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz |
注意,此处可能跟网速的快慢程度关联性比较大,下载速度有差异。
查看下载文件
1 | ll -lh ollama-linux-amd64.tgz |
可以看到文件已经下载成功,大小在1.3G
左右。
解压并部署ollama
1 | sudo tar -C /usr -xzf ollama-linux-amd64.tgz |
这里大概会消耗3分钟左右的时间。
接下来编辑/root/.bashrc
文件,设置ollama
模型的存储目录和端口。
1 | export OLLAMA_HOST="0.0.0.0:6008" |
编辑时需要使用
vim
命令,这个工具的用法可以去自行百度。
接下来,重新加载配置文件。(重启终端也可以)
1 | source /root/.bashrc |
开启ollama
服务,查看服务是否正常
1 | ollama serve |
可以看到ollama
服务成功开启在6008
端口。
这个时候需要注意了,这个黑色窗口不能关闭,如果关闭了会导致ollama
服务也会一起结束。但是,我们又不能一直把网站打开,我们希望服务部署好后,服务可以离线托管,这显然是不符合我们的项目需求的。要解决这个问题,就需要使用到tmux
工具,这个工具可以做到离线托管终端代码。
下载tmux
工具
1 | apt install tmux |
然后,直接在终端输入tmux
,回车。该工具就会自动给我们创建一个可以用于离线托管的终端。
1 | tmux |
在该终端下,开启ollama
服务。
1 | ollama server |
接下来就是关键的步骤,如何退出这个终端让终端在后台执行呢?
tmux
工具提供了快捷命令,ctrl B
+ d
即可完成终端托管。
此时,终端会自动退回到我们之前使用的终端。
其他常用
tmux
工具命令:我们可以通过以下命令,查看所有的后台终端
1 tmux ls
进入到某个后台终端
1 tmux at -t 0这个命令中的
0
可以替换为其他终端的编号。
至此,Ollama
部署完成
DeepSeek、Qwen3等开源大模型介绍、选型
开源大语言模型介绍
近年来,随着大型语言模型(LLM)的快速发展,众多开源模型相继涌现,具备强大的自然语言理解、生成、翻译和编程能力。在本地私有化部署中,选择合适的开源模型是关键一环。以下介绍几款当前主流、表现优异的开源大模型,它们均已适配 Ollama 平台,支持一键拉取与运行。
DeepSeek 系列(中国团队 DeepSeek AI 出品)
- 代表模型:DeepSeek-V3、DeepSeek-Coder
- 技术亮点:
- 混合专家结构(MoE),仅激活部分专家,推理高效
- 精调中文任务,特别适合中文问答、写作、摘要
- Coder 分支专注代码生成、补全与修复
- 推荐场景:中文私有助手、内容创作平台、代码类工具集成
Qwen3 系列(阿里达摩院)
- 代表模型:Qwen3-7B、Qwen3-14B、Qwen3-VL(图文)、Qwen3-0.5B(轻量)
- 技术亮点:
- 全系列开放,覆盖从小模型到超大模型
- 中英双语能力出色,逻辑推理强
- VL 支持图文输入,适合图表理解与图像问答
- 推荐场景:中文问答、多模态交互系统、小模型移动端部署
LLaMA3(Meta)
- 代表模型:LLaMA3-8B、LLaMA3-70B
- 技术亮点:
- Meta 最新发布的通用开源模型
- 在多项英文任务上与 GPT-3.5 相当
- 社区生态最为活跃,插件、教程丰富
- 推荐场景:英文应用、跨语言场景、教育科研
Mistral(Mistral.ai)
- 代表模型:Mistral-7B、Mixtral-8x7B(MoE)
- 技术亮点:
- Mixtral 使用稀疏专家,推理时只激活部分参数
- 在英文任务表现优异,推理速度快
- 结构精简,适合边缘计算与服务集成
- 推荐场景:通用英文助手、结构分析、嵌入式推理部署
Gemma(Google)
- 代表模型:Gemma-2B、Gemma-7B
- 技术亮点:
- 谷歌出品,训练数据标准化,稳定性高
- 适用于 TPU/GPU 与学术研究场景
- 多语言支持基础较好
- 推荐场景:研究性实验、教育课程部署、翻译工具
Phi 系列(Microsoft)
- 代表模型:Phi-2、Phi-3-mini(1.8B)
- 技术亮点:
- 小模型精度高,推理速度快,低资源场景表现优异
- 可在笔记本、本地 CPU 上高效运行
- 推荐场景:移动端、嵌入式 AI 应用、轻量对话系统
模型能力对比:
模型名称 | 中文能力 | 英文能力 | 模型规模 | 适合部署场景 |
---|---|---|---|---|
DeepSeek-r1 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 1.5B-671B | 中文助手、知识问答、代码生成 |
Qwen3 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 0.6B-235B | 图文系统、多语言聊天、企业私有部署 |
LLaMA3.1 | ⭐ | ⭐⭐⭐⭐⭐ | 8B-405B | 英文助手、技术问答、教育培训 |
Mistral | ⭐⭐ | ⭐⭐⭐⭐ | 7B | 英文原型搭建、快速服务集成 |
Gemma3 | ⭐⭐⭐ | ⭐⭐⭐⭐ | 1B-27B | 教学科研、翻译工具 |
Phi4-mini | ⭐⭐ | ⭐⭐⭐ | 3.8B | 移动端、小型设备、嵌入式系统 |
选型
Ollama
支持大量开源大语言模型的部署与调用,并提供大预言模型不同参数量及不同量化版本的选择,我们可以根据自己的硬件水平和需求选择合适的模型进行部署使用。
ollama
支持的模型可以在其官网查看:https://ollama.com/search
比如,点击deepseek-r1
模型。
进到模型详情页,可以看到模型不同参数量下的模型参数大小,在选择模型时,如果希望完全由GPU
去进行大模型的推理,那么必须要保证【自己机器的显存】大于【对应模型参数的大小】。
查看模型显存的命令
1 nvidia-smi
例如:这里我们使用的是
3090
显卡,显存为24GB
。所以我们能够选择的最大模型为deepseek-r1:32b
。
在刚在的模型详情页中展示的模型都是经过量化为Q4_K_M
的版本,我们通过点击具体的模型可以查看到。
如果想查看所有的模型,可以点击【模型详情页】的【View all】跳转链接。
可以看到,这里还提供了一些通过qwen
模型蒸馏的deeoseek-r1
模型版本。
DeepSeek私有化部署与调用
通过终端进行直接对话
接下来,使用ollama
私有化部署deepseek-r1
模型,并进行对话测试。
1 | ollama run deepseek-r1 |
开始下载模型。
如果在这一步发生报错:Error:something went wrong, please see the ollama server logs for details。可以重启一下服务器,再次尝试下载。
等待模型安装完成后,会自动开启一个终端对话窗口,接下来就可以输入文字和大模型进行对话了。
通过接口进行进阶使用
ollama
部署完成后,我们除了可以直接在终端中进行使用和对话之外,ollama
还给我们提供了接口,我们也可以通过接口的方式进行使用。
ollama
接口官方文档:https://github.com/ollama/ollama/blob/main/docs/api.md
常用接口及其功能:
接口路由 | 请求方式 | 接口功能 |
---|---|---|
/api/generate |
POST | 生成一问一答(无法保存对话历史) |
/api/chat |
POST | 生成多轮对话结果(可保存对话历史) |
/api/tags |
GET | 查看所有的本地模型 |
/api/pull |
POST | 从ollama 库中下载模型 |
/api/embed |
POST | 从模型生成嵌入向量 |
🚀generate
请求参数:
model
:必填项,模型名称。system
:系统提示词。prompt
:用于生成回复的提示词。stream
:是否进行流式传输。options
:模型文件文档中列出的其他模型参数,例如:num_ctx
(max_tokens
)、temperature
、top_p
等等。images
:可选项,一个经过Base64编码的图像列表(适用于像llava
这样的多模态模型)。think
:(针对思考型模型)模型在回复前是否应该进行思考?
响应参数:
total_duration
:生成回复所花费的时间load_duration
:加载模型所花费的时间(单位:纳秒)prompt_eval_count
:提示词中的词元数量prompt_eval_duration
:评估提示所花费的时间(以纳秒为单位)eval_count
:响应中的词元数量eval_duration
:生成回复所花费的时间(单位:纳秒)context
:本次回复中使用的对话编码,可在下次请求中发送,以保留对话记忆response
:如果响应是流式传输的,则为空;如果不是流式传输的,则此内容将包含完整的响应。
使用POSTMAN
进行接口测试:
非流式
流式
使用Python代码进行接口测试
1 | import requests |
🚀chat
请求参数:
model
:必填项,模型名称。messages
:聊天的消息,可用于保存聊天记录。stream
:是否进行流式传输。options
:模型文件文档中列出的其他模型参数,例如:num_ctx
(max_tokens
)、temperature
、top_p
等等。images
:可选项,一个经过Base64编码的图像列表(适用于像llava
这样的多模态模型)。tools
:如果模型支持,可供其使用的工具列表,以JSON格式呈现think
:(针对思考型模型)模型在回复前是否应该进行思考?
响应参数:
total_duration
:生成回复所花费的时间load_duration
:加载模型所花费的时间(单位:纳秒)prompt_eval_count
:提示词中的词元数量prompt_eval_duration
:评估提示所花费的时间(以纳秒为单位)eval_count
:响应中的词元数量。eval_duration
:生成回复所花费的时间(单位:纳秒)context
:本次回复中使用的对话编码,可在下次请求中发送,以保留对话记忆message
:返回的结果,以字典的形式返回,和请求中的messages
中元素的结构一致。
使用POSTMAN
进行接口测试
非流式
流式
使用Python代码进行接口测试
1 | import requests |
注意:
generate
接口和chat
接口的解析方式不一样,需要修改。
🚀embed
这个是Ollama
中的Embedding
模型接口,用于将自然语言转化为嵌入向量。
要测试这个接口需要在ollama
中下载一个embed
模型,在官网(https://ollama.com/search)中点击页面中的`Embedding`即可进行筛选。
比如,在这里我们下载nomic-embed-text
,在终端中输入以下命令。
1 | ollama pull nomic-embed-text |
Embedding
一般较小,下载速度很快。下载完成后,接下来进行接口测试。
使用POSTMAN
进行接口测试
使用Python代码进行接口测试
1 | import requests |
其他接口比较简单,大家可以自行测试,在此处不过多赘述。
代码已经开源到以下仓库:https://gitee.com/ming_log/ollama_api_request