当前位置: 首页 > news >正文

ubuntu 本地部署deepseek r1 蒸馏模型

本文中的文件路径或网络代理需要根据自身环境自行删改

一、交互式chat页面

1.1 open-webui 交互窗口部署:基于docker安装,且支持联网搜索

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线操作。它支持各种 LLM 运行器,如 Ollama 和 OpenAI 兼容的 API,内置 RAG 推理引擎,使其成为强大的 AI 部署解决方案。它支持个人离线部署类openai api接口服务,也支持商用的类openAI api 接口服务

1.1.1 安装 open-webui 配置环境

Ollama下的open-webui交互项目地址

  1. 我使用的是win11的wsl2 ubuntu 子系统(也可以使用VM虚拟机):window11使用wsl2安装Ubuntu22.04
  2. linux 安装配置docker与网络代理:Ubuntu 安装 docker 配置环境及其常用命令
  3. 拉取open-webui docker镜像并运行容器(含代理)
    如果仅仅使用本地部署的LLM api 接口不使用openAI的api-key可以不使用代理
# 使用 open-webui 项目官方启动docker容器的命令
# 不同的是,由于后续可能使用openai的api-key,因此在创建容器时需要使用 -e 加入http 网络代理,我服务器的代理地址是http://host.docker.internal:7891
# 即现对于官方的命令加入了:-e HTTP_PROXY=http://host.docker.internal:7891 -e HTTPS_PROXY=http://host.docker.internal:7891
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e HTTP_PROXY=http://host.docker.internal:7891 -e HTTPS_PROXY=http://host.docker.internal:7891 --restart always ghcr.io/open-webui/open-webui:main
# --add-host=host.docker.internal:host-gateway的作用:
# macOS 和 Windows:
#在 macOS 和 Windows 上,Docker Desktop 会自动设置 host.docker.internal 为宿主机的 IP 地址,容器可以直接使用这个主机名与宿主机通讯。#Linux:
#在 Linux 系统上,Docker 并不会自动创建 host.docker.internal 的解析。为了让容器能够通过 host.docker.internal 访问宿主机,你需要手动添加这个主机名和对应的宿主机 IP 地址。# 使用 host-gateway
# 通过在 docker run 命令中添加 --add-host=host.docker.internal:host-gateway:
# 这里的 host-gateway 将自动解析为 Docker 守护进程所运行的主机的 IP 地址,意味着容器对 host.docker.internal 的访问将被成功解析到宿主机的 IP。这使得在 Linux 上的使用体验与 macOS 和 Windows 变得一致。

查看启动成功:

docker ps -a

在这里插入图片描述
查看代理是否加入:

# 进入容器内部
docker exec -it open-webui bash
printenv

在这里插入图片描述
验证代理是否成功:

curl -x $HTTPS_PROXY -I www.google.com

在这里插入图片描述
退出容器内部

