# モデルのダウンロード統計

## モデルのダウンロード回数はどのようにカウントされますか？

モデルのダウンロード回数をカウントすることは容易ではありません。1つのモデルリポジトリには、複数のファイル（シャード化されたモデルの場合、複数のモデル重みファイルを含む）や、ライブラリによって異なる形式（GGUF、PyTorch、TensorFlow など）が含まれる可能性があるためです。ダウンロードの二重カウント（1回のモデルダウンロードを複数回のカウントとして扱うこと）を避けるために、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`の指定）によってこれらのデフォルトをオーバーライドします。これらのオーバーライドを定義するコードは[オープンソース](https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/model-libraries.ts)です。例えば、`nemo`ライブラリの場合、`.nemo`拡張子を持つすべてのファイルがダウンロード数のカウントに使用されます。

## ライブラリ用のクエリファイルを追加できますか？ 

はい、[こちら](https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/model-libraries.ts)から Pull Request を作成できます。VFIMamba へのダウンロードメトリクスの追加を示す最小限の[例](https://github.com/huggingface/huggingface.js/pull/885/files)を以下に示します。詳細については、[統合ガイド](./models-adding-libraries#register-your-library)を参照してください。

## `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" },
					},
					/// Downloaded from diffusers lib through modular pipelines
					{
						term: { path: "modular_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,
			},
		},
	]
}
```

## モデルにより詳細なダウンロードデータが必要な場合はどうすればよいですか？

より詳細なダウンロードデータが必要な場合、例えば:
- `config.json`とモデルの重みを区別します。
- CI/CD パイプラインからダウンロードを除外します。
- またはユーザーを重複排除する（つまり、ユニークなダウンロード数をカウントする）

その後、[Publisher Analytics](./publisher-analytics)、特に[granular logs](./publisher-analytics#unique-downloaders-and-more-granular-logs)機能により、組織が公開したすべてのモデルとデータセットについて、匿名化されたリクエストレベルのアクセスログを提供できます。

ほとんどの組織が独自のルールを適用したいと考えているため、これらは生のログとして提供されます。

