Hub documentation
Tương thích ngược với LFS
Tương thích ngược với LFS
Tải lên từ các client cũ / không nhận biết Xet vẫn tuân theo đường dẫn Git LFS tiêu chuẩn, ngay cả khi repo đã được hỗ trợ bởi Xet. Sau khi tệp được tải lên LFS, một quy trình nền sẽ tự động di chuyển tệp sang sử dụng lưu trữ Xet. Kiến trúc Xet cung cấp khả năng tương thích ngược cho các client cũ tải tệp từ các repo được hỗ trợ bởi Xet bằng cách cung cấp một cầu nối Git LFS. Trong khi một client nhận biết Xet sẽ nhận thông tin tái tạo tệp từ CAS để tải tệp được hỗ trợ bởi Xet, thì một client cũ sẽ nhận được một URL duy nhất từ cầu nối, nơi thực hiện việc tái tạo tệp được yêu cầu và trả về URL đến tài nguyên. Điều này cho phép tải tệp thông qua URL để bạn có thể tiếp tục sử dụng giao diện web của Hub hoặc curl. Bằng cách tự động di chuyển các tệp LFS khi tải lên và cho phép các client cũ tiếp tục tải tệp từ các kho được hỗ trợ bởi Xet, các nhà bảo trì và phần còn lại của Hub có thể cập nhật các pipeline của họ theo tốc độ riêng.
Xet storage cung cấp sự chuyển đổi liền mạch cho các kho Hub hiện có. Bạn không cần phải biết liệu backend Xet có được sử dụng hay không. Các kho được hỗ trợ bởi Xet vẫn tiếp tục sử dụng định dạng tệp trỏ Git LFS; việc thêm Xet backed hash chỉ được hiển thị trên giao diện web như một tiện ích. Về mặt thực tế, điều này có nghĩa là các kho hiện có và các kho mới tạo sẽ không có sự khác biệt nào nếu bạn thực hiện bare clone của chúng. Mỗi tệp lớn (hoặc tệp nhị phân) sẽ tiếp tục có một tệp trỏ phù hợp với quy cách tệp trỏ Git LFS.
Tính đối xứng này cho phép các client không nhận biết Xet (ví dụ: các phiên bản cũ hơn của huggingface_hub) tương tác với các repository dựa trên Xet mà không cần lo lắng. Thực tế, trong một repository, hỗn hợp các tệp dựa trên Git LFS và Xet được hỗ trợ. Backend Xet chỉ ra xem một tệp nằm trong lưu trữ Git LFS hay Xet, cho phép các dịch vụ downstream yêu cầu URL phù hợp từ S3, bất kể hệ thống lưu trữ nào đang chứa nội dung.
Lưu trữ cũ: Git LFS
Hệ thống lưu trữ cũ trên Hub, Git LFS, sử dụng nhiều quy ước tương tự như các kho lưu trữ có hỗ trợ Xet. Backend Git LFS của Hub là Amazon Simple Storage Service (S3). Khi Git LFS được gọi, nó lưu nội dung tệp trong S3, sử dụng băm SHA256 để đặt tên tệp nhằm truy cập trong tương lai. Kiến trúc lưu trữ này tương đối đơn giản và đã cho phép Hub lưu trữ tệp của hàng triệu kho lưu trữ mô hình, bộ dữ liệu và spaces.
Hạn chế chính của Git LFS là cách tiếp cận tập trung vào tệp trong việc loại bỏ trùng lặp. Bất kỳ thay đổi nào đối với một tệp, bất kể thay đổi đó lớn hay nhỏ, đều có nghĩa là toàn bộ tệp sẽ được đặt dưới sự kiểm soát phiên bản - gây ra chi phí đáng kể trong việc truyền tệp vì toàn bộ tệp sẽ được tải lên (nếu cam kết vào kho lưu trữ) hoặc tải xuống (nếu kéo phiên bản mới nhất về máy của bạn).
Điều này dẫn đến trải nghiệm phát triển kém hơn cùng với sự gia tăng của các bộ nhớ bổ sung.
Update on GitHub