docker 搭建 AI大数据模型 --- 使用GPU

docker 搭建 AI大数据模型 — 使用GPU方式

搭建本地大模型,最简单的方法!效果直逼GPT

服务器GPU系统
HP580 G8P40Rocky9.2
安装程序
AnythingLLM
前端界面Open WebUI
ChatOllama
ollama
一、AnythingLLM 介绍
AnythingLLM 是 Mintplex Labs Inc. 开发的一款开源 ChatGPT 等效工具,
用于在安全的环境中与文档等进行聊天,专为想要使用现有文档进行智能聊天或构建知识库的任何人而构建。
二、前端界面Open WebUI 介绍
Open WebUI 是针对 LLM 的用户友好的 WebUI,支持的 LLM 运行程序包括 Ollama 
和 OpenAI 兼容的 API。Open WebUI 系统旨在简化客户端(您的浏览器)和 Ollama API 之间的交互。
此设计的核心是后端反向代理,可增强安全性并解决 CORS 问题。
三、ChatOllama 介绍
ChatOllama 是一个 Nuxt 3 + Ollama Web 应用程序。ChatOllama 允许您管理您的 Ollama 服务器,
并与世界各地的 LLM 聊天。从功能上来说,ChatOllama 类似于 Open WebU 和 AnythingLLM 的混合体,既可以和 AI 聊天,
也可以用来构建自己专属的知识库
四、ollama 介绍
开源免费:Ollama是一个不收费的开源工具。即插即用:它提供了预装好的大模型,免除了复杂的安装和下载流程。用户友好:即便没有任何技术背景,Ollama也易于上手和使用。跨平台兼容性:Ollama支持各种设备,包括PC、Mac甚至是树莓派。运行各种规模的模型,保证了出色的扩展性。

安装 AnythingLLM

docker pull mintplexlabs/anythingllmexport STORAGE_LOCATION=/data/anythingllm && \mkdir -p $STORAGE_LOCATION && \touch "$STORAGE_LOCATION/.env" && \docker run -d -p 3001:3001 \--cap-add SYS_ADMIN \-v ${STORAGE_LOCATION}:/app/server/storage \-v ${STORAGE_LOCATION}/.env:/app/server/.env \-e STORAGE_DIR="/app/server/storage" \mintplexlabs/anythingllm

安装前端界面Open WebUI

github地址:https://github.com/open-webui/open-webui/pkgs/container/open-webui
CPU版
docker run -d -p 13000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434  \
--name open-webui \
--restart always dyrnq/open-webui:main
GPU版
docker run -d -p 13000: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
直接安装即可

安装ChatOllama

mkdir -p /data/chatollama/{data,db}
cd /data/chatollama
vim docker-compose.yml
把如下配置放到
version: '3.1'services:chromadb:image: chromadb/chroma:latestcontainer_name: chatollama-dbrestart: alwaysports:- "11431:8000"volumes:- ./data:/chroma/.chroma/indexchatollama:image: 0001coder/chatollama:latest#image: chatollama:localcontainer_name: chatollama-webrestart: always#pull_policy: always    ports:- "11432:3000"volumes:- ./db:/app/sqliteenvironment:- CHROMADB_URL=http://chromadb:8000- DATABASE_URL=file:/app/sqlite/chatollama.sqlitebuild:context: .dockerfile: Dockerfiledepends_on:- chromadb
在目录中执行如下命令
docker-compose up -d如果没有 docker-compose
安装地址
https://github.com/docker/compose/releases
wget https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x  /usr/bin/docker-compose
docker-compose --version
数据库初始化
容器启动后,先不忙访问,还需要对 SQLite 数据库进行初始化处理# 如果您是第一次启动,需要初始化 SQLite 数据库
docker-compose exec chatollama npx prisma migrate dev如果不执行初始化,后面在创建知识库时会遇到下面的报错
Invalid `prisma.knowledgeBase.count()` invocation: The table `main.KnowledgeBase` 
does not exist in the current database.

在这里插入图片描述

安装 ollama

