ubuntu下open-webui + ollama本地大模型部署

2024-08-26 10:44

本文主要是介绍ubuntu下open-webui + ollama本地大模型部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • nvidia gpu驱动安装
    • 安装
    • 卸载
  • ollama 部署
    • 添加docker秘钥
    • docker配置添加国内镜像源
    • ollama安装
      • 从源拉取ollama镜像。
      • 启动一个ollama容器
    • 通过ollama下载模型到本地
    • 检验本地模型
  • open-webui 部署
    • 安装容器和镜像下载
    • webui使用
    • 查看模型运行时内存、cpu、gpu占用


业余兴趣,部署下最近很火的LLM大模型玩玩,现在市面做这种大模型的部署快速应用还是挺多的,比如下面这些。
在这里插入图片描述

这里介绍采用nvidia gpu,基于ubuntu docker环境下的open-webui + ollama本地大模型部署过程。

nvidia gpu驱动安装

如果电脑有nvidia gpu,使用本地大模型最好采用gpu,否则用cpu的推理速度极慢,还占用资源。

安装

# nvidia镜像源
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listapt-get update#安装 NVIDIA Container Toolkit 软件包apt-get install -y nvidia-container-toolkit
#配置 Docker 以使用 Nvidia 驱动程序sudo nvidia-ctk runtime configure --runtime=dockerapt-get install dkmsubuntu-drivers devices # 查询系统建议安装的nvidia版本
apt install nvidia-driver-550-open  #选择驱动版本安装
ls /usr/src/ |grep nvidia #可以看到nvidia开头的驱动版本文件

安装后reboot重启
然后执行nvidia-smi查看gpu情况,确认是否安装成功。

卸载

sudo apt-get --purge remove nvidia*
sudo apt autoremove# To remove CUDA Toolkit:
sudo apt-get --purge remove "*cublas*" "cuda*"
sudo apt-get --purge remove "*nvidia*"

ollama 部署

添加docker秘钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

添加阿里docker软件源

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

在这里插入图片描述

docker配置添加国内镜像源

创建文件:/etc/docker/daemon.json, 添加如下内容, docker镜像源将会从如下站点拉取。同时配置Nvidia运行时,能在docker中使用GPU。

{"registry-mirrors": [  #镜像源"https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://docker.m.daocloud.io","https://ghcr.io","https://mirror.baidubce.com","https://docker.nju.edu.cn"],"default-runtime": "nvidia","runtimes": {"nvidia": {"args": [],"path": "nvidia-container-runtime"}},"data-root": "/home/docker/data/"  #docker镜像默认安装路径}

其中,"data-root"为docker镜像默认安装路径,用户根据自己情况选择路径。如果不选择,默认安装到:/var/run/docker/
sudo systemctl restart docker 生效。

ollama安装

从源拉取ollama镜像。

docker pull ollama/ollama:latest

启动一个ollama容器

docker run -d --gpus=all --restart=always -v /root/project/docker/ollama:/root/project/.ollama -p 11434:11434 --name ollama ollama/ollama

使用镜像为ollama/ollama,映射端口11434。

通过ollama下载模型到本地

#下载通义千问:
docker exec -it ollama ollama run qwen2
#下载通义ollama3
docker exec -it ollama ollama run  llama3.1:8b

查看已经安装好的模型:

docker exec -it ollama ollama list

在这里插入图片描述
可下载其他模型库如下,根据自身电脑配置下载

模型参数数量大小下载方式
Llama 27B3.8GBdocker exec -it ollama ollama run llama2
Mistral7B4.1GBdocker exec -it ollama ollama run mistral
Dolphin Phi2.7B1.6GBdocker exec -it ollama ollama run dolphin-phi
Phi-22.7B1.7GBdocker exec -it ollama ollama run phi
Neural Chat7B4.1GBdocker exec -it ollama ollama run neural-chat
Starling7B4.1GBdocker exec -it ollama ollama run starling-lm
Code Llama7B3.8GBdocker exec -it ollama ollama run codellama
Llama 2 Uncensored7B3.8GBdocker exec -it ollama ollama run llama2-uncensored
Llama 213B7.3GBdocker exec -it ollama ollama run llama2:13b
Llama 270B39GBdocker exec -it ollama ollama run llama2:70b
Orca Mini3B1.9GBdocker exec -it ollama ollama run orca-mini
Vicuna7B3.8GBdocker exec -it ollama ollama run vicuna
LLaVA7B4.5GBdocker exec -it ollama ollama run llava
Gemma2B1.4GBdocker exec -it ollama ollama run gemma:2b
Gemma7B4.8GBdocker exec -it ollama ollama run gemma:7b

检验本地模型

通过命令运行ollama3.1,能直接进行对话,说明正常了。

docker exec -it ollama ollama run  llama3.1:8b

在这里插入图片描述

open-webui 部署

上面命令方式跟模型对话不太通用,通常会做成网页形式交互,这里可以采用open-webui。

安装容器和镜像下载

支持 Nvidia GPU 的 Open WebUI

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

但下载估计非常慢,可以用国内的:

sudo docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always  registry.cn-shenzhen.aliyuncs.com/funet8/open-webui:cuda

如果不支持 Nvidia GPU 可以下载main版本:

$ sudo 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:main

映射端口号为3000.
查看ollama和open-webui安装的容器和镜像:
在这里插入图片描述
在这里插入图片描述

webui使用

网页登入:
http://127.0.0.0:3000/
在这里插入图片描述
第一次登入,需要注册个管理员账号。

进入webui后,查看是否识别到模型。
在这里插入图片描述

以及管理模型docker的端口号是否与ollama一致。
在这里插入图片描述
第一次启动模型提问,可能要等待一段时间,等模型加载启动后才有回应。
(如果一直没有回应,但命令行方式有回应,那可能是webui安装问题,或者浏览器问题)。
在这里插入图片描述

查看模型运行时内存、cpu、gpu占用

模型开始回答问题时,cpu变化不大,回答结束后cpu恢复,但内存被占用很多,而且回答结束后仍然占用,说明模型已经被加载到内存处于活跃状态。
在这里插入图片描述
nvidia-smi查看,模型j计算的主要占用在GPU中。
在这里插入图片描述

这篇关于ubuntu下open-webui + ollama本地大模型部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108341

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署