基于LangChain的LLM应用开发1——介绍
这是基于LangChain的大语言模型应用开发系列的第一篇。
文章内容会参考deeplearning.ai的短课程(https://learn.deeplearning.ai/langchain/),加上其他的资料和个人的理解。
Harrison Chase是谁
Harrison Chase是LangChain的创始人和首席执行官。
在创立LangChain之前,Harrison Chase在Robust Intelligence(一家专注于测试和验证机器学习模型的MLOps公司)领导ML团队,并在Kensho(一家金融科技初创公司)领导实体链接团队。他曾在哈佛大学学习统计和计算机科学。
什么是LangChain
LangChain于2022年10月作为一个开源项目由Harrison Chase启动,当时他在机器学习初创公司Robust Intelligence工作。该项目很快人气飙升,Twitter上的讨论热度高涨,项目的Discord服务器活动频繁,YouTube涌现很多教程,还在旧金山和伦敦举办了很多聚会。
通过对大语言模型使用提示(Prompt),现在开发AI应用的难度已经大大降低,开发的速度也更快。但是一个AI应用程序可能需要对一个大语言模型多次写Prompt,并且对大语言模型的输出进行解析。这里有技巧优化Prompt,让大语言模型输出有利于程序解析的结果:如生成json格式的结果,如果不能输出,则直接返回“Invalid Request”,不生成额外的输出。但是这种方式仍然需要开发者写很多胶水代码来集成大语言模型。Harrison Chase创建的LangChain大大简化了大语言模型应用的开发过程。
LangChain是一个用于构建LLM应用的开源开发框架,目前有Python和JavaScript(TypeScript)版本的库(没有java!总感觉java在ai时代变成了庶出的,最早支持的总是Python),注重组合和模块化。
LangChain一个很有价值的地方是有很多可以单独使用或者和其他组件结合使用的独立组件。另一个有价值的地方是有很多不同的用例,可以将这些组件通过链式(Chain)组合成更完整、更复杂的应用程序,并且非常容易上手。
LangChain(Python版)在GitHub的网址是:https://github.com/langchain-ai/langchain ,目前已经有6万多(64.9k) Stars,源代码非常活跃,有1700名贡献者,今天刚加了百川模型(Add baichuan model)。
LangChain 中的具体组件
- 模型(Models)
对各大语言模型的抽象,连接各大语言模型(是的,可以很轻松切换各种大语言模型),包含各大语言模型的 LangChain 接口和调用细节,以及输出解析机制。
- 提示(Prompts)
使提示工程流线化,进一步激发大语言模型的潜力。通过Prompt Templates实现。
- 数据检索(Indexes)
构建并操作文档的方法,接受用户的查询并返回最相关的文档(检索召回数据),将数据与模型结合起来,轻松搭建本地知识库。
- 记忆(Memory)
通过短时记忆和长时记忆,在对话过程中存储和检索数据,让 Chatbot 记住你是谁。
- 链(Chains)
是 LangChain 中的核心机制,以特定方式封装各种功能,并通过一系列的组合,自动而灵活地完成常见用例。类似于Unix系统的管道?上一阶段的输出可以作为下一阶段的输入。
- 代理(Agents)
是另一个 LangChain 中的核心机制,使用大语言模型作为推理引擎,让大模型自主调用外部工具和内部工具,使强大的“智能化”自主 Agent 成为可能。
参考内容
- deeplearning.ai的短课程:https://learn.deeplearning.ai/langchain/lesson/1/introduction
- Python版LangChain的文档地址:https://python.langchain.com/docs/get_started/introduction