男同porn

杉原杏璃作品你的位置:男同porn > 杉原杏璃作品 >

老色哥首发 一文读懂「Lang Chain」

发布日期:2024-09-21 19:41    点击次数:124

老色哥首发 一文读懂「Lang Chain」

一、什么是LangChain?老色哥首发

LangChain是一个弘大的框架,旨在匡助开采东谈主员使用话语模子构建端到端的应用要领。它提供了一套器具、组件和接口,可简化创建由大型话语模子 (LLM) 和聊天模子提供支捏的应用要领的过程。LangChain 不错支吾治理与话语模子的交互,将多个组件结合在统共,并集成出奇的资源,例如 API 和数据库。

官方文档:https://python.langchain.com/en/latest/

华文文档:https://www.langchain.com.cn/

LangChain自己并不开采LLMs,它的核情绪念是为各式LLMs提供通用的接口,镌汰开采者的学习资本,方便开采者快速地开采复杂的LLMs应用。

官方的界说:LangChain是一个基于话语模子开采应用要领的框架。它不错竣事以下应用要领:

数据感知:将话语模子结合到其他数据源

自主性:允许话语模子与其环境进行交互

主要价值在于:

组件化:为使用话语模子提供综合层,以及每个综合层的一组竣事。组件是模块化且易于使用的,不管您是否使用LangChain框架的其余部分。

现成的链:结构化的组件调和,用于完成特定的高等任务

现成的链使得初学变得容易。关于更复杂的应用要领和神秘的用例,组件化使得定制现存链或构建新链变得更容易。

要使用 LangChain,开采东谈主员当先要导入必要的组件和器具,例如 LLMs, chat models, agents, chains, 内存功能。这些组件组合起来创建一个不错意会、处理和反馈用户输入的应用要领。

LangChain 为特定用例提供了多种组件,例如个东谈主助理、文档问答、聊天机器东谈主、查询表格数据、与 API 交互、索取、评估和汇总。

二、模子分类和特色

LangChain model 是一种综合,暗示框架中使用的不同类型的模子。

LangChain 中的模子分类:

LLM(大型话语模子):这些模子将文本字符串当作输入并复返文本字符串当作输出。它们是许多话语模子应用要领的扶持。

聊天模子( Chat Model):聊天模子由话语模子支捏,但具有更结构化的 API。他们将聊天音信列表当作输入并复返聊天音信。这使得治理对话历史纪录和颐养高下文变得容易。

文本镶嵌模子(Text Embedding Models):这些模子将文本当作输入并复返暗示文本镶嵌的浮点列表。这些镶嵌可用于文档检索、聚类和相似性比拟等任务。

LangChain 的特色:

LLM 和辅导:LangChain 使治理辅导、优化它们以及为统共 LLM 创建通用界面变得容易。此外,它还包括一些用于处理 LLM 的方便实用要领。

链(Chain):这些是对 LLM 或其他实用要领的调用序列。LangChain 为链提供标准接口,与各式器具集成,为流行应用提供端到端的链。

数据增强生成:LangChain 使链能够与外部数据源交互以汇集生成设施的数据。例如,它不错匡助转头长文本或使用特定数据源回话问题。

Agents:Agents 让 LLM 作念出沟通活动的决定,采纳这些活动,查验效力,并赓续前进直到责任完成。LangChain 提供了代理的标准接口,多种代理可供采纳,以及端到端的代理示例。

内存:LangChain 有一个标准的内存接口,有助于颐养链或代理调用之间的情状。它还提供了一系列内存竣事和使用内存的链或代理的示例。

评估:很难用传统运筹帷幄评估生成模子。这即是为什么 LangChain 提供辅导和链来匡助开采者我方使用 LLM 评估他们的模子。

三、主要包含组件

图片

Model I/O:治理诳言语模子(Models),过头输入(Prompts)和形式化输出(Output Parsers)

Data connection:治理主要用于成就私域学问(库)的向量数据存储(Vector Stores)、实际数据获取(Document Loaders)和转动(Transformers),以及向量数据查询(Retrievers)

Memory:用于存储和获取 对话历史纪录 的功能模块

Chains:用于串联 Memory ↔️ Model I/O ↔️ Data Connection,以竣事 串行化 的连气儿对话、预计经过

Agents:基于 Chains 进一步串联器具(Tools),从而将诳言语模子的才智和土产货、云处事才智结合

Callbacks:提供了一个回调系统,可结合到 LLM 肯求的各个阶段,便于进行日记纪录、跟踪等数据导流

3.1 Model I/O

