# 概念

本节介绍关键概念、理念和术语，帮助您有效使用 Model Registry 平台。

## 模型

模型是 Hub 中 AI 与模型区域的基本元素，包含：

 * 模型文件 - 独立模型文件，或将模型文件与 JSON 元数据打包在一起的 NN 归档文件。
 * 模型卡片 - 对模型的全面描述。

模型可以是公开或私有（团队拥有）的，并且可以自由地从集合中上传或下载。 有关详情，请参阅 [上传/下载](https://docs.luxonis.com/cloud/hubai/model-registry/upload-download.md) 指南。

每个模型文件构成一个独立的变体，其特征由训练配置和使用场景决定。为了支持高效的模型开发，并在部署应用中精确引用，我们将模型文件组织为三个嵌套层级。这种结构有助于您：

 * 追踪模型的演进，
 * 区分语义上不同的模型，
 * 并通过适当的标识符引用正确的工件。

每个嵌套层级——变体、版本和实例——都有自己唯一的 ID，可以在您的 DepthAI 流水线中使用该 ID 从 Hub 获取相应的模型。

> 注意：DepthAI 始终尝试检索给定标识符对应的
> ***最新***
> 模型。例如，仅提供变体 ID 会导致 DepthAI 使用最新版本的最新实例。如果您希望将应用程序锁定到特定的模型构建版本，请改用
> **实例 ID**
> 。

下图展示了层级结构：

```markdown
├── 变体 1
|   ├── 版本 1
|   |   ├── 实例 1
|   |   └── 实例 2
|   └── 版本 2
|       ├── 实例 1
|       └── 实例 2
├── 变体 2
...
```

#### 变体

变体是模型的一个特定版本，通常通过输入分辨率（例如 224x224）、训练所使用的数据集（例如 COCO）或模型架构的微小变化来区分。 每个变体都有一个变体 ID。

#### 版本

每个模型变体可以有多个版本。在语义上，这可以用于跟踪您在开发过程中模型的不同权重。您可以拥有初始版本、微调版本，以及例如用于生产的版本。每个版本都有其版本 ID。

#### 实例

实例是变体经过编译、针对特定平台的结果——实际部署到硬件上的工件。有关转换为平台特定实例的更多信息，请参阅
[详细转换](https://docs.luxonis.com/cloud/hubai/model-registry/detailed-conversion.md) 指南。

每个实例由唯一的实例 ID 标识，该 ID 指向特定的平台导出，而非通用的模型变体/版本。 因此，在将实例集成到您的流水线时，请确保实例 ID 对应您部署环境的正确平台。

### 模型文件

模型文件（也称为模型可执行文件）可以独立存在，也可以打包到 [NN 归档](https://docs.luxonis.com/software-v3/ai-inference/nn-archive.md) 中。 模型文件必须是
ONNX（.onnx）、OpenVINO IR（.xml 和 .bin）或 TensorFlow Lite（.tflite）格式之一，或者是 RVC 编译格式之一。

### 模型卡片

模型卡片是关于模型信息的集合。 对于私有模型，您可以选择自己的结构。 对于公开模型，我们建议采用以下结构（请参阅
[模型卡片模板](https://docs.luxonis.com/cloud/hubai/model-registry/modelcard-template.md)）：

```markdown
# 模型详情

## 模型描述
... 对模型功能的描述。

- 开发方 - 模型开发者名称。
- 共享方 - 模型文件/权重的来源。
- 模型类型 - 通用模型类型（例如计算机视觉）。
- 许可证 - 管理模型使用/分发的许可证链接。
- 资源 - 模型资源链接（例如论文、源代码等）。

# 训练详情

## 训练数据
... 描述并链接用于训练模型的数据。

# 测试详情

## 指标
... 描述并报告用于验证模型的指标。

# 技术规格

## 输入/输出详情
... 每个输入/输出张量的名称和简短描述。

## 模型架构
... 描述模型架构（例如主干、头部等）。

## 吞吐量
... 报告模型在转换目标 RVC 平台上的吞吐量。

## 量化
... 如果在转换过程中使用了量化，请描述量化数据。

# 使用说明
... 解释如何在 DepthAI 流水线中使用该模型。最好提供示例代码或相关链接。
```
