自动驾驶---理想汽车智驾进展

devtools/2024/11/7 4:43:41/

1 背景

        自媒体---“电车通”从2024年初开始推出智能化评测相关栏目,尤其是针对智能驾驶这一功能做了大量的实测工作;根据综合表现,给测试车型给出了能够直观展示其能力的评分。当评测的对象达到一定数量后,对整个国内车市智驾能力分级也有了基本的判断,不同车型智驾系统之间的评分分级,也在一定程度上还原了当下国内市场智驾的竞争格局。整体排名如下图所示(图侵删):

0511ca22cd2d426c88d302fd6a4a565e.png

        在上面的车机系统版本中,理想汽车还不是最新的大模型版本。最近,理想汽车的智驾大模型也算火了一段时间,可谓是“弯道超车”,智驾技术直接看齐第一梯队的车企(华为、小鹏),那么他们做了哪些工作呢?

        本篇博客主要整理了理想汽车研发大佬的一些采访和公开场合的发言,供读者朋友们去了解目前理想汽车智驾在大模型上的应用进展。

2 内容整理

        采访内容来源:端到端智驾上车,理想的智驾团队有什么变化?

(1)端到端的技术架构下,如何把模型训练得更好?或者说如何让体验变得更好?

        这个问题前者更偏技术,后者更接地气,普通消费者直接感受到的就是体验问题。

        大体是分 2 步,第一步找出问题;第二步解决问题。

        第一步:如何找出问题?

        在理想内部有一个工具,相当于医院里的 “分诊台” 的系统,一个场景问题上来,会自动分析它应该属于哪一类的场景问题,更像是一种回流问题的自动化分析工具。

        这个不一定是传统意义上的分类,它也是有模型去训练,会给一个模型的分诊建议,然后再去拿着分诊建议去找到相类似的场景,其实最终还是回归到你需要补充或者替代什么样的数据到我们现在的训练样本里面去,然后再进行下一步的训练。

        第二步:如何解决问题?

        这里有 2 个途径,一个是给模型更多有价值的视频片段(数据);另一个是模型本身的参数调整(参数)。

  • 数据积累

        众所周知端到端是一个神经网络,这个大家可以理解为一个人,这个人的能力强弱,取决于你教他什么,给他有价值的视频片段越多,那他学习到的有价值的东西就越多,实操的表现就越好。所以这里的前提是你有足够多的数据,朗博提供了一个数据,理想现有的 80 万用户,已经积累了超过 12 亿公里的有效训练数据量。

        在采访中郎博和贾老师也表示,这些完整的数据包含所有传感器的数据(摄像头 + 激光雷达等),是 20 秒到 30 秒左右的小视频段,包括在这几十秒之内车辆的驾驶数据,如方向盘、油门、刹车,这些都是最原始的数据。这些原始数据并不会因为智驾的底层算法框架变了就失效了,并不需要重新积累,而且因为理想的车都是 SUV/MPV,车上摄像头配置,包括安装位置都大体一致,所以数据可以共用,这是一个很大的优势。这一点非常重要,传感器配置几乎一摸一样,有些车企传感器的布局以及类型在不同的车型上差异比较大,这样训练的难度就会增加很多。

        有足够多的数据之后,下一个问题是怎么选出有价值的片段?

  • 数据筛选

        首先,理想的智驾团队和产品、整车的主观评价团队,还有内部的一些老司机共同制定了一个老司机标准;

        其次,智驾团队会根据这个老司机的标准给 80 万车主的行驶表现进行打分(这个地方不知道是基于人工的规则还是机器学习),分数高于 90 分的属于优质数据,这个比例大概在 3% 左右。这个 3% 几百万的视频片段构成了理想端到端模型训练的素材数据库。

        除了这个正样本以外,理想的团队还建立了一个错题库,把一些明确不允许的行为纳入错题库中,这些数据也会一并投入到模型的训练过程里。

        其实到这里只是建立了一个优质的素材库,但是并不会一股脑把所有片段全部丢进去训练,这是一个循序渐进的过程。

        现在正在内测的这个版本,是 100-200 万视频片段训练出来的结果,下一个版本会增加到 300 万左右的视频片段。

        这里最核心的是如何基于当前的表现下的缺点,找出质量更高的视频片段,提供给模型进行训练。

  • 模型需要的视频片段筛选

        为了能够能方便的找出需要的视频片段,理想研发很多小一点的模型,比如数据挖掘模型、场景理解模型,包括可以通过一些关键词或者场景描述的句子,直接去数据库中查找类似的片段。

        上面这些查找方式的前提是,能给这些素材打出标签,才能根据这些标签去找对应的片段。

        其实还有一些场景没法打出明确的标签,但又是模型训练非常需要的片段怎么办?

        在这里理想会进行特征提取,看特征本身的相似度,比如说这两个场景上你直观看标签相似度很低,可能一个白天一个夜间,但是他可能行为上很像,这些复杂行为你咋定义?按照图像特征,这俩特征之间的相似度很高,我们就认为它俩场景是比较接近的。

        这些其实是智驾端到端这个大模型之外的一些基建工作。

        而且在这个过程中很重的一点就是调整数据的配比,郎博现场给了一个生动的比喻是,这种感觉就像古代炼火药,讲究一硝二磺三木炭,这样威力比较大,模型的训练也有点类似。

        所以每次都会有不同素材配比的模型进行训练,出来之后看那个模型的效果最好,这个也是一个认知、经验积累的过程。

  • 模型本身的参数调整

        这个步骤的专业说法叫模型的超参,加入新的数据后,模型参数如何调整。这里理想通常会有 5-6 版模型会同时提交训练,然后看哪一版解决了问题。这里延伸出来的新问题就是,无论是【给模型更多有价值的视频片段】还是【模型本身的参数调整】,最后都需要有一个机制来判断模型效果是不是真的更好了?怎么保证模型是在正向迭代的?

