摘要
本文提出了原则推理和行动(PRAct)框架,这是一种从轨迹数据中学习和执行行动原则的新方法。核心是使用来自反思和优化引擎的文本梯度来推导这些行动原则。为了适配任务需求,本文提出了一个新的优化框架,即反思性原则优化(Reflective Principle Optimization, RPO)。RPO使用反思器反思当前的行动原则,并使用优化器相应地更新它们。RPO框架有两种:Reward-RPO,它使用环境奖励进行反思;以及Self-RPO,它在没有外部奖励的情况下进行自我反思。此外,本文介绍了两种RPO方法,RPO-Traj和RPO-Batch,以适应不同设置。
简介
ReAct框架的Agent和PRAct框架区别如上。可以看到,ReAct在接受到用户输入后,循环进行思考、执行、观察的循环。这可能会导致一些问题:矛盾;死循环;等等。为了解决该问题,PRAct为制定行动前制定了一个原则,让agent根据原则进行行动并检查是否符合原则。
这种观念有点类似于宪法的感念,提供一个最根本的知道,让Agent根据该指导进行行动。这种观念在合成数据领域算是一个比较成熟的应用了。
方法
定义
首先,本文定义了PRAct对推理时的约束规则:
π
(
a
t
∣
c
t
)
=
E
x
e
c
u
t
o
r
(
a
t
∣
τ
(
c
t
)
;
P
)
\pi(a_t|c_t) = Executor(a_t|\tau (c_t); \mathcal{P})
π(at∣ct)=Executor(at∣τ(ct);P)
其中
a
t
a_t
at是t时刻将要采取的行动,
c
t
=
[
(
a
1
,
o
1
)
,
.
.
.
]
c_t=[(a_1, o_1), ...]
ct=[(a1,o1),...]是t时刻之前的一系列行动、观测集;
o
i
o_i
oi表示观测结果。
τ
\tau
τ是提示模版,需要经过该提示模版将行为序列组织为上下文。
P
\mathcal{P}
P是行动指导。
Reflective Principle Optimization (RPO)
整体框架如下图:
执行
代理根据当前的原则集执行任务,并从环境中收集观察结果。
反思
反思阶段,代理回顾其任务执行,评估行动的选择以及它们是否满足任务要求。反思过程识别需要调整原则以更好地处理观察到的任务的条件或指导。
r
q
=
R
E
F
L
E
C
T
O
R
(
c
q
,
P
)
r_q=REFLECTOR(c_q, \mathcal{P})
rq=REFLECTOR(cq,P)
其中
c
q
c_q
cq表示对查询
q
q
q的行为、观察序列。
优化
LLM基于反思结果细化原则,并研究了两种优化方法,PRO-Traj和RPO-Batch。其中
- RPO-Traj: 这种方法分别考虑每个轨迹及其反思来优化原则。并且为所有查询Q生成优化后的原则集P*。 P ∗ = ∑ Q O P T ( r q , P ) \mathcal{P}^*=\sum_{Q}OPT(r_q, P) P∗=∑QOPT(rq,P),其中 ∑ Q \sum_Q ∑Q表示对所有文本的总结,即 ∑ Q = S U M M A R Y ( S 1 , . . . ) \sum_Q=SUMMARY(S_1, ...) ∑Q=SUMMARY(S1,...)
- RPO-Batch: 借助LLM的上下文能力,使用提示模板将所有反思连接起来,然后优化器直接生成新原则。 P ∗ = O P T ( C O N C A T ( r q ∣ r ∈ Q ) , P ) \mathcal{P}^*=OPT(CONCAT(r_q|r\in Q), P) P∗=OPT(CONCAT(rq∣r∈Q),P)
实验
PRAct框架与现有的代理推理方法(Act, ReAct, Reflexion, 和 Expel)进行了比较,并使用了两个基础的大型语言模型(LLM):GPT-3.5-turbo和GPT-4-turbo作为反思、优化器。实验结果如下:
总结
本文介绍了PRAct(Principled Reasoning and Acting)框架,这是一个用于优化大型语言模型(LLM)代理的推理和行动原则的新方法。PRAct框架通过结合行动原则和反思性原则优化(Reflective Principle Optimization, RPO)来提高代理的性能。
- PRAct框架通过提供行动原则,有助于代理行动的理解。
- RPO算法通过任务执行适应行动原则,展示了学习效果。
- PRAct框架为如何规范代理行动提供了新的讨论,而RPO则为如何优化代理提示提供了新的思路。