和风网标志

Amazon SageMaker 上的高级 RAG 模式 |亚马逊网络服务

日期:

如今,所有行业的客户(无论是金融服务、医疗保健和生命科学、旅游和酒店、媒体和娱乐、电信、软件即服务 (SaaS),甚至专有模型提供商)都在使用大型语言模型 (LLM) 来构建问答 (QnA) 聊天机器人、搜索引擎和知识库等应用程序。这些 生成式人工智能 应用程序不仅用于自动化现有业务流程,还能够改变使用这些应用程序的客户的体验。随着法学硕士(LLM)的进步,例如 Mixtral-8x7B 指令,架构的衍生品,例如 专家组合(教育部),客户不断寻找提高生成式人工智能应用程序性能和准确性的方法,同时允许他们有效地使用更广泛的封闭和开源模型。

通常使用多种技术来提高法学硕士输出的准确性和性能,例如使用 参数高效微调(PEFT), 来自人类反馈的强化学习 (RLHF),并表演 知识升华。但是,在构建生成式 AI 应用程序时,您可以使用替代解决方案,该解决方案允许动态合并外部知识,并允许您控制用于生成的信息,而无需微调现有的基础模型。这就是检索增强生成(RAG)的用武之地,特别是针对生成式人工智能应用程序,而不是我们讨论过的更昂贵、更强大的微调替代方案。如果您在日常任务中实施复杂的 RAG 应用程序,您可能会遇到 RAG 系统的常见挑战,例如检索不准确、文档大小和复杂性增加以及上下文溢出,这可能会严重影响生成答案的质量和可靠性。

这篇文章讨论了使用 LangChain 和父文档检索器等工具以及上下文压缩等技术来提高响应准确性的 RAG 模式,以便开发人员能够改进现有的生成式 AI 应用程序。

解决方案概述

在这篇文章中,我们演示了如何使用 Mixtral-8x7B Instruct 文本生成与 BGE Large En 嵌入模型相结合,使用父文档检索器工具和上下文压缩技术在 Amazon SageMaker 笔记本上高效构建 RAG QnA 系统。下图说明了该解决方案的架构。

您只需点击几下即可部署此解决方案 亚马逊SageMaker JumpStart,一个完全托管的平台,为内容编写、代码生成、问答、文案写作、摘要、分类和信息检索等各种用例提供​​最先进的基础模型。它提供了一系列预先训练的模型,您可以快速轻松地部署这些模型,从而加速机器学习 (ML) 应用程序的开发和部署。 SageMaker JumpStart 的关键组件之一是模型中心,它提供了大量预训练模型,例如 Mixtral-8x7B,适用于各种任务。

Mixtral-8x7B 使用 MoE 架构。这种架构允许神经网络的不同部分专注于不同的任务,有效地将工作负载分配给多个专家。与传统架构相比,这种方法可以高效地训练和部署更大的模型。

MoE 架构的主要优势之一是其可扩展性。通过将工作负载分配给多个专家,MoE 模型可以在更大的数据集上进行训练,并获得比相同规模的传统模型更好的性能。此外,MoE 模型在推理过程中可以更加高效,因为对于给定的输入只需要激活一部分专家。

有关 AWS 上的 Mixtral-8x7B Instruct 的更多信息,请参阅 Mixtral-8x7B 现已在 Amazon SageMaker JumpStart 中提供。 Mixtral-8x7B 模型在宽松的 Apache 2.0 许可证下提供,可以不受限制地使用。

在这篇文章中,我们讨论如何使用 浪链 创建有效且更高效的 RAG 应用程序。 LangChain 是一个开源 Python 库,旨在使用 LLM 构建应用程序。它提供了一个模块化且灵活的框架,用于将法学硕士与其他组件(例如知识库、检索系统和其他人工智能工具)相结合,以创建强大且可定制的应用程序。

我们将逐步介绍如何使用 Mixtral-8x7B 在 SageMaker 上构建 RAG 管道。我们将 Mixtral-8x7B Instruct 文本生成模型与 BGE Large En 嵌入模型结合使用,在 SageMaker 笔记本上使用 RAG 创建高效的 QnA 系统。我们使用 ml.t3.medium 实例来演示如何通过 SageMaker JumpStart 部署 LLM,可以通过 SageMaker 生成的 API 端点进行访问。此设置允许使用 LangChain 探索、实验和优化先进的 RAG 技术。我们还说明了将 FAISS Embedding 存储集成到 RAG 工作流程中,强调其在存储和检索嵌入以增强系统性能方面的作用。

