Langchain 是一个基于大语言模型进行应用开发的框架,它提供了方便的组件库,方便开发者将 LLM 模型与各种外部数据源连接起来。本文介绍了在火山引擎上部署 Langchain-ChatGLM 的方法。
来源 | 火山引擎云原生团队
什么是 Langchain-ChatGLM
介绍一下 Langchain-ChatGLM?
Langchain-ChatGLM 是一个基于语言模型的人工智能助手,旨在为用户提供自然语言处理相关的服务。该项目基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型 CGLM-130B,并利用 Web 前端技术实现了用户与助手的对话界面。Langchain-ChatGLM 项目旨在为用户提供便捷的语言处理服务,包括但不限于文本翻译、文本摘要、问答、情感分析等。通过与用户的对话,Langchain-ChatGLM 能够自动理解用户的问题并给出相应的答案,同时通过不断学习用户的对话,提高自己的回答能力。
Langchain-ChatGLM 项目还支持知识库间答模式,用户可以通过上传本地文件或文件夹,将问题与相应的知识库关联,让助手进行回答。同时,它还支持语音输入,用户可以通过语音指令与助手进行交互。Langchain-ChatGLM 是一个功能强大的语言处理工具,为用户提供了便捷的语言处理服务,同时也为人工智能研究提供了新的思路和实验平台。
Langchain-ChatGLM 能做什么?
Langchain-ChatGLM 是一个基于语言模型的人工智能助手,它的主要作用是为用户提供自然语言处理相关的服务。以下是 Langchain-ChatGLM 的一些主要功能:
-
文本翻译:可以将一种语言的文本翻译成另一种语言的文本。
-
文本摘要:可以自动对文本进行摘要要,提取出文本中最重要的信息。
-
问答:可以自动回答用户提出的问题,并提供详细的答案。
-
情感分析:可以分析文本中的情感倾向,如正面、负面或中性。
-
知识库问答:可以支持知识库问答模式,用户可以通过上传本地文件或文件夹,将问题与相应的知识库关联,让助手进行回答。
-
语音输入:可以支持语音输入,用户可以通过语音指令与助手进行交互。
总的来说,Langchain-ChatGLM 是一个功能强大的语言处理工具,它可以帮助用户完成各种自然语言处理任务,如文本分类、实体识别、文本摘要、情感分析等。
步骤一:准备 VKE 集群环境
登录火山引擎控制台,创建 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 提供了多种镜像下载加速的能力,我们将在后续系列文章中详细介绍。
步骤三:创建 Langchain-GLM 服务
通过 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 服务的实践,欢迎大家登录火山引擎控制台尝试!
- END -
相关链接
[1] 火山引擎: www.volcengine.com
[2] 容器服务: www.volcengine.com/product/vke
[3] 镜像仓库:www.volcengine.com/product/cr
[4] 模型镜像:cr-demo-cn-beijing.cr.volces.com/vke-ai/langchain-chatglm:v0.0.1
点击 阅读原文 申请体验
火山引擎云原生团队
火山引擎云原生团队主要负责火山引擎公有云及私有化场景中 PaaS 类产品体系的构建,结合字节跳动多年的云原生技术栈经验和最佳实践沉淀,帮助企业加速数字化转型和创新。产品包括容器服务、镜像仓库、分布式云原生平台、函数服务、服务网格、持续交付、可观测服务等。