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

Linux部署DeepSeek r1 模型训练

之前写过一篇windows下部署deepseekR1的文章,有小伙伴反馈提供一篇linux下部署DeepSeek r1 模型训练教程,在 Linux 环境下,我找了足够的相关资料,花费了一些时间,我成功部署了 DeepSeek R1 模型训练任务,结合了 Ollama、DeepSeekR1 和 RAGFlow 三大工具,实现了高效的模型训练与推理。

小贴士:AI学习资料pdf文档下载 点击下载AI学习资料

一、安装ollama ⼯具

介绍

Ollama是一个开源软件,主要用于在本地电脑设备上下载、部署和使用大模型(LLM)。它提供了丰富的LLM库,如llama、qwen、mistral以及DeepSeek R1等,并且支持不同参数规模的模型,以适配不同性能的电脑设备‌。Ollama虽然支持直接使用LLM,但仅能在命令行中进行对话,交互功能有限,因此需要配合其他工具使用‌。通俗理解为用于方便本地部署大模型使用的工具,实现离线使用和数据得到安全保护。

安装

# curl下载ollama⼆进制⽂件
$ sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ol
lama
$ sudo chmod +x /usr/bin/ollama
# github下载:https://github.com/ollama/ollama/
$ tar -zxvf ollama-linux-amd64.tgz -C /usr
$ ollama --help
$ ollama --version

在这里插入图片描述
在这里插入图片描述
或者直接下载脚本安装

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

在这里插入图片描述

在Service中增加下⾯两⾏

$ vi /etc/systemd/system/ollama.service
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"

然后重启ollama服务

$ systemctl daemon-reload
$ systemctl restart ollama
验证服务是否开启,11434是核⼼端⼝,必须开启。
netstat -nultp |grep 11434

在这里插入图片描述
输入自己本地电脑的IP+11434端口访问
在这里插入图片描述
第⼆步:将Ollama添加为启动服务

sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama

写⼀个启动脚本

$ sudo vim /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
[Install]
WantedBy=default.target$ chmod +x /etc/systemd/system/ollama.service

ollama.service配置⽂件中注意事项:
ollama默认只⽀持localhost访问,如果想要开放外⽹访问,可以在[service]下⾯添加⼀个环境变量

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

默认情况下,通过ollama部署的⼤模型是阻塞的,为了提⾼⼤模型的并发性,
可以通过添加OLLAMA_NUM_PARALLEL来配置同时并发的数量

[Service]
Environment="OLLAMA_NUM_PARALLEL=4"

4表示同时运⾏4个并发线程数,默认情况下,ollama会默认保持5分钟的活跃状态,超过五分钟没有操作,
服务会⾃动退出,为了避免在调⽤⼤模型服务时的冷启动,可以通过环境变量
OLLAMA_KEEP_ALIVE来设置活跃状态的时间

[Service]
Environment="OLLAMA_KEEP_ALIVE=-1"
# -1表示⼀直处于连接状态。

第四步:启动服务

$ sudo systemctl daemon-reload
$ sudo systemctl enable ollama

注意:每次修改配置⽂件后,需要关停ollama服务,重启后才⽣效.
关停命令

$ sudo systemctl stop ollama

启动:

 $ sudo systemctl start ollama

安装 deepseek R1

# deepseek 版本信息查看此地址 https://ollama.com/library/deepseek-r1
$ ollama run deepseek-r1:14b

在这里插入图片描述

二、部署⼀个客户端⼯具

下面客户端选择任意一个客户端安装

安装配置 Cherry Studio

介绍

Cherry Studio 是一个用于创建和部署桌面应用程序的开发框架,特别适用于开发跨平台应用。它通过提供简洁易用的工具和可视化界面,使开发者能够以较少的代码量快速构建具有高性能和美观界面的应用程序。Cherry Studio 结合了强大的图形界面设计功能和模块化架构,允许开发者灵活地定制界面布局和交互逻辑。

