释放语言模型的力量:引入LangChain实现下一级NLP
这个标题是由ChatGPT本身赋予的事实说明了自然语言模型已经变得多么高效。从写博客、新闻文章、回答问题、创建复杂的SQL查询到像Yoda一样回答你日常生活中的问题,新时代基于变压器的模型已经彻底改变了人工智能世界。但如果ChatGPT这么强大,为什么“LangChain”可以提升ChatGPT的体验和应用?在本文中,我们将回答所有这些问题,并让您知道LangChain如何在不让您看那些复杂的论文和代码的情况下帮助您解决下一个自然语言问题,这可能让您头痛数日。
PS:本文大部分内容均由LangChain机器人自行提供,试试找出区别吧 ?。
为什么选择LangChain?
在回答什么是Langchain之前,了解为什么需要使用Lanchain是很重要的。假设我们在XYZ公司工作,有使用资源的限制或员工需遵守的某些规定,我想检查是否允许将某些资源带入或带出办公室。现在,如果去ChatGpt问,那么回复会是:
正如chatGPT的回答表明的那样,它无法回答是否允许,并且政策因公司而异,因此我们要么手动设置规则并提示,要么训练自己的chatGPT ?(但父亲不会为GPU支付)。
那就是LangChain的用武之地。使用LangChain,我们可以在短时间内用额外的文档(例如公司政策)训练我们的模型,并用它来回答与政策相关的问题。作为额外的奖励,这个过程可以定制,如果政策变更,我们可以重新训练模型而无需训练chatGPT已经训练过的内容,并且由于不同公司的政策不同,应用也可以变得通用。
以下是一个好的教程,如果你太兴奋了?,可以参考一下如何实现这个功能:
现在我们知道LangChain的无数用例之一,让我们检查一下。
什么是LangChain?
LangChain是围绕大型语言模型(LLMs)构建的框架,提供了标准的链式接口、与其他工具的大量集成以及常见应用的端到端链。另一方面,ChatGPT是由OpenAI开发的特定LLM,可用于广泛的应用,包括自然语言处理。同样适用于其他语言模型,如GPT-2或我们可以通过Hugging Face使用的模型。换句话说,
LangChain是一个工具,可以用来处理像ChatGPT这样的LLMs,但它提供了超出仅使用LLM本身的额外功能。
这些附加功能包括自定义提示、链接,还可以添加我们自己的数据源,如 SQL 数据库或谷歌驱动器。我们稍后会在文章中讨论它们。
LangChain中使用的概念(可选)
虽然不需要了解 LangChain 的创建和工作背后使用的概念,但如果了解,就更容易掌握 LangChain 各组成部分的幕后工作。
- 思维链:一种提示技术,用于鼓励语言模型生成一系列中间推理步骤。
- 行动计划生成:决定使用哪种工具和给出什么输入的过程,然后一步步执行该工具,直到代理人决定不再需要使用工具,然后直接回应用户。
- ReAct:一种将思维链提示与行动计划生成相结合的提示技巧,促使受试者思考应采取什么行动,然后付诸行动。
- 自问自答:在思路链提示的基础上建立的一种提示方法,模型明确地向自己提出后续问题,然后由外部搜索引擎回答。
- 提示链:将多个LLM调用组合起来,使一个步骤的输出成为下一个步骤的输入。
- MemPrompt:记录错误和用户反馈的记忆,并使用它们来防止重复错误。
除此之外,您还可以在https://python.langchain.com/en/latest/getting_started/concepts.html 上查看更多的概念和参考/示例。
使用案例
尽管LangChain在语言模型中有无数用例,但只能列出少数几个:
- 代理:代理是使用语言模型与其他工具进行交互的系统。这些可以用于进行更基础的问题/回答,与API进行交互,甚至采取行动。例如,可以与用户进行交互并为他们提供相关信息的聊天机器人。
- 聊天机器人:语言模型擅长生成文本,因此非常适合创建聊天机器人。例如,客户服务聊天机器人可以回答常见问题并为客户提供支持。
- 数据增强生成:这涉及特定类型的链,首先与外部数据源进行交互,获取用于生成步骤的数据。例如,包括长篇文字的摘要和特定数据源上的问答等。
- 问答:在特定的文档中回答问题,仅利用这些文档中的信息来构建答案。这是一种数据增强生成的类型。例如,聊天机器人可以回答关于公司的产品或服务的问题。
- 总结:将较长的文档归纳为更简洁的信息片段。数据增强生成的一种类型。例如,新闻聚合器可以向用户提供新闻文章的摘要。
- 查询表格数据: 使用LLMs查询以表格格式存储的数据(如CSV、SQL、数据框架等)。例如,金融分析师使用LangChain分析并基于金融数据进行预测。
- 评估:使用语言模型本身来评估生成模型,这些模型通常很难用传统指标来评估。例如,使用LangChain评估语言模型在生成文本方面的性能。
这些只是 LangChain 的许多用例的一些示例。LangChain 在每个领域以及许多其他领域都提供指导和帮助。
要了解更多有关LangChain的信息,请访问官方文档: