技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Linux>正文
Ollama+Open WebUI本地化大模型安装部署
2024年12月31日 Linux 暂无评论 ⁄ 被围观 77次+

1、Ollama简介

‌Ollama‌是一个开源的框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。它提供了一个简洁且用户友好的命令行界面,使得用户可以轻松地部署和管理各类开源的LLM。

官方网站:

https://ollama.com/download

https://github.com/ollama/ollama

2、‌Open WebUI‌简介

‌Open WebUI‌是一个开源的用户界面工具,专为运行和管理大型语言模型(LLM)及其他人工智能功能设计。其主要目的是简化人工智能模型的本地部署和操作,使用户能够通过浏览器界面与各种AI模型进行交互‌。

官方网站:

https://github.com/open-webui/open-webui

一、准备篇

操作系统:CentOS-7.x

1、修改默认yum源,截止目前CentOS-7.x官方已经停止维护,yum命令默认已经无法使用。

#配置中科大yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo-backup

vi /etc/yum.repos.d/CentOS-Base.repo #编辑源文件

[base]

name=CentOS- - Base

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]

name=CentOS- - Updates

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]

name=CentOS- - Extras

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]

name=CentOS- - Plus

baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos/7.9.2009/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

:wq! #保存退出

yum clean all

yum makecache #生成缓存

yum install ntp wget #安装软件

2、关闭selinux

#执行以下命令

setenforce 0 #临时禁用

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

3、防火墙设置

Ollama的默认端口配置是TCP:11434

Open WebUI的默认端口配置是TCP:3000

我们这里使用iptables作为防火墙

3.1关闭firewall

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl mask firewalld

systemctl stop firewalld

yum -y remove firewalld

3.2安装iptables防火墙,开启相应的端口

yum -y install iptables-services #安装

iptables -F #清空规则

service iptables save #保存配置规则

systemctl enable iptables.service #设置防火墙开机启动

systemctl restart iptables.service #启动防火墙使配置生效

4、设置系统时间

rm -rf /etc/localtime #先删除默认的时区设置

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #替换亚洲/上海作为默认时区

vi /etc/sysconfig/clock #添加时区

Zone=Asia/Shanghai

:wq! #保存退出

timedatectl set-local-rtc 0

hwclock --systohc -u #系统时钟和硬件时钟同步,当前系统时区不为 UTC,是CST时间,所有要加-u参数

date #显示系统时间

date -s "2024-12-24 15:24:00" #修改时间

watch -n 1 date #显示实时时间

ntpdate ntp.aliyun.com #同步时间服务器

echo -e "0 0 * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null" >> /var/spool/cron/root #添加计划任务

systemctl restart crond.service #重启服务

5、系统参数优化

vi /etc/security/limits.conf #在最后一行添加以下代码

* soft nproc unlimited

* hard nproc unlimited

* soft nofile 1000000

* hard nofile 1000000

:wq! #保存退出

vi /etc/sysctl.conf #在最后一行添加以下代码

fs.file-max = 65535000

fs.nr_open = 65535000

kernel.pid_max=655350

vm.swappiness = 0

net.ipv4.ip_forward = 1

:wq! #保存退出

/sbin/sysctl -p

ulimit -a #查看

ulimit -n 1000000 #设置

6、安装Docker

#‌Open WebUI‌我们使用docker镜像的方式来部署

#卸载旧版本,如果没有安装就不需要执行

yum remove docker docker-client docker-client-latest docker-latest docker-latest-logrotate docker-logrotate docker-common docker-selinux docker-engine-selinux docker-engine docker-ce-cli

rpm -qa|grep docker

#添加docker仓库

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

或者

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker

yum list docker-ce docker-ce-cli containerd.io --showduplicates #列出可用的docker版本

yum install -y docker-ce-26.1.4-1.el7 docker-ce-cli-26.1.4-1.el7 containerd.io #安装指定版本

docker --version #查看版本

#启动dokcer并开机自启

systemctl daemon-reload

systemctl start docker

systemctl enable docker

docker info |grep "Docker Root Dir"

#设置daemon.json配置文件,修改默认存储目录和运行模式

#Docker默认使用/var/lib/docker作为存储目录,用来存放拉取的镜像和创建的容器

#/var目录一般都位于系统盘,我们修改Docker的默认存储目录到数据盘/data/server/docker

mkdir -p /etc/docker

mkdir -p /data/server/docker #创建docker数据存储目录

vi /etc/docker/daemon.json

{

"data-root": "/data/server/docker",

"exec-opts": ["native.cgroupdriver=systemd"],

"log-driver": "json-file",

"log-opts": {

"max-size": "100m"

},

"storage-driver": "overlay2"

}

:wq! #保存退出

vi /lib/systemd/system/docker.service #修改Docker的配置文件以启用Docker API

#找到ExecStart这一行,将其修改为

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

:wq! #保存退出

systemctl daemon-reload

systemctl restart docker

#检查Docker API的状态,如果返回的结果为OK,则表示Docker API已经成功启用

curl http://localhost:2375/_ping

#查看docker数据存储目录

docker info |grep "Docker Root Dir"

#检查 JSON 格式,确保没有多余的逗号或错误的括号

