Agent 理论介绍
一句话介绍agent:一个能够自主完成给定任务的实体
广义的讲Agent可以是一段代码(比如完成计算任务),可以是自动驾驶汽车(完成自动驾驶功能),也可以是一只正在执行警情任务的警犬,可以是正在写代码的程序员,甚至可以是小米汽车工厂正在造车的员工们。可以发现这些agent都存在一些共性,比如都有任务task,都有动作action,还有环境environment。提到这些如果熟悉机器学习的话很容易会联想到强化学习,实际上强化学习里面也有agent的概念,而最早展示AI能力的AlphaGo就是强化学习能力的代表。
强化学习
强化学习实际就是利用奖惩机制完成某个任务的算法。以下面游戏为例子:
游戏要求给老鼠设计一条路线,保证老鼠迟到的蛋糕最多,条件是不会被猫吃掉而且步数不超过20步。强化学习首先让老鼠随机走一条路线,在这条路线中每走完一步都有一个奖惩系数,吃到蛋糕系数为正,被猫吃掉则为负,而每条路线之后都有一个奖励总和,这与吃到的蛋糕个数有关,经过多轮重复训练之后,老鼠就能找到一条奖励总和较高的路线,而当环境发生变化,也就是蛋糕和猫的位置发生了变化,老鼠能根据通过强化学习学到的模型作出较好的决策。
术语介绍:
在强化学习中,由agent和environment组成,agent通过感知environment可以知道自己的状态state(吃到蛋糕了还是被猫吃了,之后根据自己的state以及选择的策略policy执行某个动作action,执行完某个动作之后会有一个reward,之后agent会进入一个新的state,重复上述过程直到达到结束条件。模型需要学习的就是这个policy,而优化目标最大化整个reward之和。
在大语言模型出来之前,强化学习算法是实现agent效果最好算法之一,比如还有迁移学习算法,元学习等等。那么这些算法有什么缺点呢:
- 不同场景之间agent的能力迁移较差,换句话说针对不同的环境场景需要不同训练数据来训练
- 与人交互性差,人工干预能力较差
- 模型效果不稳定
大语言模型出现之后,Agent有哪些进展呢?。一句话概括就是大语言模型可以充当agent的大脑,也就是强化学习的策略policy,而且不需要学习。
LLM-based Agent核心组件
对于基于大语言模型的agent,它的核心组件有大脑brain