AlpaSim 驾驶策略配置实操:三个模型从 0 到跑通
【免费下载链接】alpasimAlpaSim is an open-source autonomous vehicle simulation platform designed for development and testing of end-to-end AV policies项目地址: https://gitcode.com/GitHub_Trending/al/alpasim
把新模型接进 AlpaSim、做驾驶策略配置时,最容易卡住的不是模型权重,而是 wizard 层 yaml、gRPC 服务参数、场景文件三者如何对齐。这份笔记按实际跑通顺序展开:两层配置的分工、VaVAM / Transfuser / Alpamayo-R1 三个内置模型各自的最小可运行 yaml、单场景验证方法,以及高频故障的排查路径。适合第一次在 AlpaSim 上做模型集成,或需要快速复现 NAVSIM 基线的人。
配置前需要搞清的2件事
全局一句话:driver、renderer、physics、controller、trafficsim、runtime 各自是独立容器,靠 gRPC 通信,runtime 容器是唯一编排者,负责派发 rollout。
1. Wizard 层只负责"生成",Runtime 层负责"执行"。所有参数最终来自一个 hydra 根文件src/wizard/configs/base_config.yaml,其中driver组默认是 null,必须显式覆盖(如driver=vavam)。对应 yaml 的defaults还会引用一个姊妹配置文件(如vavam_configs),它改写的是 runtime 侧的相机帧率与分辨率——也就是说 driver yaml 同时决定了"模型侧"和"传感器侧",改相机时两边必须同步。
2.max_batch_size是 gRPC 服务端的并发上限。driver 进程是一个 gRPC server,端口由 wizard 从baseport(默认 6000)起依次分配。yaml 里的inference.max_batch_size决定 driver 单次处理多少个并发 rollout:写得比实际并发多不报错,写得少了请求就会排队。这个值要和topology组(如1gpu)及 NRE 缓存大小一起定,不能凭空写。
三个模型怎么选、怎么配
选型顺序:先定算力和实时性,再定模型。单卡显存紧、要跑大批量回归 → VaVAM;要复现 NAVSIM 基线、显存够 → Transfuser;要带因果推理输出的端到端 VLA、显存 ≥40GB → Alpamayo-R1。
| 模型 | 显存参考 | 相机输入 | 典型用途 |
|---|---|---|---|
| VaVAM | 较小,单卡可跑 | 1 个(前向广角) | 高吞吐闭环回归 |
| Transfuser (LTFv6) | 中等,batch 可到 16 | 4 个,横向拼接 | NAVSIM 基线复现 |
| Alpamayo-R1 | ~40 GB,batch 1 | 4 个,4 帧时序 | 端到端 VLA 策略 |
VaVAM:先让管线转起来的默认选项
VaVAM 适合用最小成本验证整条仿真链路,也是官方教程的默认 driver。
关键差异:
- 只用前向单摄像头
- context_length 为 1,无时序
- 额外需要 tokenizer_path
这份 AlpaSim VaVAM yaml(src/wizard/configs/driver/vavam.yaml)决定了模型入口点和推理并发,其余字段走 schema 默认:
model: model_type: vam checkpoint_path: "/mnt/drivers/vavam/VAM_width_1024_pretrained_139k.pt" tokenizer_path: "/mnt/drivers/vavam/VQ_ds16_16384_llamagen_encoder.jit" device: "cuda" inference: use_cameras: ["camera_front_wide_120fov"] max_batch_size: 32坑:同文件的rectification块负责把 f-theta 渲染校正回 NuScenes pinhole 模型,其中principal_point: [x, y]与resolution_hw: [h, w]的书写顺序是反的。从别的相机或别的模型抄数值时,两个顺序要一起换算,不能只抄焦距。
Transfuser:拼接顺序就是输入顺序
Transfuser(LTFv6)以插件形式集成,适合复现 NAVSIM 基线和横向对比。
关键差异:
- 4 摄像头横向拼接
- 列表顺序即拼接顺序
- 单帧推理,batch 可到 16
Transfuser 多摄像头配置在plugins/transfuser_driver/alpasim_transfuser/configs/driver/transfuser.yaml,四相机顺序 cross_left → front_wide → cross_right → rear_left,即图像从左到右的排列。日常只需要动这两段:
model: model_type: transfuser checkpoint_path: "/mnt/drivers/transfuser/model_0060.pth" device: "cuda" inference: max_batch_size: 16坑:checkpoint_path同目录必须放config.json(官方流程要求两个文件一起下载)。另外相机列表就是图像拼接顺序,调换任意两项,管线"正常跑"但模型输入是错的,这类问题在画面里很难看出来。
Alpamayo-R1:显存不够别硬上
Alpamayo-R1 是 10B 参数的 VLA 策略,适合需要端到端输出加推理文本的场景。
关键差异:
- ~40 GB 显存,batch 1 起步
- 4 摄像头 + 4 帧时序
- HF 权重是 gated 的
Alpamayo-R1 参数在src/wizard/configs/driver/alpamayo1.yaml;相机列表为 4 路(cross_left、front_wide、cross_right、front_tele_30fov),由所引用的alpamayo_configs统一决定 10Hz 出帧:
model: model_type: alpamayo1 checkpoint_path: "nvidia/Alpamayo-R1-10B" device: "cuda" inference: max_batch_size: 1 context_length: 4坑:权重需要 HF 认证,本地没有缓存时 driver 会自动下载,但首次下载很容易超时。启动前先huggingface-cli login并预下载,或把checkpoint_path直接指向本地模型目录。
跑起来:场景文件与验证
场景选择由两个 CSV 决定:data/scenes/sim_scenes.csv是所有公开场景 artifact 的登记表(uuid ↔ scene_id ↔ usdz 路径 ↔ NRE 版本),data/scenes/sim_suites.csv定义套件(如public_2601含 913 个场景)。scenes.scene_ids=[...]取每个 scene ID 对应最新的 artifact;scenes.test_suite_id=public_2601则跑整个套件。本地data/nre-artifacts/没有对应 artifact 时会自动从 Hugging Face 拉取,需要配置HF_TOKEN。
最小验证只跑 1 个场景,确认配置链路后再扩量:
uv run alpasim_wizard deploy=local topology=1gpu driver=vavam scenes.scene_ids=['clipgt-01d503d4-449b-46fc-8d78-9085e70d3554'] wizard.log_dir=$PWD/run_check跑完看三处:wizard.log_dir下生成的 driver / runtime 配置,确认模型字段与预期一致;asl 日志,确认 rollout 完整跑完全部步数;eval 目录里的视频,确认 ego 沿路线行驶且没有碰撞。三处都通过,说明配置链路是对的。
跑不通?先看这3件事
症状:driver 容器首帧 CUDA OOM,直接崩溃。大概率原因:10B 模型默认就要 ~40 GB 显存,max_batch_size再往上加是乘法放大。怎么改:max_batch_size退回 1;若开了 A1.5 的use_classifier_free_guidance_nav,需求升到 ~60 GB。先用 VaVAM 跑一遍排除其他问题。
症状:rollout 长时间等渲染,NRE 日志频繁出现场景加载/卸载。大概率原因:nre_cache_size小于并发 rollout 数,场景被提前驱逐,形成缓存抖动。怎么改:上调defines.nre_cache_size,经验值是 n_concurrent_rollouts + 1;physics_cache_size保持 ≥ 并发场景数。
症状:driver 服务反复启动失败,卡在模型下载。大概率原因:AR1 权重是 gated 的,首次自动下载不稳定或超时。怎么改:预下载后启动,或把model.checkpoint_path指到本地目录绕开在线拉取。
驾驶策略配置的实质,是保持 wizard 层 yaml、gRPC 服务并发、场景 artifact 版本三者对齐。建议先用 VaVAM 加单场景跑通最小链路,再切 Transfuser,最后上 Alpamayo-R1,每一步只改一个变量 🚀
【免费下载链接】alpasimAlpaSim is an open-source autonomous vehicle simulation platform designed for development and testing of end-to-end AV policies项目地址: https://gitcode.com/GitHub_Trending/al/alpasim
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考