一,LangChain
在人工智能领域的不断发展中,语言模型扮演着重要的角色。特别是大型语言模型(LLM),如 ChatGPT,已经成为科技领域的热门话题,并受到广泛认可。
在这个背景下,LangChain 作为一个以 LLM 模型为核心的开发框架出现,为自然语言处理开启了一个充满可能性的世界。借助 LangChain,我们可以创建各种应用程序,包括聊天机器人和智能问答工具。
LangChain之所以大火,是因为它提供了一系列方便的工具、组件和接口,大大降低了 AI 应用开发的门槛,也极大简化了大模型应用程序的开发过程。
1.1 为什么需要 Langchain?
大模型的智能效果令人振奋,可是当开发人员试图将大模型这颗“聪明脑”放入应用程序时,却发现了前所未有的挑战。
-
prompt的结构如何标准化?
-
如果我想中途随时切换大模型,怎样简单方便地操作?
-
LLM的输出是非结构化的,它如何与结构化的程序接口相互交互?
-
预训练模型的知识落后,如何让它知道最新的信息?
-
如何让这颗大脑拥有记忆?
-
如何给这颗“聪明脑”装上“五官”,让它能够感知环境输入?
-
怎样给这颗“聪明脑”装上“手”和“脚”,让它帮我执行具体的任务?
-
...
Langchain 作为一个大语言模型应用开发框架,解决了现在开发人工智能应用的一些切实痛点。以 GPT 模型为例:
-
数据滞后,现在训练的数据是到 2021 年 9 月。
-
token 数量限制,如果让它对一个 300 页的 pdf 进行总结,直接使用则无能为力。
-
不能进行联网,获取不到最新的内容。
-
不能与其他数据源链接。
另外作为一个胶水层框架,极大地提高了开发效率,它的作用可以类比于 jquery 在前端开发中的角色,使得开发者可以更专注于创新和优化产品功能。
1.2 LLM 应用架构
LangChian 作为一个大语言模型开发框架,是 LLM 应用架构的重要一环。那什么是 LLM 应用架构呢?其实就是指基于语言模型的应用程序设计和开发的架构。LangChain框架背后的核心思想是将自然语言处理序列分解为各个部分,允许开发人员根据自己的需求高效地定制工作流程。
LangChian 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起,进而可以自由构建 LLM 应用。
1.3 Langchain的核心模块
Langchain有6大核心模块:
-
Models:模型,是各种类型的模型和模型集成。
-
Prompts:提示,包括提示管理、提示优化和提示序列化。
-
Memory:记忆,用来保存和模型交互时的上下文状态。
-
Indexes:索引,用来结构化文档,以便和模型交互。包括文档加载程序、向量存储器、文本分割器和检索器等。
-
Agents:代理,决定模型采取哪些行动,执行并且观察流程,直到完成为止。
-
Chains:链,一系列对各种组件的调用。
LangChain 通常被用作「粘合剂」,将构建 LLM 应用所需的各个模块连接在一起。使用Langchain中不同组件的特性和能力,可以构建不同场景下的应用,如聊天机器人、基于文档的问答、知识管理、个人助理、Agent智能体等等。
例如,使用 Models模块可以很方便地使用 OpenAI 的模型接口,
from LangChain.llms import OpenAI
llm = OpenAI(temperature=0, model_name='gpt-3.5-turbo', openai_api_key=OPENAI_APIKEY)
res = llm("Tell me a joke")
print(res)
如果需在本地或离线环境下使用大模型,需要首先将所需的模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。
再比如,使用Index部分涉及的RAG技术,可以将特定领域的资料存在向量数据库里,在调用大模型时找出相关的部分作为“参考资料”传给大模型,以得到更为符合业务要求的回答。
二,参考文章:
官方文档:Introduction | ️ Langchain
How to Make Large Language Models Play Nice with Your Software Using LangChain - KDnuggets
不用再苦苦寻觅了!这是大模型开发框架 LangChain 最全的总结了!- 知乎 (zhihu.com)