Windows ML 模型目录 API 允许应用或库从自己的联机模型目录将大型 AI 模型文件动态下载到设备上的共享位置,而无需将这些大型文件直接寄送到应用或库。 此外,模型目录将帮助筛选其正在运行的 Windows 设备兼容的模型,以便将正确的模型下载到设备。
什么是模型目录 API?
模型目录 API 是一组 API,可以连接到一个或多个云模型目录,以方便在设备上本地下载和存储这些模型,以便这些模型可供设备上的任何 Windows 应用程序使用。 API 有一些核心功能:
- 添加目录:添加一个或多个联机目录
- 发现兼容的模型:自动查找适用于用户硬件和执行提供程序的模型
- 下载模型:从各种源下载和存储模型
- 跨应用共享模型:如果多个应用程序请求相同的模型(相同的 SHA256 哈希),模型将在磁盘上共享,而不会复制下载
主要功能
自动兼容性匹配
模型目录会自动将模型与系统的可用执行提供程序(CPU、GPU、NPU 等)匹配。 请求模型时,目录仅返回与当前硬件配置兼容的模型。
模型存储
下载的模型存储在用户特定的位置。 如果多个应用程序请求相同的模型(相同的 SHA256 哈希),则已下载的模型将在这些应用程序之间共享。
多个目录资源
应用程序可以配置多个目录源,使你可以:
- 使用来自多个供应商或存储库的模型
- 将某些源优先于其他源
- 将自己的专用模型目录与公共模型一起包含在一起
工作原理
模型目录系统由多个组件组成:
- 目录源:定义可在何处找到模型(目录 JSON 文件的 URL)
- 模型匹配:基于执行提供程序兼容性筛选可用模型
- 下载管理:处理模型文件的下载和存储
- 实例管理:提供对应用运行时下载的模型的访问权限
模型标识
目录中的模型具有两种类型的标识符:
- 名称:类似于“gpt2”的公用名(多个模型变体可以共享同一名称)
- ID:目录内唯一标识符,通常包括执行提供程序信息,例如“gpt2-cpu”或“gpt2-npu”
应用程序通常使用FindModelAsync 与“Name”一起,为了简单起见,让目录根据执行提供程序兼容性为当前系统选择最佳可用模型变体。
执行提供程序支持
模型目录支持各种执行提供程序。 有关详细信息,请参阅 Windows ML 文档中支持的执行提供程序 。
目录源架构
模型目录源使用标准化 JSON 架构,该架构定义:
- 模型元数据(名称、ID、版本、发布者)
- 支持的计算提供商
- 下载 URL 和文件信息
- 许可证信息
- 模型大小详细信息
有关详细的架构信息,请参阅 模型目录源。
入门指南
若要开始在 Windows ML 应用程序中使用模型目录,请执行以下作:
- 配置目录源
- 创建
ModelCatalog实例 - 查询和下载模型
- 用您需要的运行时推理模型!
有关完整指南,请参阅 模型目录入门。