技术干货

全文RAG:超个性化的现代架构

2024-07-26

By Abdelrahman Elgendy

全文RAG:超个性化的现代架构

个性化是许多以用户为中心产品的长期客户保留的关键。例如,Netflix或Disney可以通过个性化的电影推荐确保用户满意度;外卖应用程序可以根据过去的订单推荐餐馆和菜肴等。人工智能提供了不同的技术来利用客户的历史数据,并在产品中提供个性化。

Tecton的首席执行官和联合创始人Mike Del Balso最近在由Zilliz主办的非结构化数据聚会上发表了一场演讲,讨论了如何使用RAG架构来提高人工智能推荐引擎的个性化。

Mike分享了一个有趣的事实,他在一份咨询报告中读到:“AI驱动的个性化将为全球GDP增加5万亿美元的价值。”他还提出了一个基于检索增强生成(RAG)的架构,以实现超个性化。

这篇文章将回顾他对AI驱动个性化的关键见解,以及公司如何利用人工智能来增强他们的产品。

**观看Mike的演讲回放**

**使用生成性AI模型进行个性化**

Mike以一个用例示例开始:构建一个类似于Booking.com或MakeMyTrip的产品,但提供超个性化的旅行推荐。

像GPT这样的大型语言模型(LLMs)是在庞大的文本语料库上训练的,可以生成旅行推荐。例如,如果我们向LLM查询“今年夏天我应该去哪里?”我们会得到基于最受欢迎的夏季目的地的响应,如巴黎或东京。但是,我们需要一种方法来根据个别客户定制这些推荐。

有两种技术可以改进您的推荐模型:微调和提示工程。

虽然这些技术可以使模型的响应根据可用的训练数据更加相关,但它们不提供客户输入数据的方式。全RAG是一种可以解决这个问题的方法。在我们理解全RAG是什么以及它如何工作之前,让我们回顾一下传统RAG的工作原理。

**RAG简介**

检索增强生成(RAG)是一种技术,可以提高大型语言模型在质量和相关性方面的响应。RAG引擎通常由两个关键组件组成:检索器和生成器。检索器结合了一个嵌入模型和一个向量数据库,如Milvus或Zilliz Cloud,生成器是LLM。

在检索阶段,我们搜索存储所有文档的向量数据库,并选择最相关的文档。然后选择Top-K文档或候选者,并将它们作为输入提供给生成性AI模型。该模型使用查询和Top-K候选者生成一致的响应。

下面的RAG管道解释了传统RAG的工作原理。

所有文档都被转换为向量嵌入并存储在向量数据库中。

用户查询也被转换为向量嵌入。

我们使用这个向量从向量数据库中检索最相似的候选者。

这些顶级候选者,如巴黎和东京,被发送到LLM,生成响应。

然而,这里检索到的顶级候选者没有特定用户喜好和不喜欢的上下文,因此它们是“未上下文化候选者”。

**全RAG:在检索管道中添加上下文**

由于基本RAG管道中检索到的候选者是未上下文化的,我们需要为更好的答案添加上下文。目标是构建一个具有高上下文和专业知识的引擎。

Mike强调提供上下文如何丰富检索到的信息:“上下文是AI模型用来理解情况并做出决策的相关信息。”

在之前构建AI旅行代理的用例示例中,我们可以通过两种方式向模型添加上下文:

1. 添加候选者(地点)的上下文:在推荐一个城市时,模型应该了解动态的详细信息。例如,当前的天气、活动类型、著名的当地美食、大概的预算、历史或遗产景点等。这些信息帮助用户规划他们的假期。

用户个性化上下文:它指的是提供有关用户是谁以及他们的偏好和限制是什么的信息。这些信息丰富了检索到的顶级候选者与用户级别信息。例如,提供上下文问题,如:

用户对历史感兴趣吗?

用户喜欢什么样的气候?

用户会对冒险运动活动感兴趣吗?

他们喜欢什么样的住宿?