该框架支持多种主流操作系统,如 Windows、macOS 和 Linux,使得开发者能够创建具有广泛兼容性的桌面应用。此外,Cherry Studio 提供了丰富的插件和扩展功能,支持自定义组件、第三方库的集成,以及与后端服务的连接。其目标是简化开发流程,提升应用开发的效率,尤其适合那些希望快速构建用户友好的桌面应用的开发者。通过 Cherry Studio,开发者能够更轻松地专注于应用逻辑的实现,而无需过多关心平台兼容性和底层细节。

安装

下载linux 安装包 下载官⽹:https://cherry-ai.com/
在这里插入图片描述
双击exe文件安装完成,从设置⾥⾯找到模型服务, ollama 的模型为 deepseek-r1
在这里插入图片描述
设置默认模型
在这里插入图片描述
打开一个聊天窗口进行测试
在这里插入图片描述

安装配置chatbox 客户端

介绍

Chatbox 是一种基于聊天界面的应用程序或工具,旨在通过自动化的方式与用户进行互动,通常用于客户支持、信息查询或作为智能助手。它可以通过文本、语音或其他多种形式与用户进行交流。Chatbox 通常结合自然语言处理(NLP)技术,使得它能够理解和生成自然语言,从而提供智能响应。现代的聊天框架如 ChatGPT 或 Dialogflow 使得 Chatbox 更加灵活和强大,可以实现复杂的对话流程和多轮对话。

Chatbox 的应用场景非常广泛,涵盖了电子商务、在线教育、客户服务、健康咨询等领域。它能够提供即时响应,帮助企业提升客户体验并减少人工客服压力。同时,Chatbox 也能通过不断学习和优化,逐步提高对话质量,提供更贴近用户需求的服务。随着技术的进步,Chatbox 正变得越来越智能,能够处理更为复杂的问题,并在多个平台上无缝集成,满足不同用户的需求。

安装

下载linux chatbox安装包⽂件,地址: https://chatboxai.app/zh
在这里插入图片描述
配置ollama 模型地址,本机电脑IP+11434端口,选择deepseek你的模型
在这里插入图片描述
新建对话,按照图中的配置选择模型
在这里插入图片描述
保存就可以测试对话了
在这里插入图片描述

安装配置Open-WebUI

介绍

Open-WebUI 是一个开源项目,旨在提供一个易于使用、可定制的Web界面,用于与各种AI和机器学习模型进行交互。该项目的目标是让用户能够通过直观的图形界面,轻松管理和运行复杂的机器学习任务,而无需深入编写代码。Open-WebUI 支持多个主流的AI模型,包括文本生成、图像生成、翻译、语音识别等,允许用户通过简单的操作配置和调用这些模型。

其特点包括高度的可扩展性,支持插件化架构,可以根据需求扩展新功能;界面简洁且响应式,适应不同设备的屏幕;并且提供了集成的日志系统和任务管理工具,帮助用户更好地监控和管理后台运行的模型任务。通过 Open-WebUI,开发者和研究人员可以快速搭建自己的AI应用,提升开发效率并降低入门门槛。该项目的开源性质也促进了社区的活跃参与,使其能够不断得到改进和优化。

安装

使⽤docker ⽅式安装客户端⼯具

$ docker pull ghcr.mirrorify.net/open-webui/open-webui:main
$ docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://10.1.192.54:11434 --privileged=true -v open-webui:/app/backend/data --name open-webui --restart always ghcr.mirrorify.net/open-webui/open-webui:main

在这里插入图片描述
打开open-webui界面,自己电脑的ip地址+3000端口
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
首次打开需要注册登录,按提示注册就好,然后登录进去开始对话

在这里插入图片描述

三、RAGFlow的安装和部署

介绍

RAGFlow 是一个开源的框架,旨在简化和优化信息检索与生成的工作流程。它基于检索增强生成(RAG,Retrieval-Augmented Generation)的思想,将信息检索与文本生成结合起来,以提高生成模型的准确性和效率。RAGFlow 通过引入外部数据源(如知识库或文档库),在生成过程中动态地获取相关信息,弥补传统生成模型仅依赖训练数据的局限性。

该框架的核心优势在于它的灵活性与扩展性,可以与现有的语言模型(如 GPT、BERT 等)结合使用,支持多种自定义配置与优化策略,适应不同的业务需求。RAGFlow 的设计理念是简化复杂的工作流程,让开发者能够高效构建基于检索增强生成的应用场景,如问答系统、内容生成、数据分析等。它的开放性和模块化架构使得其在不同领域的适用性更强。

安装

部署的环境前置条件
CPU >= 4 核
内存 >= 16 GB
硬盘 >= 50 GB
Docker版本 >= 24.0.0 & Docker Compose >= v2.26.1

1.安装

# 克隆仓库
$ git clone https://github.com/infiniflow/ragflow.git
$ cd ragflow-main/docker/# 如果你遇到 Docker 镜像拉不下来的问题,可以在 #docker/.env ⽂件内根据变量
# RAGFLOW_IMAGE 的注释提示选择华为云或者阿⾥云的相应镜像。
# 华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
# 阿⾥云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow
$ vim .envRAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:v0.16.0# 构建:
$ docker compose -f docker-compose.yml up -d

在这里插入图片描述

在这里插入图片描述

查看容器服务运行状态

$ docker ps -a

在这里插入图片描述

查看服务日志

docker logs -f ragflow-server

在这里插入图片描述

访问RAGFlow界面,http://本地电脑ip

我这里地址是:http://192.168.2.36
在这里插入图片描述

注册一个账号,按照提示操作即可
在这里插入图片描述

添加自己的deepseek模型(自己电脑ip+11434端口)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

设置系统模型

在这里插入图片描述
新建知识库
在这里插入图片描述
新增文件,代表数据源,对数据进行训练,提供AI使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击解析一下,进行解析文件里面的内容数据,让AI学习
在这里插入图片描述
解析成功
在这里插入图片描述
在这里插入图片描述
点击聊天功能—》新建助理
在这里插入图片描述
在这里插入图片描述
根据文档存在的内容提问,你会发现AI会根据你上传文档的数据,给出你要的答案。
在这里插入图片描述

相关文章:

Linux部署DeepSeek r1 模型训练

之前写过一篇windows下部署deepseekR1的文章,有小伙伴反馈提供一篇linux下部署DeepSeek r1 模型训练教程,在 Linux 环境下,我找了足够的相关资料,花费了一些时间,我成功部署了 DeepSeek R1 模型训练任务,结…...

JetBrains 2024开发者生态报告 -你尝试过用VR头戴设备编程吗

JetBrains 2024开发者生态报告:核心洞察 方法论 覆盖 171 个国家/地区 的 23,262 名开发者 。数据按区域开发者数量和就业状态加权。 主要趋势 AI 整合 80% 的公司允许使用第三方 AI 工具(如 ChatGPT、Copilot)。18% 的开发者将 AI 集成到产…...

Spring Boot “约定大于配置”

什么是“约定大于配置”? “约定大于配置”是一种简化开发的设计理念。简单来说,就是框架默认提供了常见的配置和行为,开发者只需要按照约定来编写代码,避免了繁琐的配置,只在需要时进行定制和调整。这种理念在Spring…...

【大语言模型_3】ollama本地加载deepseek模型后回答混乱问题解决

背景: 本地下载了DeepSeek-R1-Distill-Qwen-7B模型后,通过ollama create DeepSeek-R1-Distill-Qwen-7B -f ds7b.mf加载模型启动后回答混乱,无法使用。 解决方法 重新下载模型,选择了DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf 重…...

汇能感知的光谱相机/模块产品有哪些?

CM020A 分辨率:1600H1200V 光谱范围:350~950nm 光谱分辨率:1nm 接口:USB2.0 帧率:16001200 (6帧) 输出格式:Raw 8bit FOV:D73.5H58.8V44.1 相机尺寸:505055mm VM02S10 分辨率…...

Spring中Bean的四种实例化方法

Bean的四种实例化方法 Bean是Spring核心的概念,另外一个核心的概念是AOP。官网上,Bean的解释是: In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans…...

