Autoware 模型制品(Artifacts)下载指南:基于 Ansible 从 Hugging Face 获取感知模型 Bundle
发布时间:2026/10/2 13:27:45 作者:尧图编辑部 阅读量:1,286
下载指南:基于 Ansible 从 Hugging Face 获取感知模型 Bundle)
自动驾驶【免费下载链接】autowareAutoware - the worlds leading open-source software project for autonomous driving项目地址https://gitcode.com/GitHub_Trending/au/autoware点击查看免费下载导读Autoware 的感知Perception栈依赖一系列经过训练的深度学习模型来完成推理这些模型以“模型 Bundle”的形式托管在 Hugging Face 上并通过仓库内的artifactsAnsible 角色统一拉取到本地。本文以ansible/roles/artifacts/README.md为核心完整讲解该角色的下载流程、提交哈希commit hash选择逻辑、数据目录布局~/autoware_data/ml_models、权限模型以及从旧版布局迁移的方法并结合ansible/roles/artifacts/下的角色源码tasks、defaults、meta和 install_dev_env.yaml 进行源码级印证。读完本文你将能够独立、正确地运行--tags artifacts完成全部模型下载并理解每个任务为何以当前用户身份运行、为何通常需要保留--ask-become-pass。背景artifacts 角色解决什么问题Autoware 感知栈perception stack在推理阶段需要使用多种模型例如激光雷达目标检测、BEV 融合、交通灯识别、轨迹预测等。这些模型体积大、版本多、更新频繁不适合直接纳入 Autoware 源码仓库因此统一托管在 Hugging Face 的AutowareFoundation组织下。仓库内的artifacts角色通过一条命令完成全部模型的下载ansible-playbook autoware.dev_env.install_dev_env --tags artifacts其设计要点如下每个模型 Bundle 都固定pin到一个版本标签tag而非跟随main分支漂移保证可复现性默认下载到~/autoware_data/ml_models这是 asset 类型化的~/autoware_data/布局的一部分下载以运行 playbook 的用户身份执行整个角色不使用 sudo模型文件的所有权始终归属于该用户详见后文“权限模型”一节。在 install_dev_env.yaml 中artifacts 角色被赋予universe与artifacts两个标签并排在 CUDA、TensorRT、spconv 等运行时依赖之后注释明确说明其职责是“ONNX models and other artifacts”。下载前确认当前提交哈希commit hash模型标签与 Autoware 源码版本之间存在对应关系下载前需要先确认当前代码所处的版本状态必要时切换到最新发布标签。原文档提供了如下决策图决策规则可概括为三条分支当前处于某个发布标签release tag无需改动提交哈希直接继续后续步骤当前位于main分支且已拉取autoware-nightly.repos同样无需改动继续执行当前位于main分支但只拉取了autoware.repos需要切换到最新发布标签。如果需要切换到最新标签执行以下命令cd ~/autoware git fetch --tags git checkout $(git describe --tags $(git rev-list --tags --max-count1))命令含义拆解git rev-list --tags --max-count1按提交时间取最新一个带标签的提交git describe --tags commit为该提交解析出最近的标签名git checkout tag切换到该标签。模型制品下载完成后可以再切回自己想要的任意分支或提交哈希下载行为与源码版本无关。说明autoware.repos与autoware-nightly.repos分别位于仓库根目录的 repositories/autoware.repos 与 repositories/autoware-nightly.repos是拉取 Autoware 各功能包仓库清单的文件。前置要求安装 Ansible下载模型依赖 Ansible安装步骤在 ansible 安装指南 中有完整说明。核心流程如下基于 ansible/README.md# 移除 apt 安装的旧版 ansibleUbuntu 22.04 自带版本过旧 sudo apt-get purge ansible # 安装 pipx sudo apt-get -y update sudo apt-get -y install pipx # 将 pipx 加入系统 PATH python3 -m pipx ensurepath # 通过 pipx 安装指定大版本范围的 ansible pipx install --include-deps --force ansible10.*这里使用 pipx 而非 pip是为了将 Ansible 隔离在独立的虚拟环境中避免污染系统 Python--force确保重复安装时收敛到指定版本。下载 Artifacts分步操作步骤 1安装 Ansible Collections在仓库根目录执行cd ~/autoware # 克隆仓库的根目录 ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml其中ansible-galaxy-requirements.yaml位于仓库根目录是定义autoware.dev_envcollection 依赖的清单文件。注意当有新 playbook 加入时此步骤需要重新执行以确保本地 collection 与仓库定义保持一致。步骤 2运行 playbook 下载制品ansible-playbook autoware.dev_env.install_dev_env --tags artifacts -e data_dir$HOME/autoware_data/ml_models --ask-become-pass各参数的作用参数作用autoware.dev_env.install_dev_env由 collection 提供的入口 playbook对应仓库 ansible/playbooks/install_dev_env.yaml--tags artifacts只执行被标记为artifacts的角色跳过其余开发环境安装任务-e data_dir$HOME/autoware_data/ml_models通过 extra vars 覆盖默认的data_dir指定模型下载的目标目录--ask-become-pass请求 sudo 密码只要后文提到的两个依赖条件任一可能成立就应保留该参数下载行为说明原文档要点每个模型 Bundle 都固定到 Hugging Face 上的一个版本标签制品完整性依赖 Hugging Face Hub 与传输层HTTPS保证而不是依赖本角色内固定的校验和checksum——也就是说角色本身不携带并校验每个文件的哈希值信任模型由平台侧背书。步骤 3可选验证下载结果下载完成后data_dir下应出现与每个模型仓库对应的子目录如bevfusion、lidar_centerpoint、tensorrt_yolox等具体清单见下一节。可通过ls -la或du -sh查看目录结构与占用空间确认所有权归属当前用户ls -l的属主列应为你自己的用户名而非 root。源码级解析artifacts 角色内部实现本节结合 ansible/roles/artifacts/ 下的实际源码说明“一条命令背后到底发生了什么”。下载任务与模型清单角色的全部下载逻辑集中在 tasks/main.yaml核心任务是对清单逐项执行 Hugging Face CLI- name: Download the model bundles from Hugging Face ansible.builtin.command: cmd: - hf download AutowareFoundation/{{ item.repo }} --revision {{ item.revision }} --local-dir {{ data_dir }}/{{ item.dest | default(item.repo) }} environment: PATH: {{ ansible_facts.env.PIPX_BIN_DIR | default(ansible_facts.env.HOME ~ /.local/bin, true) }}:{{ ansible_facts.env.PATH }} HF_TOKEN: {{ lookup(env, HF_TOKEN) }} changed_when: false要点解读hf download调用 Hugging Face CLI由huggingface_cli依赖角色安装从AutowareFoundation组织下的指定仓库下载模型--revision指定标签tag作为版本--local-dirdest相对于data_dir未指定dest时默认为仓库名environment.PATH优先将pipx的 bin 目录$HOME/.local/bin前置到 PATH 中确保能定位到hf命令environment.HF_TOKEN透传宿主环境变量HF_TOKEN若已设置可用于私有或受限模型仓库的鉴权changed_when: false该任务不参与 Ansible 的“变更”判定重复运行不会误报 changed 状态。完整的模型清单仓库名 / 标签 / 目标子目录如下与 tasks/main.yaml 逐行对应模型仓库AutowareFoundation/…版本标签revision目标子目录相对于 data_dir用途/备注yabloc_pose_initializerv1.0yabloc_pose_initializerYabLoc 视觉定位初始化bevfusionv2.0bevfusionBEV 融合 3D 目标检测camera_streampetrv1.0camera_streampetr相机端到端 3D 检测StreamPETRtensorrt_bevdetv1.0tensorrt_bevdetBEVDet 的 TensorRT 版本image_projection_based_fusionv5.0image_projection_based_fusion基于图像投影的融合检测lidar_apollo_instance_segmentationv1.0lidar_apollo_instance_segmentationApollo 实例分割模型lidar_centerpointv4.1lidar_centerpointCenterPoint 点云 3D 检测lidar_transfusionv2.1lidar_transfusionTransFusion 点云 3D 检测tensorrt_yoloxv1.0tensorrt_yoloxYOLOX 的 TensorRT 版本同时承载 whole_image_traffic_light_detector 模型traffic_light_classifierv4.0traffic_light_classifier交通灯状态分类diffusion_plannerv3.0diffusion_planner/v3.0轨迹规划器扩散模型多版本并存diffusion_plannerv3.1diffusion_planner/v3.1同上diffusion_plannerv4.0diffusion_planner/v4.0同上diffusion_plannerv5.0diffusion_planner/v5.0同上tensorrt_vadv0.1vad/v0.1VAD 模型本地目录刻意命名为vad节点读取$(var data_path)/vad/v0.1traffic_light_fine_detectorv3.0traffic_light_fine_detector交通灯精细检测simpl_predictionv0.1simpl_prediction轨迹预测SimPLptv3v4.0ptv3Point Transformer V3 点云模型lidar_frnetv2.0lidar_frnetFRNet 点云检测calibration_status_classifierv2.0calibration_status_classifier标定状态分类其中两处需要特别注意的设计diffusion_planner每个版本都是一个 tag由于同一仓库的每个 tag 在仓库根目录持有相同文件名若不分目录下载后下载的版本会覆盖先下载的版本。因此清单为每个版本显式指定了独立的dest如diffusion_planner/v3.0实现多版本共存tensorrt_vad的本地目录名为vad因为下游节点读取$(var data_path)/vad/v0.1目录名必须与节点约定一致而不能沿用仓库名。data_dir 默认值默认下载位置定义在 defaults/main.yamldata_dir: {{ ansible_facts.env.HOME }}/autoware_data/ml_models即~/autoware_data/ml_models它是 asset 类型化~/autoware_data/布局中的一类目录。该布局包含五类 asset 子目录子目录内容assets/通用资产maps/地图数据ml_models/机器学习模型artifacts 角色的下载目标recordings/回放数据rosbag 等scenarios/仿真场景这种按类型划分的布局让地图、模型、回放、场景各归其位便于多消费方Ansible 角色、ROS 节点、Docker 容器按约定路径访问。依赖角色与权限模型角色的依赖声明在 meta/main.yaml共两个依赖角色且仅在特定条件下才需要 sudodependencies: - role: autoware.dev_env.autoware_data_ownership - role: autoware.dev_env.huggingface_cliautoware_data_ownership纠正“root 拥有安装目录”的历史遗留问题。该角色的任务见 autoware_data_ownership/tasks/main.yaml先解析真实路径再查找目录树下不属于当前用户的路径发现后以 root 身份执行chown -Rh将所有权归还给当前用户。早期版本以 root 下载制品导致目录被 root 占用进而阻塞所有消费方Ansible 角色无法写入、ROS 节点无法写入 TensorRT 引擎文件、docker/容器中的非特权aw用户无法读取。该角色只在“目录下存在非当前用户所有路径”这一条件成立时才使用become。huggingface_cli在 pipx 缺失时安装 pipx。其任务见 huggingface_cli/tasks/main.yaml先检查/usr/bin/pipx是否存在不存在则通过 apt 安装 pipx再执行pipx install --force huggingface_hub1.*安装 Hugging Face CLIhf。--force使每次运行收敛到该版本约束修正越界版本将huggingface_hub主版本约束在1.*是为了保持hfCLI 的命令面稳定。总结权限模型原文档核心结论artifacts 角色自身的每个任务都以运行 playbook 的用户身份下载不使用 sudo因此制品所有权始终属于该用户只有上述两个依赖角色才可能触发 sudo且各自都有明确的触发条件。因此只要“root 遗留所有权需要纠正”或“pipx 缺失”任一条件仍可能成立就应保留--ask-become-pass。从 autoware_data_ownership/README.md 还可以看到当~/autoware_data不存在、或用户已拥有其下所有路径时该角色什么都不做干净安装通常无需密码。从旧版布局迁移早期版本的 artifacts 角色会直接下载到~/autoware_data/。为匹配新的 asset 类型化布局需要将现有模型目录移动到~/autoware_data/ml_models/下若之前使用过~/autoware_map/则移入~/autoware_data/maps/mkdir -p ~/autoware_data/ml_models shopt -s extglob mv ~/autoware_data/!(ml_models|maps|recordings|scenarios|assets) ~/autoware_data/ml_models/ # 仅当你也使用过 ~/autoware_map/ 时才需要 [ -d ~/autoware_map ] mv ~/autoware_map ~/autoware_data/maps命令要点shopt -s extglob开启 bash 扩展通配符使!(...)模式生效mv ~/autoware_data/!(ml_models|maps|recordings|scenarios|assets) ~/autoware_data/ml_models/把~/autoware_data下除五个标准子目录之外的所有顶层条目即旧版散落的模型目录一次性移入ml_models/条件判断[ -d ~/autoware_map ]仅在存在旧地图目录时执行迁移。重新运行 playbook 也是安全的它会向新的ml_models/目录填充模型迁移完成后可以删除旧版顶层遗留的模型文件夹。常见问题与注意事项下载目录权限异常Permission denied多为旧版 root 下载遗留。运行--tags artifacts时保留--ask-become-pass让autoware_data_ownership依赖角色自动修复所有权也可手工执行sudo chown -Rh $USER:$USER $(readlink -f ~/autoware_data)该命令与角色内部执行的一致readlink -f用于解析符号链接场景。hf: command not foundhuggingface_cli依赖角色应已通过 pipx 安装huggingface_hub1.*若手动安装可执行pipx install --force huggingface_hub1.*见 huggingface_cli/README.md。新增 playbook 后下载失败/行为不一致记得重新执行ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml。需要下载私有/受限模型预先在环境中导出HF_TOKEN任务会通过lookup(env, HF_TOKEN)透传给hfCLI。模型完整性校验本角色信任 Hugging Face Hub 与 HTTPS 传输不固定校验和如需更严格的可复现性应在平台侧管理模型发布与审计。结语artifacts角色把“数十个模型、不同版本标签、统一目录布局”的复杂下载流程收敛为一条ansible-playbook ... --tags artifacts命令通过hf download逐项拉取固定标签的模型 Bundle默认落盘~/autoware_data/ml_models并借助两个条件触发的依赖角色所有权修复、pipx 安装保证“制品归用户所有、命令可重复执行”。理解这份 README 与配套源码是顺利搭建可复现的 Autoware 开发/运行环境的关键一步——既适用于首次安装也适用于旧版布局的平滑迁移。赞分享自动驾驶【免费下载链接】autowareAutoware - the worlds leading open-source software project for autonomous driving项目地址https://gitcode.com/GitHub_Trending/au/autoware点击查看免费下载相关推荐ControlNet 1.1模型下载指南Hugging Face资源获取与验证ControlNet 1.1模型下载指南Hugging Face资源获取与验证 你是否在寻找ControlNet 1.1模型的下载资源是否对如何正确获取和验人工智能深度学习媒体生成计算机视觉微调大模型broom包版本演进v0.7.0后的重大更新与迁移指南broom包版本演进v0.7.0后的重大更新与迁移指南 broom是R语言tidymodels生态系统中的核心工具包专注于将统计模型输出转换为整洁的数据框格最全面Stability AI模型下载指南Hugging Face资源高效获取最全面Stability AI模型下载指南Hugging Face资源高效获取 你是否正在为这些问题困扰 找不到官方推荐的模型下载渠道 下载的模型文件与代人工智能深度学习媒体生成计算机视觉预训练大模型上一篇GoodbyeDPI 深度包检测规避教程Windows 上被拦网站完整跑通指南下一篇Zotero PDF翻译插件完整指南如何快速实现学术文献双语智能翻译创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考