【解决复杂链式任务,打造全能助手】LangChain 大模型 打造 钢铁侠的全能助理 Jarvis

LangChain 大模型 结合 做 AutoGPT、ChatPDF

    • 思维链 CoT
    • LangChain
      • 模型IO:和大模型交互、提示词模版
      • 数据连接:从数据的接入、分割,到向量的构建、存储、搜索
      • 链:串联和组织,多个语言模型、组件
      • 记忆:灵魂伴侣,最熟悉你的机器
      • 代理:软件不会用怎么办?退下,我来!!
      • 回调:语义表达清,调试更精准
    • LangChain 大模型结合 打造 钢铁侠的全能助理 Jarvis
      • 打造AutoGPT:突破文本限制,从语言理解到任务执行,AI分析、AI执行、AI调整、AI验证,去招聘网站招揽、,照顾饮食起居订餐订飞机票、寻找新的挣钱机会,以六千万分之一秒的速度分析信息
      • 打造ChatPDF:回归学习本质,跳过所有的繁文缛节、场面话,根据你的理解提问,给你提供最直接的反馈,你听不懂还可以要求举例子、可视化、按流程顺序拆解

 


思维链 CoT

最初的语言模型都是基于经验的,只能根据词汇之间的相关性输出答案,根本没有思考能力……

但是从使用思维链后,大模型已经是有思考能力的。能进行一定的推理。

2021年,OpenAI在训练神经网络过程中有一个意外发现。

神经网络他可以很好地模仿现有的数据,很少犯错误。

可是如果你给他出个没练过的题目,他还是说不好。于是你就让他继续练。

继续训练好像没什么意义,因为现在只要是模仿他就都能说得很好,只要是真的即兴发挥他就不会。

但你不为所动,还是让他练。


1 0 2 10^2 102 1 0 5 10^5 105 训练完全没有成果。

就这样练啊练,惊奇地发现,他会即兴演讲了!给他一个什么题目,他都能现编现讲,发挥得很好!

  • 一千步乃至一万步,模型对训练题的表现已经非常好了,但是对生成性题目几乎没有能力
  • 练到10万步,模型做训练题的成绩已经很完美,对生成性题也开始有表现了
  • 练到100万步,模型对生成性题目居然达到了接近100%的精确度

这就是量变产生质变。研究者把这个现象称为「开悟(Grokking)」。

2022年8月,谷歌大脑研究者发布一篇论文,专门讲了大型语言模型的一些涌现能力,包括少样本学习、突然学会做加减法、突然之间能做大规模、多任务的语言理解、学会分类等等……

而这些能力只有当模型参数超过1000亿才会出现 —— 涌现新能力的关键机制,叫 思维链

思维链就是当模型听到一个东西之后,它会嘟嘟囔囔自说自话地,把它知道的有关这个东西的各种事情一个个说出来。

思维链是如何让语言模型有了思考能力的呢?

比如你让模型描写一下“夏天”,它会说:“夏天是个阳光明媚的季节,人们可以去海滩游泳,可以在户外野餐……”等等。

只要思考过程可以用语言描写,语言模型就有这个思考能力。

怎么用思维链呢?

思维链的主要思想是通过向大语言模型展示一些少量的样例,在样例中解释推理过程。

那大语言模型在回答提示时也会显示推理过程,这种推理的解释往往会引导出更准确的结果。

既然如此,只要我们设置好让模型每次都先思考一番再回答问题,ta就能自动使用思维链,ta就有了思考能力。

CoT(链式思考)已被证实能够改善大型AI模型在算术、常识和符号推理等任务上的表现。

用户发现,当他们在问题中添加“让我们一步步来思考”时,模型仿佛被施了魔法,之前答错的数学题突然能够正确解答,原本无理的论述变得有条有理。

不过,CoT对模型性能的提升与模型的大小成正比关系,模型参数至少达到100亿才有效果,达到1000亿效果才明显。

 


LangChain

如果直接用大模型的API去做产品,会遇到很多限制:

  • 输入限制 — 最大token 可能只能输入 3000 字
  • 私有化 — 数据是公司机密,必须私有化
  • 大模型只有微调的知识 — 不能联网获取最新知识,专业领域就不准确
  • 没办法查询数据库 — 只能手工
  • 输出结果不稳定 — 一会说可以,一会说不可以,你到底想说什么
  • 无法操作外部工具 — 复杂的任务不只是文本,要突破文本的限制

