Sholyn

导航

DeepSeek蒸馏版硬件推荐与Ollama私有化部署

模型蒸馏的定义

➢ 通俗解释:模型蒸馏就像是让一个“老师”(大模型)把知识传授给一个“学生”(小模型),让“学生”
变成“学霸”。
➢ 正式定义:模型蒸馏是一种将大型复杂模型(教师模型)的知识迁移到小型高效模型(学生模型)
的技术。

模型蒸馏的原理

➢ 教师模型的训练:先训练一个性能强大但计算成本高的教师模型。
➢ 生成软标签:教师模型对数据进行预测,得到每个样本的概率分布,这些就是软标签。
➢ 训练学生模型:用软标签和硬标签共同训练学生模型。
➢ 优化与调整:通过调整超参数,优化学生模型的性能。

蒸馏技术的优势

➢ 模型压缩:学生模型参数少,计算成本低,更适合在资源受限的环境中部署。
➢ 性能提升:学生模型通过学习教师模型的输出概率分布,能够更好地理解数据的模式和特征。
➢ 效率提高:学生模型训练所需的样本数量可能更少,训练成本降低


DeepSeek-R1蒸馏模型-能力对比

image

  • DeepSeek蒸馏版的选择经验
     千万别用1.5B和8B做正经业务,会翻!
     做自然语言对话7B就很好用了
     预算有限又想搞事情就选14B
     要做知识问答选32B,对代码支持也不错
     70B性价比最低,与32B性能类似, 成本翻倍,没有什么理由存在

满血版

  • DeepSeek-R1-671B -->基本模型: DeepSeek-V3-Base
    个人没资源玩转,知道就好~~ 要用就调API吧

硬件配置推荐

image

安装Ollama客户端

Windows/Mac系统:
访问Ollama官网https://ollama.com/ 或GitHub https://github.com/ollama/ollama 页面,下载安装包并运行安装程序。
Linux系统:
一键安装命令curl -fsSL https://ollama.com/install.sh | sh,或手动下载并解压安装。
Docker安装:
拉取Ollama镜像,如CPU版使用docker pull ollama/ollama
运行镜像时可使用docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama命令。


Ollama参数 标识与配置
  1. OLLAMA_MODELS
    表示模型文件的存放目录,默认目录为当前用户目录即 C:\Users%username%.ollama\models Windows 系统 建议不要放在C盘,可放在其他盘(如 E:\ollama\models)

  2. OLLAMA_HOST
    表示ollama 服务监听的网络地址,默认为127.0.0.1 如果想要允许其他电脑访问 Ollama(如局域网中的其他电脑),建议设置成 0.0.0.0

  3. OLLAMA_PORT
    表示ollama 服务监听的默认端口,默认为11434 如果端口有冲突,可以修改设置成其他端口(如8080等)

  4. OLLAMA_ORIGINS
    表示HTTP 客户端的请求来源,使用半角逗号分隔列表 如果本地使用不受限制,可以设置成星号 *

  5. OLLAMA_KEEP_ALIVE
    表示大模型加载到内存中后的存活时间,默认为5m即 5 分钟 (如纯数字300 代表 300 秒,0 代表处理 请求响应后立即卸载模型,任何负数则表示一直存活) 建议设置成 24h ,即模型在内存中保持 24 小时, 提高访问速度

  6. OLLAMA_NUM_PARALLEL
    表示请求处理的并发数量,默认为1 (即单并发串行处理请求) 建议按照实际需求进行调整

  7. OLLAMA_MAX_QUEUE
    表示请求队列长度,默认值为512 建议按照实际需求进行调整,超过队列长度的请求会被抛弃

  8. OLLAMA_DEBUG
    表示输出 Debug 日志,应用研发阶段可以设置成1 (即输出详细日志信息,便于排查问题)

  9. OLLAMA_MAX_LOADED_MODE LS
    表示最多同时加载到内存中模型的数量,默认为1 (即只能有 1 个模型在内存中)

Tips:建议修改:

将模型路径迁移至非系统盘(如OLLAMA_MODELS=E:\model s),按需提高OLLAMA_KEEP_ALIVE 和OLLAMA_NUM_PARALLEL 优
化性能,生产环境限制请求来源并关闭调试日志


