EAGLE-1 的树结构是这样工作的:
离线阶段:在训练/评估阶段,通过统计大量样本,分析"第 i 个位置、第 j 个候选"的平均接受率,然后用动态规划或贪心搜索,在给定的计算 budget(树的总节点数)下,找到期望接受 token 数最多的树形状。这棵树被固定下来。
运行时阶段:树的拓扑完全固定,比如预定义好:
第1层展开 top-2
第1层第1个节点展开 top-2
第2层第1个节点展开 top-1
第2层第2个节点不展开
第1层第2个节点展开 top-1
...
EAGLE-2 :
在计算的时候,树的拓扑展开是动态决定的,每个node的概率一直向下乘,取最大的两个进行draft的前向;
在形成树后,只取前8个概率最高的词,展开成一维向量。加上一个mask下三角矩阵,用来展示每个node的父亲及以上节点信息;
EAGLE-3 :
hidden_state会使用多层而不是之前的最后一层;