Hub documentation

Tải xuống các bộ dữ liệu

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Tải xuống các bộ dữ liệu

Các thư viện tích hợp

Nếu một dataset trên Hub được liên kết với một thư viện được hỗ trợ, việc tải dataset có thể được thực hiện chỉ với vài dòng. Để biết thông tin về cách truy cập dataset, bạn có thể nhấp vào nút “Use this dataset” trên trang dataset để xem cách thực hiện. Ví dụ, samsum cho thấy cách thực hiện bằng datasets bên dưới.

Sử dụng Thư viện Khách hàng Hugging Face

Bạn có thể sử dụng thư viện huggingface_hub để tạo, xóa, cập nhật và truy xuất thông tin từ các repo. Ví dụ, để tải bộ dữ liệu HuggingFaceH4/ultrachat_200k từ dòng lệnh, hãy chạy

hf download HuggingFaceH4/ultrachat_200k --repo-type dataset

Xem tài liệu tải xuống của HF CLI để biết thêm thông tin.

Bạn cũng có thể tích hợp điều này vào thư viện của riêng mình! Ví dụ, bạn có thể nhanh chóng tải một tập dữ liệu CSV chỉ với vài dòng bằng Pandas.

from huggingface_hub import hf_hub_download
import pandas as pd

REPO_ID = "YOUR_REPO_ID"
FILENAME = "data.csv"

dataset = pd.read_csv(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME, repo_type="dataset")
)

Sử dụng Git

Vì tất cả các dataset trên Hub đều là các kho Git có hỗ trợ Xet, bạn có thể clone các dataset về máy cục bộ bằng cách cài đặt git-xet và chạy:

git xet install
git lfs install
git clone git@hf.co:datasets/<dataset ID> # example: git clone git@hf.co:datasets/allenai/c4

Nếu bạn có quyền ghi vào kho dữ liệu cụ thể, bạn cũng sẽ có khả năng commit và push các bản sửa đổi vào bộ dữ liệu.

Thêm khóa SSH công khai của bạn vào cài đặt người dùng để đẩy các thay đổi và/hoặc truy cập các kho riêng tư.

Tải xuống nhanh hơn

Bạn có thể kiểm tra tốc độ tải xuống từ CDN của Hugging Face tại fast.hf.co. Trang này chạy một bài kiểm tra băng thông nhanh với máy chủ biên HF gần nhất, giúp bạn hiểu được thông lượng cơ bản của mình. Bạn cũng có thể đo tốc độ tải xuống từ terminal bằng tiện ích CLI hf-speedtest:

hf extensions install julien-c/hf-speedtest
hf speedtest

Để chuyển dữ liệu nhanh hơn, Hub sử dụng backend lưu trữ Xet với khả năng đồng thời thích ứng, tự động điều chỉnh các luồng song song dựa trên điều kiện mạng. Xem Tải xuống nhanh hơn cho các model để biết chi tiết về các tùy chọn điều chỉnh như HF_XET_HIGH_PERFORMANCE=1.

Sử dụng hf-mount

Với các bộ dữ liệu lớn, bạn có thể gắn (mount) một kho (repo) như một hệ thống tệp cục bộ bằng hf-mount thay vì tải xuống toàn bộ kho. Các tệp được lấy theo kiểu lười (lazy) — chỉ những byte mà mã của bạn đọc mới đi qua mạng. Cách này hữu ích khi quy trình làm việc của bạn kỳ vọng các đường dẫn tệp cục bộ (ví dụ: tarfile, zipfile, imagefolder) thay vì các bộ lặp (iterator) Python.

brew install hf-mount
hf-mount start repo datasets/stanfordnlp/imdb /tmp/imdb

Các kho (Repos) được gắn (mount) ở chế độ chỉ đọc. Xem Gắn như một Hệ thống tệp cục bộ để biết chi tiết cài đặt đầy đủ, các tùy chọn backend và bộ nhớ đệm.

