通义千问和LangChain搭建对话服务
手动部署
45
https://www.aliyun.com/solution/tech-solution/tongyi-langchain
方案概览
本方案介绍如何通过通义千问和LangChain构建高效的对话模型。该对话模型基于自然语言处理技术提升语义理解和交互体验。该方案广泛应用于聊天机器人、智能客服、社交媒体等场景中,可以有效解决对话模型中的语义理解和交互问题,并提高用户交互的自然性和流畅度。
方案架构
以下为您展示本技术方案的架构。
本方案的实现原理如下:
通过PAI-EAS的预置镜像,一键拉起应用服务。
通过预置的LangChain插件,快速集成企业内业务的知识库文件(支持配置
.txt
、.md
、.docx
、.pdf
格式的文件),将业务文件通过向量化的方法一键集成到向量存储检索库中。LangChain首先将用户上传的知识库进行自然语言处理,并作为大模型的知识库存储在本地,每次推理时,会首先在本地知识库中查找与输入问题相关的文本块(chunk),并将知识库答案与用户输入的问题一起输入大模型,生成基于本地知识库的定制答案。支持各种主流的开源大模型,包括通义千问、Llama和Falcon等。
本方案内容以一个官方预置镜像为例,为您介绍如何快速部署通义千问模型并通过WebUI快速体验智能对话效果。您在实际部署时可以根据业务场景调整部署方案。
部署准备
10
准备账号
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。
本方案的云资源(包括PAI-EAS、NAS和函数计算等服务)支持按量付费,且默认设置均采用按量付费引导操作。使用按量付费资源需要确保账户余额不少于100元。
完成本方案的部署及体验,根据您选择的资源规格和模型大小,将产生不同的费用。本方案以通义千问7B模型为例。(如调整了资源规格和模型,请以控制台显示的实际报价以及最终账单为准。)
选择GU类型的资源规格ml.gu7i.c8m30.1-gu30(推荐,性价比高):预计产生费用不超过8元/60分钟。
选择A10类型的资源规格ecs.gn7i-c8g1.2xlarge:预计产生费用不超过15元/60分钟。
选择V100类型的资源规格ecs.gn6e-c12g1.3xlarge:预计产生费用不超过22元/60分钟。
按量付费包括了PAI-EAS服务运行所消耗的公共资源费用和NAS存储费用。关于PAI-EAS的相关计费逻辑与单价详情,请参见模型在线服务(EAS)计费说明。关于NAS的相关计费逻辑和单价详情,请参见通用型NAS计费。函数计算上传文件属于入流量,不计费。更多关于函数计算计费的详情,请参见计费概述。
开通服务
【说明】在使用PAI进行AI开发部署通义千问和LangChain应用前,您需要先开通PAI。如果此前已开通过PAI,可跳过此步骤。
使用已准备好的阿里云账号登录PAI控制台,单击开通PAI并创建默认工作空间,在弹出的开通页面中配置订单详情,配置要点如下,更多详细内容,请参见开通并创建默认工作空间。
本方案地域选择:华东2(上海)。
组合开通:本方案不需要开通其他产品,您需要在组合开通配置模块,去勾选其他产品的复选框。
服务角色授权:单击去授权,根据界面提示为PAI完成授权,然后返回开通页面,刷新页面,继续开通操作。
规划网络和资源
5
规划云资源
请参考表格中的说明和方案默认示例值为每个规划项做详细规划,并在实际部署时将默认示例值修改为您的实际规划。未提及的规划项请保持默认值。
规划项 | 说明 | 方案默认示例 |
PAI | ||
地域 | 您的云服务部署的地域。 | 华东2(上海) |
资源类型 | 推荐使用GPU类型。 | ml.gu7i.c8m30.1-gu30 【说明】如果华东2(上海)地域的资源不足,您还可以选择V100(ecs.gn6e-c12g1.3xlarge)或A10(ecs.gn7i-c8g1.2xlarge)类型的资源规格。 |
镜像 | 推荐使用PAI平台预置镜像。 | chat-llm-webui |
专有网络VPC | ||
VPC名称 | 建议您在部署过程中新建一个VPC作为本方案的专有网络。部署过程中填写VPC名称即可创建对应名称的VPC。 长度为2~128个字符,以英文大小写字母或中文开头,可包含数字、下划线(_)和连字符(-)。 | vpc_chatllm |
网段 | 在创建VPC时,您必须按照无类域间路由块(CIDR block)的格式为您的专有网络划分私网网段。阿里云VPC支持的网段信息请参见专有网络组成部分。 在网络规划时可以按照管理网段-开发网段-测试网段-生产网段等规则做好规划。网段一旦投入使用,调整过程复杂,因此规划十分重要。 | 192.168.0.0/16 |
虚拟交换机 | ||
台数 | 本方案需要1台交换机。 | 1 |
vswitch名称 | 建议您在部署过程中在新建的VPC内创建虚拟交换机。部署过程中填写vswitch名称即可创建对应名称的虚拟交换机。 长度为2~128个字符,以英文大小写字母或中文开头,可包含数字、下划线(_)和连字符(-)。 | vsw_chatllm |
可用区 | 在规划的地域内选择1个可用区,用于部署虚拟交换机。 | 可用区G |
IPv4网段 | 每台虚拟交换机需要一个IPv4网段。 | 192.168.0.0/24 |
部署资源
5
规划好资源后,请按照以下步骤部署方案中的所有资源。
1、创建专有网络VPC、交换机
登录专有网络管理控制台。
在顶部菜单栏,选择华东2(上海)地域。
在左侧导航栏,单击专有网络。
在专有网络页面,单击创建专有网络。
在创建专有网络页面配置1个专有网络(VPC)和1台交换机,然后单击确定,更多详细内容,请参见创建专有网络和交换机。
2、创建安全组
3、创建通用型NAS文件系统
登录。
在概览页面的下方,单击创建通用型NAS。
在创建通用型NAS面板,配置文件系统相关信息,更多详细内容,请参见创建文件系统。
地域:选择华东2(上海)。
可用区:选择和交换机相同的可用区。
专有网络VPC&交换机:选择已创建的VPC和交换机。
4、通过函数计算部署fc-nas-filemgr应用
在函数计算控制台,搭建NAS浏览器应用,其中关键参数配置如下,其他参数配置详情,请参见步骤二:创建并部署fc-nas-filemgr应用。
部署类型:选择直接部署。
地域:选择华东2(上海)。
NAS挂载点地址:选择已创建的NAS挂载地址。
进入NAS根目录,具体操作请参见步骤三:管理NAS文件系统。
部署通义千问模型服务
10
您可以选择部署开源的公共模型或您自己微调的模型,具体操作步骤如下:
部署开源公共模型
进入模型在线服务页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
在模型在线服务(EAS)页面,单击部署服务,在场景化模型部署区域,单击LLM大语言模型部署。
在部署LLM大语言模型页面,配置以下关键参数,其他参数取默认配置即可。
参数
描述
基本信息
服务名称
自定义服务名称。本方案使用的示例值为:llm_qwen_demo001。
【说明】服务名称在同一地域内唯一。
模型来源
选择开源公共模型。
模型类别
选择Qwen1.5-7b。
资源配置
资源配置选择
实例规格推荐使用ml.gu7i.c8m30.1-gu30(性价比最高)。
【说明】:如果当前地域的资源不足,您还可以选择V100(ecs.gn6e-c12g1.3xlarge)或A10(ecs.gn7i-c8g1.2xlarge)类型的资源规格。
推理加速
选择无加速。
单击部署,等待一段时间即可完成模型部署。
当服务状态为运行中时,表明服务部署成功。
部署自持微调模型
准备自定义模型文件。本方案以开源的通义千问-7B-Chat-Int8模型为例。
【说明】自定义模型文件中必须包含config.json文件,您需要按照Huggingface的模型格式配置config文件。示例文件详情,请参见config.json。
登录函数计算控制台,通过NAS浏览器应用,上传已准备好的模型文件到
/Qwen-7B-Chat-Int8
目录。具体操作,请参见步骤三:管理NAS文件系统。您也可以通过NAT网关的形式,将本地模型文件上传到NAS文件系统,详情请参见通过NAT网关实现本地数据中心访问阿里云NAS。进入部署LLM大语言模型页面,详情请参见部署开源公共模型。在该页面配置以下关键参数,其他参数取默认配置即可。
参数
描述
基本信息
服务名称
自定义服务名称。本方案使用的示例值为:llm_qwen_demo001。
【说明】:服务名称在同一地域内唯一。
模型来源
选择自持微调模型。
模型类别
根据您的微调模型,分别选择模型类别、参数量和精度。本方案分别选择qwen1.5、7b、fp16。
模型配置
选择文件存储(NAS),并配置以下参数:
NAS挂载点:选择已创建的NAS文件系统和挂载点。
NAS源路径:配置为
/Qwen-7B-Chat-Int8
。
资源配置
资源配置选择
实例规格推荐使用ml.gu7i.c8m30.1-gu30(性价比最高)。
【说明】:如果当前地域的资源不足,您还可以选择V100(ecs.gn6e-c12g1.3xlarge)或A10(ecs.gn7i-c8g1.2xlarge)类型的资源规格。
推理加速
选择无加速。
专有网络配置
VPC
配置NAS挂载后,系统将自动匹配与NAS一致的VPC、交换机和安全组。如果自动匹配存在问题,请根据界面提示进行修改。
交换机
安全组名称
单击部署,等待一段时间即可完成模型部署。
当服务状态为运行中时,表明服务部署成功。
完成以上操作后,您已成功完成通义千问模型的WebUI部署。您可以前往完成及清理章节,体验模型推理效果。
完成及清理
15
方案验证
完成以上操作后,您已经成功完成了模型的WebUI部署。您可以启动WebUI页面,进行模型推理验证,同时您还可以在WebUI页面使用LangChain来集成自己的业务数据,具体操作步骤如下:
在模型在线服务(EAS)页面中,单击上述步骤中已部署服务的服务方式列下的查看Web应用,进入ChatLLM-WebUI页面。
在ChatLLM-WebUI页面,进行模型推理验证。在①位置输入请求数据,单击②位置的Send按钮,即可在③位置输出推理结果。
在WebUI页面,使用LangChain来集成自己的业务数据。
在ChatLLM-WebUI页面上方的选项卡中选择LangChain,在页面左下角,按照界面操作指引上传自定义数据,支持配置.txt、.md、.docx、.pdf格式的文件。
例如上传README.md文件,单击左下角的Vectorstore knowledge,返回如下结果表明自定义数据加载成功。
在ChatLLM-LangChain-WebUI页面底部的输入框中,输入与业务数据相关的问题进行对话即可。例如在输入框中输入
如何安装deepspeed
,单击Send,返回结果如图所示。
清理资源
如果您确认不再使用EAS服务,您可以按照以下操作步骤停止或删除模型服务。如果服务仍处于运行状态,将持续产生资源消耗而持续扣费。
登录PAI控制台。
在页面左上方,选择服务的地域。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
在推理服务页签,单击目标服务操作列下的停止或删除,将模型服务停止或删除。
删除fc-nas-filemgr应用。
登录函数计算控制台,在左侧导航栏,单击应用。
在应用列表中,找到目标应用。在操作列单击删除应用。并按照界面操作指引删除fc-nas-filemgr应用。
删除NAS文件系统。
登录。
在左侧导航栏,选择文件系统>文件系统列表。
在顶部菜单栏,选择地域。
在文件系统列表页面,找到目标文件系统,在操作列单击 。并按照界面操作指引删除NAS文件系统。
如果需要继续使用EAS服务,请为您的阿里云账号充值,到期未续费的EAS服务会因欠费而被自动停止。
删除专有网络VPC。
登录。
在顶部菜单栏,选择地域。
在专有网络页面,找到目标专有网络,在操作列单击 。在删除专有网络对话框中,单击确定。
一键部署
40
https://www.aliyun.com/solution/tech-solution/tongyi-langchain
方案概览
本方案介绍如何通过通义千问和LangChain构建高效的对话模型。该对话模型基于自然语言处理技术提升语义理解和交互体验。该方案广泛应用于聊天机器人、智能客服、社交媒体等场景中,可以有效解决对话模型中的语义理解和交互问题,并提高用户交互的自然性和流畅度。
方案架构
以下为您展示本技术方案的架构。
本方案的实现原理如下:
通过PAI-EAS的预置镜像,一键拉起应用服务。
通过预置的LangChain插件,快速集成企业内业务的知识库文件(支持配置
.txt
、.md
、.docx
、.pdf
格式的文件),将业务文件通过向量化的方法一键集成到向量存储检索库中。LangChain首先将用户上传的知识库进行自然语言处理,并作为大模型的知识库存储在本地,每次推理时,会首先在本地知识库中查找与输入问题相关的文本块(chunk),并将知识库答案与用户输入的问题一起输入大模型,生成基于本地知识库的定制答案。支持各种主流的开源大模型,包括通义千问、Llama和Falcon等。
本方案内容以一个官方预置镜像为例,为您介绍如何快速部署通义千问模型并通过WebUI快速体验智能对话效果。您在实际部署时可以根据业务场景调整部署方案。
部署准备
10
准备账号
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。
本方案的云资源(包括PAI-EAS、NAS和函数计算等服务)支持按量付费,且默认设置均采用按量付费引导操作。使用按量付费资源需要确保账户余额不少于100元。
完成本方案的部署及体验,根据您选择的资源规格和模型大小,将产生不同的费用。本方案以通义千问7B模型为例。(如调整了资源规格和模型,请以控制台显示的实际报价以及最终账单为准。)
选择GU类型的资源规格ml.gu7i.c8m30.1-gu30(推荐,性价比高):预计产生费用不超过8元/60分钟。
选择A10类型的资源规格ecs.gn7i-c8g1.2xlarge:预计产生费用不超过15元/60分钟。
选择V100类型的资源规格ecs.gn6e-c12g1.3xlarge:预计产生费用不超过22元/60分钟。
按量付费包括了PAI-EAS服务运行所消耗的公共资源费用和NAS存储费用。关于PAI-EAS的相关计费逻辑与单价详情,请参见模型在线服务(EAS)计费说明。关于NAS的相关计费逻辑和单价详情,请参见通用型NAS计费。函数计算上传文件属于入流量,不计费。更多关于函数计算计费的详情,请参见计费概述。
开通服务
【说明】在使用PAI进行AI开发部署通义千问和LangChain应用前,您需要先开通PAI。如果此前已开通过PAI,可跳过此步骤。
使用已准备好的阿里云账号登录PAI控制台,单击开通PAI并创建默认工作空间,在弹出的开通页面中配置订单详情,配置要点如下,更多详细内容,请参见开通并创建默认工作空间。
本方案地域选择:华东2(上海)。
组合开通:本方案不需要开通其他产品,您需要在组合开通配置模块,去勾选其他产品的复选框。
服务角色授权:单击去授权,根据界面提示为PAI完成授权,然后返回开通页面,刷新页面,继续开通操作。
一键部署
10
https://www.aliyun.com/solution/tech-solution/calbadm
ROS一键部署
资源编排(ROS)可以让您通过YAML或JSON文件清晰简洁地描述所需的云资源及其依赖关系,然后自动化地创建和配置这些资源。您可以通过下方提供的ROS一键部署链接,来自动化地完成这些资源的创建和配置:
创建1个工作空间。
创建1个专有网络VPC。
创建1台交换机。
创建1个安全组。
创建1个NAS文件系统。
使用开源公共模型(通义千问-7B)部署1个PAI-EAS服务。
单击一键部署前往ROS控制台,系统自动打开使用新资源创建资源栈的面板,并在模板内容区域展示模板内容的详细信息。
配置以下参数。
确认已选择的地域。本方案选择华东2(上海)。
选择可用区。
选择PAI-EAS实例规格:推荐使用ml.gu7i.c8m30.1-gu30(性价比最高)。
【说明】若ml.gu7i.c8m30.1-gu30规格不可选,请尝试更换至其他可用区或选择V100(ecs.gn6e-c12g1.3xlarge)、A10(ecs.gn7i-c8g1.2xlarge)类型的资源规格。
参数配置完成后,点击下一步,单击创建。
当资源栈信息页面的状态显示为创建成功时,表示一键配置完成。
部署自持微调模型
10
若您希望挂载自定义模型,请先删除已部署的通用千问-7B模型服务,然后重新部署一个经过微调的模型。具体操作步骤如下所示:
进入模型在线服务页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
单击目标服务操作列下的删除。
准备自定义模型文件。本方案以开源的通义千问-7B-Chat-Int8模型为例。
【说明】自定义模型文件中必须包含config.json文件,您需要按照Huggingface的模型格式配置config文件。示例文件详情,请参见config.json。
通过函数计算部署fc-nas-filemgr应用。
在函数计算控制台,搭建NAS浏览器应用,其中关键参数配置如下,其他参数配置详情,请参见步骤二:创建并部署fc-nas-filemgr应用。
部署类型:选择直接部署。
地域:选择华东2(上海)。
NAS挂载点地址:选择已创建的NAS挂载地址。
进入NAS根目录,具体操作请参见步骤三:管理NAS文件系统。
登录函数计算控制台,通过NAS浏览器应用,上传已准备好的模型文件到
/Qwen-7B-Chat-Int8
目录。具体操作,请参见步骤三:管理NAS文件系统。您也可以通过NAT网关的形式,将本地模型文件上传到NAS文件系统,详情请参见通过NAT网关实现本地数据中心访问阿里云NAS。在模型在线服务(EAS)页面,单击部署服务,在场景化模型部署区域,单击LLM大语言模型部署。
在部署LLM大语言模型页面,配置以下关键参数,其他参数取默认配置即可。
参数
描述
基本信息
服务名称
自定义服务名称。本方案使用的示例值为:llm_qwen_demo001。
【说明】:服务名称在同一地域内唯一。
模型来源
选择自持微调模型。
模型类别
根据您的微调模型,分别选择模型类别、参数量和精度。本方案分别选择qwen1.5、7b、fp16。
模型配置
选择文件存储(NAS),并配置以下参数:
NAS挂载点:选择已创建的NAS文件系统和挂载点。
NAS源路径:配置为
/Qwen-7B-Chat-Int8
。
资源配置
资源配置选择
实例规格推荐使用ml.gu7i.c8m30.1-gu30(性价比最高)。
【说明】:如果当前地域的资源不足,您还可以选择V100(ecs.gn6e-c12g1.3xlarge)或A10(ecs.gn7i-c8g1.2xlarge)类型的资源规格。
推理加速
选择无加速。
专有网络配置
VPC
配置NAS挂载后,系统将自动匹配与NAS一致的VPC、交换机和安全组。如果自动匹配存在问题,请根据界面提示进行修改。
交换机
安全组名称
单击部署,等待一段时间即可完成模型部署。
当服务状态为运行中时,表明服务部署成功。
完成及清理
10
方案验证
完成以上操作后,您已经成功完成了模型的WebUI部署。您可以启动WebUI页面,进行模型推理验证,同时您还可以在WebUI页面使用LangChain来集成自己的业务数据,具体操作步骤如下:
进入模型在线服务页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
在模型在线服务(EAS)页面中,单击上述步骤中已部署服务的服务方式列下的查看Web应用,进入ChatLLM-WebUI页面。
在ChatLLM-WebUI页面,进行模型推理验证。在①位置输入请求数据,单击②位置的Send按钮,即可在③位置输出推理结果。
在WebUI页面,使用LangChain来集成自己的业务数据。
在ChatLLM-WebUI页面上方的选项卡中选择LangChain,在页面左下角,按照界面操作指引上传自定义数据,支持配置.txt、.md、.docx、.pdf格式的文件。
例如上传README.md文件,单击左下角的Vectorstore knowledge,返回如下结果表明自定义数据加载成功。
在ChatLLM-LangChain-WebUI页面底部的输入框中,输入与业务数据相关的问题进行对话即可。例如在输入框中输入
如何安装deepspeed
,单击Send,返回结果如图所示。
清理资源
如果需要继续使用EAS服务,请为您的阿里云账号充值,到期未续费的EAS服务会因欠费而被自动停止。
登录PAI控制台。
在页面左上方,选择服务的地域。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入模型在线服务(EAS)页面。
在推理服务页签,单击目标服务操作列下的停止或删除,将模型服务停止或删除。
删除安全组。
登录ECS控制台,在左侧导航栏,选择网络与安全 > 安全组。
在安全组列表页面,找到目标安全组,在操作列单击删除。并按照界面操作指引删除。
删除fc-nas-filemgr应用。
登录函数计算控制台,在左侧导航栏,单击应用。
在应用列表中,找到目标应用。在操作列单击删除应用。并按照界面操作指引删除fc-nas-filemgr应用。
按照以下操作步骤释放资源栈下的资源,即1个工作空间、1个专有网络VPC、1个交换机、1个安全组、1个NAS文件系统和1个PAI-EAS服务。
登录ROS控制台。
在左侧导航栏,选择资源栈。
在资源栈页面的顶部选择部署的资源栈所在地域,找到资源栈,然后在其右侧操作列,单击删除。
在删除资源栈对话框,选择删除方式为释放资源,然后单击确定,根据提示完成资源释放。