Ubuntu环境基于Ollama部署DeepSeek+Open-Webui实现本地部署大模型-无脑部署

Ollama介绍

Ollama是一款简单好用的模型部署工具,不仅可以部署DeepSeek,市面上开源模型大部分都可以一键部署,这里以DeepSeek为例
官网
在这里插入图片描述
DeepSeek
在这里插入图片描述
版本硬件要求
在这里插入图片描述

安装Ollama

环境

sudo apt update
sudo apt install curl
sudo apt install lsof
1.命令一键安装

在官网点击下载可以看到推荐的就是命令安装,根据需要选择系统版本
但是由于是外网地址会下载的非常慢,如果网络环境支持,首选命令行安装,简单方便
在这里插入图片描述

curl -fsSL https://ollama.com/install.sh | sh
2.压缩包安装

在网络环境不允许,或者下载太慢的情况下,可以选择压缩包安装
压缩包安装需要注意会有一些坑,命令行直接安装会自动匹配,不需要考虑架构问题
这里主要以linux系统为例子,系统架构会有很多版本主要 X86,ARM等等
这里需要先通过命令查看自己的系统架构版本
参考官方文档

sudo uname -m

我这里就是arm的架构
在这里插入图片描述
arm版本下载路径

curl -L https://ollama.com/download/ollama-linux-arm64.tgz -o ollama-linux-arm64.tgz
sudo tar -C /usr -xzf ollama-linux-arm64.tgz

amd /x86 版本

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

上面得解压路径一般官方文档是放在usr/bin ,amd版本一般放在/usr/local/bin 根据自己情况解压
解压之后可以在对应得路径看到一个ollama启动器文件
在这里插入图片描述
命令后台启动

/usr/bin/ollama serve &

启动报错可能是端口冲突,查看端口占用

sudo lsof -i :11434

在这里插入图片描述

kill -9 1234

编写自启动脚本

sudo vi /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
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
[Install]
WantedBy=multi-user.target

如果没有ollama用户则创建用户

sudo groupadd -r ollama
sudo useradd -r -g ollama -s /sbin/nologin ollama
sudo mkdir -p /home/ollama/.ollama
sudo chown -R ollama:ollama /home/ollama/.ollama

重新加载 Systemd 配置

sudo systemctl daemon-reload

启用 Ollama 服务自启动

sudo systemctl enable ollama.service

启动/停止.重启 Ollama 服务

sudo systemctl start ollama.service
sudo systemctl stop ollama.service
sudo systemctl restart ollama.service

检查 Ollama 服务状态

sudo systemctl status ollama.service

查看最近的日志输出

sudo journalctl -u ollama.service

重启系统以验证自启动

sudo reboot

下载DeepSeek模型并启动

官网上不止有DeepSeek模型,市面上大部分开源模型都可以一键安装,这里只是以DeepSeek为例
在这里插入图片描述
选择想要部署的版本,复制对应的命令
在这里插入图片描述
版本命令

ollama run deepseek-r1:1.5b
ollama run deepseek-r1:7b
ollama run deepseek-r1:8b
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
ollama run deepseek-r1:70b
ollama run deepseek-r1:671b

下载完成后会自动进入会话模式
在这里插入图片描述

ollama 常用命令

ollama --help  #查看帮助信息。
ollama serve  #启动 ollama 服务。
ollama create <model-name> [-f Modelfile]  #根据一个 Modelfile 文件导入模型。
ollama show <model-name:[size]>  #显示某个模型的详细信息。
ollama run <model-name:[size]>  #运行一个模型。若模型不存在会先拉取它。
ollama stop <model-name:[size]>  #停止一个正在运行的模型。
ollama pull <model-name:[size]>  #拉取指定的模型。
ollama push <model-name>  #将一个模型推送到远程模型仓库。
ollama list  #列出所有模型。
ollama ps  #列出所有正在运行的模型。
ollama cp <source-model-name> <new-model-name>  #复制一个模型。
ollama rm <model-name:[size]>  #删除一个模型。

Docker容器安装部署 Open-Webui

之所以选择Docker安装open-Webui,是因为简单方便.
除了Docker环境也可以通过编译的方式部署,但是过于复杂,各种环境需要安装Python3,ngode,js 等等一大堆,
Open-Webui官网
在这里插入图片描述

安装Docker容器

1.更新软件包

sudo apt update
sudo apt upgrade

2.安装依赖

sudo apt-get install ca - certificates curl gnupg lsb - release

3.添加 Docker 官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

4.添加 Docker 软件源

echo "deb [arch=$(dpkg --print - architecture) signed - by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5.将当前用户添加到 docker 组

sudo usermod -aG docker $USER

