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

本文主要是介绍【解决复杂链式任务,打造全能助手】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:回归学习本质,跳过所有的繁文缛节、场面话,根据你的理解提问,给你提供最直接的反馈,你听不懂还可以要求举例子、可视化、按流程顺序拆解

这篇关于【解决复杂链式任务,打造全能助手】LangChain 大模型 打造 钢铁侠的全能助理 Jarvis的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/570860

相关文章

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3