有了关于城市提供什么和用户想要什么的上下文,AI模型可以更好地匹配合适的目的地。此外,它可以建议根据他们的偏好量身定制的活动、事件和住宿选项。

**我们如何使用Tecton构建惊人的个性化上下文?**

Tecton已经开发了一个功能平台来整合不同的业务数据源。您可以轻松创建和管理我们需要提供推荐算法的个性化上下文。该功能平台采用候选者和相关用户数据,并从像Milvus这样的向量数据库中检索上下文化候选者。

个性化上下文可以在四个广泛的层次上构建和管理。

0级:基础

这是基础层或起点,没有额外的信息。下面的图表显示了零上下文信息下RAG的工作方式。

1级:批量上下文

下一级别提供历史数据,如旅行历史、喜爱的活动等。实现这一级别是具有挑战性的,因为您必须构建管道以从不同的仓库或数据湖中检索和连接数据。您还需要创建历史评估数据集以进行基准测试和开发。

Tecton的功能平台简化了构建批量上下文的过程。您可以从简单的上下文定义开始,例如“这个用户过去访问过的最后五个地方是什么?”该平台还提供了一个Python SDK来编码您的定义,并支持实时读取和评估数据。

在这个阶段,您的推荐LLM可以从历史上下文中获得见解并提供建议。例如,如果用户过去访问了许多历史遗址,它会建议参观古都京都的寺庙。

2级:批量+流数据上下文

添加有关用户的流信息,例如他们观看和阅读的电影、视频和博客,可以帮助我们的模型了解他们当前的兴趣。这种流信息可能包括用户的搜索数据、购买数据或网页上的会话交互。

这里的挑战是整合流数据管道并将其生产化。在大规模实施时,模型构建和实时推理的成本可能更高。

Tecton简化了构建流上下文的过程。例如,它从一个简单的上下文定义开始:“在过去的一小时内,用户观看了哪些主题的视频?”这可以编码到平台的Python SDK中。我们可以测试它,将其部署到生产中,并实时使用它。在这个阶段的推荐比前一阶段明显更好。例如,如果用户一直在搜索前往日本的航班并且喜欢美食,LLM将在日本策划一次用餐体验。

3级:批量+流数据+实时上下文

下一个阶段是引入实时数据以获得高质量的信号。这种上下文可以帮助您的模型更好地理解用户意图。这些数据包括用户的搜索查询和实时查找其他应用程序中的数据。例如,我们必须查找实时航班价格以建议最便宜的选项。

最大的挑战是整合第三方实时数据源和管理速度与成本之间的权衡。有了实时个性化推荐,用户会发现它非常有价值,因为它可以节省他们单独进行研究的时间。

您还可以在此之上添加反馈级别的上下文。用户提供的推荐反馈可以帮助模型朝着正确的方向前进。

**结论**

上下文可以在许多情况下增强AI个性化,如量身定制的购物体验、构建聊天机器人、提供个人理财建议或推荐新电影。更高级别的个性化改善了产品体验,但构建的难度也相应增加。

RAG是为LLMs提供额外的特定领域信息以获得更好和更相关信息的重要技术。它也是许多以用户为中心的GenAI产品的长期客户保留的关键。

标准RAG包括一个由向量数据库驱动的检索器和一个LLM生成器。所有额外的信息都存储在像Milvus这样的向量数据库中,LLM根据检索到的与用户查询相关的信息生成答案。

尽管在解决幻觉方面有效,但标准RAG系统在提供超个性化推荐等用例中存在不足。这是因为检索到的顶级候选者可能没有更多关于特定用户喜好和不喜欢的个性化上下文。

Tecton提供了一种解决方案,为LLMs组装个性化上下文,简化了公司的流程。然而,仍然存在重大挑战,如版本控制、模型治理和调试以找到根本原因。

有关此主题的更多信息,请观看Mike的聚会视频录像。

  • Abdelrahman Elgendy

    Abdelrahman Elgendy

    Freelancer Technical Writer

    准备好开始了吗?

    立刻创建 Zilliz Cloud 集群,存储和检索您的向量。

    免费试用 Zilliz Cloud