Driving-with-LLMs

GitHub
575 51 中等 1 次阅读 4天前Apache-2.0语言模型其他
AI 解读 由 AI 自动生成,仅供参考

Driving-with-LLMs 是一个基于 PyTorch 开发的开源项目,旨在利用大型语言模型(LLM)实现可解释的自动驾驶决策。它源自 ICRA 2024 获奖论文,核心思路是将自动驾驶模拟器中的物体级矢量数据(如车辆位置、速度等)与大语言模型相结合,让 AI 不仅能输出转向、加减速等驾驶动作,还能用自然语言清晰解释“为什么这么做”。

传统自动驾驶系统常被视为“黑盒”,难以理解其决策逻辑。Driving-with-LLMs 通过引入语言模型,显著提升了系统的透明度和可解释性,同时支持驾驶问答(DrivingQA),让用户能直接询问路况或决策依据。这一特性对于安全验证、事故分析以及人机协作至关重要。

该工具主要面向自动驾驶领域的研究人员和开发者,特别是那些关注多模态融合、可解释性 AI 或端到端驾驶策略的团队。使用者需要具备一定的深度学习基础,并拥有至少 20GB 显存的 GPU 用于推理评估,若需重新训练则建议配置 40GB 以上显存。

其技术亮点在于巧妙融合了结构化矢量感知信息与预训练语言模型的语义理解能力,在无需复杂视觉编码的情况下,实现了鲁棒且直观的驾驶行为预测与理由生成。项目已开放部分数据集和完整代码,便于社区复现结果并开展后续研究。

使用场景

某自动驾驶算法团队正在开发新一代城市道路测试车辆,急需解决复杂路况下决策逻辑不透明导致的安全验证难题。

没有 Driving-with-LLMs 时

  • 决策如“黑盒”:传统端到端模型仅输出转向角度和加减速指令,工程师无法得知车辆为何在路口突然刹车,排查隐患如同盲人摸象。
  • 长尾场景难覆盖:面对罕见的交通参与者行为(如行人挥手示意让行),基于规则的系统难以泛化,往往直接失效或做出错误判断。
  • 数据标注成本高昂:为了让模型理解场景,需要人工逐帧标注大量物体属性和驾驶意图,耗时耗力且难以保证语义一致性。
  • 缺乏自然语言交互:测试人员无法直接用自然语言询问车辆“刚才为什么变道”,只能依赖枯燥的数据日志进行事后推测。

使用 Driving-with-LLMs 后

  • 决策可解释性强:Driving-with-LLMs 能融合物体级向量信息,不仅输出驾驶动作,还能实时生成如“因左侧有车强行切入,故执行减速”的自然语言解释,让决策逻辑一目了然。
  • 泛化能力显著提升:借助预训练大语言模型的常识推理能力,系统能灵活应对未见过的复杂交互场景,准确理解行人手势等非标准信号。
  • 自动化语义标注:利用其内置的 DrivingQA 机制,可自动将传感器数据转化为高质量的问答对,大幅减少人工标注依赖,加速模型迭代。
  • 支持交互式调试:工程师可直接通过文本提问复盘测试过程,系统能结合视频画面回答具体驾驶疑问,极大提升了事故归因效率。

Driving-with-LLMs 通过将大语言模型的推理能力引入自动驾驶,成功将不可知的“黑盒”决策转化为安全、可信且可对话的智能驾驶体验。

运行环境要求

操作系统
  • 未说明
GPU
  • 必需 NVIDIA GPU
  • 评估最低需 20GB 显存,训练(默认设置)最低需 40GB 显存
内存

未说明

依赖
notes1. 项目使用 `requirements.txt.lock` 锁定依赖以确保可复现性,建议使用该文件安装。2. 需要配置 WandB API 密钥用于训练和评估日志记录。3. 部分功能(如重新收集 DrivingQA 数据或评分结果)需要 OpenAI API 密钥。4. 数据集已包含在代码库中,但需要手动解压 tar.gz 归档文件。5. 提供了预训练模型权重用于评估和继续训练。
python3.8 - 3.11
torch (通过 requirements.txt.lock 安装)
transformers
wandb
pip-compile (用于生成锁文件)
Driving-with-LLMs hero image

快速开始

banner

https://github.com/user-attachments/assets/82a1993e-5948-4f5a-ad9b-849a21fe9a14

这是LLM-Driver的PyTorch实现,用于推理和训练,相关论文如下:

用大语言模型驾驶:融合对象级向量模态以实现可解释的自动驾驶

Long ChenOleg SinavskiJan HünermannAlice KarnsundAndrew James WillmottDanny BirchDaniel MaundJamie Shotton

ICRA 2024
[预印本] [arXiv]

LLM-Driver
LLM-Driver利用我们驾驶模拟器提供的对象级向量输入,通过预训练的语言模型预测可解释的动作,为自动驾驶提供了一种鲁棒且可解释的解决方案。 LLM-Driver
LLM-Driver在开环预测模式下运行,使用向量输入(左上角俯视图),显示动作预测结果(转向角度和油门/刹车踏板)、动作理由说明(渲染视频上的字幕)以及驾驶问答(底部表格)。

最新消息

  • [2024/01/29] 我们非常高兴地宣布,我们的论文已被ICRA 2024接收!
  • [2023/12/21] 欢迎查看我们的后续工作LingoQA[代码] [arXiv]
  • [2023/10/03] 论文现已发布于[arXiv]
  • [2023/07/06] 论文和代码已通过paper_code分支公开,便于匿名投稿。

快速入门

前提条件

  • Python 3.x
  • pip
  • 运行评估至少需要20GB显存
  • 训练至少需要40GB显存(默认设置)

⚙ 设置步骤

  1. 搭建虚拟环境(经测试兼容Python 3.8至3.11)

    python3 -m venv env
    source env/bin/activate
    
  2. 安装所需依赖

    pip install -r requirements.txt.lock
    

注意:requirements.txt.lock是通过pip-compile从原始requirements.txt生成的,以确保复现性。

  1. 配置WandB API密钥

    请设置您的WandB API密钥,以便记录训练和评估过程。

    export WANDB_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

💿 数据集

  • 训练/测试数据: 数据集已包含在代码库中。解压命令如下:

    tar -xzvf data/vqa_train_10k.tar.gz -C data/
    tar -xzvf data/vqa_test_1k.tar.gz -C data/
    
  • 重新收集DrivingQA数据: 虽然训练和评估数据集中已包含预先收集的DrivingQA数据,但我们还提供了一个脚本,演示如何使用OpenAI ChatGPT API收集DrivingQA数据。如果您希望重新收集DrivingQA数据,请使用您的OpenAI API密钥运行以下命令:

    python scripts/collect_vqa.py -i data/vqa_test_1k.pkl -o output_folder/ --openai_api xxxxxxxx
    

🏄 评估

  1. 感知与动作预测评估

    运行以下命令:

    python train.py \
        --mode eval \
        --resume_from_checkpoint models/weights/stage2_with_pretrained/ \
        --data_path data/vqa_train_10k.pkl \
        --val_data_path data/vqa_test_1k.pkl \
        --eval_items caption,action \
        --vqa
    
  2. DrivingQA评估

    运行以下命令:

    python train.py \
        --mode eval \
        --resume_from_checkpoint models/weights/stage2_with_pretrained/ \
        --data_path data/vqa_train_10k.pkl \
        --val_data_path data/vqa_test_1k.pkl \
        --eval_items vqa \
        --vqa
    
  3. 查看结果

    结果可在WandB项目“llm-driver”中查看。

  4. 使用GPT API评分DrivingQA结果

    要使用GPT API对结果进行评分,请运行以下命令:

    python scripts/grade_vqa.py \
        -i data/vqa_test_1k.pkl \
        -o results/10k_ft.pkl \
        -r results/10k_ft.json \
        --openai_api xxxxxxxx
    

    results/10k_ft.json替换为从WandB下载的val_results.table.json,即可对您的结果进行评分。

🏊 训练

  1. 运行LLM-Driver训练

    执行以下命令开始训练:

    python train.py \
        --mode train \
        --eval_steps 50 \
        --val_set_size 32 \
        --num_epochs 5 \
        --resume_from_checkpoint models/weights/stage1_pretrained_model/ \
        --data_path data/vqa_train_10k.pkl \
        --val_data_path data/vqa_test_1k.pkl \
        --vqa
    
  2. 按照前一节内容评估LLM-Driver

  3. [可选] 训练并评估Perceiver-BC

    执行以下命令开始训练和评估:

    python train_bc.py \
        --num_epochs 25 \
        --data_path data/vqa_train_10k.pkl \
        --val_data_path data/vqa_test_1k.pkl
    

📝 引用

如果您在研究中使用了我们的工作,请考虑引用以下内容:

@inproceedings{chen2024drivingwithllms,
  title={Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving},
  author={Long Chen and Oleg Sinavski and Jan Hünermann and Alice Karnsund and Andrew James Willmott and Danny Birch and Daniel Maund and Jamie Shotton},
  booktitle={2024 IEEE International Conference on Robotics and Automation (ICRA)},
  year={2024}
}
@article{marcu2023lingoqa,
  title={LingoQA: Video Question Answering for Autonomous Driving}, 
  author={Ana-Maria Marcu and Long Chen and Jan Hünermann and Alice Karnsund and Benoit Hanotte and Prajwal Chidananda and Saurabh Nair and Vijay Badrinarayanan and Alex Kendall and Jamie Shotton and Oleg Sinavski},
  journal={arXiv preprint arXiv:2312.14115},
  year={2023},
}

🙌 致谢

本项目受到了Alpaca LoRA仓库的启发。我们在此向他们对开源社区的贡献表示感谢。

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

158.1k|★★☆☆☆|今天
开发框架Agent语言模型

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|1周前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|6天前
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|1周前
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|1周前
其他图像数据工具