我们对 SageMaker Notebook 进行了简要演练。有关更详细的分步说明,请参阅 SageMaker Jumpstart GitHub 存储库上使用 Mixtral 的高级 RAG 模式.

对高级 RAG 模式的需求

高级 RAG 模式对于提高法学硕士当前处理、理解和生成类人文本的能力至关重要。随着文档的大小和复杂性的增加,在单个嵌入中表示文档的多个方面可能会导致特异性的丧失。虽然捕捉文档的一般本质很重要,但识别和表示其中的不同子上下文也同样重要。这是您在处理较大文档时经常面临的挑战。 RAG 的另一个挑战是,在检索时,您不知道文档存储系统在摄取时将处理的特定查询。这可能会导致与查询最相关的信息被隐藏在文本中(上下文溢出)。为了减少故障并改进现有的 RAG 架构,您可以使用高级 RAG 模式(父文档检索器和上下文压缩)来减少检索错误、提高答案质量并支持复杂的问题处理。

通过本文讨论的技术,您可以解决与外部知识检索和集成相关的关键挑战,使您的应用程序能够提供更精确和上下文感知的响应。

在以下部分中,我们将探讨如何 父文档检索器上下文压缩 可以帮助您解决我们讨论过的一些问题。

父文档检索器

在上一节中,我们强调了 RAG 应用程序在处理大量文档时遇到的挑战。为了应对这些挑战, 父文档检索器 对传入文档进行分类和指定 父文件。这些文档因其综合性而受到认可,但并未以其原始形式直接用于嵌入。父文档检索器不是将整个文档压缩为单个嵌入,而是将这些父文档分解为 子文件。每个子文档都从更广泛的父文档中捕获不同的方面或主题。在识别这些子片段之后,将单独的嵌入分配给每个子片段,捕获它们特定的主题本质(参见下图)。在检索期间,调用父文档。该技术提供了有针对性且广泛的搜索能力,为法学硕士提供了更广阔的视角。父文档检索器为法学硕士提供了双重优势:子文档嵌入的特殊性用于精确和相关的信息检索,再加上调用父文档以生成响应,这通过分层且全面的上下文丰富了法学硕士的输出。

上下文压缩

为了解决前面讨论的上下文溢出问题,您可以使用 上下文压缩 根据查询的上下文压缩和过滤检索到的文档,因此仅保留和处理相关信息。这是通过组合用于初始文档获取的基本检索器和用于通过削减文档内容或完全根据相关性排除它们来精炼这些文档的文档压缩器来实现的,如下图所示。这种由上下文压缩检索器推动的简化方法通过提供一种从大量信息中仅提取和利用重要信息的方法,极大地提高了 RAG 应用程序的效率。它正面解决了信息过载和不相关数据处理的问题,从而提高了响应质量、更具成本效益的法学硕士操作以及更顺畅的整体检索过程。从本质上讲,它是一个根据当前查询定制信息的过滤器,使其成为旨在优化 RAG 应用程序以获得更好性能和用户满意度的开发人员急需的工具。

先决条件

如果您是 SageMaker 新手,请参阅 Amazon SageMaker 开发指南.

在开始使用解决方案之前, 创建一个 AWS 账户。创建 AWS 账户时,您将获得一个单点登录 (SSO) 身份,该身份可以完全访问该账户中的所有 AWS 服务和资源。该身份称为 AWS 账户 根用户.

登录 AWS管理控制台 使用您用于创建账户的电子邮件地址和密码,您可以完全访问账户中的所有 AWS 资源。我们强烈建议您不要使用 root 用户执行日常任务,即使是管理任务。

相反,坚持 安全最佳实践 in AWS身份和访问管理 (IAM),以及 创建管理用户和组。然后安全地锁定根用户凭据并使用它们仅执行少数帐户和服务管理任务。