模子接入 LLM 的交互组件,用于和不同类型模子完成业务交互,LangChain 将模子分为 LLMS、Chat Model两种模子花式,鉴别通过不同template操作完成三种模子的业务交互。

图片

1. Prompt(Format)

辅导(Prompt)指的是模子的输入,这个输入一般很少是硬编码的,而是从使用特定的模板组件构建而成的,这个模板组件即是 PromptTemplate 辅导模板,不错提供辅导模板当作输入,模板指的是咱们但愿获取谜底的具身体式和蓝图。LangChain 提供了事前盘算推算好的辅导模板,不错用于生成不同类型任务的辅导。当预设的模板无法欢乐条目时,也不错使用自界说的辅导模板。

紫色面具 萝莉

在 LangChain 中,咱们不错笔据需要成就辅导模板,并将其与主链相结合以进行输出预测。此外,LangChain 还提供了输出领会器的功能,用于进一步高超效力。输出领会器的作用是引诱模子输出的形式化花式,以及将输出领会为所需的形式。

LangChain 提供了几个类和函数老色哥首发,使构建和处理辅导变得容易:

PromptTemplate 辅导模板:不错生成文本模版,通过变量参数的体式拼接成完好的语句;

FewShotPromptTemplate 采纳器:将辅导的示例实际同样拼接到语句中,让模子去意会语义含义进而给出效力。

ChatPromptTemplate 聊天辅导模版:以聊天音信当作输入生成完好辅导模版。

2. Predict

花式 1:LLMS

指具备话语意会和生成才智的商用大型话语模子,以文本字符串当作输入,并复返文本字符串当作输出。LangChain 中盘算推算 LLM 类用于与诳言语模子进行接口交互,该类旨在为 LLM 提供商提供标准接口,如 OpenAI、Cohere、Hugging Face。

花式2:Chat Model

聊天模子是话语模子的一个变体,聊天模子以话语模子为基础,其里面使用话语模子,不再以文本字符串为输入和输出,而是将聊天信息列表为输入和输出,他们提供愈加结构化的 API。通过聊天模子不错传递一个或多个音信。

LangChain 刻下支捏四类音信类型:鉴别是 AIMessage、HumanMessage、SystemMessage 和 ChatMessage 。

AIMessage:即是 AI 输出的音信,不错是针对问题的回话

HumanMessage:东谈主类音信即是用户信息,由东谈主给出的信息,如发问;使用 Chat Model 模子就得把系统音信和东谈主类音信放在一个列内外,然后当作 Chat Model 模子的输入

SystemMessage:系统音信是用来设定模子的一种器具,不错用于指定模子具体所处的环境和布景,如脚色演出等;

ChatMessage:Chat 音信不错接受大肆脚色的参数

大多数情况下,只需要处理 HumanMessage、AIMessage 和 SystemMessage 音信类型。此外聊天模子支捏多个音信当作输入。

3. Parser:StructuredOutputParser 输出领会器

对模子生成的效力进行领会和处理的组件。它的主邀功能是将模子生成的文本进行领会,索取有效的信息并进行后续处理。如对模子生成的文本进行领会、索取有效信息、识别实体、分类和过滤效力,以及对生成文本进行后处理,从而使生见效力更易于意会和使用。它在与大型话语模子交互时起到领会和处理效力的作用,增强了模子的应用和可用性。

话语模子输出文本。可是好多时候,可能念念要获取比文本更结构化的信息。这即是输出领会器的作用。即输出领会器是匡助结构化话语模子反馈的类,LangChain 中主要提供的类是 PydanticOutputParser。

3.2 Data connection

买通外部数据的管谈,包含文档加载,文档转机,文本镶嵌,向量存储几个关节,此模块包含用于处理文档的实用器具函数、不同类型的索引,以及不错在链中使用这些索引

图片

LangChain 不错将外部数据和 LLM 进行结合来意会和生成当然话语,其中外部数据不错是土产货文档、数据库等资源,将这些数据进行分片向量化存储于向量存储数据库中,再通过用户的 Prompt 检索向量数据库中的相似信息传递给诳言语模子进行生成和实践 Action。

Document loaders 文档加载器

要点包括了 txt(TextLoader)、csv(CSVLoader),html(UnstructuredHTMLLoader),json(JSONLoader),markdown(UnstructuredMarkdownLoader)以及 pdf(因为 pdf 的形式比拟复杂,提供了 PyPDFLoader、MathpixPDFLoader、UnstructuredPDFLoader,PyMuPDF 等多种体式的加载引擎)几种常用形式的实际领会。

Document transformers 文档转机器