LangChain 就是让大模型突破这些限制:

  • 无输入限制,能批量读取所有pdf
  • 查询数据库
  • 实现联网功能
  • 能调用所有开源大模型,不用自己一个一个方法去学习
  • 能把各种工具 和 大模型 串起来,突破文本限制

 
LangChain 编程是一种新的编程方式,改变了传统的编程思维。

在这种方式中,你不是直接编写代码来解决问题,而是定义一系列的工具和流程,然后让大型人工智能模型(比如ChatGPT)去执行这些流程,提供逻辑判断和流程组合。

这种编程方式的挑战在于它需要一种不同的思维方式:你需要更多地考虑如何设计流程和使用工具,而不是直接编写代码。调试也更加复杂,因为你需要以一种更加语义化的方式来编程,这意味着要非常清楚地表达你的意图,才能得到确切的答案或预期的结果。

LangChain 编程是一种利用人工智能来辅助编程的方法,它要求编程者以一种新的方式思考问题和解决问题。

更多的思考聚焦于是如何确保模型的稳定性,而不是传统意义上的业务逻辑编程。

LangChain API 文档:https://python.langchain.com.cn/docs/get_started/introduction

  • LangChain 更新很快,前段时间写的代码,现在就不能用了
  • 有时候更新太快,API文档也是错的
  • 那可去 LangChain 的 GitHub 开一个 Issue,很快就可以得到解答

一时间我也不知道该怎么写,昨日编程行万里,今朝更新又重启。

这里会把重点放在框架上,心中有框架可以快速适应新变化:

LangChain 六大组件:

  • 模型IO:选择某个大模型、输入提示词、输出解析器
  • 数据连接:文档加载器(能从不同来源加载文档)、文档转换器(把文档转问答对)、文本嵌入模型(文本转小数)、向量存储(存储嵌入数据)、检索器(查询数据)
  • Chains链:把每个组件串起来
  • Memory:记忆上下文
  • Agents代理:能使用多种工具(数学题调计算器、上网调谷歌搜索)
  • 回调:对各个阶段做日志记录、监控、流处理等

模型IO:和大模型交互、提示词模版

数据连接:从数据的接入、分割,到向量的构建、存储、搜索

链:串联和组织,多个语言模型、组件

记忆:灵魂伴侣,最熟悉你的机器

代理:软件不会用怎么办?退下,我来!!

回调:语义表达清,调试更精准

 


LangChain 大模型结合 打造 钢铁侠的全能助理 Jarvis

 


打造AutoGPT:突破文本限制,从语言理解到任务执行,AI分析、AI执行、AI调整、AI验证,去招聘网站招揽、,照顾饮食起居订餐订飞机票、寻找新的挣钱机会,以六千万分之一秒的速度分析信息

 


打造ChatPDF:回归学习本质,跳过所有的繁文缛节、场面话,根据你的理解提问,给你提供最直接的反馈,你听不懂还可以要求举例子、可视化、按流程顺序拆解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291756.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#中使用 async await TaskCompletionSource<T>实现异步逻辑同步写

Task、async 和 await 是 C# 中用于处理异步编程的关键概念。它们一起构成了异步编程的基础。 Task Task 是表示异步操作的抽象,它属于 System.Threading.Tasks 命名空间。Task 可以表示已经完成的任务、正在运行的任务或者尚未开始的任务。通过 Task,…

算法导论复习——CHP16 贪心算法

定义 每一步都做出当前看来最优的操作。 问题引入——活动选择问题 问题描述 活动选择问题就是对给定的包含n个活动的集合S,在已知每个活动开始时间和结束时间的条件下,从中选出最多可兼容活动的子集合,称为最大兼容活动集合。 不失一般性&a…

【C++入门】C++内存管理

目录 前言 C/C内存分布 C内存管理方式 1. new和delete操作内置类型 快速了解与使用 2. new和delete操作自定义类型 3. operator new与operator delete 4. operator new [ ] *5.定位new 6. malloc/free和new/delete的区别 总结 前言 C作为一种面向对象的编程语言&#xff…

AI:110-基于深度学习的药物分子结构生成与预测

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

Unity ab包如何加密

