Senna for PyTorch [终止随版本演进]
目录
简介
模型介绍
Senna 是一套自动驾驶系统,它将大规模视觉-语言模型与端到端规划框架无缝集成,从而提升了规划的安全性、鲁棒性和泛化能力。该系统实现了业界最先进的规划性能,展现出卓越的跨场景泛化能力和强大的可迁移性。
支持任务列表
本仓已经支持以下模型任务类型
| 模型 | 任务列表 | 是否支持 |
|---|---|---|
| Senna | train | ✔ |
代码实现
- 参考实现:
url=https://github.com/hustvl/Senna
commit_id=5f202ce84dc4fe52949934ab0921e287d733ff8f
- 适配昇腾 AI 处理器的实现:
url=https://gitcode.com/Ascend/DrivingSDK.git
code_path=model_examples/Senna
Senna本地部署
准备训练环境
安装昇腾环境
请参考昇腾社区中《Pytorch框架训练环境准备》文档搭建昇腾环境,本仓已支持表1中软件版本。
表 1 昇腾软件版本支持表
| 软件类型 | 首次支持版本 |
|---|---|
| FrameworkPTAdapter | 7.0.0 |
| CANN | 8.1.RC1 |
安装模型环境
表 2 三方库版本支持表
| 三方库 | 支持版本 |
|---|---|
| PyTorch | 2.1.0 |
-
激活 CANN 环境(例如:
source /usr/local/Ascend/ascend-toolkit/set_env.sh) -
参考《Pytorch框架训练环境准备》安装 2.1.0 版本的 PyTorch 框架和 torch_npu 插件。
-
创建环境并激活环境
conda create -n senna python=3.10 conda activate senna -
克隆代码仓并使用patch文件
git clone https://github.com/hustvl/Senna.git cp -f Senna.patch Senna cd Senna git checkout 5f202ce84dc4fe52949934ab0921e287d733ff8f git apply Senna.patch安装依赖:
cd Senna pip install -r requirements.txt
安装NPU适配bitsandbytes版本: (1)下载源码并创建所需文件
cd ..
git clone https://github.com/SlightwindSec/bitsandbytes.git -b multi-backend-refactor-npu
将使用的昇腾芯片型号记作 Ascend_version
./bitsandbytes_npu.sh "{Ascend_version}"
(2)安装: 将环境目录记作 env_root_dir 在bitsandbytes目录下: 在setup.py文件中:第11行setup()函数, 增加入参version="0.45.4"
bash deploy.sh
python setup.py install
最后在路径:/{env_root_dir}/lib/python3.10/site-packages/bitsandbytes-0.45.4-py3.10-linux-aarch64.egg/bitsandbytes/下创建文件_version.py,并加入__version__ = "0.45.4"
准备数据集
参考原仓data_preparation章节使用LLaVA模型推理生成数据集llava_output
还需下载: LLaVA训练数据集:https://huggingface.co/datasets/liuhaotian/LLaVA-Pretrain 目录结构如下:
Senna
├── assets/
├── data_tools/
├── eval_tools/
├── llaVa-Pretrain/
├── llava_output/
准备预训练权重
- 下载vicuna-7b-v1.5权重:https://huggingface.co/lmsys/vicuna-7b-v1.5
- 下载clip-vit-large-patch14-336权重:https://huggingface.co/openai/clip-vit-large-patch14-336 目录结构如下:
Senna
├── assets/
├── data_tools/
├── eval_tools/
├── llaVa-Pretrain/
├── vicuna-7b-v1.5/
├── clip-vit-large-patch14-336/
快速开始
训练任务
本任务主要提供单机的8卡训练脚本。
开始训练
- 添加文件路径 (1) 在train_tools/pretrain_senna_llava.sh中第3-6行更换文件路径 将Senna模型所在目录记作 Senna_root_dir
MODEL="${Senna_root_dir}/vicuna-7b-v1.5/"
DATA="${Senna_root_dir}/llaVa-Pretrain/blip_laion_cc_sbu_558k.json"
IMAGE_DATA="${Senna_root_dir}/llaVa-Pretrain"
OUT_DIR="${Senna_root_dir}/output1/"
(2) 在train_tools/train_senna_llava.sh中第3-5行更换文件路径
MODEL="${Senna_root_dir}/output1/"
DATA="${Senna_root_dir}/llava_output/"
OUT_DIR="${Senna_root_dir}/output2/"
- 运行训练脚本。
cd {DrivingSDK_root_dir}/model_examples/Senna/Senna 单机8卡精度训练:
bash test/train_8p.sh
单机8卡性能训练:
bash test/train_8p_performance.sh
训练结果
| 芯片 | 卡数 | global batch size | epoch | accuracy | FPS |
|---|---|---|---|---|---|
| 竞品A | 8p | 16 | 1 | 82.35% | 1.824 |
| Atlas 800T A2 | 8p | 16 | 1 | 82.35% | 1.376 |
变更说明
2025.3.5:首次发布
FAQ
暂无