# DINOv3 (dinov3)

`dinov3`（DINOv3-B）将一张图片转换为经 L2 归一化的嵌入向量，向量描述的是图片的外观。外观相近的两张图片得到的向量方向相近，可用于相似度排序、近重复检测，以及在图片库中做最近邻检索。

| | |
|---|---|
| 模型 ID | `dinov3` |
| 模型 | DINOv3 ViT-B/16（Meta） |
| 权重 | Meta 官方发布（`facebook/dinov3-vitb16-pretrain-lvd1689m`） |
| 用例 | [嵌入与检索](https://stack.foldbun.com/zh/docs/use-cases/embeddings/) |
| 接口 | `POST /v1/embeddings` |
| 模型池 | 公共池：所有已注册账户可用，每个 UTC 日包含 100 次调用 |
| 计费单位 | `image`。单位与价格：[计费](https://stack.foldbun.com/zh/docs/billing/#价目表) |
| 许可证 | DINOv3 License |

> **Built with DINOv3**
>
> `dinov3` 的输出受 DINOv3 License 约束。基于它构建的产品应显示标识 "Built with DINOv3"。

## 工作原理

一次调用是图片编码器的一次前向推理。图片被直接缩放到 224 × 224 像素并做归一化，再送入 DINOv3 ViT-B/16，即一个把图片切分为 16 × 16 像素图块的视觉 Transformer（ViT）。向量取自编码器的汇总输出（最终归一化之后的类别 token），缩放到长度 1（L2 归一化），以 float32 数值返回。录制的响应中 `dimensions` 为 768。

编码器只接受图片，因此向量是纯视觉的：它描述图片的外观，两张图片通过向量的点积比较，点积等于余弦相似度。该模型没有文本输入，也没有文本空间，文本无法与 `dinov3` 向量比较；[`siglip2`](https://stack.foldbun.com/zh/docs/models/siglip2/) 才把图像和文本放在同一个空间。

每张图片对应一次推理，因此一次调用计为一次 `image`。该工作不依赖缓存，之后的调用对同一图片会重新计算向量。

## 各用例下的特性

### 嵌入与检索

`dinov3` 为 `POST /v1/embeddings` 提供服务，每次调用一张图片，不接受 `texts`。

- 向量是纯视觉的、经 L2 归一化的 float32 数值。两张图片的余弦相似度等于其向量的点积，数值越高表示越相似。向量长度请读取 `dimensions`（录制的响应中为 768），不要写死。
- 不同模型的向量不可比较：用 `dinov3` 建立索引的图片库，须用 `dinov3` 查询，其向量也不能与 `siglip2` 的向量比较。查询内容是句子或一组标签时，请使用 [`siglip2`](https://stack.foldbun.com/zh/docs/models/siglip2/#嵌入与检索)。

用例说明与调用示例：[嵌入与检索](https://stack.foldbun.com/zh/docs/use-cases/embeddings/)。

## 限制与说明

- 每次调用一张图片。图片限制：详见[图片](https://stack.foldbun.com/zh/docs/images/)。
- 延迟：录制的调用中 `timing.processingMs` 为 216 ms。该数值取决于图片、排队情况和节点负载，不构成保证。

## 署名

使用 `dinov3` 输出的产品应显示标识 **Built with DINOv3**。该标识不翻译。输出的使用受 DINOv3 License 约束。
