字节跳动云原生

如何在火山引擎云上部署 Langchain-ChatGLM

来源 | 火山引擎云原生团队

什么是 Langchain-ChatGLM

Image

介绍一下 Langchain-ChatGLM?

Image

Langchain-ChatGLM 是一个基于语言模型的人工智能助手,旨在为用户提供自然语言处理相关的服务。该项目基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型 CGLM-130B,并利用 Web 前端技术实现了用户与助手的对话界面。Langchain-ChatGLM 项目旨在为用户提供便捷的语言处理服务,包括但不限于文本翻译、文本摘要、问答、情感分析等。通过与用户的对话,Langchain-ChatGLM 能够自动理解用户的问题并给出相应的答案,同时通过不断学习用户的对话,提高自己的回答能力。

Image

Langchain-ChatGLM 项目还支持知识库间答模式,用户可以通过上传本地文件或文件夹,将问题与相应的知识库关联,让助手进行回答。同时,它还支持语音输入,用户可以通过语音指令与助手进行交互。Langchain-ChatGLM 是一个功能强大的语言处理工具,为用户提供了便捷的语言处理服务,同时也为人工智能研究提供了新的思路和实验平台。

Image

Langchain-ChatGLM 能做什么?

Image

Langchain-ChatGLM 是一个基于语言模型的人工智能助手,它的主要作用是为用户提供自然语言处理相关的服务。以下是 Langchain-ChatGLM 的一些主要功能:

1. 文本翻译:可以将一种语言的文本翻译成另一种语言的文本。

2. 文本摘要:可以自动对文本进行摘要要,提取出文本中最重要的信息。

3. 问答:可以自动回答用户提出的问题,并提供详细的答案。

4. 情感分析:可以分析文本中的情感倾向,如正面、负面或中性。

5. 知识库问答:可以支持知识库问答模式,用户可以通过上传本地文件或文件夹,将问题与相应的知识库关联,让助手进行回答。

6. 语音输入:可以支持语音输入,用户可以通过语音指令与助手进行交互。

总的来说,Langchain-ChatGLM 是一个功能强大的语言处理工具,它可以帮助用户完成各种自然语言处理任务,如文本分类、实体识别、文本摘要、情感分析等。

步骤一:准备 VKE 集群环境

登录火山引擎控制台,创建 VKE 集群,集群版本选择 1.24,容器网络模型选择 VPC-CNI,开启公网访问。选择立刻创建节点,节点规格选择 GPU 计算型,ecs.gni2.3xlarge  NVIDIA A10,组件勾选安装 nvidia-device-plugin 组件。
Image

Image

Image

步骤二:下载代码、模型并构建镜像

相关代码和模型均已开源,可以在 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 卡:

Image

在“服务与路由”-“服务”页面创建负载均衡类型的服务,并关联 Langchain-ChatGLM deployment,容器服务端口为 7860:

Image
Image
等 Service 创建完毕,显示入口地址之后,我们直接访问 IP 就可以体验 Langchain-ChatGLM 服务了。

服务入口也可以选择 7 层 Ingress ALB 或 API 网关,具体操作可参考《如何在火山引擎云上部署Stable Diffusion》。

通过 YAML 文件创建

部署服务:

apiVersion: apps/v1kind: Deploymentmetadata:  name: langchain-newspec:  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: v1kind: Servicemetadata: name: langchain-newspec: ports: - name: langchain port: 80 protocol: TCP targetPort: 7860 selector: app: langchain-new type: LoadBalancer

步骤四:增加本地知识库

在部署好的服务中选择“知识库问答”模式,并新建知识库(注:知识库名称暂不支持中文)。

点击上传文件/上传文件夹并加载知识库,Langchain 模型会自动进行知识库分析。这里我们给 Langchain-ChatGLM 添加了火山引擎产品的相关知识。
Image

最终演示

Image

Image

以上就是在火山引擎 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 类产品体系的构建,结合字节跳动多年的云原生技术栈经验和最佳实践沉淀,帮助企业加速数字化转型和创新。产品包括容器服务、镜像仓库、分布式云原生平台、函数服务、服务网格、持续交付、可观测服务等。

Image