ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Data-Juicer 视频数据集路径配置指南:相对路径与绝对路径在 Ray 集群中的正确使用

Data-Juicer 视频数据集路径配置指南:相对路径与绝对路径在 Ray 集群中的正确使用 人工智能大模型数据工程数据清洗数据增强数据质检【免费下载链接】data-juicerData processing for and with foundation models! ➡️ ➡️ 项目地址https://gitcode.com/gh_mirrors/da/data-juicer点击查看免费下载导读本文围绕demos/process_video_on_ray/data/Note.md中关于视频/图片数据集路径的说明展开系统讲解 Data-Juicer 中dataset_path的语义、相对路径的解析基准、多节点Ray 集群场景下的路径可达性要求并结合 process_video_on_ray 演示的配置与源码实现进行纵深验证。读完本文你将掌握在单机与分布式场景下为视频/图片样本正确配置路径的完整方法避免因路径解析歧义或节点间不可访问导致的加载失败。一、路径配置的核心原则Data-Juicer 在处理视频videos字段与图片images字段样本时允许在数据集文件中同时使用绝对路径与相对路径两种形式。路径选择的核心原则如下绝对路径直接给出视频/图片在文件系统中的完整地址例如/data/videos/video1.mp4。其优点是语义明确、与数据集文件位置解耦缺点是当路径不可被所有节点访问时会导致集群中的部分 worker 读取失败。相对路径给出相对于数据集文件所在目录的路径例如./videos/video1.mp4。其优点是便于整体迁移数据集目录连同媒体文件一起移动后相对关系保持不变缺点是解析基准取决于dataset_path参数的形态详见下文。多节点可达性在 Ray 集群executor_type: ray场景下路径必须能被所有节点访问。官方建议使用 NAS 文件共享系统等所有节点均可访问的地址否则即使单机调试通过分布式运行时仍可能报文件不存在错误。以 demos/process_video_on_ray/data/demo-dataset.jsonl 为例{videos: [./videos/video1.mp4], text: __dj__video 10s videos |__dj__eoc|}} {videos: [./videos/video2.mp4], text: __dj__video 23s videos |__dj__eoc|}} {videos: [./videos/video3.mp4], text: __dj__video 46s videos |__dj__eoc|}}其中./videos/video1.mp4即为相对路径写法对应仓库中的demos/process_video_on_ray/data/videos/目录下真实存在的视频文件。二、dataset_path的两种形态与相对路径解析基准原文档明确指出相对路径以数据集文件所在目录为基准而数据集文件所在目录的具体含义取决于配置中dataset_path参数是目录还是文件当dataset_path指向一个目录时相对路径相对于该目录本身解析即dataset_path目录为基准。当dataset_path指向一个文件时相对路径相对于该文件所在目录即dataset_path的 dirname解析。这一语义可以从 data_juicer/format/load.py 的加载逻辑得到印证load_formatter首先通过os.path.isdir(dataset_path)/os.path.isfile(dataset_path)判断路径形态再交给 find_files_with_suffix 递归rglob扫描后缀匹配的媒体文件最终由对应 formatterjsonl/parquet 等读取样本内容。样本中记录的相对路径是在运行时基于上述基准目录拼接到真实文件系统路径上使用的。关键区分在 Data-Juicer 中dataset_path既可以是一个文件如单份 jsonl也可以是一个目录此时会遍历目录下所有匹配后缀的 dataset 文件见 config 全局参数 与 DatasetCfg 文档。两种形态下媒体相对路径的解析基准不同配置时需先确认自己属于哪一种。三、两种形态的实战配置示例3.1 形态一dataset_path指向文件demos/process_video_on_ray/configs/demo.yaml 中即为此形态project_name: ray-demo executor_type: ray dataset_path: ./demos/process_video_on_ray/data/demo-dataset.jsonl # path to your dataset directory or file ray_address: auto # change to your ray cluster address, e.g., ray://hostname:port export_path: ./outputs/demo/demo-processed-ray-videos此时dataset_path是文件demo-dataset.jsonl因此样本内的相对路径./videos/video1.mp4应以demos/process_video_on_ray/data/为基准最终解析为demos/process_video_on_ray/data/videos/video1.mp4——与该演示仓库的实际文件布局完全吻合。3.2 形态二dataset_path指向目录若将dataset_path配置为目录例如./demos/process_video_on_ray/data则相对路径直接以该目录为基准解析即videos/video1.mp4会被解析为./demos/process_video_on_ray/data/videos/video1.mp4。同时目录形态下加载器会扫描该目录下所有受支持的 dataset 文件jsonl、parquet、csv、tsv、txt 等具体由 format/formatter.py 中注册的各 formatter 后缀决定适合按目录组织多个数据集文件的场景。注意将同一个数据集分别以文件形态和目录形态配置时即使dataset_path的字符串前缀相同相对路径的解析基准也会整体偏移一级文件形态取其 dirname目录形态取自身。为避免歧义建议在数据集文件内统一采用相对路径并保持媒体文件与数据集文件位于同一目录树内。3.3 新版 dataset 块配置可选写法demos/process_video_on_ray/configs/demo-new-config.yaml 展示了使用dataset.configs块的等价写法路径语义与上述规则一致dataset: configs: - type: local path: ./demos/process_video_on_ray/data/demo-dataset.jsonl # path to your dataset directory or file此处type: local表示本地数据集path的取值规则与旧式dataset_path完全相同详见 DatasetCfg 文档。四、分布式场景多节点路径可达性原文档强调请使用所有节点都能访问的地址例如 NAS 文件共享系统中的地址这是 Ray 执行模式下最容易踩坑的点。原因如下Data-Juicer 的 Ray 执行器ray_executor.py、ray_dataset.py会将数据集分片并分发到集群各 worker 节点处理每个 worker 在运行 mapper/filter 等算子时需要按样本记录中的路径实际打开视频/图片文件例如 video_split_by_duration_mapper.py 中通过load_video读取、切分后写入save_dir如果路径只在提交任务的 head 节点上可见worker 节点将无法读取文件任务会因 IO 错误中断。因此分布式配置时应遵循将视频/图片目录挂载到所有节点可访问的共享文件系统NAS、NFS、对象存储映射盘等在配置中使用所有节点一致的路径可以是共享挂载点上的绝对路径也可以是共享目录下统一的相对路径相对路径虽然书写简洁但必须保证解析基准目录在所有节点上以相同方式存在。五、S3 场景下的路径处理延伸当媒体文件存放于对象存储而非共享文件系统时Data-Juicer 提供了完整的 S3 工作流支持。demos/process_video_on_ray/configs/s3_video_processing_config.yaml 演示了从 S3 下载 → 本地处理 → 回传 S3的完整闭环此时样本内使用s3://前缀的地址而非本地路径{videos: [s3://your-bucket/videos/video1.mp4], text: __dj__video A sample video}对应配置片段节选dataset: configs: - type: remote source: s3 path: s3://your-bucket/dj/dataset/process_video_on_ray/demo-dataset-s3.pdf aws_region: us-east-1 endpoint_url: null # Optional, for S3-compatible object storage process: - s3_download_file_mapper: download_field: videos save_dir: /tmp/dj_downloaded_videos resume_download: true timeout: 300 max_concurrent: 5 aws_region: us-east-1 endpoint_url: http://your-s3-endpoint:port ... - s3_upload_file_mapper: upload_field: videos s3_bucket: your-bucket s3_prefix: dj/processed_videos/ remove_local: true skip_existing: true max_concurrent: 10其中 s3_download_file_mapper.py 支持多文件并发下载、断点续传resume_download、自定义 S3 兼容端点如 MinIOendpoint_url及通过get_aws_credentials统一读取环境变量或显式传入的凭证。S3 地址天然规避了多节点本地路径不可见的问题是分布式视频处理的可选替代方案更多 S3 配置细节可参考 s3_utils.py 与 DatasetCfg 文档。六、实践建议与常见错误排查场景推荐做法易错点单机调试相对路径 数据集文件同目录把媒体文件放在dataset_path目录树之外导致基准错位集群共享存储绝对路径指向 NAS/NFS 挂载点或共享目录下相对路径只在本机可见的路径worker 读不到S3 对象存储s3://地址 s3_download_file_mapper漏配aws_region/endpoint_url凭证未在环境变量或配置中给出dataset_path为文件相对路径以该文件 dirname 为基准误以为以配置文件所在目录为基准dataset_path为目录相对路径以该目录为基准目录形态会额外扫描目录内所有 dataset 文件常见报错与定位方向Unable to find files matching the suffix from {dataset_path}来自 load.py说明dataset_path下没有找到受支持后缀的数据集文件请核对路径形态与文件后缀FileNotFoundError/ 读取媒体文件失败优先检查样本内相对路径的解析基准是否正确见第二节以及该路径在当前 worker 节点上是否可达Ray worker 间行为不一致说明媒体文件未挂载到全部节点请改用 NAS/NFS 共享路径或 S3。七、结语Data-Juicer 对视频/图片样本路径的设计非常简洁支持绝对与相对两种写法相对路径以dataset_path或其 dirname为解析基准分布式场景下要求所有节点可达。理解并遵守这三条规则即可在单机与 Ray 集群中稳定地处理视频数据集。更进一步可参考 GlobalConfig 文档 了解dataset_path等全局参数结合 Ray 执行器实现 与 format 加载链路 深入掌握 Data-Juicer 的数据加载与调度机制。赞分享人工智能大模型数据工程数据清洗数据增强数据质检【免费下载链接】data-juicerData processing for and with foundation models! ➡️ ➡️ 项目地址https://gitcode.com/gh_mirrors/da/data-juicer点击查看免费下载相关推荐Sea.js中的路径解析相对路径与绝对路径Sea.js中的路径解析相对路径与绝对路径 在前端模块化开发中路径解析是保证模块正确加载的核心环节。Sea.js作为一款轻量级的Web模块加载器Modul前端终极指南InvokeAI路径管理完全解析——从基础到高级配置技巧终极指南InvokeAI路径管理完全解析——从基础到高级配置技巧 InvokeAI作为领先的稳定扩散模型创意引擎其路径管理系统是确保AI绘图工作流顺畅运行的人工智能大模型媒体生成后端前端流程编排Type-5启动器图片路径配置绝对路径vs相对路径Type 5启动器图片路径配置绝对路径vs相对路径 Rofi启动器的图片路径配置是影响界面显示效果的关键环节。本文将详细对比Type 5启动器中绝对路径与相对上一篇TDengine 3.x taosKeeper 监控指标导出工具实战指南安装配置、Prometheus 集成与全量指标解读下一篇Apollo Client 内存与垃圾回收测试实战在 Node.js 中验证缓存释放与泄漏防护创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表