Hub documentation
Xet: 当社のストレージバックエンド
Xet: 当社のストレージバックエンド
Hugging Face Hub上のリポジトリは、ソフトウェア開発プラットフォーム上のものとは異なります。それらは以下のファイルを含みます:
- Large - モデルまたはデータセットのファイルサイズがGB以上です。数TB規模のファイルもあります!
- バイナリ - デフォルトでは人間が読みやすい形式ではありません(例: Safetensors または Parquet)
HubはGitのサポートにより現代的なバージョン管理を活用していますが、これらの違いにより、ModelおよびDatasetのリポジトリは、ソースコードのみを含むリポジトリとは大きく異なります。
これらのファイルを純粋な Git リポジトリに直接保存するのは現実的ではありません。Git リポジトリの背後にある一般的なストレージシステムは、このようなファイルには不向きであるだけでなく、リポジトリをクローンすると、すべてのファイルの改訂版を含む履歴全体が取得されてしまいます。大規模なバイナリファイルの場合、これは許容できないほど大きな容量となり、必要としない可能性のあるギガバイト単位の過去データをダウンロードすることになります。
代わりに、Hubではこれらの大きなファイルは「ポインターファイル」によって追跡され、.gitattributesファイル(両方とも後述します)を通じて識別されます。これらのファイルはGitリポジトリ内に残りますが、実際のデータはリモートストレージ(Amazon S3など)に保存されます。その結果、リポジトリは小さく保たれ、一般的なGitワークフローも効率的に維持されます。

従来、Hubのリポジトリはこの仕組みにGit LFSに依存していました。Git LFSは引き続きサポートされています(後方互換性およびレガシーを参照)が、HubはAI/ML開発に特化して構築された最新の独自ストレージシステムであるXetを採用しました。これにより、Git LFSよりもチャンクレベルの重複排除、より小さいアップロード、より高速なダウンロードが可能になります。
オープンソース Xet プロトコル
Xetプロトコルの内部構造を理解したい場合、またはXet Storageにアクセスするための新しいクライアントライブラリを構築したい場合は、Xet Protocol Specificationをご覧ください。
これらのページでは、Xet Storage の使い方を始めます。