scenic: 一个基于 JAX 的研究库,用于原型设计大规模基于注意力机制的计算机视觉模型

scenic: 一个基于 JAX 的研究库,用于原型设计大规模基于注意力机制的计算机视觉模型

它解决了什么问题

Scenic 为研究和原型设计大规模基于注意力机制的计算机视觉模型提供了一个精简的框架。它通过提供用于常见训练任务的共享库、优化的循环和输入流水线,减少了构建复杂视觉模型所需的精力,这些内容是专门为多设备和多主机环境设计的。

它是如何工作的

Scenic 使用 JAX 和 Flax 构建,将其架构分为两个级别:

  1. 库级别代码:极简且经过充分测试的共享库,包括 dataset_lib(可扩展的 IO 流水线)、model_lib(抽象模型接口、注意力/transformer 层以及二分匹配器)、train_lib(优化的训练循环)和 common_lib(通用工具)。
  2. 项目级别代码:针对特定任务的可定制实现。研究人员可以使用现有的配置或分支库组件,根据其需求重新定义架构、损失函数和指标。

它是为谁设计的

它专为从事计算机视觉工作的 AI 研究人员和开发人员设计,包括那些正在开发用于分类、分割、检测以及涉及图像、视频和音频的多模态任务的模型的人员。

亮点

  • 广泛的模态支持:已成功用于图像、视频、音频和多模态组合。
  • 可扩展的基础设施:内置对跨多个设备和主机的规模化训练的支持。
  • 丰富的基准库:包括 SOTA 模型如 ViT、DETR、CLIP 和 SAM 的实现。
  • ** فلسفه (Philosophy)**:通过倾向于分支和复制粘贴而非复杂的抽象,优先考虑简单性和快速原型设计。

Sources