#修改Docker的Cgroup Driver配置,使其与kubelet的Cgroup Driver保持一致"exec-opts": ["native.cgroupdriver=systemd"]

#Docker 17.05 及以后的版本使用 "data-root"设置目录,旧版本使用"graph": "/data/server/docker"

cat /etc/docker/daemon.json | jq .

sudo systemctl daemon-reload

sudo systemctl restart docker

docker info

docker info | grep Cgroup

#安装Docker-Compose

Docker-Compose是docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用。

使用Docker-Compose,我们可以通过yaml文件定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

Docker-Compose依靠Docker进行工作,必须确保已经安装了docker才能安装Docker-Compose

Docker-Compose下载地址(需要科学上网):https://github.com/docker/compose/releases/download/v2.27.3/docker-compose-linux-x86_64

#拷贝Docker-Compose到/usr/bin目录

cp docker-compose-linux-x86_64 /usr/bin/docker-compose

#添加执行权限

chmod +x /usr/bin/docker-compose

#查看版本,Docker-Compose要和Docker的版本匹配,Docker-Compose:v2.27.3可以适用于Docker version 26.1.4

docker-compose --version

二、安装篇

1、安装ollama

1.1下载ollama

我们使用Linux系统来部署ollama

#查看Linux版本号

cat /proc/version

#查看cpu架构

lscpu

x86_64 CPU选择下载ollama-linux-amd64

aarch64|arm64 CPU选择下载ollama-linux-arm64

下载地址:https://github.com/ollama/ollama/releases/download/v0.5.4/ollama-linux-amd64.tgz

#上传安装文件到服务器并解压到/usr目录

tar -C /usr -xzf ollama-linux-amd64.tgz

#设置Ollama为开机自启动,并设置运行账号为ollama

#创建用户ollama

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

usermod -a -G ollama $(whoami)

#添加自启动服务

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=$PATH"

Environment="OLLAMA_HOST=0.0.0.0" #服务将绑定到主机的所有网络接口

Environment="OLLAMA_ORIGINS=*" #允许来自所有来源的请求(用于跨域资源共享,CORS 设置)

[Install]

WantedBy=default.target

:wq! #保存退出

参数说明:

OLLAMA_HOST=0.0.0.0: 服务需要支持外部访问时使用;如果只需要本地调用,可以改为 127.0.0.1。

OLLAMA_ORIGINS=*: 在开发环境中方便调试;生产环境建议配置为指定域名以限制访问来源,Environment="OLLAMA_ORIGINS=https://trusted-domain.com"

如需进一步增强安全性,可以结合防火墙、身份验证等措施来保护服务。

systemctl daemon-reload

systemctl enable ollama

systemctl start ollama 启动

systemctl stop ollama 关闭

systemctl restart ollama 重启

systemctl status ollama 查看状态

#验证安装

ollama -h

查看日志

journalctl -e -u ollama

ollama -v

#浏览器打开服务器本地ip地址

http://10.189.189.246:11434/

Ollama is running

说明安装成功

#ollama 使用常见的指令

ollama serve #启动ollama

ollama create #从模型文件创建模型

ollama show #显示模型信息

ollama run #运行模型

ollama pull #从注册表中拉取模型

ollama push #将模型推送到注册表

ollama list #列出模型

ollama cp #复制模型

ollama rm #删除模型

ollama help #获取有关任何命令的帮助信息

ollama -v #查看版本

1.2在ollama中部署模型

#模型库:https://ollama.com/library

#我们使用这个模型https://ollama.com/library/llama3.1:8b

#拉取模型,需要一些时间

ollama run llama3.1:8b

#等待模型拉取完成之后出现下面的提示

success

>>> Send a message (/? for help)

#现在已经可以在命令行下面使用这个模型了

Ctrl + Z #挂载任务

fg #恢复

jobs #查看任务,

fg %1 #恢复到前台

bg %1 #恢复到后台

2、部署open-webui

2.1下载open-webui

open-webui项目地址:https://github.com/open-webui/open-webui/tree/main

我们使用docker部署

https://docs.openwebui.com/

#下载镜像(直接可能无法下载)

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

#使用代理站点来下载

https://docker.aityp.com/i/search?search=open-webui

#拉取镜像

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/open-webui:v0.3.30

#修改镜像标签

docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/open-webui:v0.3.30 ghcr.io/open-webui/open-webui:v0.3.30

#运行镜像

#Ollama和open-webui在同一台服务器上

docker volume create open-webui #创建卷

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:v0.3.30

#Ollama和open-webui不在同一台服务器上,需要指定url路径

#docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://10.189.189.246:11434/ -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:v0.3.30

docker ps # 查看容器

docker stop open-webui # 停止容器

docker rm open-webui # 删除容器

docker volume rm open-webui # 移除卷

docker volume ls # 查看卷

打开浏览器访问

http://10.189.189.246:3000/

注册的第一个用户默认为管理员账号

#相关操作

#导出镜像

docker save -o open-webui_v0.3.30.tar ghcr.io/open-webui/open-webui:v0.3.30

#检查镜像

ls -lh open-webui_v0.3.30.tar

#导入镜像

docker load -i open-webui_v0.3.30.tar

至此,Ollama+Open WebUI本地化大模型安装部署完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2024 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3