Office word打开加载比较慢处理方法

1.添加safe参数 ,找到word启动项,右击word,选择属性 , 添加/safe , 应用并确定 2.取消加载项,点击文件,点击选项 ,点击加载项,点击转到,取消所有勾选,确定。...

一台服务器将docker image打包去另一天服务器安装这个镜像

一台服务器将docker image打到去另一天服务器安装这个镜像 1. 打包2.另一台服务器执行 1. 打包 docker save -o nebula-graph-studio.tar harbor1.vm.example.lan/dockerio/vesoft/nebula-graph-studioxxx.tar 是打包好的文件 后面的是 docker image 2.另一台服务器执行 docke…...

在局域网中连接Grafana数据源

目录 登录Grafana 添加数据源 配置数据源 保存并测试 使用数据源 注意事项 登录Grafana 打开浏览器,访问Grafana的地址,默认是http://localhost:3000。 使用默认用户名和密码登录(通常是admin/admin),登录后建议…...

深入理解指针1

深入理解指针1 一.内存和地址以及指针间的关系 举一个生活中的例子,假如你去找你的朋友玩,你的朋友告诉了你酒店的名字,但是没有告诉告诉你他具体住哪一件房间,于是你为了找到你的朋友,只好一间房间一间房间的去找&am…...

使用 pjsua2 开发呼叫机器人,批量拨打号码并播放固定音频

如何使用 pjsua2 开发呼叫机器人,批量拨打号码并播放固定音频 声明 该播客仅提供实现思路,并非实际的方案记录,不要盲目照搬。 pjsua2库的安装会有较多问题,请参考本人之前的播客进行安装 pjsua2。 pjsua2 库具体的 api 说明请参考开源库内的 范例代码。 引言 在今天的…...

【部署优化篇四】《DeepSeek移动端优化:CoreML/TFLite实战对比》

手机里的AI助手能秒速回答你的问题,游戏人物能实时追踪你的表情变化,这些酷炫功能的背后都离不开移动端机器学习框架的支撑。今天我们就来撕开两个当红炸子鸡框架CoreML和TFLite的神秘面纱,看看它们在模型优化这件事上到底藏着哪些独门绝技。 一、移动端优化的生存法则 在…...

【分布式理论14】分布式数据库存储:分表分库、主从复制与数据扩容策略

文章目录 一、分表分库1. 数据分表的必要性与方式2. 数据分库原则与优势 二、主从复制1. 读写分离架构设计2. 数据复制方式3. MySQL实现主从复制4. MySQL主从复制实践与高可用方案 三、数据扩容 随着业务的不断发展和数据量的增长,传统的单机关系型数据库已经逐渐不…...

【嵌入式Linux应用开发基础】特殊进程

目录 一、守护进程(Daemon Process) 1.1. 概念 1.2. 特点 1.3. 守护进程的命名 1.4. 创建守护进程的步骤 1.5. 守护进程的实例 1.6. 守护进程的管理 1.7. 影响与处理 二、僵尸进程(Zombie Process) 2.1. 僵尸进程的定义…...

HDFS应用-后端存储cephfs-java-API

HDFS(Hadoop Distribute FileSystem)是一个适合运行在通用硬件之上,具备高度容错特性,支持高吞吐量数据访问的分布式文件系统,非常适合大规模数据集应用。 HDFS适用于如下场景: • 处理海量数据(TB或PB级别以上) • 需要很高的吞吐量 • 需要高可靠性 • 需要很好的可扩…...

复现log4j2的jndi注入成功反弹shell

在Apache Solr 中复现log4j2的jndi注入漏洞,获得docker容器的root权限,实验五步走: 启动容器访问web页面漏洞探测反弹shell载荷wireshark抓取log4j反弹shell流量 ailx10 1956 次咨询 4.9 网络安全优秀回答者 互联网行业 安全攻防员 去咨…...

Cursor实战:Web版背单词应用开发演示

Cursor实战:Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...

win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统,报错:Operating System not found 二、原因分析 国产系统,需要注意的点: 需要看你的系统类…...

