第一章 何谓Agent 为何Agent

Agent,即智能体或智能代理,是一个具有一定程度自主性的人工智能系统。更具体地说,Agent 是一个能够感知环境、做出决策并采取行动的系统。 我们倾向于把所有能够感知环境、做出决策并采取行动的实体或系统视为人工智能领域中的代理。 ChatGPT 首先通过文本或语音输出框来感知环境,并进行推理决策,之后再通过文本框或者语音与人们互动。 AlphaGo

大模型就是Agent的大脑

大模型(或称大语言模型、大型语言模型,Large Language Model,LLM)的出现标志着自主 Agent 的一大飞跃。大模型因令人印象深刻的通用推理能力而得到人们的大量关注。研究人员很快就意识到,这些大模型不仅仅是数据处理或自然语言处理领域的传统工具,它们更是推动 Agent 从静态执行者向动态决策者转变的关键。 这些基于大模型的 Agent 通过反馈学习和执行新的动作,借助庞大的参数以及大规模的语料库进行预训练,从而得到世界知识(World Knowledge)。同时,研究人员通过思维链(Chain of Thought,CoT)、ReAct(Reasoning and Acting,推理并行动)和问题分解(Problem Decomposition)等逻辑框架,引导 Agent 展现出与符号 Agent 相媲美的推理和规划能力。这些 Agent 还能够通过与环境的互动,从反馈中学习并执行新的动作,获得交互能力。

第二章 基于大模型的Agent技术框架

agent构成 -- agent构成

任务分解

思维链: 这是一种提示技术,通过让模型“一步一步地思考”,帮助它将大任务分解成小任务,并清楚地解释自己的思考过程。 思维树: 通过在每个步骤探索多种推理可能性,进而形成一种树状结构。思维树可以用不同的搜索方法,例如广度优先搜索(Breadth-First Search,BFS)或深度优先搜索(Depth-First Search,DFS),并通过提示或投票来评估每个步骤。

自我反思

各种记忆

预训练记忆

大模型在大量包含世界知识的数据集上进行预训练。在预训练中,大模型通过调整神经元的权重来学习理解和生成人类语言,这可以被视为其“记忆”的形成过程。通过使用深度学习神经网络和梯度下降等技术,大模型可以不断提高基于输入预测或生成文本的能力,进而形成世界知识和长期记忆。

上下文互动

大模型在执行任务时,会将长期记忆和提供的上下文(也就是提示信息)结合起来使用。理想情况下,如果上下文包含与大模型的记忆知识冲突的任务相关信息,那么大模型应优先考虑上下文,以生成更准确和具有上下文特定性的回应。通过诸如知识意识型微调(knowledge-aware fine-tuning)等方法,可以增强大模型在使用上下文和记忆知识方面的可控性和鲁棒性。

通过针对特定任务的微调进行增强

大模型可以在更具体的数据集上进一步微调,以适应特定行为或提高特定任务的性能。例如,针对 SAT(Satisfiability,可满足性)问题数据集进行微调的大模型在回答此类问题时会更加熟练。

外部记忆系统

大模型与外部记忆系统(如 Memory Bank,见图 2.3)整合,通过提供长期记忆来增强大模型性能,使大模型能够记住和回忆过去的互动、理解用户的个性并提供更个性化的互动。这涉及动态个性理解、使用双塔密集检索模型的记忆检索,以及受艾宾浩斯遗忘曲线理论启发的记忆更新机制等

ReAct

ReAct 框架的核心在于将推理和行动紧密结合起来。它不是一个简单的决策树或固定算法,而是一个综合系统,能够实时地进行信息处理、决策制定,以及行动执行。ReAct 框架的设计哲学是:在动态和不确定的环境中,有效的决策需要持续的学习和适应,以及快速将推理转化为行动的能力,即形成有效的观察—思考—行动—再观察的循环

提示工程(Prompt Engineering)

提示工程(Prompt Engineering)是一种设计和优化输入以指导大模型(如 GPT-4 模型)产生特定输出的方法。提示工程涉及创造性地构建、测试和优化用于大模型的提示。这些提示可能包括问题、陈述或指令,目的是以最有效的方式引导大模型提供所需的信息。它不仅包括文本内容的选择,还涉及格式、风格、上下文提示等方面,以激发大模型产生最佳的响应。 提示工程可以提高大模型的输出效率和准确性。通过精心设计的提示,大模型能够更快地理解问题的本质,并以更高的准确率生成有用的回答。对于特定的应用或领域,如法律、医学或工程,可以通过提示工程定制大模型的回应,使其更加相关和专业。此外,好的提示设计当然可以提升用户与 AI 的交互体验,使对话更加自然和有趣。

langchain

■ langchain-core:包含 LangChain 生态系统所需的核心抽象概念以及 LangChain 表达式语言。它是创建自定义链的基础,注重组合性。 ■ langchain-community:囊括第三方对 LangChain 各种组件的集成。这是为了将通常需要不同设置、测试实践和维护的集成代码从核心包中分离出来。 ■ langchain-experimental:包含实验性 LangChain 代码,用于研究和实验,里面的功能会经常变化。

其他认知框架

函数调用

函数调用(Function Calling)是由 OpenAI 公司提出的一种 AI 应用开发框架。在这种框架中,大模型被用作调用预定义函数的引擎。这里的预定义函数可以用于 API 调用、数据库查询或其他程序化任务。对于需要与现有系统集成或执行具体技术任务的应用,如自动化脚本或数据分析,此框架非常合适

第三章 OpenAI API、LangChain 和 LlamaIndex

都是用来开发智能体应用的框架

作者 littlepudding

奇瑞汽车,车载智能语音开发

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注