Datasets 文件

使用 CLI 共享資料集

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

使用 CLI 共享資料集

在 Hugging Face,我們的使命是普及優秀的機器學習,我們相信開源的價值。因此,我們設計了 🤗 Datasets,以便任何人都可以與更廣泛的機器學習社群共享資料集。Hugging Face Hub 中目前有數千個數據集,涵蓋 100 多種語言,Hugging Face 團隊始終歡迎新的貢獻!

資料集倉庫提供以下功能:

  • 免費資料集託管
  • 資料集版本控制
  • 提交歷史和差異
  • 可發現性元資料
  • 用於文件、許可、限制等的資料集卡片
  • 資料集檢視器

本指南將向您展示如何共享一個數據集資料夾或倉庫,以便任何人都可以輕鬆訪問。

新增資料集

您可以透過 Hugging Face Hub 上的資料集倉庫與社群共享您的資料集。如果您想控制誰可以訪問它,也可以將其設定為私有資料集。

在資料集倉庫中,您可以託管所有資料檔案並配置您的資料集以定義哪些檔案屬於哪個拆分。支援以下格式:CSV、TSV、JSON、JSON lines、text、Parquet、Arrow、SQLite、WebDataset。還支援多種壓縮檔案型別:GZ、BZ2、LZ4、LZMA 或 ZSTD。例如,您的資料集可以由 .json.gz 檔案組成。

從 Hub 載入資料集時,所有支援格式的檔案都將按照倉庫結構載入。

有關如何從 Hub 載入資料集的更多資訊,請參閱從 Hub 載入資料集教程。

建立倉庫

共享社群資料集需要您在 hf.co 上建立一個帳戶,如果您還沒有的話。您可以直接從 Hugging Face Hub 上的帳戶建立新的資料集倉庫,但本指南將向您展示如何從終端上傳資料集。

  1. 確保您位於安裝了 Datasets 的虛擬環境中,並執行以下命令:
huggingface-cli login
  1. 使用您的 Hugging Face Hub 憑據登入,並建立新的資料集倉庫:
huggingface-cli repo create my-cool-dataset --type dataset

新增 -organization 標誌以在特定組織下建立倉庫:

huggingface-cli repo create my-cool-dataset --type dataset --organization your-org-name

準備檔案

檢查您的目錄,確保您上傳的唯一檔案是:

  • 資料集的資料檔案

  • 資料集卡片 README.md

huggingface-cli upload

使用 `huggingface-cli upload` 命令直接將檔案上傳到 Hub。在內部,它使用 上傳指南 中描述的相同 `upload_file` 和 `upload_folder` 輔助函式。在以下示例中,我們將介紹最常見的用例。有關可用選項的完整列表,您可以執行:

>>> huggingface-cli upload --help

有關 `huggingface-cli` 的更多通用資訊,您可以檢視 CLI 指南

上傳整個資料夾

此命令的預設用法是:

# Usage:  huggingface-cli upload [dataset_repo_id] [local_path] [path_in_repo] --repo-type dataset

要將當前目錄上傳到倉庫的根目錄,請使用:

>>> huggingface-cli upload my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/main/

如果倉庫尚不存在,它將自動建立。

您也可以上傳特定資料夾:

>>> huggingface-cli upload my-cool-dataset ./data . --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main/

最後,您可以將資料夾上傳到倉庫中的特定目標:

>>> huggingface-cli 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` 是可選的,並且將預設為您本地檔案的名稱:

>>> huggingface-cli 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`:

>>> huggingface-cli 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)
>>> huggingface-cli upload Wauplin/my-cool-dataset --repo-type dataset --include="/data/*.csv" --delete="*" --commit-message="Sync local dataset with Hub"
...

上傳到組織

要將內容上傳到組織擁有的倉庫,而不是個人倉庫,您必須在 `repo_id` 中明確指定它:

>>> huggingface-cli upload MyCoolOrganization/my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasetsMyCoolOrganization/my-cool-dataset/tree/main/

上傳到特定修訂版

預設情況下,檔案上傳到 `main` 分支。如果您想將檔案上傳到其他分支或引用,請使用 `--revision` 選項:

# Upload files to a PR
huggingface-cli 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
>>> huggingface-cli 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
huggingface-cli upload my-cool-dynamic-dataset data/ --every=10

指定提交資訊

使用 `--commit-message` 和 `--commit-description` 為您的提交設定自定義訊息和描述,而不是預設值:

>>> huggingface-cli 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

指定令牌

要上傳檔案,您必須使用令牌。預設情況下,將使用本地儲存的令牌(使用 `huggingface-cli login`)。如果您想明確進行身份驗證,請使用 `--token` 選項:

>>> huggingface-cli upload Wauplin/my-cool-dataset ./data . --repo-type dataset --token=hf_****
...
https://huggingface.co/datasetsWauplin/my-cool-data/tree/main

靜默模式

預設情況下,`huggingface-cli upload` 命令將是詳細的。它將列印警告訊息、有關上傳檔案的資訊和進度條等詳細資訊。如果您想靜默所有這些資訊,請使用 `--quiet` 選項。僅列印最後一行(即上傳檔案的 URL)。如果您想將輸出傳遞給指令碼中的另一個命令,這可能會很有用。

>>> huggingface-cli upload Wauplin/my-cool-dataset ./data . --repo-type dataset --quiet
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/main

盡情享受!

恭喜,您的資料集已上傳到 Hugging Face Hub,任何人都可以透過一行程式碼載入它!🥳

dataset = load_dataset("Wauplin/my-cool-dataset")

如果您的資料集受支援,它還應該有一個資料集檢視器,供大家探索資料集內容。

最後,別忘了豐富資料集卡片,以記錄您的資料集並使其可發現!請檢視建立資料集卡片指南以瞭解更多資訊。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.