概述

Aim围绕几个核心概念构建,以确保满足以下标准:

  • 运行数据隔离。每个训练运行进程在数据层面相互隔离,无需额外服务即可运行。

  • 可扩展性. Aim web应用能够处理数千次训练运行。从v3.4.0版本开始,Aim提供了远程追踪服务器功能,支持在分布式多主机环境中运行多个并行实验。

  • 灵活性. Aim UI 和查询语言让用户可以按需选择、分组和筛选追踪的数据。

Aim组件

为了理解Aim的工作原理,让我们快速浏览一下它的各个组件。

  • Aim存储。Aim的核心是基于rocksdb构建的自定义存储。更多细节请参阅"数据收集在哪里?"。不同训练运行跟踪的数据被收集并索引到一个aim仓库(.aim)中。存储本身是通用的;它允许以字典和数组集合的形式访问数据。

  • Aim SDK. 在存储层之上,Aim SDK 提供了追踪/选择/查询数据的功能。此外,SDK 也是 Web API 和 CLI 所使用的中间层。

  • Aim UI. 提供网页应用,可浏览运行元数据、指标、图像及其他追踪数据。

  • Aim CLI. 一组命令行工具,用于运行Aim网络服务器、管理aim仓库、运行记录等。

  • 远程追踪服务器。一个基于fastapi/uvicorn的服务,接收传入流量并将数据存储在中央服务器上。

接下来的章节将介绍Aim引入的各种概念,并对上述提到的各个组件进行更详细的解析。