Tải xuống sau proxy hoặc tường lửa

Nếu mạng của bạn hạn chế lưu lượng ra bên ngoài qua tường lửa hoặc proxy, việc tải xuống các bộ dữ liệu đòi hỏi nhiều hơn là chỉ huggingface.co. Nội dung tệp được cung cấp từ các tên máy chủ lưu trữ và CDN riêng biệt, và load_dataset / hf download sẽ thất bại nếu không thể truy cập được các tên máy chủ này, ngay cả khi huggingface.co đã được đưa vào danh sách cho phép.

Cho phép các tên máy chủ sau (đều qua HTTPS / cổng 443):

HostnameMục đích
huggingface.coAPI của Hub, metadata và chuyển hướng tải xuống
cas-server.xethub.hf.coCác API giao thức Xet, tải xuống và tải lên (US)
cas-server.xethub-eu.hf.coAPI của giao thức Xet, tải xuống và tải lên (EU)
transfer.xethub.hf.coAPI tải xuống lưu trữ Xet (Hoa Kỳ)
transfer.xethub-eu.hf.coAPI tải xuống lưu trữ Xet (EU)
us.aws.cdn.hf.coCDN edge (Mỹ)
us.gcp.cdn.hf.coCDN edge (Mỹ)
cdn-lfs-us-1.hf.coLFS CDN (Mỹ)
cdn-lfs-eu-1.hf.coLFS CDN (EU)

Tải xuống sẽ theo dõi các chuyển hướng HTTP từ huggingface.co đến các tên máy chủ này, do đó chỉ cho phép huggingface.co là chưa đủ. Một lỗi ReadTimeoutError (thay vì lỗi kết nối) xảy ra giữa chừng quá trình tải xuống thường có nghĩa là kết nối ban đầu đã thành công nhưng một máy chủ lưu trữ hoặc CDN bị chặn.

Hành vi của wildcard phụ thuộc vào cách proxy của bạn khớp các tên miền. Nhiều proxy doanh nghiệp xử lý một mục trong danh sách cho phép như một phép khớp hậu tố bao phủ các tên miền con ở mọi độ sâu. Nếu proxy của bạn hoạt động như vậy, lựa chọn đơn giản nhất là thêm các hậu tố hf.co và huggingface.co vào danh sách cho phép — chúng bao phủ mọi endpoint lưu trữ và CDN hiện tại cũng như trong tương lai.

Nếu proxy của bạn chỉ hỗ trợ wildcard đơn nhãn (trong đó *.hf.co khớp với cdn-lfs-us-1.hf.co nhưng không khớp với các tên miền sâu hơn như us.aws.cdn.hf.co hoặc cas-server.xethub.hf.co), hãy thêm các tên máy chủ tường minh từ bảng trên vào danh sách cho phép. Lưu ý rằng *.xethub.hf.co không bao gồm các máy chủ EU dưới xethub-eu.hf.co, và *.cdn.hf.co không bao gồm các tên miền hai nhãn us.aws.cdn.hf.co / us.gcp.cdn.hf.co.

Các tên máy chủ này có thể thay đổi khi hạ tầng lưu trữ và CDN của chúng tôi phát triển. Nếu chính sách bảo mật của bạn cho phép, hãy thêm các hậu tố hf.co và huggingface.co (tất cả các tên miền con) vào danh sách cho phép để các quy tắc của bạn không bị lỗi khi một điểm cuối cụ thể thay đổi.

Danh sách có thể đọc được bằng máy

Các tên máy chủ ở trên cũng được công bố dưới dạng JSON tại https://huggingface.co/.well-known/meta.json, do đó bạn có thể tạo các quy tắc proxy hoặc tường lửa từ tệp này thay vì sao chép bảng thủ công.

Tệp này thay đổi khi các endpoint được thêm vào và xóa đi. Hãy lấy tệp khi bạn xây dựng các quy tắc của mình thay vì cố định một bản sao.

Update on GitHub