chatgpt 向量数据库选型 ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据(一)

默认分类1年前 (2023)发布 admin
4,523 0
ChatGPT国内版

结合 的搜索相关性和 的 的问答功能来查询你的数据。 在此博客中,你将了解如何使用 将 连接到专有数据存储,并为你的数据构建问答功能。

和 : 遇见私有数据

详细的操作步骤,请阅读文章 “ 和 : 遇见私有数据(二)”。

和 : 满足私有数据设置演练

什么是聊天 GPT?

近几个月来,人们对 充满了热情,这是一种由 创建的开创性人工智能模型。 但 到底是什么?

基于强大的 GPT 架构, 旨在理解文本输入并生成类似人类的响应。 GPT 代表 “ Pre- ”。 是一种顶尖模型架构,彻底改变了自然语言处理 (NLP) 领域。这些模型在海量数据上进行了预训练,能够理解上下文、生成相关响应,甚至进行对话 . 要详细了解 模型的历史和 Stack 中的一些 NLP 基础知识,请务必查看 ML 工程师 Josh 的精彩演讲。

的主要目标是促进人机之间有意义且引人入胜的交互。 通过利用 NLP 的最新进展, 模型可以提供广泛的应用程序,从聊天机器人和虚拟助手到内容生成、代码完成等等。 这些人工智能驱动的工具已迅速成为无数行业的宝贵资源,帮助企业简化流程并增强服务。

然而,尽管 具有不可思议的潜力,但用户仍应注意某些限制。 一个值得注意的限制是知识截止日期。 目前, 接受的数据训练截至 2021 年 9 月,这意味着它不知道此后发生的事件、发展或变化。 因此,用户在依赖 获取最新信息时应牢记这一限制。 在讨论快速变化的知识领域(例如软件增强和功能甚至世界大事)时,这可能会导致反应过时或不正确。

虽然是一种令人印象深刻的 AI 语言模型,但偶尔会在其响应中产生幻觉,当它无法访问相关信息时通常会加剧。 这种过度自信会导致向用户提供不正确的答案或误导性信息。 重要的是要意识到这一限制,并在必要时以一定程度的怀疑态度、交叉检查和验证信息来处理 生成的响应,以确保准确性和可靠性。

的另一个限制是它缺乏关于特定领域内容的知识。 虽然它可以根据接受过培训的信息生成连贯且与上下文相关的响应,但它无法访问特定领域的数据或提供依赖于用户独特知识库的个性化答案。 例如,它可能无法深入了解组织的专有软件或内部文档。 因此,用户在直接从 寻求有关此类主题的建议或答案时应谨慎行事。

最小化这些限制的一种方法是为 提供对与你的领域和问题相关的特定文档的访问权限,并启用 的语言理解功能以生成量身定制的响应。

这可以通过将 连接到 等搜索引擎来实现。

—— 你知道,用于搜索!

是一个高效的搜索引擎,旨在提供相关文档检索,确保用户可以快速准确地访问他们需要的信息。 的主要重点是向用户提供最相关的结果、简化搜索过程并增强用户体验。

拥有众多可确保一流搜索性能的功能,包括支持传统关键字和基于文本的搜索 (BM25) 以及具有精确匹配和近似 kNN(k 最近邻)搜索功能的 AI 就绪向量搜索。 这些高级功能使 不仅可以检索相关的结果,还可以检索使用自然语言表达的查询的结果。 通过利用传统、向量或混合搜索 (BM25 + kNN), 可以提供无与伦比的精确结果,帮助用户轻松找到他们需要的信息。

的主要优势之一是其强大的 API,它可以与其他服务无缝集成以扩展和增强其功能。 通过将 与各种第三方工具和平台集成,用户可以根据自己的特定需求创建功能强大的自定义搜索解决方案。 这种灵活性和可扩展性使 成为希望提高搜索能力并在竞争激烈的数字环境中保持领先地位的企业的理想选择。

通过与 等高级人工智能模型协同工作, 可以为 提供最相关的文档以用于其响应。 和 之间的这种协同作用可确保用户收到与其查询相关的事实、上下文相关和最新的答案。 从本质上讲, 的检索能力与 的自然语言理解能力相结合,提供了无与伦比的用户体验,为信息检索和 AI 支持的协助树立了新标准。

如何将 与 结合使用

1) 界面接受用户提问。

为 生成混合搜索请求

2)搜索请求被发送到 。

3)文档正文和原始 url 返回给 。

4.)对 进行 API 调用。

5)生成的响应返回给 。

6) 将原始文档源 url 添加到生成的响应中,并将其打印到屏幕上供用户使用。

流程利用 界面接受用户问题并为 生成混合搜索请求,结合 BM25 和 kNN 搜索方法从 Docs 站点查找最相关的文档,这些文档现已在 中编制索引。 但是,你不必使用混合搜索甚至向量搜索。 可以灵活地使用最适合你需求的搜索模式,并为你的特定数据集提供最相关的结果。