访问Ollama服务
  • 启动Ollama服务后,通过浏览器访问
    http://localhost:11434 可看到:”ollama is running“
  • 若无法访问,需检查Ollama服务是否启动,是否有防火墙或安全软件阻止端口访问,以及是否更改了默认端口。
前端界面网络访问
  • 本地部署:
    前端界面运行在本地计算机上,可通过http://localhost:11434 与Ollama服务通信。
  • 远程部署:
    需确保前端界面所在计算机可访问Ollama服务所在计算机的IP地址和端口。可在Ollama服务所在计算机上运行ollama serve --host 0.0.0.0命令允许远程访问或者修改环境变量,最后通过IP地址访问Ollama服务。

网络配置注意事项

  1. 端口冲突:确保11434端口未被占用,若被占用,可通过:ollama serve --port <new_port>命令或者通过修改环境变量指定其他端口。
  2. 代理设置:在代理网络环境中,需确保代理设置允许访问本地服务。
  3. 防火墙设置:确保防火墙规则允许对11434端口的访问,可添加防火墙规则允许该端口流量。

Ollama常用命令

命令 描述
ollama serve 启动 Ollama
ollama create 从 Modelfile 创建模型
ollama show 显示模型信息
ollama run 运行模型
ollama pull 从注册表中拉取模型
ollama push 将模型推送到注册表
ollama list 列出所有模型
ollama ps 列出正在运行的模型
ollama cp 复制模型
ollama rm 删除模型

  • 下载命令格式
     使用ollama pull命令下载模型,格式为ollama pull <model_name>。
     案 例 : 某 用 户 在 终 端 输 入 ollama pull deepseek- r1:7b,从Ollama模型库中成功下载7B模型,耗时约10分钟

  • 下载过程监控
     下载过程中,终端会显示下载进度条,实时显示下载速度和剩余时间。
     可通过ollama list命令查看已下载的模型列表,确认模型是否下载完成。
     案例:某用户在下载14B模型时,通过ollama list
    命令发现下载进度为50%,预计还需20分钟完成。

  • 运行命令格式
     使用ollama run命令运行模型,格式为ollama run <model_name>。
     案例:某用户在终端输入ollama run deepseek-r1:7b,模型成功启动并进入运行状态。

  • 运行状态检查
     模型运行后,可通过ollama ps命令查看正在运行的模型列表,确认模型是否正常运行。若模型未正常运行,可检查硬件资源是否充足,或是否有其他模型占用资源。
     案例:某用户运行14B模型后,响应速度较慢,经检查发现内存占用过高。

  • 停止运行模型
     使用ollama stop命令停止运行的模型,格式为ollama stop <model_name>。
     案例:某用户在测试完成后,通过ollama stop deepseek-r1:7b命令停止了7B模型的运行,释放了系统资源。


安全漏洞与未经授权访问风险

 问题描述:默认配置下Ollama服务暴露在公网,易被自动化脚本扫描攻击,导致算力盗用或模型文件删除。

  • 解决方案
  1. 强制身份认证:通过反向代理(如Nginx)添加Basic Auth认证,或在Ollama启动时绑定内网IP(OLLAMA_HOST=192.168.x.x)。
  2. 网络层隔离:使用Docker的--network host模式部署,配合iptables限制访问来源IP段。
  3. 日志监控:启用Ollama的--verbose日志模式,结合Prometheus监控API调用频率,识别异常流量
模型升级后性能退化问题

 问题描述:Ollama版本升级后模型仅运行在CPU,或量化精度丢失导致回答质量下降。

  • 解决方案
  1. 锁定依赖版本:通过Docker镜像固定Ollama版本(如ollama/ollama:0.5.1-cuda),避免自动升级引入兼容性问题。
  2. 显存分配验证:使用nvidia-smi监控GPU利用率,若发现异常回退至CPU,检查CUDA 驱动版本与Ollama编译环境的兼容性。

本文节选于‘北京大学 - DeepSeek内部研讨系列:DeepSeek私有化部署’

posted on 2025-03-07 01:09  isSolyn  阅读(66)  评论(0)    收藏  举报