Hub documentation
Modelleri yükleme
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=Truekullanan ö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.Modulesınıfınafrom_pretrainedvepush_to_hubeklemeye olanak tanıdığı içinPyTorchModelHubMixinsı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.
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:
- “Files and versions” sekmesinde “Add File” seçeneğini seçin ve “Upload File” belirtin:

- 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:

Daha sonra, modelinizi Hub'a yüklemek için Commit changes düğmesine tıklayın!
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:

- 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,spaCyvb.) - dil
- veri kümesi
- metrikler
- lisans
- çok daha fazlası!
Model etiketleri hakkında daha fazla bilgi için buraya bakın.
- 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.binveyamodel.safetensorsdosyası, ağırlıkları içerir - a
config.jsondosyası, 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.jsondosyasını yüklemek içinfrom_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.