Mixtral-8x7b 模型需要 ml.g5.48xlarge 实例。 SageMaker JumpStart 提供了一种访问和部署 100 多种不同开源和第三方基础模型的简化方法。为了 从 SageMaker JumpStart 启动端点以托管 Mixtral-8x7B,您可能需要请求增加服务配额才能访问 ml.g5.48xlarge 实例以供端点使用。你可以 请求服务配额增加 通过控制台, AWS命令行界面 (AWS CLI) 或允许访问这些附加资源的 API。

设置 SageMaker 笔记本实例并安装依赖项

首先,创建一个 SageMaker 笔记本实例并安装所需的依赖项。请参阅 GitHub回购 以确保设置成功。设置笔记本实例后,您可以部署模型。

您还可以在您首选的集成开发环境 (IDE) 上本地运行笔记本。确保您已安装 Jupyter 笔记本实验室。

部署模型

在 SageMaker JumpStart 上部署 Mixtral-8X7B Instruct LLM 模型:

# Import the JumpStartModel class from the SageMaker JumpStart library
from sagemaker.jumpstart.model import JumpStartModel

# Specify the model ID for the HuggingFace Mixtral 8x7b Instruct LLM model
model_id = "huggingface-llm-mixtral-8x7b-instruct"
model = JumpStartModel(model_id=model_id)
llm_predictor = model.deploy()

在 SageMaker JumpStart 上部署 BGE Large En 嵌入模型:

# Specify the model ID for the HuggingFace BGE Large EN Embedding model
model_id = "huggingface-sentencesimilarity-bge-large-en"
text_embedding_model = JumpStartModel(model_id=model_id)
embedding_predictor = text_embedding_model.deploy()

设置浪链

导入所有必要的库并部署 Mixtral-8x7B 模型和 BGE Large En 嵌入模型后,您现在可以设置 LangChain。有关分步说明,请参阅 GitHub回购.

资料准备

在这篇文章中,我们使用亚马逊几年来的致股东信作为文本语料库来执行 QnA。有关准备数据的更详细步骤,请参阅 GitHub回购.

问题回答

准备好数据后,您可以使用 LangChain 提供的包装器,它包装矢量存储并获取 LLM 的输入。该包装器执行以下步骤:

  1. 采取输入问题。
  2. 创建问题嵌入。
  3. 获取相关文件。
  4. 将文档和问题合并到提示中。
  5. 使用提示调用模型并以可读的方式生成答案。

现在矢量存储已就位,您可以开始提问:

prompt_template = """<s>[INST]
{query}
[INST]"""
PROMPT = PromptTemplate(
    template=prompt_template, input_variables=["query"]
)
query = "How has AWS evolved?"
answer = wrapper_store_faiss.query(question=PROMPT.format(query=query), llm=llm)
print(answer)
AWS, or Amazon Web Services, has evolved significantly since its initial launch in 2006. It started as a feature-poor service, offering only one instance size, in one data center, in one region of the world, with Linux operating system instances only. There was no monitoring, load balancing, auto-scaling, or persistent storage at the time. However, AWS had a successful launch and has since grown into a multi-billion-dollar service.

Over the years, AWS has added numerous features and services, with over 3,300 new ones launched in 2022 alone. They have expanded their offerings to include Windows, monitoring, load balancing, auto-scaling, and persistent storage. AWS has also made significant investments in long-term inventions that have changed what's possible in technology infrastructure.

One example of this is their investment in chip development. AWS has also seen a robust new customer pipeline and active migrations, with many companies opting to move to AWS for the agility, innovation, cost-efficiency, and security benefits it offers. AWS has transformed how customers, from start-ups to multinational companies to public sector organizations, manage their technology infrastructure.

常规猎犬链

在前面的场景中,我们探索了快速、直接的方法来获得您的问题的上下文感知答案。现在,让我们在 RetrievalQA 的帮助下看看一个更具可定制性的选项,您可以在其中使用 chain_type 参数自定义如何将获取的文档添加到提示中。另外,为了控制应检索多少相关文档,您可以更改以下代码中的 k 参数以查看不同的输出。在许多情况下,您可能想知道法学硕士使用哪些源文档来生成答案。您可以使用以下命令在输出中获取这些文档 return_source_documents,它返回添加到 LLM 提示上下文中的文档。 RetrievalQA 还允许您提供特定于模型的自定义提示模板。

from langchain.chains import RetrievalQA

prompt_template = """<s>[INST]
Use the following pieces of context to provide a concise answer to the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.

{context}

Question: {question}

[INST]"""
PROMPT = PromptTemplate(
    template=prompt_template, input_variables=["context", "question"]
)

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore_faiss.as_retriever(
        search_type="similarity", search_kwargs={"k": 3}
    ),
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

我们问一个问题:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS (Amazon Web Services) evolved from an initially unprofitable investment to an $85B annual revenue run rate business with strong profitability, offering a wide range of services and features, and becoming a significant part of Amazon's portfolio. Despite facing skepticism and short-term headwinds, AWS continued to innovate, attract new customers, and migrate active customers, offering benefits such as agility, innovation, cost-efficiency, and security. AWS also expanded its long-term investments, including chip development, to provide new capabilities and change what's possible for its customers.

父文档检索器链

让我们看看更高级的 RAG 选项 父文档检索器。在进行文档检索时,您可能会遇到存储小块文档以实现准确嵌入和存储较大文档以保留更多上下文之间的权衡。父文档检索器通过分割和存储小数据块来实现这种平衡。

我们使用一个 parent_splitter 将原始文档分成更大的块,称为父文档和 child_splitter 从原始文档创建较小的子文档:

# This text splitter is used to create the parent documents
parent_splitter = RecursiveCharacterTextSplitter(chunk_size=2000)

# This text splitter is used to create the child documents
# It should create documents smaller than the parent
child_splitter = RecursiveCharacterTextSplitter(chunk_size=400)

# The vectorstore to use to index the child chunks
vectorstore_faiss = FAISS.from_documents(
    child_splitter.split_documents(documents),
    sagemaker_embeddings,
)

然后使用嵌入在向量存储中对子文档进行索引。这使得能够基于相似性有效检索相关子文档。为了检索相关信息,父文档检索器首先从向量存储中获取子文档。然后,它查找这些子文档的父 ID,并返回相应的较大父文档。

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=retriever,
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

我们问一个问题:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS (Amazon Web Services) started with a feature-poor initial launch of the Elastic Compute Cloud (EC2) service in 2006, providing only one instance size, in one data center, in one region of the world, with Linux operating system instances only, and without many key features like monitoring, load balancing, auto-scaling, or persistent storage. However, AWS's success allowed them to quickly iterate and add the missing capabilities, eventually expanding to offer various flavors, sizes, and optimizations of compute, storage, and networking, as well as developing their own chips (Graviton) to push price and performance further. AWS's iterative innovation process required significant investments in financial and people resources over 20 years, often well in advance of when it would pay out, to meet customer needs and improve long-term customer experiences, loyalty, and returns for shareholders.

上下文压缩链

让我们看看另一个高级 RAG 选项,称为 上下文压缩。检索的一项挑战是,当您将数据提取到系统中时,我们通常不知道文档存储系统将面临的具体查询。这意味着与查询最相关的信息可能被隐藏在包含大量不相关文本的文档中。通过您的申请传递完整的文件可能会导致更昂贵的法学硕士通话和更差的响应。

上下文压缩检索器解决了从文档存储系统检索相关信息的挑战,其中相关数据可能隐藏在包含大量文本的文档中。通过根据给定的查询上下文压缩和过滤检索到的文档,仅返回最相关的信息。

要使用上下文压缩检索器,您需要:

  • 基础寻回犬 – 这是根据查询从存储系统获取文档的初始检索器
  • 文档压缩器 – 该组件获取最初检索到的文档,并通过减少单个文档的内容或完全删除不相关的文档来缩短它们,使用查询上下文来确定相关性

使用 LLM 链提取器添加上下文压缩

首先,用一个包裹你的基础猎犬 ContextualCompressionRetriever。您将添加一个 法学硕士链提取器,它将迭代最初返回的文档,并从每个文档中仅提取与查询相关的内容。

from langchain.retrievers import ContextualCompressionRetrieverfrom langchain.retrievers.document_compressors import LLMChainExtractor

text_splitter = RecursiveCharacterTextSplitter(
    # Set a really small chunk size, just to show.
    chunk_size=1000,
    chunk_overlap=100,
)

docs = text_splitter.split_documents(documents)
retriever = FAISS.from_documents(
    docs,
    sagemaker_embeddings,
).as_retriever()

compressor = LLMChainExtractor.from_llm(llm)
compression_retriever = ContextualCompressionRetriever(
    base_compressor=compressor, base_retriever=retriever
)