(2)怎么保证模型是在正向迭代的?

        为了验证训练完的模型是不是真的变好了,或者有没有出现一些新的问题,理想会建立了一个试验模型,内部叫系统三,相当于是一个考试系统。

        这里面会有常规的正常开的真实数据,也会有一些出错的场景,通过重建技术重建成一个 3D 场景,然后连续测试,在这当中这里面也会有很多安全性测试。

50b42a5d19962a085e88a6e67491bc68.png

        除此之外,还有一些长尾问题,理想会通过世界模型结合生成技术进行场景重建,然后进行测试。不过这里的世界模型不是纯生成,在贾老师看来,纯生成式模型幻觉很多很多,没办法真的拿去用,理想是重建加生成结合在一起的过程。

247e15b1248f205e301e366d02fad07d.png

        把场景真实重建出来,在这个基础上做泛化,其实重建是给系统一个参考的量。在这个基础上再去做生成,让生成的结果是符合世界规律的,也是符合物理规律的。

        这里的测试里程基本都是上万公里的规模,而且这个上万公里不是我们常规开的上万公里,而是各种 case 集合起来的上万公里。

        考试系统会通过上面这些测试,给新的模型进行评分,理想则会根据评分的结果来判断模型有没有变得更好,是否可以推送到车上。

        如果这一轮验证通过了,下一环则是推送给早鸟用户进行内测。

        在这里理想也会通过影子模式来测,必须要时时刻刻记录车辆情况所有的开车数据,后台实时自动回传,数据会自动化的分析,会根据这些数据再进行下一轮的自动迭代训练,然后考试、交付。

        最后,也有一个兜底机制,就是理想的端到端模型输出的是轨迹,而不是直接到控制,轨迹之后会加一些安全兜底。

        理想认为在模型没有达到上限之前,还是要有一些处理的东西,比如说猛打方向盘这样的事。

        这个大家不要有误解,这种兜底只是过滤掉一些不合理的操作,车速、方向都是模型给出的结果,并不是回到规则控制。

        就像是你写完作业,交给老师之前,爹妈再给你检查一遍,看看有没有漏做的,或者在作业上画画这种离谱的行为,并不是帮你再做一遍。

(3)端到端之后,团队的工作流有什么变化?

        手写规则时代的大概流程是需求分析,产品设计,然后再到研发,再到测试,再到交付。

        像常规的距离匝道还有 xx km 触发变道、距离匝道还有 xx km 开始减速,减速到 xx km 就属于产品设计,这种还比较简单,但是到了城区场景复杂度就高多了。

        这里要通过手写规则实现比较好的体验,在产品设计阶段就需要考虑得非常全面,所以最重的任务在中间这一段。

        在端到端时代,团队的核心工作两头,一头是数据,一头是考试,大部分人都在做这两件事,中间模型调整的工作量并不大。

        像以前的产品团队、主管评价团队变成了出题的人,像无图时代做功能的工程师会自己写 prompt 生成非常长尾的问题给模型作验证。

        这里的变化也让【数据】和【算力】变尤为重要。上文中我提到过,在优化模型的过程中,既会通过调整不同的数据配比去训练模型,也会通过模型的超参来进行优化。

        这两种方式都会产生多个模型,这也就是意味着需要足够强大的云端算力,才能进行高效的训练。据说理想最多的时候有 15 个模型在同时训练。

        目前理想的云端算力有 4.5 E FLOPS,不过这里面给智驾的应该是 2.5 E FLOPS 左右。这里的算力相当于1.5 万卡的 A100,一年下来的成本得小 10 个亿美元。数据的重要性就不多赘述了,没有数据相当于端到端的模型没有学习素材。

