Hub documentation

Mengunggah model

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Mengunggah model

Untuk mengunggah model ke Hub, Anda perlu membuat akun di Hugging Face. Model di Hub adalah repo berbasis Git, yang menyediakan fitur versioning, branches, discoverability, dan sharing, integrasi dengan puluhan library, dan masih banyak lagi! Anda memiliki kendali atas apa yang ingin diunggah ke repo Anda, yang dapat mencakup checkpoints, configs, dan file lainnya.

Anda dapat mengaitkan repositori dengan pengguna individu, seperti osanseviero/fashion_brands_patterns, atau dengan organisasi, seperti facebook/bart-large-xsum. Organisasi dapat mengumpulkan model yang terkait dengan perusahaan, komunitas, atau pustaka! Jika Anda memilih organisasi, model tersebut akan ditampilkan di halaman organisasi, dan setiap anggota organisasi akan memiliki kemampuan untuk berkontribusi pada repositori. Anda dapat membuat organisasi baru di sini.

CATATAN: Model TIDAK perlu kompatibel dengan pustaka Transformers/Diffusers untuk mendapatkan metrik unduhan. Model kustom apa pun didukung. Baca selengkapnya di bawah!

Terdapat beberapa cara untuk mengunggah model agar dapat terintegrasi dengan baik ke dalam Hub dan memperoleh metrik unduhan, yang dijelaskan di bawah ini.

  • Jika model Anda dirancang untuk pustaka yang memiliki dukungan bawaan, Anda dapat menggunakan metode yang disediakan oleh pustaka tersebut. Model kustom yang menggunakan trust_remote_code=True juga dapat memanfaatkan metode-metode ini.
  • Jika model Anda adalah model PyTorch kustom, Anda dapat memanfaatkan kelas PyTorchModelHubMixin karena kelas ini memungkinkan penambahan from_pretrained dan push_to_hub ke kelas nn.Module mana pun, sama seperti model di pustaka Transformers, Diffusers, dan Timm.
  • Selain unggahan programatik, Anda selalu dapat menggunakan antarmuka web atau baris perintah git.

Setelah model Anda diunggah, kami menyarankan untuk menambahkan Model Card ke repo Anda untuk mendokumentasikan model Anda dan membuatnya lebih mudah ditemukan.

drawing Example [repository](https://huggingface.co/LiheYoung/depth_anything_vitl14) that leverages [PyTorchModelHubMixin](#upload-a-pytorch-model-using-huggingfacehub). Downloads are shown on the right.

Menggunakan antarmuka web

Untuk membuat repositori model baru, kunjungi huggingface.co/new. Kemudian ikuti langkah-langkah berikut:

  1. Pada tab “Files and versions”, pilih “Add File” dan tentukan “Upload File”:
  1. Dari sana, pilih file dari komputer Anda untuk diunggah dan tinggalkan pesan commit yang membantu agar Anda tahu apa yang sedang diunggah:
  1. Setelah itu, klik Commit changes untuk mengunggah model Anda ke Hub!

  2. Periksa file dan riwayat

Anda dapat memeriksa repositori Anda dengan semua file yang baru ditambahkan!

UI memungkinkan Anda untuk menjelajahi file model dan commit serta melihat diff yang diperkenalkan oleh setiap commit:

  1. Tambahkan metadata

Anda dapat menambahkan metadata ke kartu model Anda. Anda dapat menentukan:

  • jenis tugas yang ditangani model ini, yang memungkinkan widget dan Inference Providers.
  • perpustakaan yang digunakan (transformers, spaCy, dll.)
  • bahasa
  • dataset
  • metrik
  • lisensi
  • banyak lagi!

Baca lebih lanjut tentang tag model di sini.

  1. Tambahkan jejak TensorBoard

Setiap repositori yang berisi jejak TensorBoard (nama file yang mengandung tfevents) dikategorikan dengan tag TensorBoard. Sebagai konvensi, kami menyarankan Anda menyimpan jejak di bawah subfolder runs/. Tab “Training metrics” kemudian memudahkan Anda meninjau grafik variabel yang dicatat, seperti loss atau akurasi.

Model yang dilatih dengan 🤗 Transformers akan menghasilkan jejak TensorBoard secara default jika tensorboard terinstal.

Unggah dari pustaka dengan dukungan bawaan

Pertama, periksa apakah model Anda berasal dari pustaka yang memiliki dukungan bawaan untuk mendorong/memuat dari Hub, seperti Transformers, Diffusers, Timm, Asteroid, dll.: https://huggingface.co/docs/hub/models-libraries. Di bawah ini kami akan menunjukkan betapa mudahnya hal ini untuk pustaka seperti 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")

Beberapa pustaka, seperti Transformers, mendukung pemuatan kode dari Hub. Ini adalah cara untuk membuat model Anda berfungsi dengan Transformers menggunakan flag trust_remote_code=True. Anda mungkin ingin mempertimbangkan opsi ini sebagai alternatif dari integrasi pustaka yang lengkap.

Unggah model PyTorch menggunakan huggingface_hub

Jika model Anda adalah model PyTorch (kustom), Anda dapat memanfaatkan kelas class PyTorchModelHubMixin yang tersedia di pustaka Python huggingface_hub. Ini adalah kelas minimal yang menambahkan kemampuan from_pretrained dan push_to_hub ke setiap nn.Module, beserta metrik unduhan.

Berikut cara menggunakannya (dengan asumsi Anda telah menjalankan 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")

Seperti yang dapat Anda lihat, satu-satunya persyaratan adalah model Anda mewarisi dari PyTorchModelHubMixin. Semua atribut instance akan secara otomatis diserialisasi ke file config.json. Perhatikan bahwa metode init hanya dapat menerima argumen yang dapat diserialisasi JSON. Python dataclasses didukung.

Hal ini dilengkapi dengan metrik unduhan otomatis, yang berarti Anda akan dapat melihat berapa kali model diunduh, dengan cara yang sama seperti yang tersedia untuk model yang terintegrasi secara native di pustaka Transformers, Diffusers, atau Timm. Dengan kelas mixin ini, setiap checkpoint terpisah disimpan di Hub dalam satu repositori yang terdiri dari 2 file:

  • file pytorch_model.bin atau model.safetensors yang berisi bobot
  • sebuah file config.json yang merupakan versi terserialisasi dari konfigurasi model. Kelas ini digunakan untuk menghitung metrik unduhan: setiap kali pengguna memanggil from_pretrained untuk memuat config.json, hitungannya bertambah satu. Lihat panduan ini mengenai metrik unduhan otomatis.

Disarankan untuk menambahkan kartu model ke setiap checkpoint agar orang dapat membaca tentang model tersebut, memiliki tautan ke makalah, dan sebagainya.

Kunjungi dokumentasi huggingface_hub untuk mempelajari lebih lanjut.

Sebagai alternatif, Anda juga dapat mengunggah file atau folder ke hub secara programatik: https://huggingface.co/docs/huggingface_hub/guides/upload.

Menggunakan Git

Terakhir, karena repositori model hanyalah repositori Git, Anda juga dapat menggunakan Git untuk mendorong file model Anda ke Hub. Ikuti panduan di Mulai dengan Repositori untuk mempelajari cara menggunakan CLI git untuk melakukan commit dan push model Anda.

Update on GitHub