1 LCEL简介

LangChain 表达式语言(LangChain Expression Language,简称 LCEL)是 LangChain 框架中的一个核心组件,旨在提供一种简洁、灵活的方式来定义和操作语言模型的工作流。LCEL 允许开发者以声明式的方式构建复杂的语言模型应用,而无需编写大量的样板代码。

img

1.1 LCEL的特点

首先,LCEL(LangChain Expression Language) 是一种强大的工作流编排工具,可以从基本组件构建复杂任务链条(chain),并支持诸如流式处理并行处理日志记录等开箱即用的功能。

以下是LECL的主要优势:

  • 异步、批处理和流支持:采用LCEL构建的任何链都将自动、完全的支持同步、异步、批处理和流等能力。
  • Fallbacks:由于LLMs的非确定性,使得具备优雅地处理错误的能力变得很重要。
  • 并行性:由于LLMs应用涉及(有时长期的)API调用,因此支持并行处理很重要。
  • 无缝集成LangSmith:使用LCEL,所有步骤都会自动记录到LangSmith中,可以最大限度的实现可观察性和可调试性。

2 LCEL 核心组件运行流程与架构解析

2.1 声明式语法概述

LCEL(LangChain 表达式语言)是一种声明式语法,专为 LangChain 框架设计,旨在通过一种直观的方式定义和组合不同类型的组件链。其核心目标是简化复杂应用程序的开发过程,使开发者能够专注于逻辑而非底层实现细节。

2.2 统一接口设计理念

为了支持灵活的组件组合,LCEL 提供了一个统一接口设计方案。该方案允许所有组件共享相同的调用模式,无论是代理、工具还是数据源,均可以通过一致的方法进行交互。这种一致性显著降低了学习成本,并提高了系统的可扩展性和易维护性。

2.4 工作流程详解

以下是 LCEL 的核心工作流程分解:

  1. 输入解析阶段:输入被传递到 LCEL 解析器中,后者会依据预设的语言规则对其进行分析。此过程中涉及的关键技术包括语言解析和模式匹配,这些机制共同作用以识别输入中的语义结构。
  2. 组件映射阶段:完成输入解析后,系统将根据解析结果动态生成对应的 LangChain 组件实例。这一环节依赖于预先配置好的映射表,其中记录了每种实体类型与其对应的具体实现之间的关系。
  3. 执行调度阶段:所有必要的组件准备就绪之后,进入实际的工作流执行阶段。在此期间,各模块按照既定顺序依次激活并完成各自的任务处理。得益于前面提到的统一接口特性,即使面对复杂的多层嵌套场景也能保持清晰流畅的操作体验
  4. 输出转换阶段:当整个链条上的活动全部结束时,最终产生的结果会被送入指定的 OutputParser 中进一步加工。例如,在某些情况下可能需要提取最有可能的结果作为返回值;此时可以利用像 StrOutputParser 这样的专用类来达成目的——它负责把原始形式的数据转化为更加简洁实用的文字表述。

综上所述,LCEL 不仅具备强大的功能表现力,而且拥有高度灵活性以及良好的兼容性能优势。LCEL核心组件运行流程如下图所示。

img

3 LCEL下核心组件(Prompt+LLM)的实现

3.1 单链结构

1 字符串模板示例

from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
importos
os.environ["DASHSCOPE_API_KEY"] = "API Key"
prompt = ChatPromptTemplate.from_template("给我讲一个关于{topic}的故事!")
llm = ChatOpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    model="qwen-plus"
)
chain = prompt | llm
print(chain.invoke({"topic": "一千零一夜"}))

2 自定义停止输出符

# 自定义停止输出符为\n
chain = prompt | model.bind(stop=["\n"])
print(chain.invoke({"topic": "一千零一夜"}))

3 输出解析器

# 使用StrOutputParser输出字符串格式
from langchain_core.output_parsers import StrOutputParser
chain = prompt | llm | StrOutputParser()
print(chain.invoke({"topic": "一千零一夜"}))

4 兼容OpenAI函数调用形式

functions = [
    {
        "name": "story",
        "description": "故事",
        "parameters": {
            "type": "object",
            "properties": {
                "setup": {"type": "string", "description": "故事的开头"},
                "punchline": {
                    "type": "string",
                    "description": "反转的结尾",
                },
            },
            "required": ["setup", "punchline"],
        },
    }
]

chain = prompt|llm.bind(function_call={"name": "story"}, 
                          functions=functions)
result = chain.invoke({"topic": "童话"})
print(result)

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

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

在这里插入图片描述

Logo

更多推荐