Hub documentation

Modelleri yükleme

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Modelleri yükleme

Hub'a modeller yüklemek için Hugging Face üzerinde bir hesap oluşturmanız gerekir. Hub'daki modeller Git tabanlı depolardır; bu sayede sürümleme, dallar, keşfedilebilirlik ve paylaşım özellikleri, onlarca kütüphaneyle entegrasyon ve daha fazlasını elde edersiniz. Deponuza neleri yüklemek istediğinize siz karar verirsiniz; bunlar kontrol noktaları, yapılandırmalar ve diğer dosyalar olabilir.

Depoları, osanseviero/fashion_brands_patterns gibi bireysel bir kullanıcıyla veya facebook/bart-large-xsum gibi bir kuruluşla ilişkilendirebilirsiniz. Kuruluşlar, bir şirkete, topluluğa veya kütüphaneye ait modelleri toplayabilir! Bir kuruluş seçerseniz, model kuruluşun sayfasında öne çıkarılır ve kuruluşun her üyesi depoya katkıda bulunma yetkisine sahip olur. Yeni bir kuruluş oluşturmak için buraya tıklayabilirsiniz.

NOT: İndirme metriklerini almak için modellerin Transformers/Diffusers kütüphaneleriyle uyumlu olması GEREKMEZ. Herhangi bir özel model desteklenir. Daha fazla bilgi için aşağıya bakın!

Modellerin Hub'a düzgün bir şekilde entegre edilmesini ve indirme metrikleri almasını sağlamak için aşağıda açıklanan birkaç yöntem bulunmaktadır.

  • Modeliniz yerleşik destek sunan bir kütüphane için tasarlandıysa, kütüphanenin sağladığı yöntemleri kullanabilirsiniz. trust_remote_code=True kullanan özel modeller de bu yöntemlerden yararlanabilir.
  • Modeliniz özel bir PyTorch modeli ise, Transformers, Diffusers ve Timm kütüphanelerindeki modellerde olduğu gibi herhangi bir nn.Module sınıfına from_pretrained ve push_to_hub eklemeye olanak tanıdığı için PyTorchModelHubMixin sınıfından yararlanabilirsiniz.
  • Programatik yüklemelerin yanı sıra, her zaman web arayüzünü veya git komut satırını kullanabilirsiniz.

Modeliniz yüklendikten sonra, modelinizi belgelemek ve daha kolay bulunabilir hale getirmek için reponuza bir Model Card eklemenizi öneririz.

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.

Web arayüzünü kullanma

Yepyeni bir model deposu oluşturmak için huggingface.co/new adresini ziyaret edin. Ardından şu adımları izleyin:

  1. “Files and versions” sekmesinde “Add File” seçeneğini seçin ve “Upload File” belirtin:
  1. Buradan, yüklemek için bilgisayarınızdan bir dosya seçin ve ne yüklediğinizi bilmek için faydalı bir commit mesajı bırakın:
  1. Daha sonra, modelinizi Hub'a yüklemek için Commit changes düğmesine tıklayın!

  2. Dosyaları ve geçmişi incele

Tüm son eklenen dosyalarla birlikte depoyu kontrol edebilirsiniz!

Arayüz, model dosyalarını ve commit'leri incelemenize ve her commit'in getirdiği farkı (diff) görmenize olanak tanır:

  1. Meta veri ekle

Model kartınıza meta veri ekleyebilirsiniz. Şunları belirleyebilirsiniz:

  • Bu modelin hangi tür görevler için kullanıldığını belirler ve widget'lar ile Inference Providers'ı etkinleştirir.
  • kullanılan kütüphane (transformers, spaCy vb.)
  • dil
  • veri kümesi
  • metrikler
  • lisans
  • çok daha fazlası!

Model etiketleri hakkında daha fazla bilgi için buraya bakın.

  1. TensorBoard izlerini ekle

