Posted in

基于火山引擎云搜索服务和豆包模型搭建 RAG 推理任务_AI阅读总结 — 包阅AI

包阅导读总结

1. 关键词:火山引擎、云搜索服务、RAG、大语言模型、智能问答系统

2. 总结:

本文介绍基于火山引擎云搜索服务和方舟平台构建专属 RAG 智能问答系统,核心是让语言模型动态检索外部知识库,减少“幻觉”,以云搜索服务知识库为语料,阐述了从创建实例到配置依赖等全流程,最终实现公网访问和可视化咨询。

3. 主要内容:

– 背景

– 大语言模型核心能力及应用,LLM 生成回答可能出现“幻觉”

– RAG 核心思想是让语言模型动态检索外部知识库以提高准确性等

– 构建 RAG 智能问答系统

– 系统使用 OpenSearch 为外部知识库,火山豆包为大语言模型

– 语料处理后存入 OpenSearch 索引,并转化为向量字段

– 用户输入问题经转化向量、混合查询召回文档给豆包回答

– 配置流程

– 火山引擎云搜索服务控制台创建实例集群,启用 ML 服务和 Embedding 模型

– 火山引擎方舟控制台创建推理接入点,创建 API Key

– 配置 NAT 网关,创建公网 NAT 网关

– 增加 Config 参数,添加依赖配置

– 上传 RAG 推理服务配置

– 创建推理服务,借助 API 网关配置公网域名实现可视化咨询

– 火山引擎云搜索服务特点

– 兼容多种软件和插件,支持多种搜索和检索功能,提供多条件检索等,可快速构建业务能力

思维导图:

文章地址:https://mp.weixin.qq.com/s/Q90zweALs2pFdvKESOe-Vg

文章来源:mp.weixin.qq.com

作者:云搜索

发布时间:2024/8/10 14:33

语言:中文

总字数:2435字

预计阅读时间:10分钟

评分:84分

标签:RAG(检索增强生成),火山引擎云搜索服务,大语言模型,智能问答系统,豆包模型


以下为原文内容

本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com

来源|火山引擎云搜索团队

大语言模型(LLM,Large language model)作为新一轮科技产业革命的战略性技术,其核心能力在于深层语境解析与知识融合。在生成式人工智能方向主要用于图像生成、书写文稿、信息搜索等。当下的 LLM 模型是基于大量数据训练的,目的是让它们掌握广泛的普遍知识,这些知识被储存在它们神经网络的权重(也就是参数记忆)里。但是,如果我们要求 LLM 生成的回答涉及到它训练数据之外的知识,比如最新的、专有的或某个特定领域的信息,这时就可能出现事实上的错误(我们称之为“幻觉”)。

RAG(Retrieval-Augmented Generation,检索增强生成)的核心思想是让语言模型在生成回答或文本时能够动态地从外部知识库中检索相关信息。这种方法能够提高模型生成内容的准确性、可靠性和透明度,同时减少“幻觉”


本文将介绍如何基于火山引擎云搜索服务和方舟平台来构建专属的RAG智能问答系统。系统使用 OpenSearch 作为外部知识库,火山豆包作为大语言模型,全流程构建在火山引擎平台上。本次实践采用的语料为火山引擎云搜索服务知识库,将语料处理后存入 OpenSearch 索引中,同时通过部署在云搜索服务 ML 节点上的 Embedding 模型,将原始语料额外转化为向量字段存储在同一个 OpenSearch 索引中,方便后续做混合查询召回。

在查询流程中,用户通过对话框输入问题,RAG 应用会将用户输入的问题通过 Embedding 模型转化为向量,然后使用云搜索服务 OpenSearch 的混合查询功能查询问题向量和问题文本召回 Top n 的文档结果,再将文档结果发送给豆包大模型,最后按照要求根据文档内容回答用户的问题。


