docker 搭建 AI大数据模型 --- 使用GPU
docker 搭建 AI大数据模型 — 使用GPU方式
搭建本地大模型,最简单的方法!效果直逼GPT
| 服务器 | GPU | 系统 |
|---|---|---|
| HP580 G8 | P40 | Rocky9.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
相关文章:
docker 搭建 AI大数据模型 --- 使用GPU
docker 搭建 AI大数据模型 — 使用GPU方式 搭建本地大模型,最简单的方法!效果直逼GPT 服务器GPU系统HP580 G8P40Rocky9.2 安装程序AnythingLLM前端界面Open WebUIChatOllamaollama 一、AnythingLLM 介绍 AnythingLLM 是 Mintplex Labs Inc. 开发的一…...
面向对象, 常用类, 集合, 异常, JDBC, mysql数据库 复习
1.面向对象 (1)面向过程和面向对象 ● 面向过程的程序设计思想 (procedure -Oriented Programming),简称POP ● 关注的焦点是过程:过程就是操作数据的步骤。如果某个过程的实现代码重复出 现,那么就可…...
js取数组最大值之Math.max、Math.max.apply
js取数组最大值之Math.max、Math.max.apply Math.maxMath.max.applyapply()第一个参数为什么可以是null 最小值同理 Math.max Math.max(n1,n2,n3,…,nX) 支持传递多个参数,带有较大的值的那个数 Math.max(2,5,3,6,2,4,2,15,9,6,0,1)Math.max.apply apply() 语法&a…...
各种中间件的安装
文章目录 20232306mysql的wondows安装 2023 2306 mysql的wondows安装 常用mysql教程 springboot整合druid连接池SpringBoot配置Druid连接池 mysql的wondows安装 MySQL学习笔记 01、MySQL安装 这个是安装的具体思路 win10 安装 mysql 5.7 msi版的教程图文详解 这个是安装的…...
【Mysql】多表查询、隐式内链接、显式内连接、左外连接、右外连接
多表查询 什么是多表查询 •DQL: 查询多张表,获取到需要的数据 •比如 我们要查询家电分类下 都有哪些商品,那么我们就需要查询分类与商品这两张表 数据准备 创建db3_2 数据库 -- 创建 db3_2 数据库,指定编码 CREATE DATABASE db3_2 CHARACTER SET utf8;创建分类表与商品表 …...
Linux驱动开发(三)--新字符设备驱动开发 LED驱动开发升级
1、新字符设备驱动原理 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会 带来两个问题 需要我们事先确定好哪些主设备号没有使用 会将一个主设备号下的所有次设备号都使用掉,比如现在设置 LED 这个主设备号为200&…...
MCU的最佳存储方案CS创世 SD NAND
大家都知道MCU是一种"麻雀"虽小,却"五脏俱全"的主控。它的应用领域非常广泛,小到手机手表,大到航空航天的设备上都会用到MCU.市面上目前几个主流厂商有意法半导体(其中最经典的一款就是STM32系列)…...
40岁学习java是否需要报班学习?
在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!应该不需要。各种公开免费的…...
Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试
目录 1. 简介 2. 实例测试 2.1 实例介绍 2.2 创建工程 2.2.1 创建工程 2.2.2 获取路径 2.2.3 设置路径 2.2.4 打开工程 2.2.5 添加文件 2.2.6 启动 GUI 2.2.7 配置 csim 参数 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries …...
加固三防平板如何提高轨道交通系统的运营效率?
在当今快节奏的社会中,轨道交通系统作为城市交通的重要组成部分,其运营效率的提升对于缓解交通拥堵、满足人们的出行需求以及促进城市的发展具有至关重要的意义。而加固三防平板作为一种先进的技术设备,正逐渐在轨道交通领域发挥着关键作用&a…...
Django 靓号管理系统:实现登录功能
本文将详细介绍如何在 Django 靓号管理系统中实现登录功能,包括用户认证、验证码生成、以及中间件的使用。我们将逐步展示所有相关代码,并附带详细注释。 1. 项目结构 首先,让我们看一下项目的基本结构: number ├── manage.py ├── monaco.ttf ├── number │ …...
【Solr 学习笔记】Solr 源码启动教程
Solr 源码启动教程 本教程记录了如何通过 IDEA 启动并调试 Solr 源码,从 Solr9 开始 Solr 项目已由 ant 方式改成了 gradle 构建方式,本教程将以 Solr 9 为例进行演示,IDE 选择使用 IntelliJ IDEA。 Solr github 地址:https://gi…...
Java中的事件驱动编程模型
Java中的事件驱动编程模型 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我将为大家介绍Java中的事件驱动编程模型。事件驱动编程模型是一种以事件为核心驱…...
Python 语法基础一
1.变量 python 中变量很简单,不需要指定数据类型,直接使用等号定义就好。python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前那个变量知道那个变量…...
从零开始:Spring Boot 中使用 Drools 规则引擎的完整指南
规则引擎作用 规则引擎主要用于将业务逻辑从应用程序代码中分离出来,提高系统的灵活性和可维护性。规则引擎通过预定义的规则来处理输入数据并做出相应的决策,从而实现业务逻辑的自动化和动态调整。 例如 门店信息校验:美团点评在门店信息…...
工业边缘计算网关
1 介绍 HINETG系列边缘计算网关(Linux操作系统),是华辰智通的—款面向工业现场设备接入、数据采集、设备监控的工业级边缘计算网关。采用ARM Cortex-A7 800MHz高性能CPU,拥有以太网、串口、CAN口、IO口等丰富的接口,支持以太网、…...
【C++ 初阶路】--- 类和对象(末)
目录 一、const成员1.1 取地址及const取地址操作符重载 二、再谈构造函数2.1 构造函数体赋值2.2 初始化列表2.3 explicit关键字 三、static成员3.1 概念3.2 特性 四、友元4.1 友元函数4.2 友元类 五、内部类六、匿名对象 一、const成员 将const修饰的“成员函数”称之为const成…...
bable 【实用教程】
简介 bable 用于将 ES6 的语法编译为 ES5 只关心语法,不关心 API 是否正确。不处理模块化(webpack 会处理) 搭建开发环境 安装相关的包 npm i babel/cli babel/core babel/preset-env新建文件 .babelrc,内容为 { "presets…...
Android中使用startActivityForResult启动活动
Android中使用startActivityForResult启动活动 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在本文中,我们将深入探讨Android开发中使用startActi…...
NineData和华为云在一起!提供一站式智能数据库DevOps平台
以GuassDB数据库为底座 NineData和华为云一起 为企业提供 一站式智能数据库DevOps平台 帮助开发者 高效、安全地完成 数据库SQL审核 访问控制、敏感数据保护等 日常数据库相关开发任务 NineData 智能数据管理平台 NineData 作为新一代的云原生智能数据管理平台…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
