Hub documentation

Cấu hình thủ công

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Cấu hình thủ công

Hướng dẫn này sẽ cho bạn thấy cách cấu hình một cấu trúc tùy chỉnh cho kho dữ liệu của bạn. bộ sưu tập các tập dữ liệu mẫu đi kèm giới thiệu từng phần của tài liệu.

Một dataset có cấu trúc và định dạng tệp được hỗ trợ sẽ tự động có Dataset Viewer trên trang dataset của nó trên Hub. Bạn có thể sử dụng YAML để định nghĩa các splits, subsets và tham số builder được Viewer sử dụng.

Bạn cũng có thể định nghĩa nhiều tập con (còn gọi là “cấu hình”) cho cùng một bộ dữ liệu (ví dụ: nếu bộ dữ liệu có nhiều tệp độc lập khác nhau).

Các phần chia

Nếu bạn có nhiều tệp và muốn xác định tệp nào thuộc phần chia (split) nào, bạn có thể sử dụng YAML ở đầu tệp README.md của mình.

Ví dụ, với một kho lưu trữ như sau:

my_dataset_repository/
├── README.md
├── data.csv
└── holdout.csv

Bạn có thể định nghĩa một tập con cho các phần chia của mình bằng cách thêm trường configs vào khối YAML ở đầu tệp README.md:

---
configs:
- config_name: default
  data_files:
  - split: train
    path: "data.csv"
  - split: test
    path: "holdout.csv"
---

Bạn có thể chọn nhiều tệp cho mỗi split bằng cách sử dụng một danh sách các đường dẫn:

my_dataset_repository/
├── README.md
├── data/
│   ├── abc.csv
│   └── def.csv
└── holdout/
    └── ghi.csv
---
configs:
- config_name: default
  data_files:
  - split: train
    path:
    - "data/abc.csv"
    - "data/def.csv"
  - split: test
    path: "holdout/ghi.csv"
---

Hoặc bạn có thể sử dụng các mẫu glob để tự động liệt kê tất cả các tệp cần thiết:

---
configs:
- config_name: default
  data_files:
  - split: train
    path: "data/*.csv"
  - split: test
    path: "holdout/*.csv"
---

Lưu ý rằng trường config_name là bắt buộc ngay cả khi bạn chỉ có một subset duy nhất.

Nhiều tập con

Bộ dữ liệu của bạn có thể có một vài tập con dữ liệu mà bạn muốn có thể sử dụng riêng biệt. Ví dụ, mỗi tập con có một menu thả xuống riêng trong Dataset Viewer trên Hugging Face Hub.

Trong trường hợp đó, bạn có thể định nghĩa một danh sách các tập con bên trong trường configs trong YAML:

my_dataset_repository/
├── README.md
├── main_data.csv
└── additional_data.csv
---
configs:
- config_name: main_data
  data_files: "main_data.csv"
- config_name: additional_data
  data_files: "additional_data.csv"
---

Lưu ý rằng thứ tự các tập con hiển thị trong trình xem là mặc định trước, sau đó là theo thứ tự bảng chữ cái.

Bạn có thể đặt một tập con mặc định bằng cách sử dụng default: true

- config_name: main_data
  data_files: "main_data.csv"
  default: true

Điều này hữu ích để xác định tập con nào mà Dataset Viewer hiển thị trước tiên, và tập con dữ liệu nào mà các thư viện sẽ tải theo mặc định.

Thư mục Dữ liệu

Thay vì liệt kê từng tệp riêng lẻ bằng data_files, bạn có thể dùng data_dir để trỏ đến một thư mục. Các tệp bên trong thư mục đó sẽ được xác định tự động dựa trên phần mở rộng của tệp. Cách này đặc biệt hữu ích khi dữ liệu của bạn được tổ chức trong các thư mục con:

Ví dụ, trong một trường hợp như thế này, bạn có thể đơn giản sử dụng data_dir vì dữ liệu của mỗi tập con nằm trong thư mục riêng của nó:

my_dataset_repository/
├── README.md
├── main/
│   ├── train.csv
│   └── test.csv
└── extra/
    ├── train.csv
    └── test.csv
---
configs:
- config_name: main
  data_dir: "main"
- config_name: extra
  data_dir: "extra"
---

Khi data_dir được đặt, builder sẽ phân giải các tệp tương đối so với thư mục đó. Nếu thư mục chứa các tệp khớp với mẫu đặt tên split mặc định (ví dụ: train.csv, test.csv), các split sẽ được gán tự động mà không cần chỉ định rõ data_files.

Bạn cũng có thể kết hợp data_dir với data_files để có nhiều quyền kiểm soát hơn:

---
configs:
- config_name: default
  data_dir: "data"
  data_files:
  - split: train
    path: "training_*.csv"
  - split: test
    path: "eval_*.csv"
---

Trong trường hợp này, các mẫu path trong data_files được giải quyết tương đối so với data_dir.

Tham số Builder

Không chỉ data_files, mà các tham số cụ thể của builder khác cũng có thể được truyền qua YAML, cho phép linh hoạt hơn trong cách tải dữ liệu mà không cần bất kỳ mã tùy chỉnh nào. Ví dụ, định nghĩa bộ phân tách nào sẽ được sử dụng trong tập con nào để tải các tệp csv của bạn:

---
configs:
- config_name: tab
  data_files: "main_data.csv"
  sep: "\t"
- config_name: comma
  data_files: "additional_data.csv"
  sep: ","
---

Tham khảo tài liệu của các builder cụ thể để xem chúng có những tham số nào.

Update on GitHub