检索增强生成(RAG - retrieval augmented generation)
是自然语言处理中使用的一种技术,它将大型语言模型(也称为基础模型)的力量与外部知识检索系统相结合。这种方法旨在通过让语言模型在生成过程中访问和整合来自外部来源的相关信息,从而提高语言模型的性能。
RAG的核心是利用向量嵌入(vector embeddings)
,即文本的密集数值表示,捕捉语义和上下文信息。这些嵌入用于有效地搜索和检索知识库或语料库中的相关段落或文档。然后将检索到的信息与语言模型的输出相集成,使其能够生成更加知情、准确和上下文相关的响应。
传统的生成模型在回答问题时,完全依赖于预训练过程中所学到的知识,无法实时访问最新的信息或未见过的数据。而 RAG 通过在生成模型生成回答之前,先从数据库、知识库、文档库中检索相关信息,然后将这些信息整合进生成的回答中,增强了生成内容的准确性、相关性和知识丰富度。
通过增强语言模型的生成能力,RAG在问答、对话系统和内容生成等任务中显示出了良好的效果,最终提高了生成文本的质量和连贯性。
用户输入问题或查询:
检索相关信息:
生成增强的回答:
返回答案:
例如,下面的回答,返回了相关领域的知识,存储在S3中:
向量数据库是 Bedrock 中实现 RAG 技术和语义搜索的核心部分。通过向量数据库,可以将文本、图像等数据映射到高维向量空间,并基于向量相似性进行快速检索。不同的向量数据库提供了不同的特性和性能优化,开发者可以根据自身的需求选择合适的解决方案。
这些数据库中的大部分都支持分布式和高扩展性,能够处理大规模的向量数据,确保在海量数据中进行快速检索。通过与 Amazon Bedrock 的集成,用户可以构建强大的 RAG 模型,从知识库或文档中检索最新、最相关的信息,增强自然语言生成任务的性能和质量。
Amazon OpenSearch 是一个高度可扩展的、分布式的搜索和分析引擎,除了传统的基于倒排索引的文本检索功能外,它也支持基于嵌入向量的检索功能。OpenSearch 可以处理大型数据集,并且可以与 Bedrock 模型进行集成,用于文档检索或上下文增强。
Pinecone 是一个专注于高性能向量搜索的云原生向量数据库,它可以与 Amazon Bedrock 集成,帮助检索相关文档用于 RAG 模型。在 Pinecone 中,数据可以被编码成向量,存储在其数据库中,并且能够进行快速、可扩展的相似性搜索。
Embedding Model 是一种将高维的数据(例如文本、图像或音频)转换为低维向量表示的机器学习模型。这种低维向量表示通常被称为embedding(嵌入),并且这些向量可以捕捉数据中的语义或特征关系,使得相似的对象在向量空间中更加接近。
Embedding 是自然语言处理(NLP)、计算机视觉等领域中广泛使用的技术,主要用于将离散的输入数据(如单词、句子或图像)转换为稠密的、连续的向量,以便在神经网络等模型中进行处理。
嵌入模型将输入数据表示为一组浮点数向量。向量表示捕捉了数据的关键特征和模式,并用于后续任务中的相似度计算、分类、聚类等任务。例如,在 NLP 中,单词嵌入(word embedding)模型将每个单词表示为一个实数向量。通过这个表示,可以用向量之间的相似度(如欧几里得距离或余弦相似度)来表示单词之间的关系。
Titan embeddings v1.2
模型转换为embeddings,用于从OpenSearch Service Serverless
索引中查找相似文档。代理/LLM
输出显示给用户。智能问答系统:
对话系统:
文档生成与补全:
法律、医疗等专业领域应用: