点击下方卡片,关注“自动驾驶之星”
摘要
我们提出了DriveGPT,这是一个可扩展的自动驾驶行为模型。我们将驾驶建模为一个序列决策任务,并学习一个变换器模型,以自回归方式预测未来的代理状态。通过将我们的模型参数和训练数据规模扩展多个数量级,我们能够探索数据集大小、模型参数和计算能力的扩展特性。我们通过定量指标和定性示例(包括在复杂的现实世界场景中的闭环驾驶)评估了DriveGPT在不同规模下的表现。在一个单独的预测任务中,DriveGPT超越了现有的最先进基准,并通过在大规模数据集上进行预训练,展现了性能提升,进一步验证了数据扩展的好处。
欢迎加入自动驾驶实战群
介绍
基于变换器的基础模型在各个机器学习领域的序列建模任务中变得越来越普遍。这些模型通过捕捉长程依赖关系和时间关系,在处理序列数据方面非常有效。基于变换器的模型的一个关键优势是能够从大规模数据集中学习,包括数百万个训练样本,使其能够通过增加模型规模(高达数十亿个模型参数)来处理复杂任务。
在自动驾驶的背景下,基于变换器的模型在行为建模方面取得了显著的成功。行为建模预测交通代理的未来行为,以支持规划和运动预测等关键任务。与依赖手工设计特征或特定规则的传统机器学习方法不同,变换器能够有效地从大规模的多模态数据中学习代理行为的潜在时空依赖性。
模型和数据集规模的扩大是最近文本预测序列建模进展的关键,然而,是否这些扩展趋势同样适用于行为建模任务仍然是一个未解的问题。现有的工作通常受限于训练数据或模型规模,如表1所示。
在我们的研究中,我们呈现了在自动驾驶背景下扩展数据集规模和模型参数的综合研究。具体来说,我们在超过1亿个高质量的驾驶示例上训练了一个基于变换器的自回归行为模型,这一数量是现有开源数据集的约50倍,并且将模型扩展至超过10亿个参数,超越了现有已发布的行为模型。
3. 行为模型
我们使用标准的编码器-解码器架构作为我们的行为模型,如图2所示。由于变换器模型在序列建模任务中的可扩展性,我们选择基于变换器的模型作为编码器和解码器的骨干网络。
3.1 问题表述
我们将问题建模为一个序列预测任务,预测目标代理在未来 T 步内的位置,通过在每一步应用链式法则,条件化于驾驶上下文信息 (c) 和历史代理位置 (s):
我们将“状态”定义为包括位置、方向、速度和加速度的完整运动学状态,这些通常在代理的历史观测中可用;而将“位置”定义为二维的 (x, y) 坐标,以简化输出空间。
3.2 场景编码器
编码器采用标准的变换器编码器架构,将所有输入模态融合为一组场景嵌入标记。它将原始输入特征(包括目标代理的历史状态、附近代理的历史状态和地图状态)作为一组向量,并将所有输入规范化为以代理为中心的视图。每个向量通过类似于 PointNet 的编码器映射到一个标记嵌入。在编码器的末尾,我们应用自注意力变换器,将所有输入上下文融合为一组编码器嵌入 (c \in R^{n \times d}),其中 n 是向量的数量,d 是标记的维度,这些嵌入总结了驾驶场景。
3.3 LLM 风格的轨迹解码器
受LLM文献的启发,我们按照的方法使用变换器解码器架构预测未来每一步的代理位置分布。解码器首先将所有步骤的代理位置进行标记化,并通过线性层将其映射为维度为 d 的嵌入,接着通过 LayerNorm 层和 ReLU 层。每一步 t,解码器获取到 t 步的代理嵌入,并与编码器的嵌入 (c) 进行交叉注意力,预测下一步 (t + 1) 时的代理位置分布。
输出是一组离散的动作 (a),这些动作表示为 Verlet 动作,即位置的二阶导数。我们可以应用以下公式将 Verlet 动作映射到位置:
公式2
其中 (a_t) 是预测的 Verlet 动作,((s_t - s_{t-1})) 是估算的速度。这个表示方法有助于使用一小组动作候选来预测平滑的轨迹。
3.4 训练
为了训练 DriveGPT 模型,我们采用教师强迫(Teacher Forcing)方法,通过将未来位置的真实值作为输入提供给轨迹解码器。这使我们能够并行预测所有的未来步骤。
我们使用一个跨熵分类损失函数,作用于动作空间,其中目标动作选择为与真实未来轨迹最接近的动作。更多细节请参见附录。
3.5 推理
在推理时,我们遵循标准的LLM设置,并通过自回归地展开一个轨迹,重复预测下一步动作分布、采样一个动作并将其添加回输入序列的过程。
我们在批量中采样多个轨迹,以近似分布,然后使用 K-Means 进行子采样,最终得到所需的模式数量,如下所示。
4. 扩展实验
我们的扩展实验旨在确定模型和数据规模对行为预测性能的影响。量化与大规模语言模型(LLMs)类似的扩展规律可以帮助优先考虑数据和计算在未来行为建模研究中的价值。我们将重点探索模型和数据规模的下一前沿——比之前报道的工作大一个数量级。
4.1 数据扩展
从数百万英里的高质量现实世界人类驾驶示范中,我们为内部研究数据集挑选了一个小子集,共包含1.2亿个片段。该数据集经过平衡,涵盖了多个城市和国家的多样化地理区域,以及各种驾驶场景,例如通过双排停车的车辆、无保护的左转、施工区域等。我们提取了地图信息、目标代理状态和附近代理状态,并将其转化为向量表示,这在行为建模文献中是常见的。
我们将模型规模扩展了三个数量级,从150万个参数到14亿参数,通过增加嵌入维度来实现。对于每个模型规模,我们探索了多种学习率调度,并选择了最能提供最佳性能的方案。与大规模语言模型扩展研究的做法一致,每个模型都训练了一个 epoch。
我们通过在全面的验证集上计算验证损失来衡量模型性能。我们使用验证损失作为衡量模型性能的代理,遵循扩展研究中的标准做法。该损失计算为下一步动作预测的交叉熵,作为我们主要的性能指标。其他与驾驶相关的特定指标将在第5.1.1节和第5节中报告。
4.2 数据扩展结果
数据扩展的结果如图3所示。最小的数据集为220万个样本,模拟了Waymo Open Motion Dataset(WOMD)的规模,这是一个用于行为建模的大型开源数据集(大约44k个场景,每个场景中包含多个目标代理)。此外,我们还选择了我们内部研究数据集的一些子集,研究不同数量级数据集大小的扩展。我们的实验使用的数据量是WOMD的约50倍,探索了一个全新的设计空间。
结果表明,当模型在更多独特的数据样本上进行训练时,性能会提升,无论模型大小如何。从图3中的扩展规律推算,为了使最佳损失再提高10%,我们需要增加2亿个训练样本。提高20%的性能则需要约9亿个额外样本。因此,我们发现数据仍然是进一步提升驾驶性能的瓶颈。
最后,扩展结果在不同模型规模下保持相对一致。这一一致性表明,数据扩展的比较可以在合理的小模型规模(超过1000万个参数)下进行。
4.3 模型扩展
我们现在研究三个数量级的模型规模(150万个参数到14亿参数)。我们通过增加变换器的隐藏维度来增加模型规模,简化了操作。我们注意到,修改其他参数(如注意力头数和每个头的隐藏维度)不会对结果产生显著变化。
训练更大模型对学习率非常敏感,这一点在其他扩展研究中也有观察到。对于每个模型规模,我们在不同的学习率下进行了多次实验,以选择最优的性能。更多细节请参见附录。
图4中的结果显示,对于固定的数据集规模,增加模型参数对验证损失有混合影响。损失在达到2600万个参数时有所改善,然后在1630万个参数时进入平台期。尽管这些结果与LLM扩展文献中的模型扩展带来显著益处的结论不同,我们注意到,实际的驾驶指标随着模型规模的增大而继续改善,如第4.4节和第5.1.2节所示。需要进一步研究损失与指标之间的差距,以及行为预测与文本预测任务之间是否存在根本的差异。
4.4 计算扩展
在图5中,我们检查了计算如何影响训练损失,计算通过浮点运算(FLOPs)来衡量。我们识别出一个单调递减的“最小边界”(min-bound),该边界显示了当前计算值下观察到的最低训练损失。随着计算量的增加,训练损失通常会减少。最初,这一减少是非常陡峭的,但在更高的FLOPs值时,减少的速度逐渐变慢。这一趋势与LLM扩展文献中的观察一致,例如报告的结果,覆盖了这些研究探索的FLOP范围的一部分。
接下来,我们研究是否存在一个最佳的模型参数和数据大小的组合,以适应固定的计算预算。由于训练我们正在探索的规模的模型具有巨大的计算开销,因此在研究中最好利用数据资源。在这项研究中,我们将计算预算固定在不同的FLOP组上。对于固定的计算预算,我们可以将资源分配给模型参数或数据样本,保持它们的乘积不变。图6展示了在不同计算预算下的性能。
结果清晰地表明,更大的计算预算会带来更好的性能,同时最佳的模型规模也相应增加,如“最佳”灰线所示。结果进一步表明,数据是主要的瓶颈,因为在三个最大的FLOP组中,最小的模型规模表现最好。
4.5 解码器架构的消融研究
我们将两种不同的模型架构扩展了两个数量级:我们的自回归解码器和一次性解码器。对于一次性解码器,我们遵循的做法,使用一个变换器解码器,它接受一组学习到的查询,并与场景嵌入进行交叉注意力,从而生成轨迹样本。该解码器被称为“一次性”解码器,因为它一次性生成完整的轨迹滚动,而自回归解码器则遵循LLM风格,一次生成一步的轨迹。
结果如图7所示,我们使用6秒时的minFDE作为代理来衡量模型性能,因为两种解码器架构的损失定义不同。尽管在小规模参数下性能较差,我们的自回归解码器在超过800万个参数时表现出更好的扩展性,并且在参数规模超过800万个时超过了“一次性”解码器的基准。尽管我们发现很难扩展一次性解码器,但我们确认自回归解码器在预测准确性方面能够扩展到1亿个参数,并将进一步的扩展性研究留作未来工作。
5. 规划与预测实验
在本节中,我们展示了DriveGPT在规划任务和运动预测任务中的详细实验结果,分别使用了我们的内部研究数据集和外部数据集。这里的结果进一步探讨了第4节中的扩展影响,并帮助将这些结果与驾驶任务和评估指标联系起来。
5.1. 内部评估:自动驾驶规划
在规划任务中,我们使用我们的内部研究数据集对模型进行了训练,该数据集包含数百万高质量的人工驾驶示范。然后,通过自回归预测下一步动作来生成自动驾驶(AV)轨迹,如第3.5节所述。
我们通过过采样批次中的轨迹并将其子采样至6条轨迹来近似分布。尽管AV最终必须选择一条轨迹用于规划,但返回多条样本有助于更好地理解多模态行为,并与运动预测指标保持一致。
我们通过一组标准的几何指标(包括minADE(mADE)、minFDE(mFDE)和miss rate(MR))以及基于语义的指标(包括越界率(Offroad)和碰撞率(Collision))来衡量规划性能。这些指标用于在全面的测试集上进行评估。此外,我们将这些指标在不同实验之间进行标准化,以突出数据规模和模型参数扩展时的相对性能变化。
5.1.1 数据扩展结果
我们比较了一个DriveGPT模型(26M参数,来自第4节的近似最优模型)在不同大小数据集上的训练效果。基准数据集(2.2M)选择模拟了一个典型的行为建模数据集(如WOMD)的训练规模。结果见表2,我们发现,在更多数据样本的训练下,AV轨迹的预测质量显著提高,尤其是在关键语义指标(如越界率和碰撞率)以及几何指标方面。这些结果与第5.1.1节一致。
我们进一步展示了图8中的两个定性示例,说明了更多数据训练的价值。在这些示例中,红色轨迹表示在120M样本上训练的DriveGPT,粉色轨迹表示在2.2M样本上训练的相同模型。这些例子显示,当模型在更多数据上训练时,我们的方法能够生成符合地图要求且无碰撞的轨迹,成功处理了涉及行人穿越马路和两辆双排停车的复杂交互。
5.1.2 模型扩展结果
我们使用120M的内部研究数据集训练了四个模型,并选择了8M模型作为基准。该基准模型代表了一个合理的规模,在此规模下,我们的模型开始优于一体式解码器,如第4.4节所示。结果见表3,其中所有指标都得到了提高。
5.1.3 闭环驾驶
我们展示了DriveGPT作为实时运动规划器在闭环环境中的有效性。模型从行业级感知系统获取输入特征,系统输出代理状态和地图信息。
在图10中,我们展示了一个挑战性的例子,在密集的城市交通中,两辆双排停车的车辆阻挡了前进的道路,并且还有其他来车。DriveGPT生成了平滑且安全的轨迹,绕过了障碍车辆并随后返回原车道。更多示例请见补充材料。
5.2. 外部评估:运动预测
为了与已发布的结果直接对比,我们在WOMD运动预测任务上评估了DriveGPT。此外,我们还通过在我们的内部研究数据集上进行预训练,并在规模较小的WOMD数据集上进行微调,来探讨扩展的好处。
随着模型规模的增加,DriveGPT在94M参数下的表现有所改善,在163M参数时,碰撞指标进一步提高。尽管验证损失在26M和163M之间趋于稳定,但驾驶指标随着模型容量的增加仍持续改善,这凸显了引入更多参数来提高驾驶性能的潜力。
在图9中,我们展示了一个定性例子,其中包含94M参数的较大DriveGPT在右转场景中产生了更好的轨迹样本(红色轨迹),这些轨迹保持在道路边界内,相比之下,8M参数的较小版本则表现较差。
5.2.1 开源编码器
对于外部评估,我们使用了开源的MTR编码器。该编码器与第3.2节中描述的编码器类似。我们做出这一修改是为了提高结果的可重现性,并利用MTR的开源数据加载代码来加载WOMD数据集。我们使用与第3.3节所述相同的自回归解码器。
5.2.2 预训练设置
我们对DriveGPT进行了一些小修改,以使其与WOMD数据集兼容。首先,我们修改了我们的地图数据,以包含与WOMD中相同的语义。其次,我们修改了代理数据,以包含与WOMD中交通代理相同的运动学特征。
我们通过在内部研究数据集上进行一轮预训练(如第4节所述),然后加载预训练的检查点并在WOMD数据集上进行微调。微调时使用的训练设置与MTR代码库[23]中的设置相同,即训练模型30轮,使用加权衰减学习率调度器。
5.2.3 验证结果
我们通过一组标准的WOMD指标来衡量模型性能,包括minADE(mADE)、minFDE(mFDE)、miss rate(MR)和mAP。每个指标在验证集上进行测量,并在三个不同的时间段上计算。
我们选择MTR,一个最先进的运动预测模型,作为我们的基准,并使用其开源代码重现其结果。我们提出了两种方法的变体,以验证其在运动预测任务上的有效性,包括在WOMD上训练的DriveGPT-WOMD和在我们的120M内部研究数据集上预训练并在WOMD上微调的DriveGPT-Finetune。
表4总结了车辆预测结果,我们看到我们的模型在所有几何指标上都大幅优于MTR,特别是在短时间段(2s和5s)内,minADE和minFDE分别提高了12%以上,miss rate提高了20%。虽然我们更注重几何指标,这些指标强调了预测轨迹样本的召回率(即不会遗漏关键轨迹),但我们的模型在mAP得分上较低,因为我们对概率的估计存在不足。由于在长序列上积累对数概率,我们的自回归解码器产生了不太准确的概率估计,这也在LLM文献中有所提到,我们将概率估计的改进作为未来的工作。
我们观察到,尽管内部数据集与公开的WOMD数据集之间存在较大的分布偏移,包括轨迹分布、特征噪声和语义定义差异,预训练我们的模型在内部数据集上仍能带来最多4%的额外增益。
除了车辆预测外,我们还在表5中报告了预测行人和骑行者的结果,结果显示我们也取得了类似的改进。这验证了我们的方法能够广泛适用于预测不同类型的代理。
同样,预训练我们的内部研究数据集对于骑行者的预测,特别是,对于数据扩展效果,展现了额外的提升。
5.2.4 预训练中的数据扩展
我们通过在不同规模的内部数据集上预训练DriveGPT来验证数据扩展的有效性。表6中的结果表明,在更多独特样本上进行预训练,能够在微调模型时获得更好的结果,这与我们在第4.1节中的发现一致,即数据扩展能够提高模型性能。
5.2.5 测试结果
我们在WOMD测试集上报告了结果,表7总结了这些结果。结果显示,在几何指标方面,我们的方法在现有最先进的非集成模型中表现最好。与使用最多8个副本的Wayformer和MotionLM相比,我们的模型在minADE和minFDE指标上达到了最佳,且在miss rate指标上排名第二,且无需任何集成。由于对概率估计的不足,我们的方法在Soft mAP1得分上较低,正如在第5.2.3节中讨论的那样。
与表4和表5中的结果一致,我们观察到,通过在我们的内部数据集上进行预训练,能够实现额外的增益。
5.2.6 定性比较
我们在图11中展示了两种定性比较,其中DriveGPT在轨迹的多样性(涵盖更多不同的结果)和准确性(与实际未来匹配)方面优于MTR。这一改进在具有有限代理历史信息的挑战性场景(第一排)和多个未来可能性的场景(第二排)中
总结:
文章的主要贡献如下:
提出了DriveGPT,一个大规模的自回归行为模型,通过同时扩展模型参数和现实世界训练数据样本的规模。 确定了自回归行为模型在模型参数、数据规模和计算能力方面的经验性扩展规律。我们通过跨越两个数量级的数据扩展和跨越五个数量级的计算扩展,验证了更多训练数据的价值。我们的模型扩展实验表明,自回归解码器在扩展性方面优于一次性解码器。 在真实世界驾驶场景中,定量和定性地比较了来自我们扩展实验的模型,验证了它们的有效性。 展示了我们模型在Waymo Open Motion数据集上的泛化能力,在运动预测任务中超越了先前的最先进技术,并通过大规模预训练取得了性能提升。
下一个风口会不会是生成式AI 与具身智能的时代,我们特意创建了生成式AI与具身智能交流社区,关于大模型,机器人的相关业界动态,学术方向,技术解读等等都会在社区与大家交流,欢迎感兴趣的同学加入我们(备注具身智能)!
自动驾驶之星知识星球主打自动驾驶量产全技术栈学习,并包括: 学习板块,求职面试,有问必答,论文速递,行业动态五大板块!星球内部包括端到端大模型,VLM大模型,BEV 障碍物/车道线/Occ 等的学习资料!
生成式AI与具身智能知识星球,我们相信生成式AI 与具身智能会碰撞出出乎我们意料的内容,本知识形象并包括: 学习板块,求职面试,有问必答,论文速递,行业动态五大板块!星球内部包括生成式AI大模型,具身智能,业界资料整理等的学习资料!
👇点个“赞”和“在看”吧