一、LangChain介绍
langChain是用于快速构建AI应用的框架(第三方开源库)。
这里是官网,这里是Github 源码。
“一句话”介绍:
类似于Angular、React、Vue 等快速构建Web应用的前端框架.
类似于ReactNative、Flutter 等快速构建跨端App的框架.
核心:
仅仅给几个提示词就能让模型按照自己想要的方式进行训练,从而结合大模型的创作能力和互联网数据展示结果,因为大模型不能联网。
示例:
短视频脚本创作工具:提供视频主题和时长即可生成视频脚本(视频文字)。
二、关于大语言模型LLM
2.1、LLM
定义:
特点:
模型网络复杂,参数较多且模型通用
2.2、提示工程
提示词(prompt):
传递给语言模型实现预期任务的指令或者文本。
提示工程:
提示工程是⼀种相对较新的学科,用于学习开发和优化提示词,以便高效地使用语言模型(LM)进行各种应用和研究主题。提示工程的技能学习有助于更好地理解大型语言模型(LLM)的能力和局限性。提示工程使用提示词来提高LLM在各种常见和复杂任务上的能力,例如问答和算术推理。开发人员使用Prompt来设计强大和有效的提示技术,与LLM和其他工具进行交互。
2.3、LLM存在的问题
大多数的LLM(OpenAl,Al 21 Labs, LLaMA…)预训练的数据都不是最新的。比如: GPT3.5和GPT4的数据截止到2021年9月份。 LLMs不擅长领域知识,在处理专有数据时无法有效的发挥作用。 使用不同的LLM, 处理解决不同的任务,是⼀件乏味和繁琐的事情。三、LangChain能解决什么问题(部分举例)
LangChain可将LLM链接到其他数据源包括文件系统、数据库、互联网数据和API,与那些仅仅通过调用API实现的应用相关,使用LangChain可以创建更强大和更有创意的大模型应用程序。 LangChain通过Agents(代理)的方式,精准的选取合适的工具来处理和解决从LLM中接收到的问题,回调机制可以创建能够更有效地进行环境通信和状态跟踪的应用程序。 面对不同的任务需求,LangChain能够方便的进行模型切换和模型管理、能通过chain方便的链接协同多个模型来共同完成复杂的任务。四、LangChain的架构
4.1、LangChain Modules
4.1.1、models(项目1-3):
该模块的主要逻辑就是封装LLM的调用接口,参数组合处理,回复数据处理等等。
通用大语言模型接口:LLMs 聊天模型(对话式AI模型)接口:Chat Models 文本嵌入模型(自然语言处理中的词嵌入将词表示为低维空间中的数值向量,允许相似的词具有相似的表示,促进语义理解和语言处理任务)接口:Text Embedding Models4.1.2、prompts(项目4):
提示模板:Prompt Templates。包括LLM Prompt Templates、Chat Prompt Templates。提示模板: 带参数、变量控制的提示词,让同⼀语境的提示词更灵活,按需控制. (类比函数)
示例选择器: 1、对于提问选择更合适的答案。 2、 按照prompt提供的示例格式,进行结果返回。 3、控制prompt的示例和内容长度
输出解析器: 结果返回格式: json、普通⽂本或其他任何形式(csv、xml等)