【完全私有的AI知识库,ChatGLM3无GPU也能跑】Docker一键部署,oneapi快速嵌入AI应用
原创 Jason513 PureAI 2023-12-17 15:39 发表于上海
点击下方图片快速进入【AI知识库合集系列文章】,分享关于AI应用落地的实践干货,欢迎关注~
前言
在前面的文章中,介绍了关于私有AI知识库和部分应用,让AI能根据企业私有的知识库去回答问题,成为真正意义的数字分身。但有一个问题一直没有解决,就是底层模型依然是基于的ChatGPT、文心等公共大模型,虽然openai等企业声明数据隐私安全,但显然大多数企业无法接受依赖外部去保障数据安全,所以私有化部署大模型是必需要做的一步。
💡本文将介绍如何在本地windows环境快速部署清华开源大模型ChatGLM3,并详细介绍如何通过one-api,将glm3接入知识库应用FastGPT,实现企业知识库私有化部署的闭环。
本文大纲:
效果演示
开源大模型评测榜单
ChatGLM3、chatglm.cpp、One-API简介
- 如何借助One-API将ChatGLM3接入FastGPT等AI应用
效果演示
开源大模型评测
除了本文写的ChatGlm系列开源模型,目前市场主流的还有Qwen、Baichuan、Llama等,其中阿里的Qwen-72B-Chat 凭借720亿参数训练量目前名列开源大模型第一。当然,考虑因为使用个人笔记本进行推理,选择了10B以下的模型,chatglm3-6b在10B以下模型能力靠前。
完整榜单查看:https://github.com/jeinlee1991/chinese-llm-benchmark
ChatGLM3-6B
ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了更多强大特性。
官方地址:https://github.com/THUDM/ChatGLM3chatglm.cpp
是对 ChatGLM3 进行推理加速的开源项目,使其能在windows上基于cpu推理官方地址:https://github.com/li-plus/chatglm.cppOne-API
通过标准的 OpenAI API 格式聚合所有的大模型,开箱即用 。
官方地址:https://github.com/songquanpeng/one-api
部署步骤
环境说明
window:win10/11,不低于 8C16GDocker:https://www.cnblogs.com/Can-daydayup/p/15468591.html
基于Docker部署ChatGLM3
获取ChatGLM3镜像并运行容器(此处可以参考https://github.com/li-plus/chatglm.cpp 说明自行打包镜像或获取镜像,如需阿里云仓库打包好的镜像,可以后台回复glm3自动获取):
# 在本地构建 docker 镜像并启动容器以在 CPU 上运行推理:
# openai api server
docker run -it --rm -v $PWD:/opt -p 8000:8000 -e MODEL=/opt/chatglm-ggml.bin chatglm.cpp \
uvicorn chatglm_cpp.openai_api:app --host 0.0.0.0 --port 8000
# To pull from Docker Hub and run demo:
docker run -it --rm -v $PWD:/opt liplusx/chatglm.cpp:main \
./build/bin/main -m /opt/chatglm-ggml.bin -p "你好"
# 启动阿里云仓库打包好的镜像
docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/xx/chatglm.cpp:xx
基于Docker一键部署One_API
一行代码部署one-api
docker run --name oneapi -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
访问ip:3000 登录系统,初次登录用户名/密码:root/123456
借助One-API将ChatGLM3接入FastGPT
1. 在one-api中添加chatglm3渠道
点击渠道测试,看到如下报错,说明部署配置成功了
2. 在one-api中新建令牌,作为调用凭证
点击复制获取调用凭证:sk-*****
3. 修改fastgpt配置,增加chatglm3模型
修改.env(本地代码启动修改:.env.local)
修改内容如下:
# oneapi 地址ONEAPI_URL=http://localhost:3000/v1/# oneapi 令牌keyCHAT_API_KEY=sk-aOrj73NZxGNLnVXDE0928d7cC35c4f39922bD0FeCd792c5b
修改config.json(本地代码启动修改:config.local.json)
主要增加内容如下
{ "SystemParams": { "pluginBaseUrl": "", "openapiPrefix": "openapi", "vectorMaxProcess": 15, "qaMaxProcess": 15, "pgIvfflatProbe": 10 }, "ChatModels": [ { "model": "ChatGLM3", "name": "ChatGLM3", "price": 0, "maxToken": 4000, "quoteMaxToken": 2000, "maxTemperature": 1.2, "censor": false, "defaultSystemChatPrompt": "" } ] "VectorModels": [ { "model": "m3e", "name": "M3E(测试使用)", "price": 0.1, "defaultToken": 500, "maxToken": 1800 } ]}
测试
实测推理过程cpu使用率80%左右,每秒输出2-3个字
写在后面
数据安全永远是企业应用的第一要义,对于AI应用来说也是如此。曾经已亿计的大模型训练成本对于普通企业而言遥不可及,但得益于开源,在当下开源大模型越来越丰富且强大的背景下,任何组织或个人都能低成本的部署强大的私有大模型,而这将真正促成AI应用的快速发展。
持续分享关于AI应用、工具、知识管理的实践干货,欢迎点赞关注转发~
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。