Langchain 是一个基于大语言模型进行应用开发的框架,它提供了方便的组件库,方便开发者将 LLM 模型与各种外部数据源连接起来。本文介绍了在火山引擎上部署 Langchain-ChatGLM 的方法。
登录火山引擎控制台,创建 VKE 集群,集群版本选择 1.24,容器网络模型选择 VPC-CNI,开启公网访问。选择立刻创建节点,节点规格选择 GPU 计算型,ecs.gni2.3xlarge NVIDIA A10,组件勾选安装 nvidia-device-plugin 组件。
相关代码和模型均已开源,可以在 GitHub 和 HuggingFace 下载:
- 代码:github.com/imClumsyPanda/langchain-ChatGLM
- 默认 ChatGLM-6B 模型:huggingface.co/THUDM/chatglm-6b
- 默认 Embedding 模型:huggingface.co/GanymedeNil/text2vec-large-chinese
为了方便大家体验,我们把代码和相关模型打包到了一个容器镜像中,使用 cr-demo-cn-beijing.cr.volces.com/vke-ai/langchain-chatglm:v0.0.1 镜像可以直接拉起一个 langchain-ChatGLM 服务。
含有模型的镜像约 24GB,为了加速在 VKE 中的启动速度,用户可以创建自己的火山引擎镜像仓库(Container Registry,CR)标准版实例,将该镜像转存到自己的仓库中。具体请见: www.volcengine.com/docs/6420/106367。同时,针对 AI 镜像都比较大的特点,火山引擎镜像仓库 CR 提供了多种镜像下载加速的能力,我们将在后续系列文章中详细介绍。
通过 VKE 控制台创建
登录容器服务 VKE 控制台,在“工作负载”-“无状态负载”页面创建 Deployment。需要填写 GPU 算力为 1 卡:
在“服务与路由”-“服务”页面创建负载均衡类型的服务,并关联 Langchain-ChatGLM deployment,容器服务端口为 7860:
等 Service 创建完毕,显示入口地址之后,我们直接访问 IP 就可以体验 Langchain-ChatGLM 服务了。
服务入口也可以选择 7 层 Ingress ALB 或 API 网关,具体操作可参考《如何在火山引擎云上部署Stable Diffusion》。
**通过 YAML 文件创建
部署服务:
apiVersion: apps/v1
kind: Deployment
metadata:
name: langchain-new
spec:
replicas: 1
selector:
matchLabels:
app: langchain-new
template:
metadata:
labels:
app: langchain-new
spec:
containers:
- image: cr-demo-cn-beijing.cr.volces.com/vke-ai/langchain-chatglm:v0.0.1
name: langchain
resources:
limits:
nvidia.com/gpu: "1"
暴露服务:
apiVersion: v1
kind: Service
metadata:
name: langchain-new
spec:
ports:
- name: langchain
port: 80
protocol: TCP
targetPort: 7860
selector:
app: langchain-new
type: LoadBalancer
在部署好的服务中选择“知识库问答”模式,并新建知识库(注:知识库名称暂不支持中文)。
点击上传文件/上传文件夹并加载知识库,Langchain 模型会自动进行知识库分析。这里我们给 Langchain-ChatGLM 添加了火山引擎产品的相关知识。
以上就是在火山引擎 VKE 中部署 Langchain-ChatGLM 服务的实践,欢迎大家登录火山引擎控制台尝试!