【LLM】LangChain入门:构建LLM驱动的应用程序入门指南
LangChain教程,用于在Python中使用大型语言模型构建任何东西
“What did the stochastic parrot say to the other?” (Image drawn by the author)
自从ChatGPT发布以来,大型语言模型(LLM)获得了很大的流行。尽管你可能没有足够的资金和计算资源在地下室从头开始训练LLM,但你仍然可以使用预先训练的LLM来构建一些很酷的东西,例如:
- 可以根据您的数据与外界互动的个人助理
- 为您的目的定制聊天机器人
- 对您的文档或代码进行分析或总结
LLM正在改变我们构建人工智能产品的方式
【LLM】LangChain的LangFlow
LangFlow是LangChain的一个GUI,可以轻松地进行LLM应用程序和提示链接的实验和原型制作。
LangFlow是一个基于LangChain的本地LLM图形开发接口。如果你以任何方式熟悉LangChain,在链、代理和提示工程方面,这个开发界面都会感觉非常直观。
在下图中,是所有可用组件分组的列表。展开后,可以看到链、提示、代理和LLM的开发可供性列表。这个列表肯定会随着兴趣的增加而增加。
以下是关于如何构建一个非常简单的LLM Chaining应用程序以及如何与该应用程序聊天的简短教程。
要构建最简单的LLM应用程序,需要选择三个组件并将其拖到设计画布上:
【LLM】langchain 和 ChatGTP 4 agents
代理
代理通过涉及LLM来确定要遵循的操作序列,从而保持一定程度的自主权。
考虑下图,在收到请求后,代理会利用LLM来决定采取哪种操作。“操作”完成后,Agent将进入“观察”步骤。从观察步骤开始,代理人分享一个想法;如果没有达到最终答案,Agent会循环返回到另一个Action,以便更接近最终答案。
LangChain代理可以使用一系列操作。
下面的代码显示了LangChain代理回答一个极其模糊和复杂的问题的完整工作示例:
Who is regarded as the father of the iPhone and what is the square root of his year of birth?
代理人可以采取一些行动:
LLM数学,
以下是SerpApi网站的截图。SerpApi使得从搜索引擎结果中提取数据变得可行。
GPT-4(GPT-4–0314)。
【LLM】LangChain 代理和大型语言模型
目前在LLM上开发的方法正在迅速发展,即时工程在某种程度上被链接和代理的概念所吸收。
在最近的一篇文章中,我写到了即时工程的演变,以及即时工程是如何被吸收到更大的开发结构中的。
这些更大的开发结构允许:
- 更长、更复杂的用户交互
- 进程可以串行或并行运行
- 提示可以编程、共享、存储和模板化
- 链接是创建提示流或提示序列的概念。
对于现有流退出并且可以创建预先确定的会话或工作流的情况,Chaining工作得很好。
另一方面,在流量未知或高度不可预测的情况下,链接并不能很好地服务于场景。在这些情况下,预定的流程将不能很好地工作,并且需要一定程度的自主权。
什么是代理?
代理可以通过使用其可支配的一组工具或资源来接收查询。这些工具可以包括访问维基百科、网络搜索、数学库、LLM等。
【LLM】大型语言模型背景下的自主代理LangChain
随着大型语言模型(LLM)的实现在深度和广度上的扩展,出现了一些要求:
- 对LLM进行编程并创建可重复使用的提示的能力&将提示无缝地合并到更大的应用程序中。
- 创建链以对大型应用程序的LLM交互进行排序。
- 通过一个可以在工具范围内自主行动的代理,自动进行即兴的思维链提示。
- 创建可扩展的提示管道,可以从各种来源收集相关数据,所有这些都基于用户输入并构成提示;并将提示提交给LLM。
“任何足够先进的技术都与魔术难以区分。”
-阿瑟·C·克拉克
对于LLM相关的操作,显然需要自动化。目前,这种自动化是以所谓的代理的形式出现的。
提示链接是指执行一系列预先确定的动作。
【ChatBot】使用LangFlow构建LangChain智能体
基于LLM的智能体通过访问其可支配的LLM和工具来维护自主权
关于智能体的更多信息
LangChain智能体在一套可用工具的上下文中是自主的。现在,您可以通过使用LangFlow在GUI中构建LangChain智能体。
LangChain智能体在收到请求时会使用各种操作。采取行动后,智能体进入观察步骤,在那里他们分享一个想法。如果未达到最终答案,Agent会循环返回以选择不同的操作,以便更接近最终答案。
智能体之所以有吸引力,是因为他们能够独立行动,不走预先确定的道路。
他们配备了一套工具,使他们能够响应这些工具范围内的任何请求。
这个执行管道使智能体能够独立地解决问题,可能需要多次迭代,直到达到所需的结果。
【QA系统】LLM驱动的QA系统的一种新的文档摘要索引
在这篇博客文章中,我们介绍了一种全新的LlamaIndex数据结构:文档摘要索引。我们描述了与传统的语义搜索相比,它如何有助于提供更好的检索性能,并举例说明。
出身背景
大型语言模型(LLM)的核心用例之一是对自己的数据进行问答。为此,我们将LLM与“检索”模型配对,该模型可以在知识语料库上执行信息检索,并使用LLM对检索到的文本执行响应合成。这个整体框架被称为检索增强生成。
如今,大多数构建LLM支持的QA系统的用户倾向于执行以下某种形式的操作:
- 获取源文档,将每个文档拆分为文本块
- 将文本块存储在矢量数据库中
- 在查询期间,通过嵌入相似性和/或关键字过滤器来检索文本块。
- 执行响应合成
由于各种原因,这种方法提供的检索性能有限。
【ChatGTP】使用ChatGPT探索数据建模:第1部分:ChatGPT手动实验
数据建模主要由人类专家进行,包括拥有专业知识和技能的数据架构师、数据建模者和分析师。然而,人工智能的最新进展,特别是在自然语言处理(NLP)和大型语言模型(LLM)方面,引发了人们对其对该领域潜在影响的讨论。作为一名数据爱好者,这让我思考我能在多大程度上突破这些新的人工智能功能的界限,尤其是使用ChatGPT。我决定进行一系列实验来探索各种可能性。
在我实验的最初阶段,我的重点将是手动执行任务和流程,而不是依赖自动化。通过采用这种实践方法,我的目标是全面了解与主题相关的概念、方法和挑战。此外,它将使我能够收集有价值的见解和反馈,这些见解和反馈可以指导未来关于自动化的决策。通过这项手动工作,我的目标是获得可用于评估集成自动化的实用性和优势的知识和经验。
如果你是数据建模领域的新手,我邀请你阅读我关于数据建模在人工智能时代的重要性的另一篇文章。你可以在以下链接找到:数据建模在AI时代的重要性
入门:
获取ChatGPT登录。
【LLM】利用特定领域知识库中的LLM
通过RAG致富:利用LLM的力量,使用检索增强生成与您的数据对话
问ChatGPT一个关于“马拉松”一词起源的问题,它会准确地告诉你希罗多德是如何描述费迪皮德斯从马拉松到雅典完成的42公里传奇长跑的,然后筋疲力尽。
但我祖母的食谱清单呢?当然,我可以把这些食谱数字化,没问题。但是,如果我想根据冰箱里的食材、我最喜欢的颜色和我一天的心情,就准备哪顿饭提出建议,该怎么办?
让我们看看这是否有可能在不因精疲力竭而崩溃的情况下实现。
LLM,达到你的极限…并超越它们
LLM是一种大型语言模型。OpenAI的GPT-4是一个例子,Meta的LLamA是另一个例子。我们在这里有意识地选择使用一般LLM术语来指代这些模型。请记住:这些模型中的每一个都是在一组庞大的(公开可用的)数据上进行训练的。
到目前为止,已经清楚地表明,这些LLM对通用语言有着有意义的理解,并且他们能够(重新)产生与训练数据中存在的信息相关的信息。这就是为什么像ChatGPT这样的生成工具在回答LLM在培训过程中遇到的主题问题方面表现惊人。
【ChatGTP】驯服魔鬼:使用ChatGPT简化软件开发
纵观历史,魔鬼和恶魔的故事一直是民间传说和神话的主要内容。狡猾的巫师驯服这些强大的生物来执行他们的命令的故事吸引了几代观众。
让我们从一个关于狡猾的魔鬼和聪明的巫师的简短故事开始。
从前,在两座高耸的山脉之间的一个小村庄里,住着一位名叫阿拉里克的聪明的老巫师。在一个决定性的日子里,阿拉里克的任务是制造一种药水,可以治愈肆虐附近土地的可怕瘟疫。然而,关键成分,一种罕见的金色草本植物,只能在闹鬼的森林中找到。
阿拉里克为了拯救他的人民,不顾一切地召唤了一个狡猾的魔鬼泽菲罗斯,并达成了协议。作为Zephyros在危险的森林中航行和取回金色草药的帮助的交换,巫师承诺将魔鬼从一个世纪的奴役中释放出来。凭借魔鬼的指引和无与伦比的敏捷,阿拉里克冒着森林中的重重陷阱和危险,最终获得了难以捉摸的金色草药。
他们一起回到了村庄,阿拉里克在那里成功地酿造了救命药,结束了这场毁灭性的瘟疫。巫师信守诺言,将泽菲罗斯从束缚中释放出来,魔鬼和巫师对彼此的能力和决心都获得了新的尊重。
这个故事的寓意强调了相互尊重和合作的重要性。虽然魔鬼拥有独特的能力,但它需要我们的帮助才能完成任务。通过共同努力,我们可以更有效地实现我们的目标。