LangChain组件图

LangChain 是什么

首先 LangChain 是一个框架,这个框架是用来让开发者进行 LLMs (大语言模型)应用开发的。

可以理解是为各种 LLM 开发的脚手架,将 LLM 的各个组件进行封装和链接。把 LLMs 相关的组件“链接”在一起,简化 LLMs 应用的开发难度,方便开发者快速地开发复杂的 LLMs 应用。

举一个不是很恰当的栗子,从 Java 工程师的角度来看 LangChain 更像是 Spring 或者 SpringBoot 这种框架,帮助开发人员更快的进行应用开发。

LangChain 框架组件

=================

Models(I/O):各种类型的模型集成。

Outline概要

· Prompts:模板化、动态选择和管理模型输入

· Language models:通过通用接口调用语言模型

· Output parsers:从模型输出中提取信息

Models(I/O)

Prompts组件:包含Prompt templates和Example selectors。

Prompts

Prompt templates:

· 对语言模型的指令

· 一组几个镜头示例来帮助语言模型生成更好的响应

· 对语言模型的一个问题

分别举例:TemplateFormat、MessageTemplate、FewShotPromptTemplate、Example selectors

TemplateFormat:

TemplateFormat

MessageTemplate:

MessageTemplate

FewShotPromptTemplate:

FewShotPromptTemplate

Example selectors:

Example selectors

Language models:

· LLMs

· Chat models

LLMs:采用文本字符串作为输入并返回文本字符串的模型。

gpt-3.5-turbo:

gpt-3.5-turbo

Streaming:

Streaming

Chat models:聊天模型是语言模型的变体。

Caching:

Caching

outputparser

· 获取格式指令

· 解析

· 带有提示的解析

分别举例:DateTimeParser、EnumParser、ListParser、OutputParser

DateTimeParser:

DateTimeParser

EnumParser:

EnumParser

ListParser:

ListParser

OutputParser:

OutputParser

Memory:记忆涉及在用户与语言模型的交互过程中保留状态概念。用户与语言模型的交互是在 ChatMessages 的概念中捕获的,因此这可以归结为从一系列聊天消息中摄取、捕获、转换和提取知识。一般来说,对于每种类型的记忆,都有两种理解使用记忆的方法。这些是从一系列消息中提取信息的独立函数,然后您可以通过一种方式在链中使用这种类型的内存。内存可以返回多条信息(例如,最近的 N 条消息和所有先前消息的摘要)。

Memory

Outline概要


· ConversationBufferMemory

· ConversationBufferWindowMemory

· ConversationTokenBufferMemory

· ConversationSummaryMemory

ConversationBufferMemory:

ConversationBufferMemory

ConversationBufferWindowMemory:

ConversationBufferWindowMemory

ConversationTokenBufferMemory:

ConversationTokenBufferMemory

ConversationSummaryMemory:

ConversationSummaryMemory

Chains:

Chains

Outline概要

· LLMChain

· SequentialChain

· SimpleSequentialChain

· SequentialChain

· RouterChain

LLMChain:

LLMChain

SimpleSequentialChain:一般序列链可以将前一个链的输出结果,作为后一个链的输入。一般序列链有唯一输入和输出变量。

SimpleSequentialChain

SequentialChain:序列链中包含多个链,其中一些链的结果可以作为另一个链的输入。序列链可以支持多个输入和输出变量。

SequentialChain流程图

SequentialChain

RouterChain:路由链类似一个while else的函数,根据输入值,选择对应的路由(路径)进行后续的链路。整个路由链一般一个输入,一个输出。

RouterChain流程图

RouterChain(1)

RouterChain(2)

Agents:某些应用程序需要根据用户输入对 LLM 和其他工具进行灵活的调用链。代理接口为此类应用程序提供了灵活性。代理可以访问一套工具,并根据用户输入确定使用哪些工具。代理可以使用多种工具,并使用一个工具的输出作为下一个工具的输入。

Agents

Outline概要

· 动作代理:在每个时间步,使用所有先前动作的输出来决定下一个动作

· 计划并执行代理:预先决定完整的操作顺序,然后执行所有操作而不更新计划

分别举例:MathAndWikiAgent、PythonREPLAgent、MultiFunctionsAgent

MathAndWikiAgent:

MathAndWikiAgent

PythonREPLAgent:

PythonREPLAgent

MultiFunctionsAgent:

MultiFunctionsAgent

索引(index):索引是指以最佳方式对文档进行结构化,以便语言模型(LLMs)能够与其进行最佳交互。这个模块包含了处

理文档的实用函数。

索引(index)

Outline概要

· 嵌入(Embeddings):嵌入是对信息(例如文本、文档、图像、音频等)的数值表示。通过嵌入,可以将信息转换为向量形式,以便计算机能够更好地理解和处理。

· 文本拆分器(Text Splitters):当需要处理较长的文本时,有必要将文本分割成多个块。文本拆分器是用于将长文本分割成更小片段的工具。

· 向量数据库(Vectorstores):向量数据库存储和索引来自自然语言处理模型的向量嵌入,用于理解文本字符串、句子和整个文档的含义和上下文,从而获得更准确和相关的搜索结果。请参阅可用的向量数据库。

代码示例如下:

index

应用实例langchain-chatglm-6B流程图如下:

langchain-chatglm-6B(1)

langchain-chatglm-6B(2)

evaluation:

Outline概要

· 示例生成:Example generation

· 手动评估(和调试):Manual evaluation (and debugging)

· LLM辅助评估:LLM-assisted evaluation

Example generation:

Example generation(1)

Example generation(2)

Manual evaluation (and debugging):

Manual evaluation (and debugging)

LLM-assisted evaluation:

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

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

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

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

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

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

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

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

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