目录
环境配置参考往期文档:
一、大模型本地部署文档(安装 NVIDIA 显卡驱动、CUDA、CUDNN)_大模型驱动安装-优快云博客
六、大模型本地部署文档(Ubantu20.04 Ollama本地部署大模型)-优快云博客
七、大模型本地部署文档(ubantu20.04安装docker)_ubantu 部署大模型-优快云博客
八、大模型本地部署文档(docker部署GPU环境)-优快云博客
文档说明:
本文档概述了利用Docker部署知识问答大模型系统的流程。演示案例中,通过将名为“闭环思维考试题.txt”的文件提供给M3E模型,该模型执行文本分割等一系列预处理步骤,并基于此进行训练。随后,问题与答案的向量被存储到知识库中。在Fastgpt平台中创建的新对话引入了这个闭环思维知识库,并使用Qwen 3.2版本作为对话模型来进行知识问答。
对于提问“闭环思维的核心是什么?”的回答是“凡事有交代”,这一回答引用自闭环思维知识库。
总结而言,当前工作主要集中在对Fastgpt本地部署和使用的初步探索上。更深入的技术细节,如M3E模型训练的具体方法以及多个模型间的协作机制等,尚需进一步研究。关于Fastgpt的评价指出,它可能不适合那些不需要频繁更新的产品项目,因为其系统性能的优化依赖于Fastgpt本身的迭代更新。此外,作为商业化产品的Fastgpt可能会对其最新、最优性能版本有所保留,这可能限制外部产品的发展潜力。
安装fastgpt
先创建一个文件夹来放置一些配置文件
mkdir fastgpt
cd fastgpt
用命令下载fastgpt配置文件
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
用命令下载docker的部署文件
# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
# 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 up -d
向量模型M3E下载
#查看网络
docker network ls
# GPU模式启动(如果失败参考后续内容docker部署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
ollama下载
# GPU模式启动,并把ollama服务加载到fastgpt同一个网络
docker run -d -p 11434:11434 --gpus all --name ollama --network fastgpt_fastgpt ollama/ollama
# CPU模式启动,并把ollama服务加载到fastgpt同一个网络
docker run -d -p 11434:11434 --name ollama --network fastgpt_fastgpt ollama/ollama
进入ollama容器内部
docker exec -it [容器名称或id] /bin/bash
ollama下载对话模型
ollama run (模型名称)llama3.2-vision
可以下载多个模型,具体模型可以访问https://ollama.com/search
oneapi配置
模型的处理我们只要用的是oneapi来处理模型
登录oneapi
本机地址:http://localhost:3001/
oneapi登录账号:root 默认密码:123456或者1234
配置ollama渠道
base url那里的ip要换成本地ip
模型那里选择的模型要选择你本地ollama下载的模型
密钥可以随便填
添加完渠道,记得要点一下测试,测试通过了才能正常使用
配置渠道m3e
base url要像我这样填写才行,不然回出问题
模型要选m3e
密钥填:sk-aaabbbcccdddeeefffggghhhiiijjjkkk
这里提交之后也要点测试,看能不能通
创建令牌
这里记得选无限额度和永不过期
这里复制令牌放置docker-compose.yml文件中
# root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
- DEFAULT_ROOT_PSW=1234
# AI模型的API地址哦。务必加 /v1。这里默认填写了OneApi的访问地址。
- OPENAI_BASE_URL=http://oneapi:3000/v1
# AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改)
- CHAT_API_KEY=sk-apETi4q0ohZoqLynBfA5CcAc716b44CcB9E7F3B0716d8c5f
修改config.json
首先是加入ollama的本地模型
"llmModels": [
{
"model": "qwen2.5:7b", // 模型名(对应OneAPI中渠道的模型名)
"name": "qwen2.5:7b", // 模型别名
"avatar": "/imgs/model/openai.svg", // 模型的logo
"maxContext": 125000, // 最大上下文
"maxResponse": 16000, // 最大回复
"quoteMaxToken": 120000, // 最大引用内容
"maxTemperature": 1.2, // 最大温度
"charsPointsPrice": 0, // n积分/1k token(商业版)
"censor": false, // 是否开启敏感校验(商业版)
"vision": true, // 是否支持图片输入
"datasetProcess": true, // 是否设置为文本理解模型(QA),务必保证至少有一个为true,否则知识库会报错
"usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true)
"usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true)
"usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true)
"usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true)
"toolChoice": true, // 是否支持工具选择(分类,内容提取,工具调用会用到。目前只有gpt支持)
"functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式)
"customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型
"customExtractPrompt": "", // 自定义内容提取提示词
"defaultSystemChatPrompt": "", // 对话默认携带的系统提示词
"defaultConfig": {}, // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p)
"fieldMap": {} // 字段映射(o1 模型需要把 max_tokens 映射为 max_completion_tokens)
},
像我用的是qwen2.5,你们可以根据自己的模型进行选择
然后加入向量模型vectorModels
"vectorModels": [
{
"model": "m3e", // 模型名(与OneAPI对应)
"name": "m3e", // 模型展示名
"avatar": "/imgs/model/openai.svg", // logo
"charsPointsPrice": 0, // n积分/1k token
"defaultToken": 700, // 默认文本分割时候的 token
"maxToken": 3000, // 最大 token
"weight": 100, // 优先训练权重
"defaultConfig":{}, // 自定义额外参数。例如,如果希望使用 embedding3-large 的话,可以传入 dimensions:1024,来返回1024维度的向量。(目前必须小于1536维度)
"dbConfig": {}, // 存储时的额外参数(非对称向量模型时候需要用到)
"queryConfig": {} // 参训时的额外参数
},
重启容器
docker-compose down
docker-compose up -d
FastGTP配置与使用
登录
本机地址:http://localhost:3000
账号:root 密码:1234
新建知识库
这里选用通用知识库
索引模型也就是向量模型
文件处理模型就是用来做回答的模型
训练模型
因为我这里使用的是本地文件去训练,所以要选择 文本数据集
这里是分割数据的模型,用自动模式就好了
这样就是训练好了
创建应用
这里测试的话就用简单应用就好了
这里选择模型,选择完之后就可以用了