TensorBoard izleri (adlarında tfevents geçen dosyalar) içeren herhangi bir depo, TensorBoard etiketiyle sınıflandırılır. Bir uygulama olarak, izlerin runs/ alt klasörü altında saklanmasını öneririz. Böylece “Training metrics” sekmesi, kaydedilen değişkenlerin grafiklerini incelemenizi kolaylaştırır.

🤗 Transformers ile eğitilen modeller, tensorboard yüklüyse varsayılan olarak TensorBoard izleri oluşturur.

Yerleşik destek içeren bir kütüphaneden yükle

Öncelikle, modelinizin Hub'a gönderme/Hub'dan yükleme için yerleşik destek sunan bir kütüphaneden (Transformers, Diffusers, Timm, Asteroid vb.) olup olmadığını kontrol edin: https://huggingface.co/docs/hub/models-libraries. Aşağıda, Transformers gibi bir kütüphane için bunun ne kadar kolay olduğunu göstereceğiz:

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")

Transformers gibi bazı kütüphaneler, Hub'dan kod yükleme özelliğini destekler. Bu, modelinizin trust_remote_code=True bayrağı kullanılarak Transformers ile çalışmasını sağlayan bir yöntemdir. Tam kapsamlı bir kütüphane entegrasyonu yerine bu seçeneği değerlendirmeyi düşünebilirsiniz.

huggingface_hub kullanarak bir PyTorch modeli yükleyin

Modeliniz (özel) bir PyTorch modeli ise, huggingface_hub Python kütüphanesinde bulunan PyTorchModelHubMixin sınıfını kullanabilirsiniz. Bu, herhangi bir nn.Module için from_pretrained ve push_to_hub yeteneklerini, indirme metrikleriyle birlikte ekleyen minimal bir sınıftır.

Bunu nasıl kullanacağınız aşağıda gösterilmektedir (pip install huggingface_hub komutunu çalıştırdığınızı varsayarak):

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")

Gördüğünüz gibi tek gereklilik, modelinizin PyTorchModelHubMixin sınıfından türetmesidir. Tüm örnek (instance) öznitelikleri otomatik olarak bir config.json dosyasına serileştirilir. init metodunun yalnızca JSON serileştirilebilir argümanlar alabileceğini unutmayın. Python dataclass'ları desteklenmektedir.

Bu özellik, otomatik indirme metrikleri ile birlikte gelir; bu sayede modelin kaç kez indirildiğini, Transformers, Diffusers veya Timm kütüphanelerine yerel olarak entegre edilen modellerde olduğu gibi görebilirsiniz. Bu mixin sınıfı ile her ayrı checkpoint, Hub'da 2 dosyadan oluşan tek bir depoda saklanır:

  • a pytorch_model.bin veya model.safetensors dosyası, ağırlıkları içerir
  • a config.json dosyası, model yapılandırmasının serileştirilmiş bir sürümüdür. Bu sınıf, indirme metriklerini saymak için kullanılır: bir kullanıcı config.json dosyasını yüklemek için from_pretrained çağrısını her yaptığında sayaç bir artar. Otomatik indirme metrikleri hakkında bkz. bu kılavuz.

Her kontrol noktasına, modelin ne hakkında olduğunu okuyabilmeleri ve makaleye bir bağlantıya sahip olabilmeleri için bir model kartı eklenmesi önerilir.

Daha fazla bilgi edinmek için huggingface_hub dokümantasyonunu ziyaret edin.

Alternatif olarak, dosyaları veya klasörleri programatik olarak hub'a yüklemek de mümkündür: https://huggingface.co/docs/huggingface_hub/guides/upload.

Git Kullanımı

Son olarak, model depoları yalnızca Git depoları olduğu için model dosyalarınızı Hub'a Git ile de gönderebilirsiniz. Modellerinizi git CLI ile commit etme ve gönderme konusunda bilgi edinmek için Depolarla Başlangıç kılavuzunu izleyin.

Update on GitHub