LangChain 有许多内置的文档转机器,不错支吾地拆分、组合、过滤和以其他花式操作文档,要点难得按照字符递归拆分的花式 RecursiveCharacterTextSplitter 。

Text embedding models 文本镶嵌模子

LangChain 中的 Embeddings 基类公开了两种方法:一种用于镶嵌文档,另一种用于镶嵌查询。前者继承多个文本当作输入,尔后者继承单个文本。将它们当作两种单独方法的原因是,某些镶嵌提供要领对文档(要搜索的)与查询(搜索查询自己)有不同的镶嵌方法。

文本镶嵌模子是将文本进行向量暗示,从而不错在向量空间中对文本进行诸如语义搜索之类的操作,即在向量空间中寻找最相似的文本片断。而这些在 LangChain 中是通过 Embedding 类来竣事的。( Embedding 类是一个用于与文本镶嵌进行交互的类。这个类旨在为提供商(有许多镶嵌提供商,如 OpenAI、Cohere、Hugging Face 等)提供一个标准接口)

VectorStores 向量存储

存储和搜索非结构化数据的最常见方法之一是镶嵌它并存储生成的镶嵌向量,然后在查询时镶嵌非结构化查询并检索与镶嵌查询“最相似”的镶嵌向量。

图片

矢量存储崇拜存储镶嵌数据并实践矢量搜索。处理向量存储的重要部分是创建要放入其中的向量,这时常是通过 embedding 来创建的。这个即是对常用矢量数据库(Chroma、FAISS,Milvus,Pinecone,PGVector 等)封装接口的证据,概况经过:出手化数据库结合信息——>建立索引——>存储矢量——>相似性查询。

Retrievers 查询

检索器是一个接口,它笔据非结构化查询复返文档。它比矢量存储更通用。检索器不需要能够存储文档,只需复返(或检索)它。矢量存储不错用作检索器的主干,但也有其他类型的检索器。

检索器接口是一种通用接口,使文档和话语模子易于组合。LangChain 中公开了一个 get_relevant_documents 方法,该方法接受查询(字符串)并复返文档列表。

要点难得数据压缩,主张是获取关连性最高的文本带入 prompt 高下文,这么既不错减少 token 阔绰,也不错保证 LLM 的输出质地。

Caching Embeddings 缓存镶嵌

镶嵌不错被存储或临时缓存以幸免需要重新筹备它们。缓存镶嵌不错使用CacheBackedEmbeddings。

3.3 Memory

Memory 是在用户与话语模子的交互过程中经久保捏情状的意见。体当今用户与话语模子的交互聊天音信过程,这就波及为从一系列聊天音信中吸收、拿获、转机和索取学问。Memory 在 Chains/Agents 调用之间保管情状,默许情况下,Chains 和 Agents 是无情状的,这意味着它们独赶快处理每个传入的查询,但在某些应用要领中,如:聊天机器东谈主,记取往常的交互突出难题,不管是在短期的也曾经久的。“Memory”这个意见即是为了竣事这少许。

图片

LangChain 提供了两种花式使用追想存储 Memory 组件,一种是提供了治理和操作往常的聊天音信的辅助器具来从音信序列中索取信息;另一种是在 Chains 中进行关联使用。Memory 不错复返多条信息,如最近的 N 条音信或统共往常音信的选录等。复返的信息不错是字符串,也不错是音信列表。

LangChain 提供了从聊天纪录、缓冲追想、Chains 中索取追想信息的方法类以及接口,如 ChatMessageHistory 类,一个超轻量级的包装器,提供了一些方便的方法来保存东谈主类音信、AI 音信,然后从中获取它们;再如 ConversationBufferMemory 类,它是 ChatMessageHistory 的一个包装器,用于索取变量中的音信等等。

3.4 Chains

时常咱们使用单独的 LLM 也不错贬诽谤题,可是关于愈加复杂的应用要领需要在 LLM 之间或与其他系统进行结合来完成任务,这个时常称为结合 LLM。

链允许将模子或系统间的多个组件组合起来,创建一个单一的、一致的应用要领。例如来说,咱们创建一个链,该结合受用户的输入,通过 PromptTemplate 模板对输入进行形式化并传递到 LLM 话语模子。还不错将多个链组合起来,或者将链与其他系统组件组合起来,来构建更复杂的链,竣事更弘大的功能。LangChain 为链提供了标准接口以及常见竣事,与其他器具进行了强大集成,并为常见应用要领提供了端到端链。

3.5 Agents