在检索到最佳结果后,该程序会为 的 API 制作提示,指示它仅使用所选文档中的信息来回答用户的问题。 此提示是确保 模型仅使用官方文档中的信息、减少产生幻觉的机会的关键。

最后,该程序向用户展示 API 生成的响应和源文档的链接,提供无缝且用户友好的体验,集成了前端交互、 查询和 API 使用以实现高效的问答。

请注意,虽然为简单起见我们只返回得分最高的文档,但最佳做法是返回多个文档以为 提供更多上下文。 可以在不止一个文档页面中找到正确的答案,或者如果我们要为完整的正文文本生成向量,那么这些较大的文本正文可能需要分块并存储在多个 文档中。 通过利用 与传统搜索方法协同搜索大量向量字段的能力,你可以显着提高你的顶级文档召回率。

技术设置

chatgpt 向量数据库选型 ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据(一)

技术要求相当低,但需要一些步骤才能将所有部分组合在一起。 对于此示例,我们将配置 网络爬虫以摄取 文档并在摄取时为标题生成向量。 你可以按照以下步骤复制此设置或使用你自己的数据。 为了跟进,我们需要:

Cloud setup

本节中的步骤假设你当前没有在 Cloud 中运行的 集群。 如果你这样做,可以跳到下一部分。

注册

如果你还没有 集群,你可以注册 Cloud 免费试用。

创建部署

注册后,系统会提示你创建第一个部署。

回到云端

在我们继续之前,我们需要在 Cloud 中做几件事:

添加机器学习节点。

重置 部署用户和密码:

复制 部署云 ID。

Eland

接下来,我们需要将嵌入模型加载到 中,为我们的博客标题生成向量,然后为用户的搜索问题生成向量。 我们将使用由 训练并托管在 Face 模型中心上的 all–v1 模型。 此设置不需要此特定模型即可工作。 它适合一般用途,因为它是在涵盖广泛主题的非常大的数据集上训练的。 但是,对于向量搜索用例,使用针对您的特定数据集进行微调的模型通常会提供最佳相关性。

为此,我们将使用 创建的 。 该库提供了广泛的数据科学功能,但我们将使用它作为桥梁,将模型从 Face 模型中心加载到 ,以便它可以部署在机器学习节点上以供推理使用。

Eland 可以作为 脚本的一部分运行,也可以在命令行上运行。 该存储库还为希望走这条路的用户提供了一个 容器。 今天我们将在一个小型 中运行 Eland,它可以在网络浏览器中免费运行在谷歌的 Colab 中。

打开程序链接并单击顶部的 “Open in Colab” 按钮以在 Colab 中启动 。

将变量 设置为模型名称。 此模型已在示例代码中设置,但如果你想使用不同的模型或仅供将来参考:

运行 cloud auth 部分,系统会提示您输入:

运行剩余的步骤。

索引和网络爬虫

接下来我们将创建一个新的 索引来存储我们的 文档,将网络爬虫配置为自动抓取这些文档并为其编制索引,并使用摄取管道为文档标题生成向量。

chatgpt 向量数据库选型 ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据(一)

请注意,你可以在此步骤中使用你的专有数据,以创建适合你的领域的问答体验。

更新 字段的映射。 (注意:对于 8.8+ 版本,此步骤应该是自动的。)

POST search-elastic-docs/_mapping
{
  "properties": {
    "title-vector": {
      "type": "dense_vector",
      "dims": 768,
      "index": true,
      "similarity": "dot_product"
    }
  }
}

{
  "acknowledged": true
}

配置网络爬虫以爬取 Docs 站点:

-notes

Allow

Regex

/guide/en/.*//.*

Regex

.*

的网络爬虫现在将开始爬取文档站点,为标题字段生成向量,并对文档和向量建立索引。

第一次爬网需要一些时间才能完成。 同时,我们可以设置 API 凭证和 后端。

与 API 连接

要向 发送文档和问题,我们需要一个 API 帐户和密钥。 如果你还没有帐户,可以创建一个免费帐户,你将获得初始数量的免费积分。

创建帐户后,你需要创建一个 API 密钥:

后端设置 克隆或下载 程序

代码链接

1)安装所需的 库。 我们在具有隔离环境的 中运行示例程序。 如果您在笔记本电脑或 VM 上运行它,最佳做法是为 设置一个虚拟 ENV。

2)设置身份验证和连接环境变量(例如,如果在命令行上运行: =””)

3)运行 程序。 有关 的更多信息可以在其文档中找到。

4)这将启动网络浏览器,并将 url 打印到命令行。

© 版权声明
广告也精彩

相关文章

暂无评论

暂无评论...