Hub documentation
Các bước tiếp theo
Các bước tiếp theo
Các phần tiếp theo làm nổi bật các tính năng và thông tin bổ sung mà bạn có thể thấy hữu ích để tận dụng tối đa các kho Git trên Hugging Face Hub.
Cách quản lý kho lưu trữ bằng lập trình
Hugging Face hỗ trợ truy cập các repo bằng Python thông qua thư viện huggingface_hub. Các thao tác mà chúng ta đã tìm hiểu, chẳng hạn như tải xuống các repository và tải lên các tệp, đều có sẵn trong thư viện này, cùng với nhiều hàm hữu ích khác!
Nếu bạn muốn sử dụng git trực tiếp, hãy đọc các phần bên dưới.
Tìm hiểu thêm về Git
Một nơi tốt để ghé thăm nếu bạn muốn tiếp tục tìm hiểu về Git là hướng dẫn Git này. Để có thêm thông tin nền tảng về Git, bạn có thể xem Các hướng dẫn Git của GitHub.
Cách sử dụng nhánh
Để sử dụng hiệu quả các kho Git một cách hợp tác và làm việc trên các tính năng mà không phát hành mã quá sớm, bạn có thể sử dụng nhánh. Nhánh cho phép bạn tách biệt mã “đang phát triển” khỏi mã “sẵn sàng cho môi trường sản xuất”, với lợi ích bổ sung là cho phép nhiều người làm việc trên một dự án mà không thường xuyên xung đột với đóng góp của nhau. Bạn có thể sử dụng nhánh để cách ly các thí nghiệm trong nhánh riêng của chúng, và thậm chí áp dụng các thực hành quản lý nhánh trên toàn đội.
Để tìm hiểu về Git branching, bạn có thể thử tutorial tương tác Learn Git Branching.
Sử dụng thẻ
Git cho phép bạn đánh dấu (tag) các commit để dễ dàng ghi chú các mốc quan trọng trong dự án của mình. Do đó, bạn có thể sử dụng tag để đánh dấu các commit trong các repo trên Hub! Để tìm hiểu về cách sử dụng tag, bạn có thể truy cập bài viết DevConnected này.
Ngoài việc giúp dễ dàng xác định các commit quan trọng trong lịch sử repo, việc sử dụng Git tags còn cho phép bạn chạy A/B testing, clone một repository tại một tag cụ thể, và nhiều hơn nữa! Thư viện huggingface_hub cũng hỗ trợ làm việc với tags, chẳng hạn như tải xuống các file từ một commit được gắn tag cụ thể.
Cách sao chép một kho
Có một số cách để sao chép một kho lưu trữ, tùy thuộc vào việc bạn có cần giữ lại lịch sử Git hay không.
Nhân bản từ Hub
Nhấp vào ba dấu chấm ở góc trên bên phải của bất kỳ trang kho lưu trữ nào, sau đó chọn Duplicate this model, Duplicate this dataset hoặc Duplicate this Space. Thao tác này gần như tức thì, nhờ sử dụng Xet deduplication technology. Bạn sẽ có thể chọn:
- Người sở hữu: Tài khoản của bạn hoặc bất kỳ tổ chức nào mà bạn có quyền ghi.
- Tên kho lưu trữ: Tên của kho lưu trữ được nhân bản. Mặc định, nó giữ nguyên tên như kho nguồn, dưới namespace của bạn (ví dụ: nhân bản
bigscience/bloom-560msẽ tạo rayour-username/bloom-560m). - Hiển thị: Bạn có thể chọn để kho sao chép là công khai hoặc riêng tư. Đọc thêm về kho riêng tư tại đây.
Đối với mô hình và bộ dữ liệu, lịch sử Git được nén thành một commit duy nhất. Đối với Spaces, toàn bộ lịch sử Git được giữ nguyên. Các biến công khai được sao chép sang Spaces, nhưng các bí mật phải được nhập lại thủ công.
Hạn chế
Một số kho lưu trữ không thể được nhân bản:
- Kho có kiểm soát truy cập (các mô hình hoặc bộ dữ liệu có bật yêu cầu cấp quyền truy cập).
- Các kho lưu trữ mà tác giả đã tắt sao chép.
- Đa dạng hóa giữa các khu vực không được hỗ trợ (ví dụ: một kho lưu trữ được lưu trữ trong khu vực Hoa Kỳ không thể được sao chép sang một tổ chức ở EU).
Nhân bản bằng lập trình
Bạn cũng có thể sao chép kho lưu trữ bằng thư viện huggingface_hub hoặc CLI. Chúng sử dụng cùng API phía máy chủ như nút Hub ở trên (lịch sử Git được nén cho mô hình và bộ dữ liệu, được giữ nguyên cho Spaces).
Sử dụng Python:
from huggingface_hub import duplicate_repo
duplicate_repo("bigscience/bloom-560m", private=False)
duplicate_repo("openai/gdpval", repo_type="dataset")
duplicate_repo("multimodalart/dreambooth-training", repo_type="space", private=False)Hoặc sử dụng CLI:
hf repos duplicate bigscience/bloom-560m
hf repos duplicate openai/gdpval --type datasetĐối với Spaces, bạn vẫn cần cấu hình các cài đặt của riêng mình (phần cứng, thời gian ngủ, lưu trữ, biến và bí mật). Xem hướng dẫn Quản lý Space của bạn để biết thêm chi tiết.
Ngoài ra, nếu bạn muốn giữ một bản sao cục bộ của kho, bạn có thể sử dụng hf download sau đó dùng hf upload để tải lên một namespace khác. Cách này cũng sẽ không giữ lại lịch sử Git.
Tạo nhánh (fork) thủ công bằng Git
Nếu bạn cần giữ nguyên lịch sử Git cho các model/dataset, hoặc muốn kiểm soát nhiều hơn quy trình (ví dụ: rebase trên các thay đổi của riêng bạn), bạn có thể fork một repository thủ công bằng Git.
Bạn cần cài đặt git-xet. Việc fork có thể mất thời gian tùy thuộc vào băng thông của bạn vì bạn sẽ phải tải xuống và tải lên lại tất cả các tệp LFS (mặc dù việc tải lên lại sẽ nhanh nhờ Xet).
Tạo một kho lưu trữ đích (ví dụ:
me/myfork) trên https://b-61j.pages.devClone nó và thêm kho mã nguồn gốc dưới dạng remote:
git clone git@hf.co:me/myfork
cd myfork
git xet install
git remote add upstream git@hf.co:friend/upstream
git fetch upstream
git lfs fetch --all upstream- Thay thế nội dung fork bằng lịch sử upstream:
git reset --hard upstream/main
- Đẩy:
git push --force origin main