时常用户的一个问题可能需要应用要领的多个逻辑处理才智完成关连任务,而况经常可能是动态的,会跟着用户的输入不同而需要不同的 Action,或者 LLM 输出的不同而实践不同的 Action。因此应用要领不仅需要事前细目 LLM 以过头他器具调用链,而况可能还需要笔据用户输入的不同而产生不同的链条。使用代理不错让 LLM 探望器具变的愈加告成和高效,器具提供了无尽的可能性,LLM 不错搜索采集、进行数学筹备、运行代码等等关连功能。

LangChain 中代理使用 LLM 来细目采纳哪些活动及规章,梭巡不雅察效力,并同样直到完成任务。LangChain 库提供了强大预置的器具,也允许修改现存器具 或创建新器具。现代理被正确使用时,它们不错突出弘大。在 LangChain 中,通过“代理东谈主”的意见在这些类型链条中探望一系列的器具完成任务。笔据用户的输入,代理东谈主不错决定是否调用其中任何一个器具。

3.6 Callbacks

LangChain 提供了一个回调系统,允许您结合到 LLM 肯求的各个阶段。这关于日记纪录、监控、流传输和其他任务突出有效。

不错使用统共 API 中可用的参数来订阅这些事件。该参数是处理要领对象的列表,这些对象瞻望将竣事底下更扎眼态状的一个或多个方法。

四、使用langChain构建应用

图片

特定文档的问答:从Notion数据库中索取信息并回话用户的问题。

聊天机器东谈主:使用Chat-LangChain模块创建一个与用户交流的机器东谈主。

代理:使用GPT和WolframAlpha结合,创建一个能够实践数学筹备和其他任务的代理。

文本选录:使用外部数据源来生成特定文档的选录。

五、典型应用

图片

LangChain 当作一款先进的话语模子应用开采框架,它赋能开采者基于底层话语模子打造出各式智能话语应用。常见用例如下:

自治的代理:LangChain支捏自治代理的开采,如AutoGPT和BabyAGI,它们是长手艺运行的代理,实践多个设施以竣事处所。

代理模拟:LangChain促进了创建沙盒环境,其中代理不错互相交互或对事件作念出反应,提供对其经久追想才智的瞻念察。

个东谈主助理:LangChain突出妥当构建个东谈主助理,它不错实践操作、记取交互并探望您的数据,提供个性化的匡助。

问答:LangChain在回话特定文档中的问题方面阐明出色,诈欺这些文档中的信息构建准确和关连的谜底。

聊天机器东谈主:诈欺话语模子的文本生成才智,LangChain赋予了创造流连忘反的聊天机器东谈主的才智。

查询表格数据:LangChain提供了使用话语模子查询存储在表格形式中的数据(如CSV文献、SQL数据库或数据框)的指南。

代码意会:LangChain协助使用话语模子查询和意会来自GitHub等平台的源代码。

与API交互:LangChain使话语模子能够与API交互,为它们提供最新信息,并能够笔据及时数据采纳活动。

索取:LangChain匡助从非结构化文本中索取结构化信息,简化数据分析和讲明。

选录:LangChain支捏将较长的文档选录成神圣、易于消化的信息块,使其成为数据增强的弘大器具。

评估:由于生成模子难以使用传统运筹帷幄进行评估,LangChain提供辅导和链来辅助使用话语模子自己进行评估过程。

六、转头

LangChain赋予了开采东谈主员将LLM与其他筹备和学问开首相结合以构建应用要领的才智。使用LangChain,开采东谈主员不错使用一个综合LLM应用要领的中枢构建块的框架。探索LangChain的才智并尝试其各个组件,会发现可能性险些无尽。LangChain框架提供了一种机动和模块化的话语生成方法,允许创建笔据用户特定需要量身定制的定制贬责决策。

七、拓展学习

13分钟解读LangChain:https://www.bilibili.com/video/BV14o4y1K7y3/?spm_id_from=333.337.search-card.all.click&vd_source=f27f081fc77389ca006fcebf41bede2d

https://space.bilibili.com/267440912/channel/collectiondetail?sid=1428550

一图带你了解 LangChain 的里面结构!https://www.bilibili.com/video/BV1214y1X7Aq/?spm_id_from=333.337.search-card.all.click&vd_source=f27f081fc77389ca006fcebf41bede2d

https://space.bilibili.com/28357052/channel/collectiondetail?sid=1611560老色哥首发

本站仅提供存储处事,统共实际均由用户发布,如发现存害或侵权实际,请点击举报。

Powered by 男同porn @2013-2022 RSS地图 HTML地图

Copyright Powered by365建站 © 2013-2024