Hub documentation
Veri kümelerini düzenleme
Veri kümelerini düzenleme
Hub, topluluk ve araştırma veri setlerinin işbirliğine dayalı kürasyonunu mümkün kılar. Hub'daki mevcut veri setlerini incelemenizi ve herkes için ilerlemeyi hızlandırmak ve ML topluluğunun büyümesine katkıda bulunmak amacıyla bunların iyileştirilmesine katkıda bulunmanızı teşvik ediyoruz. Tüm katkılar memnuniyetle karşılanır!
Henüz bir hesabınız yoksa Hugging Face Hub hesabı oluşturarak başlayın.
Hub arayüzüyle düzenle
Bu özellik şu an için yalnızca CSV, TSV ve Parquet veri kümeleri için kullanılabilir.
Hub'ın web arayüzü, herhangi bir teknik uzmanlığı olmayan kullanıcıların bir veri setini düzenlemesine olanak tanır.
Veri seti sayfasını açın ve düzenlemeye başlamak için Data Studio sekmesine gidin.

Veri seti düzenlemeyi etkinleştirmek için Düzenleme modunu değiştir üzerine tıklayın.


İstediğiniz kadar hücreyi düzenleyin ve ardından değişikliklerinizi onaylamak ve bir commit mesajı bırakmak için Commit düğmesine tıklayın.


huggingface_hub istemci kitaplığı kullanılarak
huggingface_hub kütüphanesi, veri setlerini düzenleme dahil olmak üzere Hub depolarını yönetebilir.
Örneğin, bir CSV dosyasını Hugging Face FileSystem API kullanarak düzenlemenin yolu şudur:
from huggingface_hub import hffs
path = f"datasets/{repo_id}/data.csv"
with hffs.open(path, "r") as f:
content = f.read()
edited_content = content.replace("foo", "bar")
with hffs.open(path, "w") as f:
f.write(edited_content)Ayrıca düzenlemeleri yerel olarak diskinizde uygulayıp değişiklikleri commit edebilirsiniz:
from huggingface_hub import hf_hub_download, upload_file
local_path = hf_hub_download(repo_id=repo_id, path_in_repo= "data.csv", repo_type="dataset")
with open(path, "r") as f:
content = f.read()
edited_content = content.replace("foo", "bar")
with open(path, "w") as f:
f.write(edited_content)
upload_file(repo_id=repo_id, path_in_repo=local_path, repo_type="dataset")Tüm veri seti deposunu yerel olarak almak ve birçok dosyayı aynı anda düzenlemek için
hf_hub_downloadveupload_fileyerinesnapshot_downloadveupload_folderkullanın
Daha fazla bilgi edinmek için istemci kütüphanesinin belgelerine göz atın.
Entegre kütüphaneler
Hub'daki bir veri seti desteklenen bir kitaplığa uyumluysa, veri setini yükleme, düzenleme ve gönderme işlemleri yalnızca birkaç satır kodla yapılır.
Pandas ile bir CSV dosyasını düzenlemenin yolu şudur:
import pandas as pd
# Load the dataset
df = pd.read_csv(f"hf://datasets/{repo_id}/data.csv")
# Edit
df = df.apply(...)
# Commit the changes
df.to_csv(f"hf://datasets/{repo_id}/data.csv")Polars ve DuckDB gibi kütüphaneler de Hugging Face üzerinde dosyaları okumak, düzenlemek ve yazmak için hf:// protokolünü uygular. Spark, Dask veya 🤗 Datasets gibi diğer kütüphaneler ise birçok dosyadan oluşan veri setlerini düzenlemek için faydalıdır. Desteklenen kütüphanelerin tam listesine buradan ulaşabilirsiniz.
Veri setine web sitesinden erişimle ilgili bilgi için, veri seti sayfasındaki “Use this dataset” düğmesine tıklayarak nasıl yapılacağını görebilirsiniz.
Örneğin, samsum aşağıda 🤗 Datasets ile nasıl yapılacağını göstermektedir.


Yalnızca yeni verileri yükleyin
Hugging Face depolama altyapısı, yükleme işlemlerini daha verimli hale getirmek için parça yinelenme giderme (chunk deduplication) kullanan Xet tarafından desteklenmektedir. Geleneksel bulut depolama sistemlerinden farklı olarak Xet, değişiklikleri kaydetmek için veri setinin tamamının yeniden yüklenmesini gerektirmez. Bunun yerine, veri setinin hangi kısımlarının değiştiğini otomatik olarak tespit eder ve istemci kütüphanesine yalnızca güncellenen kısımları yüklemesini talimat verir. Bunu yapmak için Xet, Hugging Face üzerinde zaten var olan 64kB'lık parçaları bulmak için akıllı bir algoritma kullanır.
Pandas ile önceki örneğimize bakalım:
import pandas as pd
# Load the dataset
df = pd.read_csv(f"hf://datasets/{repo_id}/data.csv")
# Edit part of the dataset
df = df.apply(...)
# Commit the changes
df.to_csv(f"hf://datasets/{repo_id}/data.csv")Bu kod önce bir veri seti yükler, ardından onu düzenler.
Düzenlemeler tamamlandığında, to_csv() dosyayı bellekte oluşturur, parçalara ayırır, Xet'ten hangi parçaların zaten Hugging Face'te olduğunu ve hangi parçaların değiştiğini sorar ve yalnızca yeni verileri yükler.
Optimize edilmiş Parquet düzenleme
Yüklenmesi gereken veri miktarı, yapılan düzenlemelere ve dosya yapısına bağlıdır.
Parquet biçimi sütun tabanlıdır ve sayfa düzeyinde sıkıştırılmıştır (sayfalar yaklaşık ~1MB civarındadır). Parquet'i Xet için Parquet Content Defined Chunking ile optimize ettik; bu sayede değişmeyen veriler genellikle değişmeyen sayfalara yol açar.
Örneğin, bu kod df içeriğini yükler ve ardından edited_df için yalnızca değişen parçaları yüklediğinden yükleme daha hızlıdır:
import pandas as pd
df.to_parquet(
"hf://datasets/username/my_dataset/imdb.parquet",
# Optimize for Xet
use_content_defined_chunking=True,
write_page_index=True,
)
edited_df = ... # e.g. with added/modified/removed rows or columns
edited_df.to_parquet(
"hf://datasets/username/my_dataset/imdb.parquet",
# Optimize for Xet
use_content_defined_chunking=True,
write_page_index=True,
)Parçalar ~64kB boyutundadır ve Parquet verileri sütun sütun kaydettiğinden, pratikte bir Optimize Edilmiş Parquet dosyası düzenlendiğinde şunlar gerçekleşir:
- yeni bir sütun ekleyin -> yalnızca yeni sütunun parçaları yüklenir
- satır ekleme/düzenleme/silme -> her sütun için bir parça yüklenir
Bunun yanı sıra, Parquet altbilgisindeki metadata içeren parçalar da yüklenir.
Kütüphanenizin Optimized Parquet'i destekleyip desteklemediğini desteklenen kütüphaneler sayfasında kontrol edin.
Akış
Büyük veri kümeleri için, uçtan uca akışkan boru hatları için veri kümesi akışlandırma özelliklerine sahip kütüphaneler önerilir. Bu durumda, veri kümesi işleme, eski veriler geldikçe ve yeni veriler Hub'a yüklendikçe kademeli olarak çalışır.
desteklenen kütüphaneler sayfasında kütüphanenizin akış işleme (streaming) destekleyip desteklemediğini kontrol edin.
Update on GitHub