向量检索与通义千问搭建专属问答服务
手动部署
30
https://www.aliyun.com/solution/tech-solution/dashvector
方案概览
大语言模型(LLM)作为自然语言处理领域的核心技术,具有丰富的自然语言处理能力。但其训练语料库具有一定的局限性,一般由普适知识、常识性知识,如维基百科、新闻、小说,和各种领域的专业知识组成。导致 LLM 在处理特定领域的知识表示和应用时存在一定的局限性,特别对于垂直领域内,或者企业内部等私域专属知识。
实现专属领域的知识问答的关键,在于如何让LLM能够理解并获取存在于其训练知识范围外的特定领域知识。同时可以通过特定Prompt构造,提示LLM在回答特定领域问题的时候,理解意图并根据注入的领域知识来做出回答。在通常情况下,用户的提问是完整的句子,而不像搜索引擎只输入几个关键字。这种情况下,直接使用关键字与企业知识库进行匹配的效果往往不太理想,同时长句本身还涉及分词、权重等处理。相比之下,倘若我们把提问的文本,和知识库的内容,都先转化为高质量向量,再通过向量检索将匹配过程转化为语义搜索,那么提取相关知识点就会变得简单而高效。
接下来我们将基于中文突发事件语料库(CEC Corpus)演示关于突发事件新闻报道的知识问答。
方案架构
本方案主要分为 3 个阶段:
本地知识库的向量化。通过文本向量模型将其转化为高质量低维度的向量数据,再写入DashVector 向量检索服务。这里数据的向量化我们采用了百炼模型服务上的 Embedding API 实现。
相关知识点的提取。将提问文本向量化后,通过 DashVector 提取相关知识点的原文。
构造 Prompt 进行提问。将相关知识点作为“限定上下文+提问” 一起作为 prompt 询问通义千问。
本方案的技术架构包括以下基础设施和云服务:
1 个专有网络 VPC :1 个专有网络,提供云上私有网络。
1 台交换机:在 VPC 内部划分子网。
1 个安全组:提供网络安全访问。
1 台云服务器 ECS :部署示例应用。
1 个向量检索服务:DashVector 向量检索服务。
部署准备
5
部署资源
15
应用部署
5
登录 ECS 管理控制台。
在左侧导航栏,选择实例与镜像>实例。
在顶部菜单栏,选择华东 1(杭州)地域。
部署示例应用程序。
在实例页面,找到前面步骤中创建的 ECS 实例,在其右侧操作列,单击远程连接。
在远程连接对话框的通过 Workbench 远程连接区域,单击立即登录,然后根据页面提示登录。
执行以下命令部署本示例应用程序。
说明请替换以下
BAILIAN_API_KEY
、DASHVECTOR_API_KEY
、DASHVECTOR_CLUSTER_ENDPOINT
环境变量为真实的值。cat << EOF >> ~/.bash_profile export BAILIAN_API_KEY="上一步骤获取的百炼模型服务API-KEY" export DASHVECTOR_API_KEY="上一步骤获取的DashVector API-KEY" export DASHVECTOR_CLUSTER_ENDPOINT="上一步骤获取的DashVector Cluster Endpoint" EOF source ~/.bash_profile curl -fsSL https://help-static-aliyun-doc.aliyuncs.com/install-script/dashvector/install.sh|bash
当出现
Installation completed!
时说明应用部署完成。
验证及清理
5
方案验证
在浏览器中输入
http://<ECS公网IP>/
,即可用界面化的方式体验问答服务。输入突发事件新闻报道
海南安定追尾事故,发生在哪里?原因是什么?人员伤亡情况如何?
清理资源
在本方案中,您创建了 1 台云服务器 ECS 实例、1 台交换机、1 个专有网络 VPC 、1 个安全组、DashVector 向量检索服务。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:
释放 1 台云服务器 ECS 实例:
登录 ECS 控制台,在实例页面,找到目标实例,然后在操作列选择>释放设置,根据界面提示释放实例。
释放 1 台交换机:
登录专有网络控制台,在交换机页面,找到目标交换机,然后在操作列单击删除,按照界面提示释放实例。
释放 1 个专有网络 VPC :
登录专有网络控制台,在专有网络页面,找到目标 VPC ,然后在操作列单击删除,按照界面提示释放实例。
释放 1 个安全组。
登录 ECS 控制台,在 页面,找到目标安全组,然后在操作列单击删除,根据界面提示释放实例。
登录向量检索服务 DashVector 控制台,在左侧 Cluster 列表中,找到您创建的 Cluster ,单击右侧操作列的释放。
一键部署
20
https://www.aliyun.com/solution/tech-solution/dashvector
方案概览
大语言模型(LLM)作为自然语言处理领域的核心技术,具有丰富的自然语言处理能力。但其训练语料库具有一定的局限性,一般由普适知识、常识性知识,如维基百科、新闻、小说,和各种领域的专业知识组成。导致 LLM 在处理特定领域的知识表示和应用时存在一定的局限性,特别对于垂直领域内,或者企业内部等私域专属知识。
实现专属领域的知识问答的关键,在于如何让LLM能够理解并获取存在于其训练知识范围外的特定领域知识。同时可以通过特定Prompt构造,提示LLM在回答特定领域问题的时候,理解意图并根据注入的领域知识来做出回答。在通常情况下,用户的提问是完整的句子,而不像搜索引擎只输入几个关键字。这种情况下,直接使用关键字与企业知识库进行匹配的效果往往不太理想,同时长句本身还涉及分词、权重等处理。相比之下,倘若我们把提问的文本,和知识库的内容,都先转化为高质量向量,再通过向量检索将匹配过程转化为语义搜索,那么提取相关知识点就会变得简单而高效。
接下来我们将基于中文突发事件语料库(CEC Corpus)演示关于突发事件新闻报道的知识问答。
方案架构
本方案主要分为 3 个阶段:
本地知识库的向量化。通过文本向量模型将其转化为高质量低维度的向量数据,再写入DashVector 向量检索服务。这里数据的向量化我们采用了百炼模型服务上的 Embedding API 实现。
相关知识点的提取。将提问文本向量化后,通过 DashVector 提取相关知识点的原文。
构造 Prompt 进行提问。将相关知识点作为“限定上下文+提问” 一起作为 prompt 询问通义千问。
本方案的技术架构包括以下基础设施和云服务:
1 个专有网络 VPC :1 个专有网络,提供云上私有网络。
1 台交换机:在 VPC 内部划分子网。
1 个安全组:提供网络安全访问。
1 台云服务器 ECS :部署示例应用。
1 个向量检索服务:DashVector 向量检索服务。
部署准备
5
一键部署
10
单击一键部署前往 ROS 控制台,填入您在部署准备中获取的百炼 API-KEY 和 DashVector API-KEY 。本模板会自动创建一个免费的 DashVector 集群。同时,还会额外创建一个抢占式 ECS 实例,用于前端效果展示。按照本文选择规格,约花费 0.471 元/小时。具体产生的费用根据您选择的 ECS 规格而不同,以控制台显示为准。
开始创建后,等待约 5 分钟左右,显示创建成功。
完成及清理
5
方案验证
在创建成功的资源栈单击输出页签,获取到 WebUrl 。
将 WebUrl 复制到浏览器,即可用界面化的方式体验问答服务。
输入突发事件新闻报道
海南安定追尾事故,发生在哪里?原因是什么?人员伤亡情况如何?
清理资源
在本方案中,您创建了 1 个云服务器 ECS 实例、1 个免费的 DashVectorCluster 。如果您无需继续使用,请尽快删除资源,避免继续产生费用:
登录 ROS 控制台。
在左侧导航栏,选择资源栈。
在资源栈页面的顶部选择部署的资源栈所在地域,找到资源栈,然后在其右侧操作列,单击删除。
在删除资源栈对话框,选择删除方式为释放资源,然后单击确定,根据提示完成资源释放。