Hub documentation

Hugging Face'te 🤗 transformers kullanımı

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Hugging Face'te 🤗 transformers kullanımı

🤗 transformers, Hugging Face ve topluluk tarafından sürdürülen; PyTorch, TensorFlow ve JAX için son teknoloji Makine Öğrenimi sunan bir kütüphanedir. Metin, görüntü ve ses gibi farklı modalitelerdeki görevleri gerçekleştirmek için binlerce önceden eğitilmiş model sağlar. Biraz önyargılıyız ama 🤗 transformers'ı gerçekten çok seviyoruz!

Hub'da 🤗 transformers'ı keşfetme

Hub'da, modeller sayfasının solundaki filtreleme özelliğiyle bulabileceğiniz 630.000'den fazla transformers modeli bulunmaktadır.

Birçok farklı görev için modelleri bulabilirsiniz:

Tarayıcı içi widget'ler sayesinde, indirmeden önce modelleri test etmek isterseniz tarayıcıda doğrudan deneyebilirsiniz!

Transformers deposu dosyaları

Bir Transformers model deposu genellikle model dosyaları ve ön işleyici dosyaları içerir.

Model

  • config.json dosyası, gizli katman sayısı, sözlük boyutu, dikkat başı sayısı, her başın boyutları gibi model mimarisiyle ilgili ayrıntıları saklar. Bu meta veriler, modelin planıdır.

  • model.safetensors dosyası, modelin önceden eğitilmiş katmanlarını ve ağırlıklarını saklar. Büyük modeller için, yüklenmesi gereken bellek miktarını sınırlamak amacıyla safetensors dosyası parçalara ayrılır. Model ağırlıklarının hangi safetensors dosyasından yüklendiğini görmek için model.safetensors.index.json dosyasını inceleyin.

    {
    "metadata": {
      "total_size": 16060522496
    },
    "weight_map": {
      "lm_head.weight": "model-00004-of-00004.safetensors",
      "model.embed_tokens.weight": "model-00001-of-00004.safetensors",
      ...
      }
    }

    Model kartındaki ↗ düğmesine tıklayarak bu eşlemeyi görselleştirebilirsiniz.

    Safetensors, model ağırlıklarını depolamak için pickle ile karşılaştırıldığında daha güvenli ve hızlı bir seri hale getirme biçimidir. Ağırlıklarla bin, pth veya ckpt gibi biçimlerde karşılaşabilirsiniz ancak safetensors, model ekosisteminde giderek daha iyi bir alternatif olarak benimsenmektedir.

  • Bir model, metin üretiminin nasıl yapılacağına dair ayrıntıları (örneğin örneklemeye gidilip gidilmeyeceği, örneklemenin hangi üst jetonlardan yapılacağı, sıcaklık ve üretimi başlatmak/durdurmak için kullanılan özel jetonlar) saklayan bir generation_config.json dosyasına da sahip olabilir.

Önişleyici

  • tokenizer_config.json dosyası, bir modelin eklediği özel jetonları saklar. Bu özel jetonlar, bir modele cümlenin başlangıcı, sohbet şablonları için belirli biçimlendirme veya bir görüntüyü belirtme gibi birçok şeyi iletir. Bu dosya ayrıca, modelin kabul edebileceği maksimum giriş dizisi uzunluğunu, ön işleyici sınıfını ve döndürdüğü çıktıları da gösterir.
  • tokenizer.json dosyası, modelin öğrenmiş olduğu sözlüğü saklar.
  • special_tokens_map.json, özel jetonların eşlemesidir. Örneğin, Llama 3.1-8B-Instruct'te başlangıç jetonu "<|begin_of_text|>"'dür.

Diğer modaliteler için tokenizer_config.json dosyası yerine preprocessor_config.json kullanılır.

Mevcut modelleri kullanma

Tüm transformer modelleri kullanıma bir satır uzaklıkta! Kullanım amacınıza bağlı olarak, yüksek seviyeli API'yi pipeline işleviyle kullanabilir veya daha fazla kontrol için AutoModel kullanabilirsiniz.

# With pipeline, just specify the task and the model id from the Hub.
from transformers import pipeline
pipe = pipeline("text-generation", model="distilbert/distilgpt2")

# If you want more control, you will need to define the tokenizer and model.
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2")
model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")

Belirli bir sürümden (commit hash, etiket adı veya dal bazında) bir model yüklemek için aşağıdaki gibi yapabilirsiniz:

model = AutoModel.from_pretrained(
    "julien-c/EsperBERTo-small", revision="v2.0.1"  # tag name, or branch name, or commit hash
)

Belirli bir modelin nasıl yükleneceğini görmek istiyorsanız, Use in Transformers bağlantısına tıklayabilir ve modelinizi yüklemek için kullanabileceğiniz çalışan bir kod parçası alabilirsiniz. Model mimarisi hakkında daha fazla bilgiye ihtiyacınız varsa, kod parçasının altındaki “Read model documentation” bağlantısına da tıklayabilirsiniz.

Modellerinizi paylaşma

transformers ile modelleri paylaşma hakkında her şeyi okumak için lütfen resmi dokümantasyondaki Bir model paylaş kılavuzuna gidin.

transformers içindeki modeller ve tokenizörler gibi birçok sınıf, dosyaları bir depoya kolayca yüklemeye olanak tanıyan bir push_to_hub yöntemine sahiptir.

# Pushing model to your own account
model.push_to_hub("my-awesome-model")

# Pushing your tokenizer
tokenizer.push_to_hub("my-awesome-model")

# Pushing all things after training
trainer.push_to_hub()

Yapabilecekleriniz çok daha fazla olduğundan, Bir model paylaş kılavuzunu incelemenizi öneririz.

Ek kaynaklar

Update on GitHub