大模型开发--文搞懂LangChain(三):Retrieva

在这里插入图片描述

Retrieval

在这里插入图片描述

在这里插入图片描述

LangChain通过其Retrieval(检索)组件,简化了检索增强生成(RAG)过程中外部数据的检索与管理,为大型语言模型(LLM)应用高效地提供了用户特定的数据。

  • 高效检索:快速准确地从大量数据中检索出相关信息。

  • 灵活集成:适应不同数据源和数据格式的检索需求。

  • 可扩展性:能够应对不断增长的数据量和查询负载。

Retrieval Introduction

Retrieval 由几个部分组成。

  • Document loaders:负责从各种数据源加载数据,并将其格式化为“文档”(包含文本和相关元数据)。

  • Text Splitters:用于对加载的文档进行转换,以适应应用程序的需求。

  • Text embedding models:用于将文本转换为向量表示,这使得可以在向量空间中进行语义搜索等操作。

  • Vector stores:负责存储嵌入向量,并执行向量搜索。

  • Retrievers:是一个接口,它根据非结构化查询返回文档。

  • Indexing:索引API允许您从任何数据源加载并保持文档与向量存储的同步。

Retrieval 组成部分

Retrieval能干什么?

Retrieval能够高效地处理用户查询并从多个数据源中检索相关信息。

LangChain的数据索引是一个将原始数据转化为可高效检索格式的过程。

  • 数据提取:从各类数据源中收集并整理出关键信息。

  • 向量化(Embedding):将文本数据转换为数值向量,以捕获其语义信息。

  • 创建索引:使用向量构建高效索引结构,支持快速查询和检索。

数据索引-检索-生成

许多大型语言模型(LLM)应用需要用户特定的数据,这些数据并不是模型训练集的一部分。实现这一点的主要方法是通过检索增强生成(RAG)。

检索增强生成(RAG)的工作流程,从用户的查询开始,经过向量数据库的检索,到提示填充,最后生成回应。

  1. 检索(Retrieval):
  • 目的:从大量文档或知识库中检索与用户查询或任务最相关的信息。

  • 方法:使用信息检索技术,如倒排索引、向量搜索(如基于BERT的句向量搜索)或密集向量检索等,来查找与用户输入最相似的文档或段落。

  • 输出:一组与用户查询高度相关的文档或段落。

  1. 增强(Augmentation):
  • 目的:将检索到的信息有效地整合到生成过程中,以丰富模型的输出。

  • 方法:可以通过多种方式实现增强,包括简单的拼接、注意力机制(如交叉注意力)、记忆网络或更复杂的融合策略。

  • 输出:一个结合了原始输入和检索到的信息的增强表示,用于后续的生成步骤。

  1. 生成(Generation):
  • 目的:基于增强后的信息,生成符合用户意图和查询条件的自然语言输出。

  • 方法:使用条件语言模型(如Transformer架构中的解码器)来生成文本。生成过程可以是自回归的(即逐个词或逐个标记地生成文本),也可以是其他生成策略。

  • 输出:最终生成的文本,它结合了用户特定的数据和模型的生成能力。

检索增强生成 (RAG)的工作流程

在这里插入图片描述

** Retrieval的工作流程:** 从指定来源获取并读取文档,经过预处理和向量化后,将文档存储并索引化,最终根据用户查询进行高效搜索并返回相关结果。

Retrieval流程包含以下六个核心步骤:

  • Source(来源)

  • 关键词:获取,表示从各种来源获取文档或数据。

  • Load(加载)

  • 关键词:读取,代表从来源中加载并读取文档或数据的过程。

  • Transform(转换)

  • 关键词:预处理,表示对加载的文档或数据进行清洗、格式化和转换,以适应后续步骤。

  • Embed(嵌入)

  • 关键词:向量化,代表将文档或数据转换为向量表示,以捕捉其语义信息。

  • Store(存储)

  • 关键词:索引化,表示将嵌入后的向量存储在数据库中,并建立索引以优化检索性能。

  • Retrieve(检索)

  • 关键词:搜索,代表根据用户查询从存储的向量数据库中检索相关文档或数据的过程。

Retrieval的工作流程
Retrieval的核心组件: Retrieval的六个核心组件共同协作,实现文档的高效加载、精确拆分、语义嵌入、向量存储、智能检索及优化索引,为各类应用场景提供强大且灵活的文档处理与检索能力。

LangChain文档检索和处理组成部分:

一、文档加载 (Document Loaders)

  • 功能:从多种来源加载文档。

  • 特性:支持100+加载器,与AirByte、Unstructured等集成。

  • 应用:加载HTML、PDF、代码等,来源包括私有S3桶、公共网站等。

二、文本拆分 (Text Splitting)

  • 功能:将大文档拆分为小片段,以便更精确地检索相关内容。

  • 特性:提供多种拆分算法,优化特定文档类型(如代码、Markdown)。