compressed_docs = compression_retriever.get_relevant_documents(
    "How was Amazon impacted by COVID-19?"
)

使用以下命令初始化链 ContextualCompressionRetrieverLLMChainExtractor 并通过提示传递 chain_type_kwargs 论据。

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=compression_retriever,
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

我们问一个问题:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS evolved by starting as a small project inside Amazon, requiring significant capital investment and facing skepticism from both inside and outside the company. However, AWS had a head start on potential competitors and believed in the value it could bring to customers and Amazon. AWS made a long-term commitment to continue investing, resulting in over 3,300 new features and services launched in 2022. AWS has transformed how customers manage their technology infrastructure and has become an $85B annual revenue run rate business with strong profitability. AWS has also continuously improved its offerings, such as enhancing EC2 with additional features and services after its initial launch.

使用 LLM 链过滤器过滤文档

法学硕士链过滤器 是一个稍微简单但更强大的压缩器,它使用 LLM 链来决定过滤掉最初检索到的文档以及返回哪些文档,而无需操作文档内容:

from langchain.retrievers.document_compressors import LLMChainFilter

_filter = LLMChainFilter.from_llm(llm)
compression_retriever = ContextualCompressionRetriever(
    base_compressor=_filter, base_retriever=retriever
)

compressed_docs = compression_retriever.get_relevant_documents(
    "How was Amazon impacted by COVID-19?"
)
print(compressed_docs)

使用以下命令初始化链 ContextualCompressionRetrieverLLMChainFilter 并通过提示传递 chain_type_kwargs 论据。

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=compression_retriever,
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

我们问一个问题:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS (Amazon Web Services) evolved by initially launching feature-poor but iterating quickly based on customer feedback to add necessary capabilities. This approach allowed AWS to launch EC2 in 2006 with limited features and then continuously add new functionalities, such as additional instance sizes, data centers, regions, operating system options, monitoring tools, load balancing, auto-scaling, and persistent storage. Over time, AWS transformed from a feature-poor service to a multi-billion-dollar business by focusing on customer needs, agility, innovation, cost-efficiency, and security. AWS now has an $85B annual revenue run rate and offers over 3,300 new features and services each year, catering to a wide range of customers from start-ups to multinational companies and public sector organizations.

比较结果

下表比较了基于技术的不同查询的结果。

技术 查询1 查询2 竞品对比
AWS 是如何发展的? 亚马逊为何成功?
常规检索器链输出 AWS(亚马逊网络服务)从最初无利可图的投资发展成为年收入运行率高达 85B 美元且盈利能力强劲的业务,提供广泛的服务和功能,并成为亚马逊产品组合的重要组成部分。尽管面临质疑和短期阻力,AWS 仍继续创新、吸引新客户并迁移活跃客户,提供敏捷性、创新、成本效益和安全性等优势。 AWS 还扩大了其长期投资,包括芯片开发,以提供新功能并改变客户的可能性。 亚马逊的成功得益于其不断创新和扩展到新领域,例如技术基础设施服务、数字阅读设备、语音驱动的个人助理以及第三方市场等新商业模式。从其履行和运输网络的快速扩张可以看出,其快速扩展业务的能力也有助于其成功。此外,亚马逊注重流程优化和效率提升,从而提高了生产力并降低了成本。亚马逊商业的例子凸显了该公司在不同领域利用其电子商务和物流优势的能力。 根据常规检索器链的响应,我们注意到,尽管它提供了很长的答案,但它遇到了上下文溢出的问题,并且未能提及语料库中有关响应所提供查询的任何重要细节。常规检索链无法捕捉深度或上下文洞察的细微差别,可能会丢失文档的关键方面。
父文档检索器输出 AWS(亚马逊网络服务)于 2 年首次推出功能贫乏的弹性计算云 (EC2006) 服务,仅在世界某个地区的一个数据中心提供一种实例大小,且仅使用 Linux 操作系统实例,并且没有许多关键功能,例如监控、负载平衡、自动缩放或持久存储。然而,AWS 的成功使他们能够快速迭代并添加缺失的功能,最终扩展到提供各种风格、大小以及计算、存储和网络的优化,并开发自己的芯片 (Graviton) 以进一步提高价格和性能。 AWS 的迭代创新流程需要 20 多年的时间对财务和人力资源进行大量投资,通常远远早于支出,以满足客户需求并改善长期客户体验、忠诚度和股东回报。 亚马逊的成功得益于其不断创新、适应不断变化的市场条件并满足各个细分市场客户需求的能力。这一点在 Amazon Business 的成功中得到了体现,该公司通过为企业客户提供选择、价值和便利,年销售额已增长至约 35B 美元。亚马逊在电子商务和物流能力方面的投资也促成了 Buy with Prime 等服务的创建,该服务可以帮助拥有直接面向消费者网站的商家推动从浏览到购买的转化。 父文档检索器更深入地研究了 AWS 增长战略的细节,包括根据客户反馈添加新功能的迭代过程,以及从功能贫乏的初始发布到占据市场主导地位的详细过程,同时提供上下文丰富的响应。回应涵盖了广泛的方面,从技术创新和市场战略到组织效率和客户关注点,提供了对成功因素的整体看法并提供了示例。这可以归因于父文档检索器具有针对性且广泛的搜索功能。
LLM 链提取器:上下文压缩输出 AWS 最初是亚马逊内部的一个小项目,需要大量的资本投资,并面临着来自公司内部和外部的质疑。然而,AWS 相对于潜在竞争对手处于领先地位,并相信它能为客户和亚马逊带来的价值。 AWS 做出了持续投资的长期承诺,从而在 3,300 年推出了 2022 多项新功能和服务。AWS 改变了客户管理其技术基础设施的方式,并已成为年收入 85B 美元、盈利能力强劲的企业。 AWS 还不断改进其产品,例如在首次推出后通过附加功能和服务增强 EC2。 根据所提供的背景,亚马逊的成功可归因于其从图书销售平台到拥有充满活力的第三方卖家生态系统的全球市场的战略扩张、对 AWS 的早期投资、引入 Kindle 和 Alexa 的创新以及大幅增长2019 年至 2022 年的年收入增加。这种增长导致了履行中心占地面积的扩大、最后一英里运输网络的创建以及新的分拣中心网络的建设,这些网络针对生产力和成本降低进行了优化。 LLM链提取器在全面覆盖要点和避免不必要的深度之间保持平衡。它会动态调整查询的上下文,因此输出是直接相关且全面的。
LLM 链过滤器:上下文压缩输出 AWS(亚马逊网络服务)最初推出的功能贫乏,但根据客户反馈快速迭代以添加必要的功能,从而不断发展。这种方法使 AWS 能够在 2 年推出功能有限的 EC2006,然后不断添加新功能,例如额外的实例大小、数据中心、区域、操作系统选项、监控工具、负载平衡、自动扩展和持久存储。随着时间的推移,AWS 通过关注客户需求、敏捷性、创新、成本效益和安全性,从功能匮乏的服务转变为价值数十亿美元的业务。 AWS 目前的年收入运行率为 85B 美元,每年提供 3,300 多项新功能和服务,满足从初创企业到跨国公司和公共部门组织的广泛客户需求。 亚马逊的成功得益于其创新的商业模式、持续的技术进步和战略组织变革。该公司不断通过引入新理念来颠覆传统行业,例如各种产品和服务的电子商务平台、第三方市场、云基础设施服务 (AWS)、Kindle 电子阅读器和 Alexa 语音驱动的个人助理。此外,亚马逊还进行了结构性改革以提高效率,例如重组其美国配送网络以降低成本和缩短交货时间,进一步促进其成功。 与 LLM 链提取器类似,LLM 链过滤器可确保虽然涵盖了关键点,但对于寻求简洁和上下文答案的客户来说,输出是有效的。

通过比较这些不同的技术,我们可以看到,在详细描述 AWS 从简单服务到复杂的数十亿美元实体的转变,或解释亚马逊的战略成功等上下文中,常规检索器链缺乏更复杂的技术所提供的精确度,导致信息的针对性较差。尽管所讨论的先进技术之间几乎没有明显的差异,但它们比常规检索器链提供的信息要丰富得多。

对于医疗保健、电信和金融服务等行业希望在其应用程序中实施 RAG 的客户来说,常规检索器链在提供精度、避免冗余和有效压缩信息方面的局限性使其不太适合满足这些需求。到更先进的父文档检索器和上下文压缩技术。这些技术能够将大量信息提炼成您所需的集中、有影响力的见解,同时帮助提高性价比。