6.安装 Docker

sudo apt - get install docker - ce docker - ce - cli containerd.io

7.启动 Docker

sudo systemctl start docker

8.验证 Docker 是否安装成功

sudo docker run hello - world
部署 Open-WebUI

1.拉取 Open WebUI 镜像

sudo docker pull ghcr.io/open - webui/open - webui:main

2.创建open-WebUi容器并运行

sudo docker run -d   --name open-webui   --restart always   -e OLLAMA_BASE_URL=http://10.1.18.122:11434  -v open-webui:/app/backend/data -p 3000:8080   ghcr.io/open-webui/open-webui:main

安装完成后OpenWebUI会自动连接已经运行的ollama服务中的DeepSeek服务
注意:
拉取open-webui镜像时可能会超时报错报错,以为官方地址是外网的
可以切换为国内镜像源

sudo vi /etc/docker/daemon.json

在文件中添加下面的配置

{"registry-mirrors": ["https://hub-mirror.c.163.com", "https://mirror.baidubce.com"]
}

重启docker服务

sudo systemctl restart docker

在这里插入图片描述
完毕!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Angular 项目 PDF 批注插件库在线版 API 示例教程

本文章介绍 Angular 项目中 PDF 批注插件库 ElasticPDF 在线版 API 示例教程&#xff0c;API 包含 ① 导出批注后PDF数据&#xff1b;② 导出纯批注 json 数据&#xff1b;③ 加载旧批注&#xff1b;④ 切换文档&#xff1b;⑤ 切换用户&#xff1b;⑥ 清空批注 等数据处理功能…

Spring Boot 中利用 Jasypt 实现数据库字段的透明加密解密

1. 引言 1.1 什么是 Jasypt Jasypt(Java Simplified Encryption)是一个用于简化 Java 应用程序中加密操作的库。 1.2 为什么使用 Jasypt 简化加密操作:提供简单的 API 进行加密和解密。透明加密:自动处理加密和解密过程,无需手动干预。多种加密算法:支持多种加密算法,…

Linux的: /proc/sys/net/ipv6/conf/ 笔记250405

Linux的: /proc/sys/net/ipv6/conf/ /proc/sys/net/ipv6/conf/ 是 Linux 系统中用于 动态配置 IPv6 网络接口参数 的核心目录。它允许针对不同网络接口&#xff08;如 eth0、wlan0&#xff09;或全局设置&#xff08;all&#xff09;调整 IPv6 协议栈的行为。 它通过虚拟文件系…

Spring Cloud 框架为什么能处理高并发

Spring Cloud框架能够有效处理高并发场景&#xff0c;核心在于其微服务架构设计及多组件的协同作用&#xff0c;具体机制如下&#xff1a; 一、分布式架构设计支撑高扩展性 服务拆分与集群部署 Spring Cloud通过微服务拆分将单体系统解耦为独立子服务&#xff0c;每个服务可独…

无人机智慧路灯杆:智慧城市的‘全能助手’

在城市发展的进程中&#xff0c;智慧路灯杆作为智慧城市建设的关键载体&#xff0c;正逐步从传统的照明设备转型为集多种功能于一体的智能基础设施。无人机与智慧路灯杆的创新性融合&#xff0c;为城市管理和服务带来了全新的变革与机遇。 一、无人机智慧路灯杆的功能概述 照…

Libevent UDP开发指南

UDP 与 TCP 的核心区别 无连接:不需要建立/维护连接 不可靠:不保证数据包顺序和到达 高效:头部开销小,没有连接管理负担 支持广播/多播:可以向多个目标同时发送数据 一、基础UDP服务器实现 1. 创建 UDP 套接字 #include <event2/event.h> #include <event2/lis…

基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践

前言 1.1 日常生活中的告警 任何连续稳定运行的生产系统都离不开有效的监控与报警机制。通过监控&#xff0c;我们可以实时掌握系统和业务的运行状态&#xff1b;而报警则帮助我们及时发现并响应监控指标及业务中的异常情况。 在日常生活中&#xff0c;我们也经常遇到各种各样…

智能多媒体处理流水线——基于虎跃办公API的自动化解决方案

在内容爆炸的时代&#xff0c;多媒体文件处理&#xff08;图片压缩、视频转码、音频降噪&#xff09;已成为内容生产者的日常挑战。本文将演示如何基于虎跃办公的多媒体处理API&#xff0c;构建自动化处理流水线&#xff0c;实现&#xff1a; 批量文件智能分类格式自动转换质量…

01-STM32(介绍、工具准备、新建工程)p1-4