登陆火山引擎云搜索服务控制台(https://console.volcengine.com/es),创建实例集群,版本选用 Opensearch 2.9.0实例创建完成后可根据实际需求,开通实例和 Dashboards 的公网访问。

  1. 进入实例详情页->ML 服务,配置 CPU /内存比例后启用。

  2. 进入模型服务->公共模型,启动一个模型用于语义嵌入 Embedding,推荐使用 PEG,配置参数后启动。

  1. 进入火山引擎方舟控制台(https://console.volcengine.com/ark),在模型推理下创建推理接入点,接入模型建议选用 Doubao-pro-32k(或者Doubao-lite-32k),创建完成后可以获取到接入点 Endpoint。

  1. 在左侧导航栏进入 API Key 管理,创建 API Key 并记录。
{  "model32k": {    "host": "https://ark.cn-beijing.volces.com/api/v3",    "endpoint": "ep-xxxx-xx",    "apikey": ""  }}

通过配置 NAT 网关使私有网络内部的实例允许通过 NAT 网关访问到公网,用于连接大模型服务。

首先进入火山引擎 NAT 网关控制台(https://console.volcengine.com/nat),创建公网 NAT 网关。这里需要注意私有网络和子网一定要和云搜索服务实例所在的网络保持一致,可选用自动配置或手动配置:

  1. 这里演示为基于火山引擎云搜索服务文档语料搭建的推理任务,所以在创建任务时选择模板代码-云搜索文档任务,大家在具体使用中可以根据需求用其他语料库进行搭建。

  1. 增加 Config 参数,参考如下模板填入。

'{        "task":"migrate","dim":1024,        "opensearch": {            "username": "opensearch的用户名",            "password": "opensearch的密码",            "host": "云搜索接入点域名",            "port": 9200,            "schema": "https",            "index": "迁移的索引名称"        }   }'
  1. 本文演示添加的依赖为云搜索文档任务配置依赖,如果需要额外依赖可以自行在配置中添加。

  1. 选择 xc_import_embed 模板任务,Config 参数说明:

'{            "opensearch": {        "username": "xxx",        "password": "xxx",        "host": "opensearch-o-xxxx.escloud.ivolces.com",        "port": 9200,        "schema": "https",        "index": "cloud_serach",        "target_index": "cloud_serach"    },    "embedding": {           调用信息复制过来    },    "field_dict": {            "full_title": "full_title_knn",            "summary": "summary_knn",            "content.summary": "content.summary_knn"    }}'
  1. 文中实践需要添加的依赖配置如下:

  1. 在 TOS Bucket 中上传 RAG 推理服务配置。

config.json内容

rag_config.json 格式及代码参考如下:

{  "type": "cloud_search_bot",  "opensearch": {    "username": "admin",    "password": "password",    "host": "opensearch-o-xxxxx.escloud.ivolces.com",    "port": 9200,    "schema": "https",    "index": "index_name"  },  "llm": {    "model32k": {      "host": "https://ark.cn-beijing.volces.com/api/v3",      "endpoint": "ep-xxxx-xx",      "apikey": ""    }  },  "embedding": {    "remote_config" : {      "method" : "POST",      "url" : "http://url:port/v1/embeddings",      "params" : {},      "headers" : {        "Content-Type" : "application/json"      },      "advance_request_body" : {        "model" : "TownsWu/PEG"      }    }  },  "generate":true}
  1. 创建推理服务(打开私网访问)并启动

完成前面的所有配置操作后,已经可以在相同 VPC 环境的 ECS 中,通过 RAG 模型的调用信息验证云搜索服务文档推理任务了。可以直接在 ECS 命令行中运行调用信息,查看到持续输出 txt 文本内容。

为了更加直观的演示云搜索服务文档的 RAG 推理服务,本文借助火山引擎 API 网关产品,为 RAG 推理服务配置一个固定的公网域名。通过直接在浏览器中的固定访问地址访问 RAG 推理服务,并在可视化页面咨询云搜索服务产品的各种问题。

  1. 进入 API 网关控制台(https://console.volcengine.com/veapig)创建实例,为保证网络畅通需要选择和云搜索实例相同的私有网络和子网。创建完成后进入实例继续创建服务。

  1. 接下来创建 Upstream,后端服务选用固定域名,域名和端口从刚刚启用的 RAG 调用信息内获取。

  1. 并在服务内创建路由,路径选用前缀匹配;Upstream 选用固定域名,使用刚刚创建的 Upstream。

创建完成后进入服务列表就可以获取到公网访问域名,拼接 RAG 推理服务的完整访问地址,格式为 http://[url]/?model=[model_name],其中 url 替换为在 API 网关中获取到的服务公网访问域名,model_name 替换为 RAG 模型的名称后就可以在浏览器中通过刚才拼接好的固定域名访问 RAG 推理服务,并在可视化页面中咨询本文所用到的云搜素服务文档库的相关问题。

以上就是以云搜索服务文档库为例,介绍通过火山引擎云搜索服务和方舟平台构建的专属 RAG智能问答系统,欢迎进入体验馆体验!


火山引擎云搜索服务兼容 OpenSearch、Elasticsearch、OpenSearch DashBoards、Kibana 等软件及常用开源插件,支持全文搜索、向量搜索、混合搜索、时空检索等。提供结构化、非结构化文本的多条件检索、统计、报表,可以实现一键部署、弹性扩缩、简化运维,快速构建日志分析、信息检索分析等业务能力。