模型下载统计
如何统计模型的下载次数?
统计模型的下载次数并非易事,因为单个模型仓库可能包含多个文件,包括多个模型权重文件(例如,分片模型)和取决于库的不同格式(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、params.json 和 meta.yaml。一些库 通过指定自己的过滤器(指定 countDownloads)来覆盖这些默认值。定义这些覆盖的代码是开源的。例如,对于 nemo 库,所有带有 .nemo 扩展名的文件都用于计数下载。
我可以为我的库添加查询文件吗?
是的,你可以在此处打开拉取请求。这是一个为 VFIMamba 添加下载指标的最小示例。有关更多详细信息,请查看集成指南。
如何处理 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,
},
},
]
}