大模型开发--文搞懂 LangChain(二):Modell/O

本文将从Modeli/0的本质、Modell/o的原理、Modell/o的应用三个方面,带您一文搞懂 LangChain(二):Modell/O

Model I/O

一、Model I/O的本质

Model I/O 是什么?

在LangChain中,模型输入/输出(Model I/O)是指与 LLM 进行交互的组件,它弥合了原始输入数据和结构化输出之间的鸿沟。

  • 格式化(Format):负责格式化输入数据

  • 预测(Predict):从模型获取预测结果

  • 解析(Parse):解析输出为结构化格式

Model I/O Introduction

Model I/O由几个部分组成。

  • Prompts:Prompts(提示)是预定义的文本模板,用于指导语言模型生成特定类型的响应。

  • LLMs:LLMs(大型语言模型)是一种接受文本字符串作为输入并返回文本字符串作为输出的模型。

  • ChatModels:ChatModels(聊天模型)是一种接受消息列表作为输入并返回单条消息作为输出的模型。

  • Output Parsers:Output parsers(输出解析器)负责将LLMs和ChatModels的输出转换为更结构化的数据。

Model **I/O能干什么?**

封装模型API和处理输入输出数据,实现了模型的顺畅交互,使得用户可以方便地利用模型完成各种任务。

Prompt Input - Generated Output

  • 模型调用:通过封装好的API,Model I/O使得用户可以方便地调用不同的模型,如大型语言模型(LLM)或聊天模型(ChatModel),来完成各种任务,如文本生成、问答、翻译等。

  • 输入封装:对于模型的输入,Model I/O提供了封装机制,可以处理各种类型的数据,如文本字符串、图像数据等,并将其转换为模型所需的特定格式。这包括数据的清洗、预处理和特征提取等步骤。

  • 输出解析:对于模型的输出,Model I/O同样提供了封装机制来解析和处理结果。这可能包括将模型的输出转换为易于理解的格式、提取关键信息、进行后处理等步骤。

二、Model I/O的原理

**Model I/O的工作流程:**格式化原始输入数据,将其传递给模型以获取预测结果,并将输出解析为结构化格式,以供下游组件或应用程序使用。

Model I/O流程包含以下三个核心步骤:

  • 格式化(Format):原始数据被清洗、标记化、编码,并根据特定任务需求构建提示模板,以转换成适合语言模型处理的格式。

  • 预测(Predict):格式化后的数据被直接送入语言模型,模型基于其内部知识和训练数据生成文本输出。

  • 解析(Parse):语言模型的文本输出被提取特定信息、转换成不同数据类型,并经过必要的后处理,以满足下游组件或应用程序的结构化需求。

Model I/O的工作流程

ModelI/O的核心组件:包括用于接收和生成文本的语言模型、指导输入格式的提示模板、筛选训练数据的示例选择器,以及解析模型输出的输出解析器。

  1. 语言模型 (Language Models):

  2. LLM: 大型语言模型,接收文本字符串作为输入,并返回相应的文本字符串作为输出。

  3. ChatModel: 聊天模型,是语言模型的一种变体。接收聊天消息列表作为输入,并返回聊天消息作为输出。

  4. 提示模板 (Prompt Templates):

  5. PromptTemplate: 用于生成字符串提示。

  6. ChatPromptTemplate: 用于生成聊天消息列表的提示。

  7. 示例选择器(Example Selectors):

  8. **训练新模型:**Example Selectors从数据集中筛选代表性的示例来训练新模型,确保其学习高质量、多样化的数据,提升学习效果和泛化能力。

    **调优现有模型:**利用Example Selectors提供的新示例,对现有模型进行持续训练和调优,逐步改进其在特定任务上的表现,提高准确性和效率。

  9. 输出解析器(Output Parsers):

  10. Get format instructions: 返回一个字符串,其中包含要求语言模型应该返回什么格式内容的提示词。

  11. Parse: 将模型返回的内容,解析为目标格式。

Model I/O的核心组件

三、Model I/O的应用

LLM(大语言模型):简化了自定义LLM的开发过程,实现了LLM响应的缓存管理以降低成本和加速应用,支持LLM流式传输响应以提升效率。

  • 问题一:如何编写自定义 LLM?

编写自定义LLM

  • 问题二:如何缓存 LLM 响应?

  • 缓存目的: LangChain为LLM提供缓存层,可减少向LLM提供商的API调用,从而节省成本并加速应用。

  • 缓存方式: 支持内存缓存和SQLite缓存两种方式,前者访问速度快但数据易丢失,后者数据持久但访问稍慢。

  • 问题三:如何从 LLM 流式传输响应?

  • 实现 Runnable 接口 ainvoke, batch, abatch, stream, astream。

  • 返回一个 Iterator: 它只包含一个值,即由底层LLM提供者返回的最终结果。

  • 问题四:如何跟踪 LLM 调用中的Token使用情况?

  • 跟踪目的: 对于API调用,尤其是使用像OpenAI这样的服务时,跟踪Token的使用情况是管理成本和了解应用程序资源消耗的重要方面。

跟踪 LLM Token使用情况

ChatModel(对话模型): 实现缓存层减少API调用以降低成本、提升响应速度,同时提供简洁语法和转换器简化模型管理,支持流式传输响应以优化用户体验。

  • 问题一:如何缓存 ChatModel 响应?

  • 缓存目的: LangChain为ChatModel提供缓存层,可减少向LLM提供商的API调用,从而节省成本并加速应用。

  • 缓存方式: 支持内存缓存和SQLite缓存两种方式,前者访问速度快但数据易丢失,后者数据持久但访问稍慢。

  • 问题二:如何使用支持函数调用的ChatModel?

  • 将函数简单绑定到模型的语法:LangChain允许您使用简单的语法轻松地将函数绑定到特定的模型,从而更轻松地在应用程序中管理多个模型。

  • 将对象格式化为预期函数模式的转换器:LangChain提供了转换器,可以将各种类型的对象格式化为被调用函数所期望的输入结构。

  • 问题三:如何从 ChatModel 流式传输响应?

  • 实现 Runnable 接口 ainvoke, batch, abatch, stream, astream。

  • 返回一个 Iterator: 它只包含一个值,即由底层ChatModel提供者返回的最终结果。

  • 问题四:如何跟踪 ChatModel 调用中的Token使用情况?

  • 跟踪目的: 对于API调用,尤其是使用像OpenAI这样的服务时,跟踪Token的使用情况是管理成本和了解应用程序资源消耗的重要方面。

跟踪 ChatModel Token使用情况

如何学习AI大模型?

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

自己也整理很多AI大模型资料:AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

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

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

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

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

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

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

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值