(4)现在投入训练的视频长度是多少?如何解决有前后逻辑关系的驾驶行为?

        就我自己目前使用智驾的过程中,一个接管率比较高,体验比较差的场景是,在这个 4 车道路口系统走了最左侧车道直行,100 米后的下个 4 车道路口要走最右侧进辅路。

        人在这种场景会提前走右侧车道,确保下一个路口不用在 100 米内连边 3 次车道。

        这种就是一个比较长的时序中发生的有逻辑的决策。

        面对这个问题贾老师回复是:「现在(投入到模型训练的视频)分成两类,一类是 30 秒,一类是 1 分钟,大部分咱们的驾驶决策可能就是 5 秒内,所以 30 秒基本能覆盖几个小的场景。

        但是有些长决策,比如先右转,下个 200 米后立马左转,这种或者是说我前方 500 米要下匝道,我在最左车道我要下到最右下匝道,这种行为一般都一分钟或者更久,我们会把这种分类出来。

        比如说我想要长时间决策的,尤其是跟导航类相关的,其实都是长时决策,这种都是一分钟的。甚至说两个一分钟拼在一起,有持续关系的会拼在一起,并不是都统一 30 秒扔进去,还是得让模型理解到前后关系。

(5)VLM 和端到端系统是怎么协同工作的,VLM 的必要性有多高?

        这个套系统是怎么协同工作的其实很多采访里都聊到过了,简单来说就是两个系统是协同工作的,端到端的模型小一点帧率高能跑 10 几赫兹,VLM 模型参数量大 22 亿参数量能跑 3-4 赫兹。

        大部分情况都是端到端的模型在跑,但是碰到一些比较复杂的场景,需要决策的点,比如上高速前要判断走人工还是走 ETC,哪个是人工哪个是 ETC,在这个时候把决策结果和参考的轨迹扔给系统一,扔给端到端模型,端到端模型推理后,用这个信息。

        这个双系统的必要性上,前特斯拉 AI 工程师老于在直播的时候提出了很多质疑。

        在郎博看来 VLM 可能 90% 以上的时间它不起作用,但它起作用这些内容,是决定这个系统到底是 L3 还是 L4 的一个关键点,是能真正的能去应对这种未知的场景。

        交流现场贾老师也分享双系统后续发展的两个趋势,第一个就是模型规模变大。像特斯拉 12.3-12.5 参数量提高了 5 倍,可以支撑足够的大模型,那端到端和 VLM 两个模型可以合成一个,算力大了之后 VLM 能跑实时了,直接输出 action,那其实更 sexy。

        而且运行的过程是不是走 CoT 思维链的过程,可以是模型自己去决定,变成一个紧耦合的状态,而不是松耦合的状态。

        另一个点是可以借鉴现在多模态模型的大模型发展趋势,他们就朝这种原生多模态走,既能做语言也能做语音,也能做视觉,也能做激光雷达,我觉得这是将来思考的事情。

        我们这套范式应该能够支撑我们做到,因为在机器人具身智能上我们已经看到它的应用雏形,参考人的思维过程,这套东西可能就是我们心目中想追求的终极答案。终极答案的意思是我们用这套理论和这套框架去做真正的人工智能。」

(6)上了端到端的好处是什么?上端到端是不是必要的?

        这个好处其实前面提到过一点,就是之前手写规则时代下,想要通过产品设计来实现非常好的智驾体验那这就变成人海战术了。

        在郎博看来,如果真想达到像老司机这样的开车需求,用户的需求并不是弄一个接管率多少的指标就行,用户可能想要一个老司机体验的辅助驾驶系统。

        这样的话,用之前偏规则的方式是永远达不到的,不管是分段式端到端,还是之前模块化的架构,它里边还是有规则的东西,一旦你有规则,研发流程效率会降低,另外还增加了很多人为的理解。

        还有一个上了端到端的好处就是整个系统的时延会更低,之前我们在是华为 ADS 3.0 智驾的时候,通过红绿灯识别的速度可以发现整个系统的识别速度相比 2.0 提升了一倍。

        在理想上,现在端到端延迟相当于是传感器进来到控制输出大概在 100 多毫秒,不到 200 毫秒,以前分模块大概得到 300 多将近 400 毫秒。

