01 | LLMChain
Chain可以认为是LangChain中最为重要的组件,通常用于将大型语言模型(LLM)和Prompt结合在一起,有了这个构建模块,可以把一堆这样的构建模块组合在一起,对文本或者其他数据进行有序的操作。

这里主要是为了能够输出一些比较有意思的输出,因此,这里的temperature设置为0.9,我们想要的是给一些生产某个产品的公司取一个有意思的名字。

这时候LangChain帮我们将提示词和LLM按照顺序连接到一起,那么这时候我们可以就可以根据我们想要取名的产品名称,实现取名的任务。

run方法会在后台格式化prompt,并将整个提示词传递给LLM,此时给到的结果为“Royal Beddings”,即皇家床品,听起来确实好高大上。
LLMChain是最为常用,也是最为基础的Chain的类型。
02 | Sequential Chains
Sequential Chain的名字已经说明了它的能力,也就是顺序执行一些Chain的功能,适用于当我们的子链只需要一个输入并且只返回一个输出的场景。

案例的场景为,第一个Chain的作用是根据生产的产品名称给出一个合适的公司名称,然后为这个公司写一个20字的简要介绍。

此时,我们用下面的代码将两个Chain进行结合起来。

运行结果如下:

但是它的局限也比较明显,就是每个Chain都只有一个输入只有一个输出,如果有其他的需要,比如说多个输入和输出时,怎么处理呢?


如代码所示,我们在Chain1中明确要求用英文进行翻译,输出变量的名称规定为English_Review;
然后我们在Chain2中使用它,用相同的变量接收English_Review作为Chain2的输入,要求给出一句话总结,输出变量命名为summary,并作为Chain4的输入变量之一;
第三个prompt接收原始评论变量Review,输出language,这些都将在最后一个prompt中被再次使用。
第四个prompt中有多个不同的输入和输出同时被使用,因此,保持这些变量正确命名非常重要。
因此,SimpleSequentialChain会包含多个链,每条链都包含一个输入和一个输出,前一条链的输出作为另一条链的输入,环环相扣,

SequentialChain和SimpleSequentialChain相比,每一步都可以接收多个输入变量,如下图所示。

因此,当有较为复杂的下游链需要和多个上游链组合时,建议使用SequentialChain。
这时候我们调用如上的所有Chain如下:

这时候输出如下:

03 | Router Chain
如果要执行更为复杂的结构,比如一个常见的基本操作是,根据输入的内容来决定路由到哪条链,每条子链都是专门处理特定类型的输入。

如果是这种场景,可以使用Router Chain,它首先判断要传递给哪条子链,然后将输入传递给具体的链

我们提供了上面的四个prompt,分别支撑物理、数学、历史和计算器科学的能力,我们利用上面的几个prompt,组成prompt_infos:

我们对每个prompt都给了一个名字以及描述,描述很简单,就是告知每个prompt擅长回答问题的领域。
这些信息将被传递给Router Chain,以便Router Chain决定什么时候使用相应的子链。
为了完成上述的能力,我们引入如下的几个依赖:

其中,MultiPromptChain是一种特定类型的Chain,用于在多个不同的提示模板之间进行路由。
LLMRouterChain借助语言模型本身在不同的子链之间进行路由,这也是为什么我们需要在上面提供的prompt描述和名称的原因.
RouterOutputparser会将LLM的输出解析为一个字典,以便下游根据该字典来决定使用哪条链,还有这条链的输入是怎样的。

如代码所示,实际上每个目标Chain都是一个LLMChain,除了LLMChain,我们还需要一个默认链(default_chain),它是在路由链无法决定使用哪条子链时使用的Chain。

我们将上面的各个组件组合为一个路由链。

首先我们通过使用上面定义的目标并对其进行格式化来创建完整的路由提示词模板,这个模板可灵活配置不同类型的目标。
接下来我们从这个模板创建Prompt模板,然后我们通过传入LLM和整个路由器的prompt来创建Router Chain,需要注意的是,一定要规定out_parser为RouterOutputParser,因为它需要协助路由链来决定在哪些子链之间进行路由。
最后,我们将它们组合在一起,创建整条链路。

这时候我们就可以使用了:
chain.run("What is black body rediation?")
运行结果如下:

同样的,我们可以继续询问数学题。

如果我们问一个超纲的问题,那么会发生什么呢?我们看下

这时候就会传给default_chain,当做一个通用问题来访问LLM。
04 | 小结
Chain模块非常简单, 可以作为小白入门或者是没有编码经验小伙伴的入门技能,选用不同的Chain就可以完成生活中几乎90%的链式任务,也就是前后关联任务的实现,甚至是一般应用的开发。
- LLMChain是最为常用,也是最为基础的Chain的类型。正因为基础,所以其功能很是强大, 但是却也受限于其通用性,无法实现个性化能力;
- Sequential Chain的名字已经说明了它的能力,也就是顺序执行一些Chain的功能,适用于当我们的子链只需要一个输入并且只返回一个输出的场景。
- Router Chain则更为复杂一些,如果要执行更为复杂的结构,比如一个常见的基本操作是,根据输入的内容来决定路由到哪条链,每条子链都是专门处理特定类型的输入。
希望小伙伴都可以通过笔者的总结实现简单GPT应用的开发。
共勉,加油,喜欢就分享加收藏吧,谢谢。
如何学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。
不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈
全套AGI大模型学习大纲+路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

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




👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
871

被折叠的 条评论
为什么被折叠?



