背景
随着年初的ChatGPT引爆大语言模型市场, LLM的集中爆发,大部分企业已经完成了AIGC产品的调研,并进入第二阶段, 即寻求大规模落地的AIGC产品解决方案。
当前企业在AIGC场景落地中,以下问题尤为突出:
- 多模型选择: 随着大模型的百花齐放, 不同的模型在各自的领域有不同的优势,如何能够快速选择模型,试用模型并将其产品化,更敏捷的模型使用成为了企业最主要的诉求;
- 规划化管理GPU: GPU非常昂贵,对GPU的合理使用成为了企业最需要精细化管理的资源,面对高峰使用的GPU扩展,和低谷使用时GPU的释放是云提供给客户的核心竞争力;
- 更精细化的权限管理:基于知识库 + LLM的应用不同于以往的全量向量检索,企业将面临多租户,多应用,复杂的知识权限管理的问题, 需要足够灵活的调整以适应千企千面的权限设计诉求;
- API 集成: 支持灵活的API管理,可供应用进行集成,满足用户灵活的多渠道应用使用诉求(如钉钉,企业微信等);
- 数据泄露隐患: 担心大模型或者文档切分需要将企业核心数据传至三方,存在数据泄露隐患而迟迟不敢大规模使用;
最新版本的一站式AIGC解决方案面向以上企业落地难的问题进行了产品升级,引入了PAI-EAS的能力,让企业测试完成后,可以直接投入生产环境进行使用;
产品新版本主要特性:
新版本在原来开放的方案之上, 引入了PAI-EAS对底层规模化集群的管理能力进行了大幅的升级!
- 支持多模型: 通义千问-7b,ChatGLM2, LLAMA2 7b和13b; 支持创建后再进行模型切换;
- 支持GPU的集群管理: 在测试的过程中可以使用低水位的GPU实例,随着业务的增长, 可以设置基于资源使用情况的动态GPU集群弹性管理,最大程度地节省GPU的开销;
- 基于ADB-PG 的完整数据库能力进行精细化的权限设计,可以基于开源代码调整权限查询,同时ADB-PG的知识库管理配套相关API,可以更灵活地调用使用;
- API & WebUI的均可用,可快速实现AIGC后台面向应用的灵活集成;
- 数据安全: 所有数据,算法,GPU资源均为域内资源, 无任何数据出域风险,充分保障企业核心数据无泄露隐患;
立即开通使用
如何开通解决方案
计算巢涉及到3个部分的核心组件
- ECS : 用于承载Langchain应用,管理对话体验及提供文档上传,embedding,对话的API应用;
开源代码参考:https://github.com/wangxuqi/langchain-ChatGLM
- AnalyticDB for PostgreSQL: 核心向量引擎, 用于管理企业知识库,语义检索,融合查询等能力; 用户未来可独立管理数据库数据并基于业务诉求进行资源灵活调整;
- PAI-EAS: 核心GPU集群管理及模型服务,预置多款模型,提供模型部署服务与GPU集群的弹性管理;
产品架构图
开通配置
- 配置模板: 可选择PAI-EAS的配置模板
- 服务实例名称: 填写实例的服务名称, 空白会自动生成;
- 地域: 选择资源部署地域
ECS配置:
- 实例类型: 选择ECS实例类型,用于host Langchain应用
- 实例密码: 用于设置登录ECS实例机器密码
- 白名单设置: 用于选择服务可访问的公网ip地址,若所有ip可访问,可输入0.0.0.0/0; (若选择0.0.0.0/0,则仅可用langchain服务所支持的账号密码进行保护)
大语言模型及PAI-EAS的GPU规格选择
- 选择大模型: 可选择预置的大语言模型;支持通义千问7b,ChatGLM2-6b, Llama2-7b 和 Llama2-13b;
- PAI实例规格: 选择大模型后可选择PAI服务的GPU规格,若无库存则无法选中; GU30为推荐的高性价比规格;
AnalyticDB for PostgreSQL版本配置
默认为双节点模式
- 实例规格: 选择ADB-PG 的默认节点规格,建议选择最低规格,若后期计算资源不足可以垂直调整;
- 存储大小: 选择ADB-PG的默认存储大小,建议选择最低规格,后期可按需调整;
- 数据库账号名称: 可用于登录数据库实例,并会以此账号链接Langchain服务用于数据写入;
- 数据库密码: 对应的数据库密码,登录数据库使用;
Langchain应用配置
- 软件登录名: 用于登录langchain web服务账号
- 软件登录密码: 用户登录Langchain web服务密码
网络及可用区选择
解决方案会默认帮客户创建一个权限的VPV及vswitch,并将所有的资源归属于该vpc和vswitch网段下;
- 交换机可用区: 用于创建用户的对应的交换机 vswitch
- 专有网络ipv4网络: 新创建一个VPN对应的网段;(建议使用默认值)
- 交换机子网网段: 新建一个vswitch的对应网段;(建议使用默认值)
若已有的vpc,可选择不创建而使用已有的vpc,信息均可通过下拉列表进行选择;
配置好资源和账号后,点击下一步进行鉴权和账单确认;
- 权限依赖检查: 开通服务会依赖以下权限, 若发现权限遗漏,则需要点击开通权限;
- 账单确认:基于选择规格,可查看预计使用费用;
确认无误后可直接下单;
创建过程约10分钟左右,包括完成资源拉起;
开始应用
创建后,可以在控制台查看计算巢服务;
控制台链接: https://computenest.console.aliyun.com/user/cn-hangzhou/serviceInstance/private
登录链接后可点击endpoint进入Langchain的应用:
如何使用Langchain构建知识库
- 选择使用模式: 知识库问答
- 创新的知识库
- 建议文本切分长度 = 500
- 上传文件,支持PDF, markdown,txt,word等;
- 上传后可在左侧“对话”界面进行问答, 每次问答会返回向量知识库中涉及到的企业知识文档;
- 可在“知识库测试Beta”中进行召回准确性和切分测试;
- 在模型设置中,可选择多轮对话机制,算法及一些模型参数;
资源管理:
购买计算巢后,可以登录计算巢实例内,切换至“资源”页,可查看所有相关资源;
AnalyticDB for PostgreSQL
点击AnalyticDB for PostgreSQL对应链接可进入ADB-PG资源管理页;
快速了解analyticDB for PostgreSQL
- 快速开始: https://help.aliyun.com/document_detail/2362113.html
- 向量相关使用方式: https://help.aliyun.com/document_detail/123162.html
- 向量API简介:https://help.aliyun.com/document_detail/2402354.html
AnalyticDB for PostgreSQL集群管理
对于生产规模化的资源诉求,如存在需要额外的存储和更快的计算,可参考一下进行集群管理
- ADB-PG集群管理https://help.aliyun.com/document_detail/343420.html
- 对于节省成本, 可暂停实例:https://help.aliyun.com/document_detail/445111.html
- 可基于实例服务时段,进行实例的计划启停:https://help.aliyun.com/document_detail/452291.html
知识库存储格式
对于langchain进入的知识库可在AnalyticDB for PostgreSQL中快速查询相关文档及知识库数据
- 通过DMS工具登录ADB-PG: https://help.aliyun.com/document_detail/2369763.html; 登录账号为您在创建计算巢时设置的账号名及密码;
- 登录后数据库实例 - 已登录实例 - 数据库(基于用户名)- public(schema)下看到创建的知识库元数据及多个知识库(表)
所有的知识库列表存储在 langchain_collections表内;
单个知识库及文档上传后的企业知识chunk,存储于以知识库命名的表内; (包括embedding,chunk,文件元数据,原始文件名称等信息);
PAI-EAS
如何设置GPU Serverless弹性伸缩管理?
PAI-EAS提供丰富的Serverless资源弹性能力,包括弹性扩缩容、定时扩缩容和弹性资源池。在业务负载有显著的波峰波谷时,为了不造成资源浪费,您可以开启水平自动扩缩容功能。开启后,服务会自动调整实例数量,实现动态管理线上服务的计算资源,从而保障业务平稳运行的同时提高资源利用率。操作方式如下:
- 部署好计算巢的服务后,点击资源列表,找到PAI-EAS实例跳转到对应的控制台。
- 在PAI-EAS控制台的服务详情页中,点击自动伸缩,继续开启弹性伸缩。
- 在弹性伸缩配置里面,您可以根据自己的业务的实际情况进行弹性的调整。
- 场景一:如果您调用量不大,想进行随开随停。您可以将最小实例数设置为0,最大实例数设置为1,单实例QPS预置设置为1。此时当没有服务请求时,服务会自动停止;服务重新接受请求时,服务会自动启动。
- 场景二:如果您每天的业务量较大且有不定期的波峰波谷时,您可以根据具体的业务情况,例如设置最小实例数设置为5,最大实例数设置为50,单实例QPS预置设置为2。这样服务会根据您的业务请求自动在5~50个实例之间进行弹性伸缩。
如何更换为其他的开源大模型?
PAI-EAS提供了市面上几乎全部的流行开源大模型可以供您自由切换。方法如下:
- 在PAI-EAS控制台的服务详情页中,点击更新服务。
- 修改运行命令和相应的GPU资源,从而调整为相应的大模型,最后点击部署即可。
模型 |
运行命令 |
推荐机型 |
llama2-13b |
python api/api_server.py --port=8000 --model-path=meta-llama/Llama-2-13b-chat-hf --precision=fp16 |
V100(gn6e) |
llama2-7b |
python api/api_server.py --port=8000 --model-path=meta-llama/Llama-2-7b-chat-hf |
GU30、A10 |
chatglm2-6b |
python api/api_server.py --port=8000 --model-path=THUDM/chatglm2-6b |
GU30、A10 |
Qwen-7b |
python api/api_server.py --port=8000 --model-path=Qwen/Qwen-7B-Chat |
GU30、A10 |
chatglm-6b |
python api/api_server.py --port=8000 --model-path=THUDM/chatglm-6b |
GU30、A10 |
baichuan-13b |
python api/api_server.py --port=8000 --model-path=baichuan-inc/Baichuan-13B-Chat |
V100(gn6e) |
falcon-7b |
python api/api_server.py --port=8000 --model-path=tiiuae/falcon-7b-instruct |
GU30、A10 |
常见问题FAQ:
- 向量相关API使用方式
1. API 列表: https://help.aliyun.com/document_detail/2402354.html?
2. API使用范例: https://help.aliyun.com/document_detail/2410531.html?
- 创建服务后, 会在10分钟左右拉起您的计算巢服务; 包括初始化ECS, AnalyticDB for PostgreSQL(向量数据库); 同时会异步进行LLM大模型的下载,此过程需要花费大概30~60分钟; 若想要查看模型下载进度,可登录ecs后台,查询下载日志; 模型下载完成后,登录web界面后即可查看相关的chatbot应用;
- 创建计算巢服务后, 如何登录ecs的机器:
可直接进入ecs管理界面进行登录,或使用命令行; 参考计算巢概览页的信息,如下图所示:
- 登录ecs 后如何重启服务
systemctl restart langchain-chatglm
- 登录ecs 后如何查询langchain日志
journalctl -ef -u langchain-chatglm
- 服务完成后模型加载不成功?
刚开通服务后会从huggingface上下载LLM模型到本地; 国内region下载服务时间可能较长,需要等待30~60分钟; 请等待完成后登录界面后,选择重新加载模型进行重试;
- 部署代码详情
https://github.com/wangxuqi/langchain-ChatGLM
- 需要产品团队进行服务后台支持
请开通代客运维支持服务
- 访问服务是空白页
这个服务是中国站的计算巢服务,所以如果有海外访问代理的话可能会出现问题,需要关一下代理然后进行访问创建;
- 代码部署位置
/home/admin/langchain-ChatGLM
- 如何开通Langchain API
# 切换root用户: sudo bash -c "su - root" # 停止webui: systemctl stop langchain-chatglm.service # 切换到admin用户: su - admin # 查看adbpg实例的配置: cat /etc/environmentadb # 比如输出的是: PG_HOST=gp-xxxx-master.gpdb.rds.aliyuncs.com PG_PORT=5432 PG_DATABASE=chatglmuser PG_USER=chatglmuser PG_PASSWORD="xxxxx" PLUGIN_GIT_URL=https://huggingface.co # 使用上步的参数启动api: PG_HOST=gp-xxxx-master.gpdb.rds.aliyuncs.com PG_PORT=5432 PG_DATABASE=chatglmuser PG_USER=chatglmuser PG_PASSWORD="xxxxx" PLUGIN_GIT_URL=https://huggingface.co python3 /home/admin/langchain-ChatGLM/api.py # 然后启动日志看到这个就启动成功: INFO: Uvicorn running on http://0.0.0.0:7861 (Press CTRL+C to quit) # 查看所有的api: curl http://0.0.0.0:7861/openapi.json
咨询及帮助
若需要咨询或疑问,欢迎钉钉搜索交流:
钉钉群: 32960015260
向量能力专题页:https://www.aliyun.com/activity/database/adbpg_vector