大模型思维链 CoT 应用:langchain 大模型 结合 做 AutoGPT,解决复杂链式任务打造全能助手
- 思维链 CoT
- LangChain
- 基础层:models、LLMs、index
- 能力层:Chains、Memory、Tools
- 应用层:文档问答、数据库问答、智能体Agents
- LangChain 大模型结合
- 打造 AutoGPT
思维链 CoT
最初的语言模型都是基于经验的,只能根据词汇之间的相关性输出答案,根本没有思考能力……
但是从使用思维链后,大模型已经是有思考能力的。能进行一定的推理。
2021年,OpenAI在训练神经网络过程中有一个意外发现。
神经网络他可以很好地模仿现有的数据,很少犯错误。
可是如果你给他出个没练过的题目,他还是说不好。于是你就让他继续练。
继续训练好像没什么意义,因为现在只要是模仿他就都能说得很好,只要是真的即兴发挥他就不会。
但你不为所动,还是让他练。
1 0 2 10^2 102 到 1 0 5 10^5 105 训练完全没有成果。
就这样练啊练,惊奇地发现,他会即兴演讲了!给他一个什么题目,他都能现编现讲,发挥得很好!
- 一千步乃至一万步,模型对训练题的表现已经非常好了,但是对生成性题目几乎没有能力
- 练到10万步,模型做训练题的成绩已经很完美,对生成性题也开始有表现了
- 练到100万步,模型对生成性题目居然达到了接近100%的精确度
这就是量变产生质变。研究者把这个现象称为「开悟(Grokking)」。
2022年8月,谷歌大脑研究者发布一篇论文,专门讲了大型语言模型的一些涌现能力,包括少样本学习、突然学会做加减法、突然之间能做大规模、多任务的语言理解、学会分类等等……
而这些能力只有当模型参数超过1000亿才会出现 —— 涌现新能力的关键机制,叫 思维链。
思维链就是当模型听到一个东西之后,它会嘟嘟囔囔自说自话地,把它知道的有关这个东西的各种事情一个个说出来。
思维链是如何让语言模型有了思考能力的呢?
比如你让模型描写一下“夏天”,它会说:“夏天是个阳光明媚的季节,人们可以去海滩游泳,可以在户外野餐……”等等。
只要思考过程可以用语言描写,语言模型就有这个思考能力。
怎么用思维链呢?
思维链的主要思想是通过向大语言模型展示一些少量的样例,在样例中解释推理过程。
那大语言模型在回答提示时也会显示推理过程,这种推理的解释往往会引导出更准确的结果。
既然如此,只要我们设置好让模型每次都先思考一番再回答问题,ta就能自动使用思维链,ta就有了思考能力。
LangChain
LangChain 编程是一种新的编程方式,改变了传统的编程思维。
在这种方式中,你不是直接编写代码来解决问题,而是定义一系列的工具和流程,然后让大型人工智能模型(比如ChatGPT)去执行这些流程,提供逻辑判断和流程组合。
这种编程方式的挑战在于它需要一种不同的思维方式:你需要更多地考虑如何设计流程和使用工具,而不是直接编写代码。调试也更加复杂,因为你需要以一种更加语义化的方式来编程,这意味着要非常清楚地表达你的意图,才能得到确切的答案或预期的结果。
LangChain 编程是一种利用人工智能来辅助编程的方法,它要求编程者以一种新的方式思考问题和解决问题。
更多的思考聚焦于是如何确保模型的稳定性,而不是传统意义上的业务逻辑编程。
有几个关键点:
-
模型的选择和管理:选择合适的人工智能模型对于任务至关重要。不同的模型适合不同类型的任务,因此理解每个模型的优势和局限性是重要的。
-
数据和输入的处理:虽然不需要深入编写复杂的业务逻辑,但确保输入数据的质量和适用性对于获取可靠结果至关重要。这包括数据的清洗、格式化和预处理。
-
流程的设计:设计有效且高效的工作流程来协调不同的工具和服务,确保它们能够适当地交互和响应用户需求。
-
错误处理和稳定性:在自动化的环境中,需要特别关注异常情况的处理和系统的稳定性。这包括对意外情况的预测、监控系统表现以及制定相应的应对策略。
-
用户交互和体验:即使焦点放在模型的稳定性上,用户体验仍然非常重要。这包括确保用户能够以直观、高效的方式与系统交互。
LangChain API 文档:https://python.langchain.com.cn/docs/get_started/introduction
- LangChain 更新很快,前段时间写的代码,现在就不能用了,有时候API文档也是错的
- 那可去 LangChain 的 GitHub 开一个 Issue,很快就可以得到解答
一时间我也不知道该怎么写,昨日编程行万里,今朝更新又重启。
这里会把重点放在框架上,心中有框架可以快速适应新技术。