文章目录 工具准备和介绍硬件设备stm32简介和arm简介stm32简介STM32命名规则STM32选型STM32F103C8T6最小系统板引脚定义STM32启动配置STM32最小系统电路ARM简介 软件安装注册器件支持包安装ST-LINK驱动安装USB转串口驱动 新建工程创建stm32工程STM32工程编译和下载型号分类及缩…

【ABAP】REST/HTTP技术(一)

1、概念 1.1、SAP 如何提供 Http Service 如果要将 SAP 应用程序服务器 &#xff08;application server&#xff09;作为 http 服务提供者&#xff0c;需要定义一个类&#xff0c;这个类必须实现 IF_HTTP_EXTENSION 接口。IF_HTTP_EXTENSION 接口只有一个方法 HANDLE_REQUEST。…

[实战] linux驱动框架与驱动开发实战

linux驱动框架与驱动开发实战 Linux驱动框架与驱动开发实战一、Linux驱动框架概述1.1 Linux驱动的分类1.2 Linux驱动的基本框架 二、Linux驱动关键API详解2.1 模块相关API2.2 字符设备驱动API2.3 内存管理API2.4 中断处理API2.5 PCI设备驱动API 三、Xilinx XDMA驱动开发详解3.1…

1. hadoop 集群的常用命令

1.上传文件 1)hadoop fs -put words.txt /path/to/input/ 2)hdfs dfs -put words.txt /path/wc/input/ 2.获取hdfs中的文件 hadoop fs -get /path/wc/input/words.txt 3.合并下载多个文件 hadoop fs -getmerge /path/wc/input/words.txt /path/wc/input/words2.txt 4.查…

Keepalived+LVS+nginx高可用架构

注明&#xff1a;所有软件已经下载好&#xff0c;防火墙和SELinux已经全部关闭 一.搭建NFS 1.服务端 1.创建文件 [rootnfs ~]# mkdir -p /nfs/data 2、修改权限 [rootnfs ~]# chmod orw /nfs/data 3、写配置文件 [rootnfs ~]# cat /etc/exports /nfs/data 192.168.111.118(r…

深度学习处理文本(13)

我们使用基于GRU的编码器和解码器来在Keras中实现这一方法。选择GRU而不是LSTM&#xff0c;会让事情变得简单一些&#xff0c;因为GRU只有一个状态向量&#xff0c;而LSTM有多个状态向量。首先是编码器&#xff0c;如代码清单11-28所示。 代码清单11-28 基于GRU的编码器 fro…

HashMap 底层原理详解

1. 核心数据结构 JDK 1.7 及之前&#xff1a;数组 链表 JDK 1.8 及之后&#xff1a;数组 链表/红黑树&#xff08;链表长度 ≥8 时转红黑树&#xff0c;≤6 时退化为链表&#xff09; // JDK 1.8 的 Node 定义&#xff08;链表节点&#xff09; static class Node<K,V&g…

使用MySQL时出现 Ignoring query to other database 错误

Ignoring query to other database 错误 当在远程连接软件中输入MySQL命令出现该错误 导致错误原因是&#xff1a;登录mysql时账户名没有加上u 如果出现该错误&#xff0c;退出mysql&#xff0c;重新输入正确格式进入即可&#xff01;

哈尔滨工业大学:大模型时代的具身智能

大家好&#xff0c;我是樱木。 机器人在工业领域&#xff0c;已经逐渐成熟。具身容易&#xff0c;智能难。 机器人-》智能机器人&#xff0c;需要自主能力&#xff0c;加上通用能力。 智能机器人-》人类&#xff0c;这个阶段就太有想象空间了。而最受关注的-类人机器人。 如何…

Javascript代码压缩混淆工具terser详解

原始的JavaScript代码在正式的服务器上,如果没有进行压缩,混淆,不仅加载速度比较慢,而且还存在安全和性能问题. 因此现在需要进行压缩,混淆处理. 处理方案简单描述一下: 1. 使用 terser 工具进行 安装 terser工具: # npm 安装 npm install terser --save-dev# 或使用 yarn 安…

Java String 常用方法详解

目录 一、获取字符串信息(一)获取字符串长度(二)获取指定索引处的字符(三)获取子字符串二、字符串比较(一)比较字符串内容(二)忽略大小写比较三、字符串转换(一)转换为大写(二)转换为小写四、字符串查找(一)查找子字符串的位置(二)从指定位置开始查找五、字符…

Linux驱动开发练习案例

1 开发目标 1.1 架构图 操作系统&#xff1a;基于Linux5.10.10源码和STM32MP157开发板&#xff0c;完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪&#xff1b; 驱动层&#xff1a;为每个外设配置DTS并且单独封装外设驱动模块。其中电压ADC测试&#xff0c;采用linux内核…