环境准备
工具
- ubuntu:24.04
- fastgpt:4.20
- docker:20.10.21
- ollama:0.5.7
- docker-compose:1.29.2
显卡驱动安装
NVIDIA显卡驱动命令行安装过程
1.安装驱动前一定要更新软件列表和安装必要软件、依赖(必须)
sudo apt-get update #更新软件列表
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
2、禁用 nouveau
sudo gedit /etc/modprobe.d/blacklist.conf
在最后两行添加
blacklist nouveau
options nouveau modeset=0
重启电脑
3、安装
进入命令行界面
sudo telinit 3
关闭显示服务
sudo service gdm3 stop
给安装文件赋予权限,然后运行安装。要根据自己的显卡选择合适的显卡驱动
sudo chmod 777 NVIDIA-Linux-x86_64-525.60.11.run #赋予可执行权限
sudo ./NVIDIA-Linux-x86_64-525.60.11run --no-opengl-files #安装
安装完成后重新开启显示服务
sudo service gdm3 start
进入系统 输入nvidia-smi显示
安装docker
下载命令
sudo apt install docker.io
修改docker的/etc/docker/daemon.json配置文件,如果在不存在则手动创建
sudo vim /etc/docker/daemon.json
这里我是添加自己的阿里源然后重载配置文件并重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker
安装docker-compose
在这里不建议使用ubuntu自带的apt安装,如:apt install docker-compose 通常这样安装的版本较低,在执行docker-compose.ymi文件时容易报错。
安装方式一
sudo curl -L "https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose #下载文件
sudo chmod +x /usr/bin/docker-compose #提权
docker-compode version #查看版本
###安装方式二 github下载安装包github.com/docker/comp… 根据自己的版本选择合适的安装包
uname -m #查看系统版本
mv docker-compose-linux-x86_64 /usr/bin/docker-compose #在docker-compose-linux-x86_64文件所在文件夹中移动并重命名
sudo chmod +x /usr/bin/docker-compose #提权
docker-compode version #查看版本
安装 NVIDIA Container Toolkit
在这里安装NVIDIA Container Toolkit的主要目的是为了之后在ollama安装的大模型能够调用显卡。NVIDIA Container Toolkit(NVIDIA Container Toolkit 是 NVIDIA 为 Docker 提供的一个插件,它允许容器充分利用 GPU 加速。使用 NVIDIA Container Toolkit 时,不需要在容器内部单独安装 CUDA,因为容器可以利用宿主机上的 NVIDIA 驱动和 CUDA 环境)。
NVIDIA Container Toolkit的安装方式目前有两种。
第一种也是网上主流的安装方式:
安装过程[1]
#(1)
# step1: 从https://nvidia.github.io/libnvidia-container/gpgkey下载公钥,并以二进制形式写入/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# step2: 从https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list下载软件源,并结合上一步的公钥信息nvidia-container-toolkit-keyring.gpg加以修改,然后写入/etc/apt/sources.list.d/nvidia-container-toolkit.list。
# 这个密钥用于验证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.list
#(2)更新apt源(依赖于第一部分的源是否添加正确)
sudo apt-get update
#(3)安装
sudo apt-get install -y nvidia-container-toolkit
# 查看安装版本
dpkg -l | grep nvidia-container-toolkit
第二种方式:这种是我使用的方式,其主要原因是因为第一种方式一直提示我密钥存储在过时的 trusted.gpg 密钥环中(/etc/apt/trusted.gpg),请参见 apt-key(8) 的 DEPRECATION 一节以了解详情。
1.在NVIDIA的GitHub主页找到Ubuntu系统对应的NVIDIA Container Toolkit安装包[2]
libnvidia-container1_1.17.1-1_amd64.deb # 基础库包,提供了最基本的功能,其他包都依赖于它
libnvidia-container-tools_1.17.1-1_amd64.deb # 基础工具包,依赖于 libnvidia-container1
nvidia-container-toolkit-base_1.17.1-1_amd64.deb # 基础组件包,依赖于前面的包
nvidia-container-toolkit_1.17.1-1_amd64.deb # 主要的工具包,依赖于以上所有包
2.执行下列命令安装NVIDIA Container Toolkit:
sudo dpkg -i libnvidia-container1_1.14.1-1_amd64.deb
sudo dpkg -i libnvidia-container-tools_1.14.1-1_amd64.deb
sudo dpkg -i nvidia-container-toolkit-base_1.14.1-1_amd64.deb
sudo dpkg -i nvidia-container-toolkit_1.14.1-1_amd64.deb
3.查看NVIDIA Container Toolkit的版本以验证是否安装成功
nvidia-ctk --version
4.设置Docker默认使用NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
5.重启docker
sudo systemctl restart docker
在查找资料的过程中可能会接触到nvidia-docker2或nvidia-docker,nvidia-docker2 是一个扩展,专门用于在 Docker 容器中启用 NVIDIA GPU 支持。但当前,NVIDIA Container Toolkit 替代了 nvidia-docker2,并且提供了更集成的体验。 如果您之前使用的是 nvidia-docker2,那么在升级到 NVIDIA Container Toolkit 后,您应该移除旧的 nvidia-docker2包,以避免潜在的冲突。
Docker容器安装
镜像下载
镜像仓库目前主要分为Docker Hub和国内仓库两种,前者下载镜像最为方便但是需要魔法(梯子,翻墙)。国内仓库比较出名的有阿里和华为等等,在此介绍个网站渡渡鸟镜像站需要镜像的可以在此下载需要的镜像同时也可以传播互联网精神上传自己的镜像。
docker安装ollama
1.拉取ollama镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama:0.5.9-rocm
2.建立容器
docker run -d -v ollama:/root/.ollama -p 11434:11434 --gpus all --name ollama ollama/ollama
3.进入ollama容器内部
docker exec -it ollama bash
4、运行指定大模型:模型仓库参考网站: library (ollama.com)
ollama run llama3.2-vision:11b
5.查看已经安装的大模型
ollama ls
docker安装m3e模型
M3E模型可以将自然语言转换成稠密的向量,用于检索、分类、聚类或语义匹配等任务。由于其多模态和多粒度的特性,M3E能够更好地理解文本的上下文和背景知识,提高语义表示的丰富度和准确性。这使得M3E在多种NLP任务中表现出色,特别是在中文文本处理和语义理解方面具有显著优势。在之后的Fastgpt中会使用得到。
1.拉取m3e镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/stawky/m3e-large-api:latest
2.建立容器[3]
#查看网络
docker network ls
# GPU模式启动,并把m3e加载到fastgpt同一个网络
docker run -d -p 6008:6008 --gpus all --name m3e --network fastgpt_fastgpt stawky/m3e-large-api
# CPU模式启动,并把m3e加载到fastgpt同一个网络
docker run -d -p 6008:6008 --name m3e --network fastgpt_fastgpt stawky/m3e-large-api
Fastgpt部署
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
下载fastgpt相关文件
首先要建立一个文件夹如:fastgpt,当前路径在此文件夹下[4]
mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
docker compose up -d
# milvus 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-milvus.yml
# zilliz 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-zilliz.yml
服务正常拉起来后,可以通过docker compose ps 开到如下6个运行的容器:
进入oneapi在浏览器上输入:localhost:port,我的是0.0.0.0:3001,如果因为端口冲突无法打开oneapi,需要在docker compose.ymi文件里面修改oneapi对应的端口。oneapi初始账户:root,密码:123456,首次登录后会强制用户更改密码。
设置oneapi令牌
必选项为名称,还有其他选项根据自己需要进行填写
填写完成后复制生成的令牌填和OneApi的访问地址写到docker compcose.ymi文件中,注意OneApi的访问地址要填写docker的本地地址而不是主机的本地地址且在地址后面添加务必加 /v1
改完配置文件后使用以下命令进行更新容器
docker-compose up -d
设置语言模型渠道
在设置渠道类型时可以根据ollama中下载模型的类型进行设置,也可以设置为自定义类型。两者的区别在于自定义类型的渠道测试时间要短一些。Base URL地址填写为docker的本地地址端口为ollama的端口地址,详见下图;名称最好填写成ollama的模型名称;模型选项要删除原有的模型,填入自定义模型也就是ollama中下载的模型要注意两者的名称需要相同;密钥填写空格然后提交渠道便可创建。
设置m3e模型渠道
m3e模型渠道设置基本与语言模型渠道配置相同,不同点为密钥。m3e的模型需要填写为:sk-aaabbbcccdddeeefffggghhhiiijjjkkk
渠道测试
在测试渠道时如果语言模型渠道设置正常可以正常测试,但是由于m3e是向量模型与语言模型不同,测试时会提示400错误这是正常现象不影响之后的使用。
Fastgpt
要进入Fsatgpt界面首先要在docker compose.ymi文件中设置好前端访问地址,注意前端访问地址做最好不要设置为0.0.0.0或127.0.0.1否则后面使用数据库上传的图片只能在本地才能查看,其他电脑上无法加载图片地址。
等改完配置文件后使用以下命令进行更新容器
docker-compose up -d
添加模型
访问fastgpt界面,用户为root,初始密码为1234
在添加模型时要注意自己使用的fastgpt版本,4.8.20以前的版本是在config.json里面添加具体方法可参考其他博主本帖主要以4.8.20版本为主故不再叙述。
进入fastgpt之后在账号->模型提供商->模型配置中选择自己在oneapi中添加的模型,注意fastgpt添加的模型名称必须与oneapi的模型名称一致。如果没有自己需要的模型可以选择右上角添加模型,添加完的模型在可用模型中查看。
创建知识库
创建知识库时选择之前导入的模型,注意区分向量模型和语言模型
创建完成后点击右上角便可上传数据,当前的数据上传支持三种模式:手动数据集、文本数据集、表格数据集。
手动数据集可在辅助数据中插入浏览器图片链接
文本数据集可以上传本地文件、网页链接、自定义文本。注意上传的PDF文件暂时无法显示图片,目前只支持DOCX文件显示图片如无法正常显示图片可参考上文fastgpt配置文件设置
要将AI与知识库进行关联需要在工作台进行配置,选择AI模型以及刚才创建的知识库。可以在关联知识库中调整参数以便于更好的调用。
配置完成后便可进行问答,回答的速度取决于计算机的硬件以及数据库数据的大小。通过nvidia-smi可以看到使用ollama中的模型已经开始调用GPU进行运算