python subprocess库

subprocess subprocess 是 Python 标准库中的一个模块,用于创建和管理子进程。它允许你在 Python 程序中执行外部命令、调用其他程序,并与这些程序进行交互。subprocess 模块提供了丰富的功能,可以替代一些旧的模块和函数,如 os.…...

敏捷项目管理:适应快速变化的项目环境

一、敏捷项目管理的核心逻辑 敏捷项目管理是一种以迭代开发、快速响应变化、持续交付价值为核心的方法论,尤其适合需求频繁变更或市场环境不确定的项目。它的核心逻辑是**“小步快跑”**——将大目标拆解为多个短期可交付的成果,通过持续反馈和调整&…...

矿用机车移动逆变电源设计(论文+源码)

1总体方案设计 本课题为矿用机车移动逆变电源的硬件电路设计,其整个架构如图2.1所示包括了:380V三相交流电,逆变电路,高频变压器,24V直流输出,控制电路,驱动电路,保护电路等等。 在工作原理上&…...

前七章综合练习

一,拓扑图 二,实验要求 不限 三,实验步骤 第一步,搭建拓扑图 如上 注意: 第二步,配置IP trust: client1 client2 fw untrusrt-1: fw r3 电信DNS 百度web-1 untrust-2&#xf…...

二级指针略解【C语言】

以int** a为例 1.二级指针的声明 a 是一个指向 int*(指向整型的指针)的指针,即二级指针。 通俗的讲,a是一个指向指针的指针,对a解引用会是一个指针。 它可以用于操作动态分配的二维数组、指针数组或需要间接修改指针…...

环境变量2

目录 环境变量PATH 如何改变PATH 我们今天继续来学习环境变量2!!! 环境变量PATH PATH的作用是知道命令的搜索路径,我们都知道Linux上的命令行指令,ll,pwd什么的为什么我们写出来系统就知道是什么并且运…...

GoFound 与 MySQL 集成优化方案

GoFound 与 MySQL 集成优化方案 1. 明确需求 文章信息存储在 MySQL 数据库中。使用 GoFound 实现全文搜索功能。搜索时,先从 GoFound 中获取匹配的文章 ID,然后从 MySQL 中查询完整的文章信息。 2. 优化思路 数据同步:将 MySQL 中的文章数…...

数据录入与处理岗位

随着人工智能技术的迅猛发展,DeepSeek等先进AI系统正在逐步渗透到各个行业,工控行业也不例外。工控行业作为工业自动化的核心领域,涵盖了从生产线控制到设备维护的多个环节。然而,随着AI技术的不断进步,一些传统岗位正…...

cs106x-lecture11(Autumn 2017)-SPL实现

打卡cs106x(Autumn 2017)-lecture11 (以下皆使用SPL实现,非STL库,后续课程结束会使用STL实现) 1、diceRolls Write a recursive function named diceRolls accepts an integer representing a number of 6-sided dice to roll, and output all possibl…...

基于ffmpeg+openGL ES实现的视频编辑工具(一)

在深入钻研音视频编辑开发这片技术海洋时,相信不少开发者都和我有同样的感受:网络上关于音视频编辑工具实现的资料繁多,理论阐释细致入微,代码片段也随处可见。然而,一个显著的缺憾是,缺乏一个完整成型的 A…...

全面掌握Python时间处理

全面掌握Python时间处理 flyfish datetime: 最适合处理日期和时间,支持创建时间对象、格式化时间、计算时间差等。time: 提供了获取时间戳、将时间戳转换为本地时间、暂停程序执行等功能。timeit: 主要用于性能测试,帮助开发者了解某段代码的执行效率。…...

LLM 推理中推理-时间计算技巧

25年2月来自香港科技大学广州分校的论文“Bag of Tricks for Inference-time Computation of LLM Reasoning”。 随着大语言模型 (LLM) 的进步,解决复杂的推理任务越来越受到关注。推理-时间计算方法(例如 Best-of-N、波束搜索等)特别有价值…...