「ab包」全称为 AssetBundle ,是Unity提供的一种资源存储压缩包。其中储存了游戏的资源,如图片、模型、纹理、音视频、代码等文件。 由于ab包具有灵活储存、支持热更、包体较小且便于管理等优势,已经成为了市面上主流的游戏资源压缩方式。 …

Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常详细地介绍给大家,希望对各…

【中小型企业网络实战案例 七】配置限速

相关学习文章: 【中小型企业网络实战案例 一】规划、需求和基本配置 【中小型企业网络实战案例 二】配置网络互连互通【中小型企业网络实战案例 三】配置DHCP动态分配地址 【中小型企业网络实战案例 四】配置OSPF动态路由协议【中小型企业网络实战案例 五】配置可…

51单片机(STC8)-- GPIO输入输出

文章目录 I/O口相关寄存器端口数据寄存器端口模式配置寄存器(PxM0,PxM1)端口上拉电阻控制寄存器(PxPU)关于I/O的注意事项 配置I/O口I/O设置demoI/O端口模式LED控制(I/O输出)按键检测(I/O输入) S…

【模拟量采集1.2】电阻信号采集

【模拟量采集1.2】电阻信号采集 1 怎么测?2 测输入电阻电压即转为测模拟电压值,这里需要考虑选用怎样的辅助电阻?3 实际电路分析3.1 在不考虑 VCC-5V 电压的纹波等情况时(理想化此时输入的 VCC 就是稳定的 5V)3.2 若考…

拖拽式工作流好用吗?有何特点?

大家都知道,随着行业的进步和发展,低代码技术平台也迎来了蓬勃发展期。很多企业喜欢使用低代码实现提质增效的办公效果,拖拽式工作流是其中一个功能,是助力企业实现流程化办公的得力助手。那么,拖拽式工作流好用吗&…

robots.txt

####什么是robots.txt? ​ robots.txt是一个协议,我们可以把它理解为一个网站的"管家",它会告诉搜索引擎哪些页面可以访问,哪些页面不能访问。也可以规定哪些搜索引擎可以访问我们的网站而哪些搜索引擎不能爬取我们网站的信息等等,是网站管理者指定的"君子协议…

FMQL BOOT.bin固化文件生成及固化流程记录

FMQL BOOT.bin固化文件生成及固化流程记录 一、概述 此篇记录上海复旦微JFMQL15T开发板 烧录固化文件BOOT.bin生成及固化操作流程。 以上一篇文章FQML_AXI_GPIO工程构建调试记录 中的工程为基础,做更改。 二、vivado工程配置 2.1新建工程 打开FQML_AXI_GPIO工程…

Unity | Shader基础知识番外(向量数学知识速成)

目录 一、向量定义 二、计算向量 三、向量的加法(连续行走) 四、向量的长度 五、单位向量 六、向量的点积 1 计算 2 作用 七、向量的叉乘 1 承上启下 2 叉乘结论 3 叉乘的计算(这里看不懂就百度叉乘计算) 八、欢迎收…

视频号小店全新赛道,新手如何入驻?

我是电商珠珠 视频号小店为视频号团队所研发。距今为止也才发展了一年时间,在23年下半年掀起了不小的浪花。 我做视频号小店也有一年时间了,在他刚开始三个月的时候,就开始带着团队一起做。到现在也拥有了自己的视频号小店运营团队&#xf…

数模学习day06-主成分分析

主成分分析(Principal Component Analysis,PCA)主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。一般来说当研究的问题涉及到…

P5534 【XR-3】等差数列————C++、C

目录 【XR-3】等差数列题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 解题思路Code运行结果 【XR-3】等差数列 题目描述 小 X 给了你一个等差数列的前两项以及项数,请你求出这个等差数列各项之和。 等差数列&#…

JavaWeb——后端之Mybatis

四、Mybatis 概念: Mybatis是一款持久层(Dao层)框架,用于简化JDBC(Sun操作数据库的规范,较繁琐)的开发 历史: Apache的一个开源项目iBatis,2010年由apache迁移到了goog…

Spring见解

1.Spring概述 1.1.Spring介绍 Spring是轻量级Java EE应用开源框架(官网: http://spring.io/ ),它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面? IOC 解决传统Web开发中硬编…

【MATLAB】EEMD_LSTM神经网络时序预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 EEMD-LSTM神经网络时序预测算法是一种结合了扩展经验模态分解(EEMD)和长短期记忆神经网络(LSTM)的时间序列预测方法。 EEMD是一种改进的EM…