清理

运行完笔记本后,删除您创建的资源,以避免对正在使用的资源产生费用:

# Delete resources
llm_predictor.delete_model()
llm_predictor.delete_endpoint()
embedding_predictor.delete_model()
embedding_predictor.delete_endpoint()

结论

在这篇文章中,我们提出了一个解决方案,允许您实施父文档检索器和上下文压缩链技术,以增强法学硕士处理和生成信息的能力。我们使用 SageMaker JumpStart 提供的 Mixtral-8x7B Instruct 和 BGE Large En 模型测试了这些先进的 RAG 技术。我们还探索了使用持久存储进行嵌入和文档块以及与企业数据存储的集成。

我们所采用的技术不仅改进了法学硕士模型访问和整合外部知识的方式,而且还显着提高了其输出的质量、相关性和效率。通过将大型文本语料库的检索与语言生成功能相结合,这些先进的 RAG 技术使法学硕士能够产生更真实、连贯且适合上下文的响应,从而增强其在各种自然语言处理任务中的性能。

SageMaker JumpStart 是该解决方案的核心。借助 SageMaker JumpStart,您可以访问各种开源和闭源模型,从而简化 ML 入门流程并实现快速实验和部署。要开始部署此解决方案,请导航到 GitHub回购.


作者简介

尼森·维杰斯瓦兰 是 AWS 的解决方案架构师。他的重点领域是生成式 AI 和 AWS AI 加速器。他拥有计算机科学和生物信息学学士学位。 Niithiyn 与 Generative AI GTM 团队密切合作,在多个方面为 AWS 客户提供支持,并加速他们对生成式 AI 的采用。他是达拉斯小牛队的狂热粉丝,喜欢收集运动鞋。

塞巴斯蒂安·布斯蒂略 是 AWS 的解决方案架构师。他专注于人工智能/机器学习技术,对生成式人工智能和计算加速器充满热情。在 AWS,他帮助客户通过生成式 AI 释放商业价值。当他不工作时,他喜欢冲泡一杯完美的精品咖啡,并与妻子一起探索世界。

阿曼多·迪亚兹(Armando Diaz) 是 AWS 的解决方案架构师。他专注于生成人工智能、人工智能/机器学习和数据分析。在 AWS,Armando 帮助客户将尖端的生成式 AI 功能集成到他们的系统中,从而促进创新和竞争优势。当他不工作时,他喜欢与妻子和家人共度时光、徒步旅行和环游世界。

法鲁克·萨比尔博士 是 AWS 的高级人工智能和机器学习专家解决方案架构师。 他拥有德克萨斯大学奥斯汀分校的电气工程博士和硕士学位,以及佐治亚理工学院的计算机科学硕士学位。 他拥有超过 15 年的工作经验,也喜欢教授和指导大学生。 在 AWS,他帮助客户制定和解决他们在数据科学、机器学习、计算机视觉、人工智能、数值优化和相关领域的业务问题。 他和他的家人居住在得克萨斯州达拉斯,喜欢旅行和长途旅行。

马可·普尼奥 是一名解决方案架构师,专注于生成式 AI 策略、应用 AI 解决方案和开展研究以帮助客户在 AWS 上实现超大规模。 Marco 是一位数字原生云顾问,在金融科技、医疗保健和生命科学、软件即服务以及最近的电信行业拥有丰富的经验。他是一位合格的技术专家,对机器学习、人工智能和并购充满热情。 Marco 居住在华盛顿州西雅图,喜欢在空闲时间写作、阅读、锻炼和构建应用程序。

AJ 迪米内 是 AWS 的解决方案架构师。他专注于生成人工智能、无服务器计算和数据分析。他是机器学习技术领域社区的活跃成员/导师,并发表了多篇有关各种 AI/ML 主题的科学论文。他与从初创企业到大型企业的客户合作开发 AWSome 生成式人工智能解决方案。他特别热衷于利用大型语言模型进行高级数据分析,并探索解决现实世界挑战的实际应用程序。工作之余,AJ 喜欢旅行,目前已去过 53 个国家/地区,目标是访问世界上每个国家。

现货图片

最新情报

现货图片