模型下载统计
模型下载统计是如何生成的?
计算模型下载次数并非易事,因为单个模型存储库可能包含多个文件,包括多个模型权重文件(例如,使用分片模型)和不同格式的文件,具体取决于库(GGUF、PyTorch、TensorFlow 等)。为了避免重复计算下载次数(例如,将模型的单个下载计算为多个下载),Hub 使用一组查询文件来进行下载计数。不会从用户那里发送任何信息,并且也不会为此进行额外的调用。计数是在 Hub 提供文件以供下载时服务器端完成的。
对这些文件的每个 HTTP 请求,包括 GET
和 HEAD
,都将被计为一次下载。默认情况下,当没有指定库时,Hub 使用 config.json
作为默认查询文件。否则,查询文件取决于每个库,并且 Hub 可能会检查诸如 pytorch_model.bin
或 adapter_config.json
之类的文件。
不同库的查询文件有哪些?
默认情况下,Hub 会查看 config.json
、config.yaml
、hyperparams.yaml
和 meta.yaml
。一些库通过指定自己的过滤器(指定 countDownloads
)来覆盖这些默认值。定义这些覆盖的代码是 开源的。例如,对于 nemo
库,所有以 .nemo
扩展名结尾的文件都用于计算下载次数。
我可以为我的库添加查询文件吗?
是的,您可以在这里打开一个 Pull Request 此处。以下是一个为 VFIMamba 添加下载指标的最小 示例。查看 集成指南 以了解更多详细信息。
GGUF 文件是如何处理的?
GGUF 文件是自包含的,不与单个库绑定,因此所有 GGUF 文件都会被计入下载次数。如果用户执行整个存储库的克隆操作,这将导致重复计算下载次数,但大多数用户和接口都会为给定存储库下载单个 GGUF 文件。
diffusers 是如何处理的?
diffusers
库是一个边缘情况,其过滤器在内部代码库中配置。过滤器确保标记为 diffusers
的存储库会计算通过库加载的文件以及通过需要用户手动下载顶层 safetensors 的 UI 加载的文件。
filter: [
{
bool: {
/// Include documents that match at least one of the following rules
should: [
/// Downloaded from diffusers lib
{
term: { path: "model_index.json" },
},
/// Direct downloads (LoRa, Auto1111 and others)
/// Filter out nested safetensors and pickle weights to avoid double counting downloads from the diffusers lib
{
regexp: { path: "[^/]*\\.safetensors" },
},
{
regexp: { path: "[^/]*\\.ckpt" },
},
{
regexp: { path: "[^/]*\\.bin" },
},
],
minimum_should_match: 1,
},
},
]
}