三、文本嵌入模型 (Text Embedding Models)

  • 功能:为文档创建语义嵌入,以快速找到相似文本。

  • 特性:支持25+嵌入提供商和方法,包括开源和专有API。

  • 优点:标准接口,方便模型切换。

四、向量存储 (Vector Stores)

  • 功能:高效存储和搜索文档嵌入。

  • 特性:支持50+向量存储解决方案,包括开源和云托管选项。

  • 优点:标准接口,轻松切换存储方案。

五、检索器 (Retrievers)

  • 功能:从数据库中检索文档。

  • 特性:支持多种检索算法,包括语义搜索和高级算法(如父文档检索器、自查询检索器、集成检索器)。

  • 应用:提高检索性能和准确性。

六、索引 (Indexing)

  • 功能:将数据源同步到向量存储,避免重复和冗余。

  • 特性:LangChain索引API,优化存储和检索过程。

  • 优点:节省时间和成本,改善搜索结果质量。

RetrievalVector Stores

在这里插入图片描述

LangChain使用RAG技术构建问答(Q&A)聊天机器人的介绍和说明,包括其架构、组件以及一些构建和使用这些应用程序的指南。

架构: 问答(Q&A)聊天机器人的架构通常包括两个主要部分:索引和检索与生成。

一、索引:

数据加载:首先,需要从各种源加载数据。这些数据可以是文本文件、数据库、网页等。加载数据的过程需要使用适当的加载器(如DocumentLoaders),以便将数据以适合后续处理的形式读入系统。

数据拆分:加载后的数据通常需要被拆分成较小的块或段落。这是因为大型文档难以直接搜索,并且可能无法适应模型的有限上下文窗口。拆分可以使用文本拆分器(Text Splitters)完成,它们将文档分割成更易于管理和搜索的小块。

存储与索引:拆分后的数据需要存储在可以高效检索的地方。通常,这涉及使用向量存储(VectorStore)和嵌入模型(Embeddings)。向量存储允许将数据表示为高维空间中的点,而嵌入模型则用于将这些点映射到向量空间中,以便进行相似性搜索和检索。

索引

二、检索与生成:

检索:当用户输入问题时,系统需要检索与问题最相关的数据块。这通常通过使用检索器(Retriever)完成,它根据用户输入和存储在向量存储中的数据之间的相似性来检索最相关的数据。

生成:检索到的数据被传递给一个聊天模型(ChatModel)或大型语言模型(LLM),该模型使用问题和检索到的数据作为输入来生成答案。模型使用适当的提示(Prompt)来指导生成过程,以确保产生的回答与问题和检索到的数据相关。

检索与生成

组件: 问答(Q&A)聊天机器人的关键组件包括:

  1. DocumentLoaders:用于从各种源加载数据的组件。

  2. Text Splitters:将大型文档拆分为较小块的组件。

  3. VectorStore 和 Embeddings:用于存储和索引拆分后的数据,并支持相似性搜索和检索的组件。

  4. Retriever:根据用户输入检索最相关数据块的组件。

  5. ChatModel / LLM:使用检索到的数据和用户问题生成答案的模型。

构建和使用指南

  1. 快速入门:建议从快速入门指南开始,以了解如何设置和使用问答聊天机器人的基本功能。这通常涉及安装必要的库、配置索引和检索组件以及运行示例代码。

  2. 返回源文档:了解如何在生成答案时返回使用的源文档。这对于提供答案的上下文和验证答案的准确性非常有用。

  3. 流式处理:学习如何流式传输最终答案以及中间步骤。这对于处理大型数据集或需要逐步构建答案的复杂查询特别有用。

  4. 添加聊天历史:了解如何将聊天历史添加到问答应用程序中。这可以提高用户体验,允许用户在对话中引用先前的问题和答案。

  5. 每个用户的检索:如果每个用户都有自己的私有数据,需要了解如何为每个用户执行独立的检索操作。这涉及在索引和检索过程中考虑用户身份和权限。

  6. 使用代理:了解如何使用代理来增强问答功能。代理可以提供额外的上下文、执行更复杂的任务或与其他系统进行交互。

  7. 使用本地模型:对于需要更高性能或隐私要求的应用程序,了解如何使用本地模型进行问答操作。这涉及在本地环境中部署和运行模型,而不是依赖于云服务或外部API。

在大模型时代,我们如何有效的去学习大模型?

现如今大模型岗位需求越来越大,但是相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
在这里插入图片描述

掌握大模型技术你还能拥有更多可能性

• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;

• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;

• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;

• 更优质的项目可以为未来创新创业提供基石。

可能大家都想学习AI大模型技术,也_想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把都打包整理好,希望能够真正帮助到大家_。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,下面是我整理好的一套完整的学习路线,希望能够帮助到你们学习AI大模型。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

三、AI大模型经典PDF书籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四、AI大模型各大场景实战案例

在这里插入图片描述

结语

【一一AGI大模型学习 所有资源获取处(无偿领取)一一】
所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值