开源项目使用教程:Driving-with-LLMs
`Driving-with-LLMs` 项目是一个用于自动驾驶的可解释性研究项目,其目录结构如下:- `assets/`:存储项目的相关资源文件。- `data/`:包含训练和测试数据集。- `models/`:存放训练好的模型权重文件。- `results/`:保存模型运行后的结果文件。- `scripts/`:包含项目运行所需的脚本文件。- `utils/`:包含一些工具函数和类
如何使用 Driving-with-LLMs:开源可解释自动驾驶模型的完整指南
Driving-with-LLMs 是一个基于 PyTorch 实现的开源项目,它将大型语言模型(LLMs)与自动驾驶技术相结合,通过融合对象级向量模态实现可解释的自主驾驶决策。本指南将帮助你快速上手这个创新的自动驾驶框架,即使你没有深厚的机器学习背景也能轻松跟进。
📌 项目核心功能介绍
Driving-with-LLMs 项目的核心是 LLM-Driver 模型,它利用预训练语言模型的强大推理能力,结合驾驶模拟器中的对象级向量输入,实现可解释的自动驾驶决策。该模型不仅能预测驾驶动作(如转向角度、加速/刹车踏板控制),还能提供动作的自然语言解释,这对于自动驾驶系统的安全性和可信度至关重要。
图:LLM-Driver 系统架构展示了从向量输入到驾驶控制的完整流程,包含 Vector Encoders、Vector-Former 和 LLMs 等核心组件
🚀 快速开始:环境准备
硬件要求
- 运行评估:至少 20GB VRAM
- 模型训练(默认设置):至少 40GB VRAM
环境搭建步骤
- 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/dr/Driving-with-LLMs
cd Driving-with-LLMs
- 创建并激活虚拟环境
python3 -m venv env
source env/bin/activate
- 安装依赖项
项目提供了锁定版本的依赖文件,确保环境一致性:
pip install -r requirements.txt.lock
提示:requirements.txt.lock 是通过 pip-compile 从原始 requirements.txt 生成的,确保了依赖版本的一致性。主要依赖包括 PyTorch、transformers、peft、bitsandbytes 等深度学习库。
- 配置 WandB API 密钥
为了记录训练和评估日志,需要设置 Weights & Biases (WandB) API 密钥:
export WANDB_API_KEY=你的API密钥
📊 数据集准备
项目已包含训练和测试数据集,只需解压缩即可使用:
tar -xzvf data/vqa_train_10k.tar.gz -C data/
tar -xzvf data/vqa_test_1k.tar.gz -C data/
如果你需要重新收集 DrivingQA 数据,可以使用项目提供的脚本(需要 OpenAI API 密钥):
python scripts/collect_vqa.py -i data/vqa_test_1k.pkl -o output_folder/ --openai_api 你的API密钥
🔍 模型评估
感知和动作预测评估
运行以下命令评估模型的感知能力和动作预测性能:
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
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
评估结果可以在 WandB 项目 "llm-driver" 中查看。
使用 GPT 评估 DrivingQA 结果
你还可以使用 GPT API 对 DrivingQA 结果进行评分:
python scripts/grade_vqa.py \
-i data/vqa_test_1k.pkl \
-o results/10k_ft.pkl \
-r results/10k_ft.json \
--openai_api 你的API密钥
图:LLM-Driver 在开环预测中的运行演示,左上角为 BEV 视图,底部表格展示了驾驶问答结果
🏋️ 模型训练
训练 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
训练和评估 Perceiver-BC(可选)
项目还提供了训练和评估 Perceiver-BC 的选项:
python train_bc.py \
--num_epochs 25 \
--data_path data/vqa_train_10k.pkl \
--val_data_path data/vqa_test_1k.pkl
🧩 项目结构解析
- 模型代码:主要模型实现位于 models/ 目录,包括 vector_encoder.py、transformer.py、vector_lm.py 等文件
- 工具函数:utils/ 目录包含 model_utils.py、training_utils.py 等辅助功能
- 脚本文件:scripts/ 目录提供数据收集和评估脚本
- 预训练权重:models/weights/ 目录包含三个阶段的预训练模型权重
📚 相关资源
- 项目论文:assets/preprint.pdf
- 训练脚本:train.py
- 评估脚本:train.py(通过 --mode eval 参数调用)
通过本指南,你已经了解了如何安装、配置和使用 Driving-with-LLMs 项目。这个开源项目为自动驾驶研究提供了一个创新的可解释框架,结合了语言模型的推理能力和自动驾驶的实际需求。无论你是研究人员还是自动驾驶爱好者,都可以通过这个项目深入探索 LLM 在自动驾驶领域的应用。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)