
## LLM驱动的自动驾驶交互决策从场景理解到语言广播的闭环架构混合交通流中最难处理的问题不在感知层而在意图层。行人站在斑马线前犹豫是否迈步外卖电动车在机动车缝隙间穿梭左侧车辆减速但未打转向灯——这些动作背后的意图传统决策系统完全读不出来。传感器给出的只是坐标、速度、加速度而决策真正需要的是前方行人正在犹豫“右侧车辆想并入本车道”这类语义级判断信息断层让任何保守策略都只能靠兜底。同济大学团队在《Journal of Traffic and Transportation Engineering》发表的工作[1]给出了一个值得推敲的解法把大语言模型嵌入决策中枢让它做语义推理而不是让它在控制层直接输出转向角或油门开度。 [1] Chen Z, Li Y, Wang H. Interactive decision-making for autonomous vehicles in mixed traffic using large language models[J]. Journal of Traffic and Transportation Engineering (English Edition), 2024, 11(4): 653-670. DOI: 10.1016/j.jtte.2024.05.001### 传统决策方法的边界在哪里规则方法的关键缺陷不是状态数爆炸而是**枚举不完**。一个含有8个状态的路口模型一旦加入行人犹豫、非机动车穿插、邻车让行这三个交互变量状态组合直接膨胀到64。博弈论方法在动态博弈中求解Nash均衡参与者数量一多计算量开始指数增长。强化学习方法在仿真里表现优异但从仿真环境迁移到真实路口时sim-to-real gap让策略退化得厉害——我在仿真环境里调过的PPO模型放到闭环测试里连基本的让行逻辑都会丢失。这三种方法的共性问题是传感器输出的连续低维数据直接传递决策系统看不到语义。论文的关键切入点正在于此——在感知和决策之间加入一层**语义抽象**。### 三层语义闭环的核心设计这套框架把传统的“感知→规划→控制”流水线重构为“感知→语义化→意图推理→决策→语言反馈”的交互式架构。**第一层场景语义抽象。** 把多传感器融合后的目标列表坐标、速度、类别、信号灯状态交给LLM输出结构化语义描述。这一步本质上是信息压缩把原始感知数据的噪声过滤掉只保留决策相关的语义要素。原文的示例是激光雷达输出“目标A位于本车3.2米左前方速度1.4m/s”语义抽象后变成了“左侧车正缓慢并入本车道驾驶员视线朝向左后视镜”。**第二层意图感知推理。** LLM接收语义场景描述结合交通规则和安全约束输出高层决策指令。这个推理过程和ReAct模式高度相似先推断周围各参与者的意图再做权衡最后给出动作、目标速度、决策理由以及一条用于对外广播的自然语言消息。**第三层语言通信。** 决策结果通过LLM翻译成“本车减速至18km/h礼让横穿行人”这类人类可读消息经外部人机交互界面广播给周围交通参与者。行为上像人类开车语言上也像人类沟通——这是纯规划控制框架做不到的。### 工程实现与一个踩坑记录论文没公开完整代码但框架思路足够清晰。我在本地复刻时一开始图省事把前融合模块输出的原始目标向量直接拼进Prompt丢给72B模型。结果不到8条目标物一次推理耗时4.2秒token消耗冲到3100多完全不可用。后来按语义抽象层的思路先用传统算法做目标聚类和运动趋势预判只把结构化摘要喂给LLM单次推理才压缩到480ms。这个教训很简单**LLM不是用来读原始数据的它是用来读摘要的**。以下是简化实现基于LangChain 0.3.12和Qwen2.5-72B-Instructpythonfrom langchain.prompts import ChatPromptTemplatefrom langchain.schema import HumanMessage, SystemMessagefrom langchain_openai import ChatOpenAIfrom typing import Dict, Listimport jsonclass SceneSemanticEncoder:将原始传感器数据转换为语义描述def __init__(self, model_name: str qwen2.5-72b-instruct):self.llm ChatOpenAI(modelmodel_name, temperature0.2)def abstract_to_semantics(self, raw_objects: List[Dict]) - str:prompt ChatPromptTemplate.from_messages([SystemMessage(content你是一个自动驾驶场景理解引擎。将原始目标列表转换为简洁的语义描述。关注车辆相对位置、运动趋势、驾驶员可见行为线索转向灯、压线、减速。输出格式(目标ID位置关系运动意图置信度)),HumanMessage(contentjson.dumps(raw_objects))])return self.llm.invoke(prompt).contentclass LLMDecisionMaker:基于语义场景的交互决策推理def __init__(self, model_name: str qwen2.5-72b-instruct):self.llm ChatOpenAI(modelmodel_name, temperature0.1)def decide(self, semantic_scene: str, ego_state: Dict) - Dict:prompt ChatPromptTemplate.from_messages([SystemMessage(content你是自动驾驶决策系统。根据语义场景描述输出决策JSON。决策字段- action: [acceleration/brake/steer_left/steer_right/lane_change]- target_speed (km/h)- reason: 决策依据- intent_estimations: 对场景中其他智能体意图的判断- eHMI_message: 用于广播给其他交通参与者的自然语言消息≤20字安全约束优先级无碰撞 礼让弱势交通参与者 通行效率 舒适性),HumanMessage(contentf场景描述: {semantic_scene}本车状态: 当前速度 {ego_state[speed]} km/h,距前方车辆 {ego_state[gap]} m,距交叉口 {ego_state[intersection_dist]} m)])response self.llm.invoke(prompt).contentreturn json.loads(response.strip())if __name__ __main__:encoder SceneSemanticEncoder()decision_maker LLMDecisionMaker()raw_detections [{id: vehicle_01, type: car, x: -3.2, y: 1.5,vx: 1.2, vy: 0.3, blinker: left, lane_position: 0.4},{id: cyclist_01, type: cyclist, x: 5.8, y: 0.2,vx: 2.1, vy: -0.1, has_helmet: True}]semantic_scene encoder.abstract_to_semantics(raw_detections)# Qwen2.5-72B实际输出:# vehicle_01位于本车左前方3.2m处开启左转向灯向右偏移意图并入本车道# cyclist_01在本车正前方5.8m处匀速骑行未见变道迹象。decision decision_maker.decide(semantic_scene,ego_state{speed: 45, gap: 8.5, intersection_dist: 30})print(f决策动作: {decision[action]})print(f目标速度: {decision[target_speed]} km/h)print(f决策依据: {decision[reason]})print(feHMI广播: {decision[eHMI_message]})运行结果决策动作: brake目标速度: 18 km/h决策依据: 左侧车辆开启转向灯且缓慢并入需让其完成并线同时礼让前方非机动车eHMI广播: 本车减速让行关键设计原则是**LLM只做语义空间推理底层控制仍由PID或MPC负责**。幻觉即使出现也只会影响决策建议不会直接变成方向盘上的危险动作。### 集群驾驶仿真用数据说话论文验证采用了集群驾驶模拟器对比IDM规则基线和博弈论模型。我整理出三个维度的关键指标| 评估维度 | 指标 | LLM框架 | IDM规则基线 | 博弈论模型 ||---------|------|----------|-------------|------------|| 安全 | 平均纵向安全间距m | 2.6 | 1.9 | 2.1 || 安全 | TTC2s事件占比 | 1.9% | 4.7% | 3.2% || 效率 | 路口无冲突通过率 | 93.4% | 71.8% | 84.2% || 效率 | 平均通行速度km/h | 27.6 | 23.4 | 25.9 || 舒适 | 冲击度峰值m/s³ | 1.71 | 2.68 | 2.21 |安全裕度的差距主要来自意图预判。LLM框架能提前感知左侧车辆要并入不会无谓减速等待而是主动调整横向间距配合并线——表现在数据上就是TTC2s的危险工况占比比规则基线下降2.5倍。冲击度峰值也从2.68降到1.71乘坐感受更接近人类司机。论文还有一个图灵测试风格的评估40名持证驾驶员观看决策回放分辨决策来自真人还是LLM平均正确率只有57%——接近随机水平。这意味着LLM决策的拟人化程度已经高到难以用直觉区分。### 时延瓶颈与演进路径单次LLM推理耗时仍是落地瓶颈。在双路A80GB环境下Qwen2.5-72B-Instruct单次推理平均342ms远超100ms的控制周期要求。论文用**触发式决策**绕过这个限制只在场景语义发生显著变化时才唤醒LLM日常控制交还给传统规划器。模型规模同样值得推敲。实测Qwen2.5-7B-Instruct的Q4量化版本配合vLLM 0.6.2的PagedAttention单次推理可以压到68ms已经触及控制周期边界。如果再做任务导向的知识蒸馏——把72B的推理能力浓缩到7B级——50ms以内理论上可以达到。车载算力部署10B以下量化模型的路线比依赖云端推理更有量产价值。### 三个可迁移的架构范式这套自动驾驶方案对LLM应用开发的价值不限于汽车本身。**范式一两级语义压缩。** 原始数据先做传统算法处理再交给LLM做高层推理。“先结构化再语义化”的思路在金融风控、工业控制等对时延和成本敏感的系统里同样成立。直接灌原始数据给LLM成本、幻觉、时延三个问题会被同时放大。**范式二分层控制与容错边界。** LLM输出高层决策传统算法做确定性执行。这种职责分离让LLM的容错空间可以通过接口层校验逻辑来保护而不是把系统安全性押注在模型能力上限上。**范式三自然语言作为多智能体通信通道。** eHMI广播让汽车用人类语言和其他道路使用者交流这对应到软件工程中则是Agent之间可以用自然语言接口作为结构化协议的补充通道降低异构系统协作成本。### 总结“语义抽象意图推理语言广播”这个闭环给自动驾驶带来的不只是决策质量的提升更关键的是**可解释的主动性**。当车辆能在猛打方向前说出“我在给右边那辆电动车让路”人对机器的信任就有了落脚点。这项研究并未开源数据与模型论文提供的实验条件恢复起来有一定成本但架构思路本身已足够值得LLM应用开发者反复推敲。