Hub documentation
Tải lên các mô hình
Tải lên các mô hình
Để tải các model lên Hub, bạn cần tạo tài khoản tại Hugging Face. Các model trên Hub là những Git-based repositories, cung cấp cho bạn các tính năng quản lý phiên bản, nhánh, khả năng khám phá và chia sẻ, tích hợp với hàng chục thư viện, và nhiều hơn nữa! Bạn có quyền kiểm soát những gì muốn tải lên repository của mình, có thể bao gồm checkpoints, configs và bất kỳ tệp nào khác.
Bạn có thể liên kết các kho lưu trữ với một người dùng cá nhân, chẳng hạn như osanseviero/fashion_brands_patterns, hoặc với một tổ chức, chẳng hạn như facebook/bart-large-xsum. Các tổ chức có thể tập hợp các mô hình liên quan đến một công ty, cộng đồng hoặc thư viện! Nếu bạn chọn một tổ chức, mô hình sẽ được giới thiệu trên trang của tổ chức đó, và mọi thành viên của tổ chức sẽ có khả năng đóng góp vào kho lưu trữ. Bạn có thể tạo một tổ chức mới tại đây.
LƯU Ý: Các mô hình KHÔNG cần phải tương thích với thư viện Transformers/Diffusers để có được các chỉ số tải xuống. Mọi mô hình tùy chỉnh đều được hỗ trợ. Đọc thêm bên dưới!
Có một số cách để tải lên các mô hình nhằm tích hợp chúng một cách hoàn chỉnh vào Hub và nhận được thống kê tải xuống, được mô tả bên dưới.
- Trong trường hợp mô hình của bạn được thiết kế cho một thư viện có hỗ trợ tích hợp sẵn, bạn có thể sử dụng các phương thức do thư viện đó cung cấp. Các mô hình tùy chỉnh sử dụng
trust_remote_code=Truecũng có thể tận dụng các phương thức này. - Trong trường hợp mô hình của bạn là một mô hình PyTorch tùy chỉnh, bạn có thể tận dụng lớp
PyTorchModelHubMixinvì nó cho phép thêmfrom_pretrained,push_to_hubvào bất kỳ lớpnn.Modulenào, giống như các mô hình trong các thư viện Transformers, Diffusers và Timm. - Ngoài việc tải lên bằng chương trình, bạn luôn có thể sử dụng giao diện web hoặc dòng lệnh git.
Sau khi tải lên mô hình, chúng tôi đề xuất thêm Model Card vào kho của bạn để tài liệu hóa mô hình và giúp nó dễ được tìm thấy hơn.
Example [repository](https://huggingface.co/LiheYoung/depth_anything_vitl14) that leverages [PyTorchModelHubMixin](#upload-a-pytorch-model-using-huggingfacehub). Downloads are shown on the right. Sử dụng giao diện web
Để tạo một kho lưu trữ mô hình hoàn toàn mới, hãy truy cập huggingface.co/new. Sau đó, làm theo các bước sau:
- Trong tab “Files and versions”, chọn “Add File” và chỉ định “Upload File”:

- Từ đó, hãy chọn một tệp từ máy tính của bạn để tải lên và để lại một thông báo commit hữu ích để biết bạn đang tải lên gì:

Sau đó, nhấp vào Commit changes để tải mô hình của bạn lên Hub!
Kiểm tra tệp và lịch sử
Bạn có thể kiểm tra kho lưu trữ của mình với tất cả các tệp vừa được thêm vào!

Giao diện cho phép bạn khám phá các tệp mô hình và các commit, đồng thời xem sự khác biệt (diff) do từng commit tạo ra:

- Thêm metadata
Bạn có thể thêm metadata vào model card của mình. Bạn có thể chỉ định:
- loại bài toán mà mô hình này phục vụ, cho phép các widget và Nhà cung cấp Suy luận.
- thư viện được sử dụng (
transformers,spaCy, v.v.) - ngôn ngữ
- bộ dữ liệu
- metrics
- Giấy phép
- nhiều hơn nữa!
Đọc thêm về các thẻ mô hình tại đây.
- Thêm vết TensorBoard
Bất kỳ kho lưu trữ nào chứa các trace TensorBoard (tên tệp chứa tfevents) sẽ được phân loại với thẻ TensorBoard. Theo quy ước, chúng tôi đề xuất bạn lưu các trace trong thư mục con runs/. Khi đó, tab “Training metrics” sẽ giúp bạn dễ dàng xem lại các biểu đồ của các biến đã được ghi log, chẳng hạn như loss hoặc accuracy.

Các mô hình được huấn luyện bằng 🤗 Transformers sẽ tạo ra TensorBoard traces theo mặc định nếu tensorboard đã được cài đặt.
Tải lên từ thư viện có hỗ trợ tích hợp
Trước tiên, hãy kiểm tra xem mô hình của bạn có đến từ thư viện nào có hỗ trợ tích hợp để đẩy lên/tải từ Hub hay không, chẳng hạn như Transformers, Diffusers, Timm, Asteroid, v.v.: https://huggingface.co/docs/hub/models-libraries. Bên dưới, chúng tôi sẽ cho thấy việc này dễ dàng như thế nào đối với một thư viện như Transformers:
from transformers import BertConfig, BertModel
config = BertConfig()
model = BertModel(config)
model.push_to_hub("nielsr/my-awesome-bert-model")
# reload
model = BertModel.from_pretrained("nielsr/my-awesome-bert-model")Một số thư viện, chẳng hạn như Transformers, hỗ trợ nạp mã từ Hub. Đây là cách để mô hình của bạn hoạt động với Transformers bằng cách sử dụng cờ trust_remote_code=True. Bạn có thể cân nhắc lựa chọn này thay vì tích hợp thư viện đầy đủ.
Tải lên một mô hình PyTorch bằng huggingface_hub
Trong trường hợp mô hình của bạn là một mô hình PyTorch (tùy chỉnh), bạn có thể tận dụng lớp class PyTorchModelHubMixin có sẵn trong thư viện Python huggingface_hub. Đây là một lớp tối thiểu, bổ sung khả năng from_pretrained và push_to_hub cho bất kỳ nn.Module nào, cùng với các chỉ số tải xuống.
Dưới đây là cách sử dụng (giả sử bạn đã chạy pip install huggingface_hub):
import torch
import torch.nn as nn
from huggingface_hub import PyTorchModelHubMixin
class MyModel(
nn.Module,
PyTorchModelHubMixin,
# optionally, you can add metadata which gets pushed to the model card
repo_url="your-repo-url",
pipeline_tag="text-to-image",
license="mit",
):
def __init__(self, num_channels: int, hidden_size: int, num_classes: int):
super().__init__()
self.param = nn.Parameter(torch.rand(num_channels, hidden_size))
self.linear = nn.Linear(hidden_size, num_classes)
def forward(self, x):
return self.linear(x + self.param)
# create model
config = {"num_channels": 3, "hidden_size": 32, "num_classes": 10}
model = MyModel(**config)
# save locally
model.save_pretrained("my-awesome-model")
# push to the hub
model.push_to_hub("your-hf-username/my-awesome-model")
# reload
model = MyModel.from_pretrained("your-hf-username/my-awesome-model")Như bạn có thể thấy, yêu cầu duy nhất là model của bạn phải kế thừa từ PyTorchModelHubMixin. Tất cả các thuộc tính instance sẽ được tự động serialize vào file config.json. Lưu ý rằng phương thức init chỉ có thể nhận các đối số có thể serialize được bằng JSON. Python dataclasses được hỗ trợ.
Điều này đi kèm với các chỉ số tải xuống tự động, nghĩa là bạn sẽ có thể xem mô hình được tải xuống bao nhiêu lần, theo cách tương tự như các mô hình được tích hợp sẵn trong các thư viện Transformers, Diffusers hoặc Timm. Với lớp mixin này, mỗi checkpoint riêng lẻ được lưu trữ trên Hub trong một kho chứa duy nhất gồm 2 tệp:
- một tệp
pytorch_model.binhoặcmodel.safetensorschứa các trọng số - một tệp
config.jsonlà phiên bản đã được serialize của cấu hình mô hình. Lớp này được sử dụng để đếm các chỉ số tải xuống: mỗi khi người dùng gọifrom_pretrainedđể tải mộtconfig.json, số đếm sẽ tăng lên một. Xem hướng dẫn này về các chỉ số tải xuống tự động.
Khuyến nghị thêm một model card cho mỗi checkpoint để mọi người có thể đọc mô tả về mô hình, có liên kết đến bài báo, v.v.
Truy cập tài liệu của huggingface_hub để tìm hiểu thêm.
Ngoài ra, bạn cũng có thể đơn giản là tải lên hub các tệp hoặc thư mục bằng cách lập trình: https://huggingface.co/docs/huggingface_hub/guides/upload.
Sử dụng Git
Cuối cùng, vì các kho mô hình chỉ là các kho Git, bạn cũng có thể sử dụng Git để đẩy các tệp mô hình của mình lên Hub. Làm theo hướng dẫn Bắt đầu với Repositories để tìm hiểu cách sử dụng CLI git để commit và đẩy các mô hình của bạn.