Datasets documentation
CLIを使用してデータセットを共有する
CLIを使用してデータセットを共有する
Hugging Faceでは、良質なMachine Learningの民主化をミッションに掲げ、オープンソースの価値を信じています。そのため、🤗 Datasetsは、誰でもより広いMLコミュニティとデータセットを共有できるように設計されました。現在、Hugging Face Hubには100以上の言語で数千ものデータセットが公開されており、Hugging Faceチームは常に新しい貢献を歓迎しています!
Datasetリポジトリには、以下のような機能があります:
- 無料のデータセットホスティング
- Datasetのバージョン管理
- コミット履歴と差分
- 検索性のためのメタデータ
- ドキュメント、ライセンス、制限事項などのためのDataset cards
- Dataset Viewer
このガイドでは、誰でも簡単にアクセスできるデータセットのフォルダまたはリポジトリを共有する方法を示します。
データセットを追加する
Hugging Face Hub上のデータセットリポジトリを使用して、コミュニティにデータセットを共有できます。 アクセス権を管理したい場合は、プライベートなデータセットとしても利用できます。
データセットのリポジトリでは、すべてのデータファイルをホストし、データセットを設定して、どのファイルをどのスプリットに割り当てるかを定義できます。
サポートされている形式は、CSV、TSV、JSON、JSON lines、テキスト、Parquet、Arrow、SQLite、WebDatasetです。
多くの種類の圧縮ファイル形式もサポートされています: GZ、BZ2、LZ4、LZMA、またはZSTD。
例えば、データセットは.json.gzファイルで構成できます。
Hubからデータセットを読み込む場合、リポジトリの構造に従って、サポートされている形式のすべてのファイルが読み込まれます。
Hubからデータセットを読み込む方法の詳細については、Hubからデータセットを読み込むチュートリアルをご覧ください。
リポジトリを作成する
コミュニティのデータセットを共有するには、まだアカウントをお持ちでない場合は、hf.coでアカウントを作成する必要があります。 Hugging Face Hubのアカウントから新しいデータセットリポジトリを直接作成することもできますが、このガイドでは、ターミナルからデータセットをアップロードする方法を示します。
- Datasetsをインストールした仮想環境にいることを確認し、以下のコマンドを実行してください。
hf auth login- Hugging Face Hub の認証情報を使用してログインし、新しいデータセットリポジトリを作成します:
hf repos create my-cool-dataset --type datasetリポジトリ名に組織名をプレフィックスとして付加すると、その組織配下に作成されます:
hf repos create your-org-name/my-cool-dataset --type datasetファイルの準備
ディレクトリを確認し、アップロードするファイルが次のもののみであることを確認してください。
データセットのデータファイル
データセットカード
README.md
hf upload
hf upload コマンドを使用して、ファイルを Hub に直接アップロードできます。内部では、アップロードガイドで説明されているのと同じ upload_file および upload_folder ヘルパーを使用しています。以下の例では、最も一般的なユースケースを順に説明します。利用可能なオプションの完全なリストを確認するには、次のコマンドを実行できます。
>>> hf upload --helphf に関するより一般的な情報については、CLI ガイドをご参照ください。
フォルダ全体をアップロードする
このコマンドのデフォルトの使い方は以下の通りです:
# Usage: hf upload [dataset_repo_id] [local_path] [path_in_repo] --repo-type datasetリポジトリのルートに現在のディレクトリをアップロードするには、以下を使用します:
>>> hf upload my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/main/リポジトリがまだ存在しない場合、自動的に作成されます。
特定のフォルダをアップロードすることもできます:
>>> hf upload my-cool-dataset ./data . --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main/最後に、リポジトリ内の特定の宛先にフォルダをアップロードできます。
>>> hf upload my-cool-dataset ./path/to/curated/data /data/train --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main/data/train単一ファイルのアップロード
local_pathをローカルマシンのファイルに設定することで、単一のファイルをアップロードすることもできます。その場合、path_in_repoは省略可能で、デフォルトではローカルファイルの名前が使用されます。
>>> hf upload Wauplin/my-cool-dataset ./files/train.csv --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/blob/main/train.csv特定のディレクトリに単一のファイルをアップロードする場合は、path_in_repoを適切に設定してください。
>>> hf upload Wauplin/my-cool-dataset ./files/train.csv /data/train.csv --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/blob/main/data/train.csv複数のファイルをアップロードする
フォルダ全体をアップロードせずに、フォルダ内の複数のファイルを一度にアップロードするには、--include と --exclude パターンを使用します。また、--delete オプションと組み合わせることで、新しいファイルをアップロードしながらリポジトリ上のファイルを削除することもできます。以下の例では、リモートファイルを削除し、すべての CSV ファイルをアップロードしてローカルの Space を同期しています。
# Sync local Space with Hub (upload new CSV files, delete removed files)
>>> hf upload Wauplin/my-cool-dataset --repo-type dataset --include="/data/*.csv" --delete="*" --commit-message="Sync local dataset with Hub"
...組織にアップロード
個人のリポジトリではなく、組織が所有するリポジトリにコンテンツをアップロードするには、repo_idで明示的に指定する必要があります:
>>> hf upload MyCoolOrganization/my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasetsMyCoolOrganization/my-cool-dataset/tree/main/特定のリビジョンにアップロード
デフォルトでは、ファイルはmainブランチにアップロードされます。別のブランチやリファレンスにファイルをアップロードする場合は、--revisionオプションを使用します:
# Upload files to a PR
hf upload bigcode/the-stack . . --repo-type dataset --revision refs/pr/104
...注: revisionが存在せず、--create-prが設定されていない場合、mainブランチからブランチが自動的に作成されます。
アップロードして PR を作成
リポジトリへのプッシュ権限がない場合は、PR を開き、行いたい変更について著者に伝える必要があります。これは --create-pr オプションを設定することで実行できます。
# Create a PR and upload the files to it
>>> hf upload bigcode/the-stack --repo-type dataset --revision refs/pr/104 --create-pr . .
https://huggingface.co/datasets/bigcode/the-stack/blob/refs%2Fpr%2F104/一定の間隔でアップロード
一部のケースでは、リポジトリに定期的に更新をプッシュしたい場合があります。例えば、データセットが時間とともに増加しており、10分ごとにデータフォルダをアップロードしたい場合に便利です。--everyオプションを使用してこれを行うことができます。
# Upload new logs every 10 minutes
hf upload my-cool-dynamic-dataset data/ --every=10コミットメッセージを指定します
デフォルトのメッセージではなく、コミット用のカスタムメッセージと説明を設定するには、--commit-message と --commit-description を使用します。
>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --commit-message="Version 2" --commit-description="Train size: 4321. Check Dataset Viewer for more details."
...
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/mainトークンを指定します
ファイルをアップロードするには、トークンを使用する必要があります。デフォルトでは、ローカルに保存されているトークン(hf auth loginを使用して保存されたもの)が使用されます。明示的に認証を行う場合は、--tokenオプションを使用してください。
>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --token=hf_****
...
https://huggingface.co/datasetsWauplin/my-cool-data/tree/main静粛モード
デフォルトでは、hf uploadコマンドは詳細な出力を行います。警告メッセージ、アップロードされたファイルに関する情報、進捗バーなどが表示されます。これらをすべて無効にするには、--quietオプションを使用してください。この場合、最終行(つまり、アップロードされたファイルへのURL)のみが表示されます。スクリプト内で出力を別のコマンドに渡す際に便利です。
>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --quiet
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/mainお楽しみください!
おめでとうございます。あなたのデータセットはHugging Face Hubにアップロードされ、今後は1行のコードで誰でも読み込むことができるようになりました!🥳
dataset = load_dataset("Wauplin/my-cool-dataset")データセットがサポートされている場合、すべての人がデータセットの内容を探索できるよう、Dataset Viewerも用意されるはずです。
最後に、データセットを文書化し、検索可能にするために、データセットカードを充実させることを忘れないでください。詳細については、データセットカードの作成ガイドをご覧ください。
Update on GitHub