Datasets documentation
Xử lý sự cố
Xử lý sự cố
Hướng dẫn này nhằm cung cấp cho bạn các công cụ và kiến thức cần thiết để xử lý một số vấn đề phổ biến. Nếu các gợi ý được liệt kê trong hướng dẫn này không bao quát được tình huống của bạn, vui lòng tham khảo phần Yêu cầu hỗ trợ để tìm hiểu nơi nhận được sự giúp đỡ cho vấn đề cụ thể của bạn.
Lỗi khi tải lên bộ dữ liệu bằng push_to_hub
Vấn đề xác thực
Nếu bạn gặp sự cố xác thực khi chia sẻ một dataset trên 🤗 Hub bằng Dataset.push_to_hub() và một access token của Hugging Face:
- Hãy đảm bảo rằng token Hugging Face bạn đang dùng để xác thực là token có quyền ghi.
- Trên OSX, có thể hữu ích khi dọn dẹp tất cả mật khẩu huggingface.co trong keychain access, cũng như cấu hình lại
git config --global credential.helper osxkeychain, trước khi sử dụnghf auth login.
Ngoài ra, bạn có thể sử dụng khóa SSH để xác thực bản thân - đọc thêm trong tài liệu 🤗 Hub.
Mất kết nối khi tải lên bộ dữ liệu lớn
Khi tải các bộ dữ liệu lớn lên Hub, nếu số lượng shard của bộ dữ liệu quá lớn, hệ thống có thể tạo ra quá nhiều commit cho Hub trong một khoảng thời gian ngắn. Điều này sẽ dẫn đến lỗi kết nối. Lỗi kết nối cũng có thể do lỗi HTTP 500 được trả về từ bucket AWS S3 mà Hub sử dụng bên trong. Trong cả hai trường hợp, bạn có thể chạy lại Dataset.push_to_hub() để tiếp tục quá trình tải bộ dữ liệu lên. Hub sẽ kiểm tra SHA của các shard đã được tải lên trước đó để tránh tải lại chúng. Chúng tôi đang làm việc để quá trình tải lên trở nên bền vững hơn trước các lỗi tạm thời, vì vậy việc cập nhật lên phiên bản thư viện mới nhất luôn là một ý tưởng tốt.
Quá Nhiều Yêu Cầu
Việc tải lên các bộ dữ liệu lớn thông qua push_to_hub() có thể dẫn đến lỗi:
HfHubHTTPError: 429 Client Error: Too Many Requests for url: ...
You have exceeded our hourly quotas for action: commit. We invite you to retry later.Nếu bạn gặp sự cố này, bạn cần nâng cấp thư viện datasets lên phiên bản mới nhất (hoặc ít nhất là 2.15.0).
Các vấn đề khi tạo bộ dữ liệu từ dữ liệu tùy chỉnh
Tải hình ảnh và âm thanh từ một thư mục
Khi tạo một dataset từ một thư mục, một trong những vấn đề phổ biến nhất là cấu trúc tệp không tuân theo định dạng mong đợi, hoặc có lỗi với tệp metadata.
Tìm hiểu thêm về cấu trúc thư mục bắt buộc trong các trang tài liệu tương ứng:
Vấn đề liên quan đến Pickling
Vấn đề Pickling khi sử dụng Dataset.from_generator
Khi tạo một dataset, IterableDataset.from_generator() và Dataset.from_generator() yêu cầu một hàm generator “picklable”.
Điều này là bắt buộc để băm (hash) hàm bằng pickle, nhằm có thể cache dataset trên đĩa.
Mặc dù các hàm generator thường “picklable”, hãy lưu ý rằng các đối tượng generator thì không. Vì vậy, nếu bạn đang sử dụng một đối tượng generator,
bạn sẽ gặp TypeError như sau:
TypeError: cannot pickle 'generator' objectLỗi này cũng có thể xảy ra khi sử dụng một hàm generator dùng một đối tượng toàn cục không thể “picklable”, chẳng hạn như kết nối DB. Nếu đúng là trường hợp đó, bạn có thể khởi tạo đối tượng như vậy trực tiếp bên trong hàm generator để tránh lỗi này.
Vấn đề Pickling với Dataset.map
Lỗi pickling cũng có thể xảy ra trong Dataset.map() đa tiến trình - các đối tượng được pickling để truyền sang các tiến trình con.
Nếu các đối tượng được sử dụng trong phép biến đổi không thể pickling, thì không thể lưu cache kết quả của map, dẫn đến việc một lỗi được ném ra.
Dưới đây là một số cách để giải quyết vấn đề này:
- Giải pháp phổ quát cho các vấn đề pickle là đảm bảo các đối tượng (hoặc các lớp generator) có thể được pickle thủ công bằng cách triển khai
__getstate__/__setstate__/__reduce__. - Bạn cũng có thể cung cấp hash duy nhất của riêng mình trong
mapbằng đối sốnew_fingerprint. - Bạn cũng có thể tắt bộ nhớ đệm bằng cách gọi
datasets.disable_caching(), tuy nhiên điều này không được khuyến khích - đọc thêm về tầm quan trọng của bộ nhớ đệm
Yêu cầu hỗ trợ
Nếu các lời khuyên khắc phục sự cố ở trên không giúp bạn giải quyết vấn đề, hãy liên hệ để nhận sự hỗ trợ từ cộng đồng và đội ngũ phát triển.
Diễn đàn
Yêu cầu hỗ trợ trên diễn đàn Hugging Face - đăng câu hỏi của bạn trong 🤗Danh mục Datasets Hãy đảm bảo viết một bài đăng mô tả chi tiết với ngữ cảnh liên quan về cấu hình của bạn và mã có thể tái hiện để tối đa hóa khả năng vấn đề của bạn được giải quyết!
Discord
Đặt câu hỏi trên Discord và để đội ngũ cùng cộng đồng hỗ trợ bạn.
Thảo luận của Cộng đồng trên 🤗 Hub
Nếu bạn gặp sự cố khi tạo bộ dữ liệu tùy chỉnh trên Hub, bạn có thể yêu cầu đội ngũ Hugging Face hỗ trợ bằng cách mở một cuộc thảo luận trong tab Community của bộ dữ liệu với thông điệp này:
# Dataset rewiew request for <Dataset name> ## Description <brief description of the dataset> ## Files to review - file1 - file2 - ... cc @lhoestq @albertvillanova
GitHub Issues
Cuối cùng, nếu bạn nghi ngờ đã tìm thấy lỗi liên quan đến chính thư viện, hãy tạo một Issue trên kho GitHub của 🤗 Datasets. Bao gồm ngữ cảnh về lỗi: đoạn mã để tái hiện, chi tiết về môi trường và dữ liệu của bạn, v.v. để giúp chúng tôi xác định vấn đề và cách khắc phục.
Update on GitHub