# 退出容器内部
exit
  1. 在本地浏览器输入 127.0.0.1:3000 进入open Webui界面
    端口3000是和上文容器启动命令中的参数 -p 3000:8080 对应的
  • 第一次进入需要创建管理员账号,创建即可
  • 创建完成后稍等片刻,点击页面左下角的设置,可以进行配置
    在这里插入图片描述
    在这里插入图片描述
    如果是本地部署的Ollama服务,就不用特殊处理,如果是其他的框架部署的LLM api服务,或者是商业的api,就需要配置“管理openai api 链接”里面的内容了
  • 配置完成后即可进行对话(具体可以见下文不同的LLM api 服务的配置
  • 需要联网使用的话可以按下面配置(代理改成自己的实际地址
    在这里插入图片描述
1.1.2 ChatBox部署

// 待更…

1.1.3 LobeChat 部署(阿里云)

详情见文章:使用阿里云服务器实现个人chat-gpt(LobeChat部署)


二、部署deepseek r1 api接口

2.1 Ollama 部署

2.1.1 安装配置Ollama 环境

Ollama github地址
ubuntu 安装 Ollama

curl -fsSL https://ollama.com/install.sh | sh

在这里插入图片描述
查看ollama 版本

 ollama -v

在这里插入图片描述
其他的ollama 命令

ollama

在这里插入图片描述
查看ollama的服务运行状态

# 要查看当前正在运行的服务,可以使用以下命令:
sudo systemctl list-units --type=service --state=running## 要查看所有服务的状态,可以使用以下命令: sudo systemctl list-unit-files --type=service

请添加图片描述
systemctl 其他常用命令

# 查看某个特定服务的状态, 如果您想查看某个特定服务的状态,可以使用:
systemctl status <service_name>
## 例如:
systemctl status nginx# 启用或禁用服务的自动启动
## 启用服务以在启动时自动启动:
sudo systemctl enable <service_name>
## 禁用服务以在启动时不自动启动:
sudo systemctl disable <service_name>## 其他相关命令
### 启动服务:
sudo systemctl start <service_name>
### 停止服务:
sudo systemctl stop <service_name>
### 重启服务:
sudo systemctl restart <service_name>

2.1.2 Ollama 拉取部署本地的LLM api

  1. 下载deepseek R1模型:deepseek-r1 模型下载
# 拉取 DeepSeek-R1-Distill-Qwen-1.5B
ollama pull deepseek-r1:1.5b

在这里插入图片描述

# 查看本地的模型
ollama list

在这里插入图片描述

  1. 本地运行/部署 DeepSeek-R1-Distill-Qwen-1.5B
ollama run deepseek-r1:1.5b

运行后可以使用终端对话了
在这里插入图片描述
3. 与open-webui的交互
浏览器打开一阶段我们部署的open-webui镜像服务,即浏览器输入 127.0.0.1:3000
我的Ubuntu是基于win11的镜像网络,部署到子系统localhost的服务可以直接在win11的本地localhost访问,故我将官方默认的地址更改为127.0.0.1, 具体可以见: https://github.com/open-webui/open-webui#troubleshooting, 如下图所示:
在这里插入图片描述
然后点击左侧“模型”的按钮刷新下,可以发现 deepseek-r1:1.5b 已经在列表中(列表中其他的模型是因为我加入openai的官方key,可以忽略)
在这里插入图片描述
回到聊天页面,选择deepseek-r1:1.5b聊天即可,如下:
在这里插入图片描述

2.2 vllm 部署

2.2.1 安装配置vllm环境

// 待更 …

2.2.2

// 待更 …

http://www.lryc.cn/news/534251.html

相关文章:

  • RestTemplate Https 证书访问错误
  • MySQL内存使用率高且不释放问题排查与总结
  • mysql8 从C++源码角度看sql生成抽象语法树
  • 【DeepSeek】DeepSeek概述 | 本地部署deepseek
  • 【C++】多态原理剖析
  • 【Rust自学】20.4. 结语:Rust学习一阶段完成+附录
  • pytorch引用halcon写数据集
  • 让文物“活”起来,以3D数字化技术传承文物历史文化!
  • aarch64 Ubuntu20.04 安装docker
  • JAVA:CloseableHttpClient 进行 HTTP 请求的技术指南
  • Mac上搭建k8s环境——Minikube
  • 经典排序算法复习----C语言
  • 自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同
  • [LUA ERROR] bad light userdata pointer
  • 【Java八股】JVM
  • 集成学习(一):从理论到实战(附代码)
  • Netty:高性能网络应用框架的深度解析
  • 神经网络常见激活函数 3-ReLU函数(修正线性单元)
  • Android开发获取缓存,删除缓存
  • 如何通过PHP接入DeepSeek的API
  • 一种基于Leaflet.Legend的图例动态更新方法
  • Spring Boot: 使用 @Transactional 和 TransactionSynchronization 在事务提交后发送消息到 MQ
  • LQB(2)-python-枚举
  • MongoDB开发规范
  • 为什么DeepSeek服务器繁忙?
  • 律所录音证据归集工具:基于PyQt6与多线程的自动化音频管理解决方案
  • 【含开题报告+文档+PPT+源码】基于SpringBoot+Vue旅游管理网站
  • unity碰撞的监测和监听
  • DeepSeek-R1 32B Windows+docker本地部署
  • C++11新特性之unique_ptr智能指针