(7)这套系统的上限在哪?

        郎博:我们现在还在摸索数据提升和性能提升的这样边界,现在还没有摸到。我们有个分析,芯片算力是有限的,所以参数规模就有局限性,现在我们是大概三个亿左右的端到端参数规模,三个亿左右参数规模它能吃掉多少数据训练量,其实也有上限,不可能给他无限灌进去,那不可能。

        贾鹏:虽然算力提升,但现在对于大模型来说,目前车端芯片更严重的瓶颈是内存带宽。

(8)环岛能力掉头能力,是不是只有端到端的状态下才能做?

        贾鹏:如果是分段式的,前面是个感知,要给规控去做各种假设,做个掉头,还得把掉头线拟合出来,不同的路口的掉头还不太一样,曲率都不太一样,所以你很难做到一套代码就可以把所有环岛掉头搞定,种类太多了。

        环岛这件事,也有我们其中一个好玩的故事,在我们大概 80 万 clips 的时候,还过不了环岛,后来突然发现一天我们 100 万 clips 他自己能过环岛,我觉得是 100 万里头刚好有一些环岛数据放在里面了,模型确实很厉害,你喂了什么数据他就能学会,这是模型的魅力所在。

3 总结

        从理想智驾的发展历程来看(本篇博客《自动驾驶---各大车企的端到端之旅》有做相关介绍),不得不佩服李想在智驾战略上的改变,在传统方案没有做到极致之前,勇敢的甩掉了这个“包袱”,另辟蹊径,采取与其它单位合作共赢的方式,将VLM大模型上车,并且在性能上获得了不错的口碑。并且总结下来,大模型的核心由以下三要素构成:算力,模型,数据。

 


http://www.ppmy.cn/devtools/131918.html

相关文章

数据库动态扩容:Java实现与技术策略

引言 数据库动态扩容是应对数据量增长和业务需求变化的关键技术。它允许数据库系统在不停机的情况下,通过增加或减少资源来适应业务负载的变化。本文将详细介绍数据库动态扩容的工作原理、技术策略,并提供Java代码示例。 1. 数据库动态扩容的工作原理 …

RK3588开发笔记-5G模块(SIM8200、广和通FM160、移远RM500U)调试笔记

目录 前言 一、基本配置要求 二、原理图连接 三、驱动移植修改 四、程序拨号 总结 前言 RK3588 CPU提供了丰富的外设接口,本文主要介绍通过usb3.0接口驱动5G模块来实现5g无线数据传输功能。在物联网和边缘计算领域,5G网络支持的高速率、低延时连接为应用带来了更多可能性…

Rust 力扣 - 1652. 拆炸弹

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们只需要遍历长度长度为k的窗口&#xff0c;然后把窗口内数字之和填充到结果数组中的对应位置即可 题解代码 impl Solution {pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {let n c…

【华为HCIP实战课程三十】中间到中间系统协议IS-IS路由渗透及TAG标识详解,网络工程师

一、路由泄露 1、默认情况Level 1不会学到Level2的明细路由&#xff0c;L2可以学到L1的明细路由 2、FIB数据转发&#xff0c;路由负载&#xff0c;通过随机数据中的五元组hash,hash值决定数据走哪条链路 R1设备ping和telnet通过抓包查看走的都是S1/0/0接口 抓包进行过滤;ip.a…

qt QMessageBox详解

1、概述 QMessageBox是Qt库中的一个类&#xff0c;它用于在图形用户界面&#xff08;GUI&#xff09;程序中显示消息框。消息框是一种用于向用户显示信息、警告、错误或询问用户确认的对话框。QMessageBox可以显示文本、图标和按钮&#xff0c;并允许自定义按钮的文本和功能。…

ABAP开发:数据库表更新时机介绍

对于一些刚入门的ABAP开发者&#xff0c;可能会对SAP系统中数据库表的更新时机感到困惑。以下探讨一下ABAP中INSERT、UPDATE等操作的更新时机&#xff0c;以及如何在实际开发中正确使用它们。 ABAP与数据库操作 ABAP是SAP系统的编程语言&#xff0c;它提供了丰富的数据库操作功…

【docker】docker 环境配置及安装

本文介绍基于 官方存储库 docker 的环境配置、安装、代理配置、卸载等相关内容。 官方安装文档说明&#xff1a;https://docs.docker.com/engine/install/ubuntu/ 虚拟机环境 Ubuntu 20.04.6 LTS 安装步骤 添加相关依赖 sudo apt-get update sudo apt-get install ca-certifi…

QT6在RK3568上运行显示中文乱码解决方法

表现为显示几个黑框&#xff0c;完全看不出什么。 排查步骤&#xff1a; 第一步 首先排查是不是系统库问题&#xff0c;先看英文能否正常显示&#xff0c;将qml代码中的中文改成英文字符。 发现也无法正常显示。 注意观察出错信息&#xff0c; 从 Qt 5.15 开始&#xff0c…