LangChain开发流程

开发 LLM 应用的整体流程

一、何为大模型开发

我们将开发以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型开发。开发大模型相关应用,其技术核心点虽然在大语言模型上,但一般通过调用 API 或开源模型来实现核心的理解与生成,通过 Prompt Enginnering 来实现大语言模型的控制,因此,虽然大模型是深度学习领域的集大成之作,大模型开发却更多是一个工程问题

在大模型开发中,我们一般不会去大幅度改动模型,而是将大模型作为一个调用工具,通过 Prompt Engineering、数据工程、业务逻辑分解等手段来充分发挥大模型能力,适配应用任务,而不会将精力聚焦在优化模型本身上。因此,作为大模型开发的初学者,我们并不需要深研大模型内部原理,而更需要掌握使用大模型的实践技巧。
在这里插入图片描述

大模型开发要素

同时,以调用、发挥大模型为核心的大模型开发与传统的 AI 开发在整体思路上有着较大的不同。大语言模型的两个核心能力:指令遵循文本生成提供了复杂业务逻辑的简单平替方案。

  • 传统的 AI 开发:首先需要将非常复杂的业务逻辑依次拆解,对于每一个子业务构造训练数据与验证数据,对于每一个子业务训练优化模型,最后形成完整的模型链路来解决整个业务逻辑。
  • 大模型开发:用 Prompt Engineering 来替代子模型的训练调优,通过 Prompt 链路组合来实现业务逻辑,用一个通用大模型 + 若干业务 Prompt 来解决任务,从而将传统的模型训练调优转变成了更简单、轻松、低成本的 Prompt 设计调优。

同时,在评估思路上,大模型开发与传统 AI 开发也有质的差异。

  • 传统 AI 开发:需要首先构造训练集、测试集、验证集,通过在训练集上训练模型、在测试集上调优模型、在验证集上最终验证模型效果来实现性能的评估。
  • 大模型开发:流程更为灵活和敏捷。从实际业务需求出发构造小批量验证集,设计合理 Prompt 来满足验证集效果。然后,将不断从业务逻辑中收集当下 Prompt 的 Bad Case,并将 Bad Case 加入到验证集中,针对性优化 Prompt,最后实现较好的泛化效果。

在这里插入图片描述

传统 AI 评估
LangChain有多种工作流程,不同应用场景下有所不同。 在通用的开发流程中,LangChain的关键是流水线处理,这是一种将多个处理步骤组合在一起的方法,每个步骤的输出是下一个步骤的输入,这种设计简化了LLM应用开发流程,确保了输出的高效性和可靠性。开发者使用LangChain构建LLM应用时,可利用其组件化设计优势,保证应用具有较高的灵活性和可扩展性。需要注意的是,使用管道操作符进行链式调用(即prompt|model|StrOutputParser())需要新版本的LangChain仓库支持,开发者需将LangChain升级到最新版本 [^1]。 在构建链(Chain)的工作流中,LangChain的核心是“链”的概念,可将复杂任务分解成更小、可管理的部分并链接在一起,创建无缝的端到端解决方案。以LLM Chain为例,示例代码如下: ```python from langchain_openai import ChatOpenAI from langchain.prompts import ChatPromptTemplate from langchain.chains import LLMChain # Initialize the language model llm_model = "gpt-3.5-turbo" llm = ChatOpenAI(temperature=0.9, model=llm_model) # Create a prompt template prompt = ChatPromptTemplate.from_template("What is the best name to describe a company that makes {product}?") # Combine the LLM and prompt into an LLMChain chain = LLMChain(llm=llm, prompt=prompt) # Run the chain on some input data product = "Queen Size Sheet Set" chain_output = chain.invoke({product}) print(chain_output) ``` 运行此代码,可实现从定义语言模型、创建提示模板、组合成链到运行链并输出结果的过程,输出示例为 `{'product': {'Queen Size Sheet Set'}, 'text': 'Royal Slumber Bedding Co.'}` [^2]。 LangChain Expression Language作为工作流编排工具,可从基本组件构建复杂的任务链(Chain),具有流式支持、异步支持、重试与回退、获取中间结果等亮点。流式支持可逐个返回数据块,避免因数据量大导致用户等待;异步支持有同步和异步调用方式,同步调用一次性返回所有数据,数据量大时用户可能需等待 [^3]。 对于Langchain - Chatchat应用,其工作流程为:加载文件、读取文本、文本分割、文本向量化、问句向量化、在文本向量中匹配最相似的Top K个、将匹配的文本作为上下文结合问题构造Prompt、提交至LLM生成回答 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大叔比较胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值