LAION AI推出Video2Dataset:一款开源工具,旨在高效且规模化地整理视频和音频数据集

LAION AI推出Video2Dataset开源工具,用于整理视频和音频数据集

像CLIP、稳定扩散和Flamingo这样的大型基础模型在过去几年中彻底改进了多模态深度学习。联合文本-图像建模从一个小众应用发展成为当今人工智能领域最相关的问题之一,这是由于这些模型具有生成出色高分辨率图像或解决复杂下游问题的出色能力。令人惊讶的是,尽管这些模型处理的任务截然不同,设计也大相径庭,但它们都具有三个共同的基本特性,这些特性有助于它们的强大性能:(预)训练过程中简单且稳定的目标函数、经过深入研究的可扩展模型架构,以及最重要的是,大规模多样化的数据集。

截至2023年,多模态深度学习仍主要关注文本-图像建模,对于其他模态(如视频和音频)的关注有限。考虑到用于训练模型的技术通常是模态无关的,人们不禁会想为什么这些其他模态没有坚实的基础模型。简单的解释是缺乏高质量、大规模的标注数据集。这种缺乏清洁数据的情况阻碍了大规模多模态模型的研究和开发,特别是在视频领域,与图像建模不同,图像建模已有用于扩展的已建立数据集,如LAION-5B、DataComp和COYO-700M,以及可扩展工具如img2dataset。

研究人员建议,解决这个数据问题是(开源)多模态研究的中心目标,因为它可以为开展具有开创性的倡议,如高质量视频和音频生成、改进的预训练模型用于机器人技术、为盲人社区提供电影音频描述等,铺平道路。研究人员提出了video2dataset,这是一个用于快速、广泛地构建视频和音频数据集的开源程序。它已成功应用于多个大型视频数据集,并且具有适应性、可扩展性和提供大量转换的特点。您可以在存储库中找到这些案例研究以及复制我们方法的详细说明。

通过下载单个视频数据集,合并它们并将其重塑为更易处理的形状,并增加新特征和更多样本,研究人员利用video2dataset构建了现有视频数据集的基础上。请参考示例部分,以获取对此链式处理的更深入描述。通过在video2dataset提供的数据集上训练不同模型所取得的结果展示了该工具的有效性。我们即将进行的研究将详细讨论新数据集及其相关发现。

首先,让我们定义video2dataset。

由于webdataset是可接受的输入格式,因此可以将video2dataset用于链式处理以重新处理先前下载的数据。您可以使用先前示例中下载的WebVid数据来执行此脚本,该脚本将为每个视频计算光流并将其存储在元数据分片中(只包含光流元数据的分片)。

架构

基于img2dataset,video2dataset接受URL列表和相关元数据,并将其转换为可以使用单个命令加载的WebDataset。此外,可以对WebDataset进行进一步的更改和重新处理,同时保留相同的分片内容。video2dataset是如何工作的?我来解释一下。

交流和研究

首先,将输入数据分区,以便它可以在工作进程之间均匀分布。这些输入分片会被临时缓存,它们与相应的输出分片之间的一对一映射确保了无故障恢复。如果数据集处理运行意外终止,通过跳过研究人员已经具有相应输出分片的输入分片,可以节省时间。

通信和学习

然后,工作进程轮流读取和处理分片中包含的样本。研究人员提供了三种不同的分发模式:多进程、pyspark和slurm。前者适用于单机应用,后者适用于跨多台机器的扩展。传入数据集的格式决定了读取策略。如果数据是URL的表格,video2dataset将从互联网获取视频并将其添加到数据集中。video2dataset可以与许多不同的视频平台一起使用,因为它使用yt-dlp来请求找不到的视频。但是,如果视频样本来自现有的Web数据集,则该数据集的数据加载器可以读取字节或帧的张量格式。

子采样

在视频被读取并且工作人员获得视频字节之后,字节会根据作业配置通过一系列的子采样器进行处理。在此阶段,视频可以选择性地按照帧率和分辨率进行降采样;进行剪辑;可能会识别场景等等。另一方面,还有一些子采样器的唯一目的是从输入模态中提取和添加元数据,例如分辨率/压缩信息、合成字幕、光流等等。只需定义一个新的子采样器或修改现有的子采样器,就可以将新的转换添加到video2dataset中(如果它还没有存在)。这对于video2dataset是一个巨大的帮助,只需对存储库中的其他地方进行一些更改即可实现。

日志记录

Video2dataset在整个过程中会在多个关键点进行详细的日志记录。每个分片的完成都会生成一个关联的“ID”_stats.json文件。这里记录了处理的样本总数、成功处理的样本百分比以及任何错误的发生和性质等信息。Weights & Biases(wand)是video2dataset可以使用的附加工具。只需一个参数,您就可以打开此集成并访问成功和失败的详细性能报告和指标。这样的功能对于与整个作业相关的基准测试和成本估算任务非常有帮助。

写入

最后,video2dataset将修改后的信息存储在用户指定位置的输出分片中,以便在后续的训练或重新处理操作中使用。数据集可以以多种格式下载,每个格式都由N个样本组成的分片组成。这些格式包括文件夹、tar文件、records和parquet文件。较为重要的是用于调试较小数据集的目录格式和由WebDataset格式用于加载的tar文件。

重新处理

video2dataset可以通过读取输出分片并将样本通过新的转换来重新处理先前的输出数据集。对于视频数据集来说,这个功能特别有优势,考虑到它们通常庞大而又复杂的特性。它使我们能够仔细地对数据进行降采样,以避免多次下载大型数据集。研究人员在下一节中会详细介绍一个实际的例子。

代码和详细信息可以在GitHub上找到 https://github.com/iejMac/video2dataset

未来计划

  • 使用本文中描述的软件构建大规模数据集的研究,并公开传播该研究的结果。
  • 它改进了合成字幕。对于视频的合成字幕,创新空间还有很多。不久之后,在video2dataset中,研究人员将有更多有趣的方法来为视频生成使用图像字幕模型和LLMs的字幕。
  • 自从发布以来,Whisper从视频中提取大量文本标记的能力一直是人们讨论的话题。使用video2dataset,他们目前正在转录大量的播客,以制作结果文本数据集(目标为50B标记),并将其公开提供。
  • 许多令人兴奋的建模思路。希望通过改进的数据集策划工具,更多的人将尝试在视频和音频模态中推动SOTA。

video2dataset是一个完全开源的项目,研究人员致力于在开放中进行其发展。这意味着所有相关的待办事项和未来方向都可以在存储库的问题标签中找到。欢迎贡献;最好的方式是挑选出一个问题、解决它并提交一个拉取请求。