docker pull ollama/ollamadocker run --gpus  "device=0" -e OLLAMA_FLASH_ATTENTI0N=1 \
--name ollama    -p 11434:11434  -d ollama/ollama注释:如果有四块GPU --gpus  "device=" 指定使用哪一块显卡
从0开始 0是第一块   1是第二块
如果报错 
docker: Error response from daemon: 
could not select device driver "" with capabilities: [[gpu]].
从这里下载镜像文件(免费的)
上传到服务器的 /etc/yum.repos.d 中
yum -y install nvidia-container-runtime
yum install -y nvidia-docker2然后执行
docker run --gpus  "device=0" -e OLLAMA_FLASH_ATTENTI0N=1 \
--name ollama    -p 11434:11434  -d ollama/ollama如果有多个GPUdocker run --gpus  "device=1" -e OLLAMA_FLASH_ATTENTI0N=1 \
--name ollama_01    -p 11450:11434  -d ollama/ollama将 device 修改一下  
将 映射端口改一下 
将 名称改一下   即可
修改转到后端的端口:例如将 11434 修改 11400
cd /var/lib/docker/containers/  这个地址是docker存储地址
一个容器ID 就是一个文件夹 ,进去之后找到要修改的容器ID开头的文件夹
config.v2.json  ## 配置文件config  
hostconfig.json ## 配置文件hostconfig 
vim comfig.v2.json
修改ExposedPorts 参数的值为要替换的端口
"ExposedPorts":{"11400/tcp":vim hostconfig.json
PortBindings 参数的值为要替换的端口
"PortBindings":{"11400/tcp"这两个配置文件,这以下需要注意的问题:两个配置都需要更改,同时更改的内容需要一样更改完成之后需要对docker服务重启,而不是docker容器重启
一定要先停止容器,再修改,修改后直接重启docker服务,再启动容器
如果其中哪一个环节出错,都会出现,修改后不生效的问题

最后展示一下 docker 配置

vim /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://dockerproxy.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com"],"ipv6": false,"max-concurrent-downloads": 10,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "10m","max-file": "3"},"data-root": "/data/docker","runtimes": {"nvidia": {"path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []}},"default-runtime": "nvidia"
}
systemctl daemon-reload
systemctl restart docker

最后展示

在这里插入图片描述

在这里插入图片描述

最好用的模型:
ollama run qwen:32b
ollama run qwen2:latest
ollama run qwen2:7b-instruct-q8_0

安装 nvidia-smi

docker run -it --rm --name test --gpus all nvidia/cuda

完结,撒花 。。。。。。。。。。。。。

open-webui参考文献

https://blog.csdn.net/wbsu2004/article/details/136443260

Chatollama 参考文献

https://blog.csdn.net/wbsu2004/article/details/136930945

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

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

相关文章

面试官:Rocketmq是推消息还是拉消息

RocketMQ消息模型 核心模型:RocketMQ本质上是基于拉模式的。长轮询技术:使用长轮询技术,减少了拉取消息的延迟,同时保持了拉模式的控制优势。 长轮询技术详解 工作原理: 请求保持开放:消费者向服务器发出…

MySQL 聚集索引与非聚集索引的概念以及优缺点

概念介绍: 聚集索引(Clustered Index): 定义:聚集索引是一种数据存储方式,数据表中主键记录按照索引的顺序进行物理排序。每个表只能有一个聚集索引,因为数据物理上只能排序一次。实现&#x…

FreeDOS 已经30岁了

1994 年 6 月,微软发布了其 DOS 操作系统的最后一个版本 MS-DOS 6.22。 程序员 Jim Hall 对微软的 Windows 3.x 以及后来的 Windows 95 都不满意不感兴趣,他希望创建一个公共领域的 DOS 兼容系统,在越来越多的人拥抱图形用户界面的时代维持传…

9.(vue3.x+vite)修改el-input,el-data-picker样式

效果预览 二:相关代码 <template><div style="padding: 50px"><el-input placeholder="请输入模型名称" style="width: 260px" /><br /

Java灵活用工2.0报价单微信小程序+APP+微信公众号 源码

&#x1f680;【开篇&#xff1a;解锁灵活用工的高效时代】 在人力资源市场日益灵活的今天&#xff0c;如何快速、准确地生成报价单&#xff0c;成为企业吸引并管理自由职业者的关键。而“灵活用工报价单微信小程序APP微信公众号源码”正是这样一款集高效、便捷于一体的解决方…

YOLO在目标检测与视频轨迹追踪中的应用

YOLO在目标检测与视频轨迹追踪中的应用 引言 在计算机视觉领域&#xff0c;目标检测与视频轨迹追踪是两个至关重要的研究方向。随着深度学习技术的飞速发展&#xff0c;尤其是卷积神经网络&#xff08;CNN&#xff09;的广泛应用&#xff0c;目标检测与视频轨迹追踪的性能得到…

YOLO-V2

一、V2版本细节升级 1、YOLO-V2&#xff1a; 更快&#xff01;更强 1.1 做的改进内容 1. YOLO-V2-Batch Normalization V2版本舍弃Dropout&#xff0c;卷积后每一层全部加入Batch Normalization网络的每一层的输入都做了归一化&#xff0c;收敛相对更容易经过Batch Norma…

【C++】相机标定源码笔记- RGB 相机与 ToF 深度传感器校准类

类的设计目标是为了实现 RGB 相机与 ToF 深度传感器之间的高精度校准&#xff0c;从而使两种类型的数据能够在同一个坐标框架内被整合使用。这在很多场景下都是非常有用的&#xff0c;比如在3D重建、增强现实、机器人导航等应用中&#xff0c;能够提供更丰富的场景信息。 -----…

MySQL锁机制详细笔记

1. MySQL锁的基本概念 共享锁&#xff08;Shared Lock&#xff09;&#xff1a;允许多个事务读取同一数据&#xff0c;不阻塞其他读操作。排它锁&#xff08;Exclusive Lock&#xff09;&#xff1a;写锁&#xff0c;阻塞其他读写操作。 2. 锁的分类 全局锁&#xff1a;锁定…

在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野

在卷积神经网络&#xff08;CNN&#xff09;中为什么可以使用多个较小的卷积核替代一个较大的卷积核&#xff0c;以达到相同的感受野 flyfish 在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;可以使用多个较小的卷积核替代一个较大的卷积核&#xff0c;以达到相同的…

交叉编译tslib库和上机测试

目录 一、tslib 介绍 二、tslib 框架分析 三、交叉编译、测试 tslib 1.安装工具链 tslib &#xff08;1&#xff09;设置交叉编译工具链 &#xff08;2&#xff09;进入tslib目录 &#xff08;3&#xff09;安装工具链 &#xff08;4&#xff09;确定工具链中头文件、库…

千亿级市场迎来新增量:中老年K歌需求高涨,解读线上+线下创新方向

干货抢先看 1. 我国KTV产业一度达到千亿规模&#xff0c;近年来随着线下娱乐方式多样化&#xff0c;KTV逐渐被年轻用户抛弃&#xff0c;中老年成为行业关键增量。 2. 数据显示&#xff0c;全国量贩式KTV中&#xff0c;60-70岁年龄段用户数同比增长29.6%&#xff0c;订单量同比…

【AI原理解析】—隐马尔可夫模型(HMM)原理

目录 一、定义 二、模型结构 三、基本假设 四、观测序列的产生过程 五、基本问题 六、应用领域 一、定义 隐马尔可夫模型&#xff08;Hidden Markov Model, HMM&#xff09;是一种统计模型&#xff0c;用于描述一个含有隐含未知参数的马尔可夫过程。它假设存在一个隐藏的…

【分布式系统】监控平台Zabbix介绍与部署(命令+截图版)

目录 一.Zabbix概述 1.为什么要做监控 2.zabbix 是什么 3.zabbix 监控原理 4.zabbix 6.0 新特性 5.zabbix 6.0 功能组件 Zabbix Server 数据库 Web 界面 Zabbix Agent Zabbix Proxy Java Gateway 补充 二.部署安装Zabbix 6.0 1.初始化环境 2.安装nginx跟php&am…

如何评定旅游卡的品质与服务?

评定旅游卡的品质与服务&#xff0c;可以从以下几个关键方面进行综合考量&#xff1a; 公司实力与资质&#xff1a;选择有实力、资质齐全的公司发行的旅游卡。查看公司背景&#xff0c;确认其是否长期稳定运营&#xff0c;是否具有旅游行业的专业资质&#xff0c;如旅行社许可证…

优秀的收银系统要怎么挑选?

市面上收银系统软件多种多样&#xff0c;让人挑得眼花缭乱&#xff0c;对于很多不懂软件的老板来说&#xff0c;不仅挑选困难&#xff0c;还很容易就踩到坑&#xff0c;而每个老板都想要一款最好用、最适合自己店铺的收银系统。 那什么收银系统软件好用呢?又如何选择一款合适…

计算机网络网络层复习题2

一. 单选题&#xff08;共22题&#xff0c;100分&#xff09; 1. (单选题)如果 IPv4 数据报太大&#xff0c;会在传输中被分片&#xff0c;对分片后的数据报进行重组的是&#xff08; &#xff09;。 A. 中间路由器B. 核心路由器C. 下一跳路由器D. 目的主机 我的答案: D:目的…

双色球系统

package Base_se.Base_701;import java.util.Random; import java.util.Scanner;/*** author gyf* ClassName Solution* Date 2024/7/1 19:57* Version V1.0* Description : 双色球系统* 投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择;蓝色球号码从1-16…

深度学习CUDA Out of Memory原因总结和方法

CUDA Out of Memory原因总结和方法 原因总结 显存不足&#xff1a; 深度学习模型&#xff08;尤其是大型模型&#xff09;在训练或推理时需要大量的显存。如果显存容量不足&#xff0c;会导致CUDA Out of Memory错误。 批处理大小过大&#xff1a; 在训练过程中&#xff0c;批…

图文控件TextImageView

图片文字组合控件&#xff0c;可以灵活的控制图片大小 class TextImageView : AppCompatTextView {private var mStartWidth: Int 0private var mStartHeight: Int 0private var mTopWidth: Int 0private var mTopHeight: Int 0private var mEndWidth: Int 0private var …