Skip to content

Latest commit

 

History

History
330 lines (252 loc) · 18.7 KB

File metadata and controls

330 lines (252 loc) · 18.7 KB

Hugging Face Transformers Library

Checkpoints on Hub Build GitHub Documentation GitHub release Contributor Covenant DOI

Inference ve eğitim için son teknoloji önceden eğitilmiş modeller

Transformers; metin, bilgisayarla görü, ses, video ve çok modlu (multimodal) modeller için, hem inference hem de eğitim amacıyla son teknoloji makine öğrenimini mümkün kılan model tanımlama framework'ü olarak çalışır.

Model tanımını merkezileştirir; böylece bu tanım tüm ekosistem genelinde ortak kabul görür. transformers, framework'ler arasındaki pivot noktasıdır: bir model tanımı destekleniyorsa, eğitim framework'lerinin (Axolotl, Unsloth, DeepSpeed, FSDP, PyTorch-Lightning, ...), inference motorlarının (vLLM, SGLang, TGI, ...) ve transformers'taki model tanımından yararlanan komşu modelleme kütüphanelerinin (llama.cpp, mlx, ...) çoğuyla uyumlu olacaktır.

Yeni son teknoloji modelleri desteklemeye ve model tanımlarını basit, özelleştirilebilir ve verimli hâle getirerek kullanımlarını demokratikleştirmeye yardımcı olmayı taahhüt ediyoruz.

Hugging Face Hub üzerinde kullanabileceğiniz 1M'den fazla Transformers model kontrol noktası (checkpoint) bulunmaktadır.

Bir model bulmak ve hemen kullanmaya başlamak için bugün Hub'ı keşfedin.

Kurulum

Transformers, Python 3.10+ ve PyTorch 2.4+ ile çalışır.

venv veya hızlı, Rust tabanlı bir Python paket ve proje yöneticisi olan uv ile bir sanal ortam (virtual environment) oluşturup etkinleştirin.

# venv
python -m venv .my-env
source .my-env/bin/activate
# uv
uv venv .my-env
source .my-env/bin/activate

Transformers'ı sanal ortamınıza kurun.

# pip
pip install "transformers[torch]"

# uv
uv pip install "transformers[torch]"

Kütüphanedeki en son değişiklikleri istiyorsanız veya katkıda bulunmak istiyorsanız Transformers'ı kaynaktan kurun. Ancak en son sürüm kararlı olmayabilir. Bir hatayla karşılaşırsanız çekinmeden bir issue açabilirsiniz.

git clone https://github.com/huggingface/transformers.git
cd transformers

# pip
pip install '.[torch]'

# uv
uv pip install '.[torch]'

Hızlı Başlangıç

Pipeline API'siyle Transformers'ı hemen kullanmaya başlayın. Pipeline; metin, ses, görü ve çok modlu görevleri destekleyen üst seviye (high-level) bir inference sınıfıdır. Girdinin ön işlenmesini üstlenir ve uygun çıktıyı döndürür.

Bir pipeline örneği oluşturun ve metin üretimi için kullanılacak modeli belirtin. Model indirilir ve önbelleğe alınır; böylece tekrar tekrar kolayca kullanabilirsiniz. Son olarak, modeli yönlendirmek için biraz metin verin.

from transformers import pipeline

pipeline = pipeline(task="text-generation", model="Qwen/Qwen2.5-1.5B")
pipeline("the secret to baking a really good cake is ")
[{'generated_text': 'the secret to baking a really good cake is 1) to use the right ingredients and 2) to follow the recipe exactly. the recipe for the cake is as follows: 1 cup of sugar, 1 cup of flour, 1 cup of milk, 1 cup of butter, 1 cup of eggs, 1 cup of chocolate chips. if you want to make 2 cakes, how much sugar do you need? To make 2 cakes, you will need 2 cups of sugar.'}]

Bir modelle sohbet etmek için kullanım kalıbı aynıdır. Tek fark, sizinle sistem arasında bir sohbet geçmişi (yani Pipeline'a verilecek girdi) oluşturmanız gerektiğidir.

Tip

transformers serve çalıştığı sürece bir modelle doğrudan komut satırından da sohbet edebilirsiniz.

transformers chat Qwen/Qwen2.5-0.5B-Instruct
import torch
from transformers import pipeline

chat = [
    {"role": "system", "content": "You are a sassy, wise-cracking robot as imagined by Hollywood circa 1986."},
    {"role": "user", "content": "Hey, can you tell me any fun things to do in New York?"}
]

pipeline = pipeline(task="text-generation", model="meta-llama/Meta-Llama-3-8B-Instruct", dtype=torch.bfloat16, device_map="auto")
response = pipeline(chat, max_new_tokens=512)
print(response[0]["generated_text"][-1]["content"])

Pipeline'ın farklı modaliteler ve görevler için nasıl çalıştığını görmek için aşağıdaki örnekleri genişletin.

Otomatik konuşma tanıma
from transformers import pipeline

pipeline = pipeline(task="automatic-speech-recognition", model="openai/whisper-large-v3")
pipeline("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")
{'text': ' I have a dream that one day this nation will rise up and live out the true meaning of its creed.'}
Görüntü sınıflandırma

from transformers import pipeline

pipeline = pipeline(task="image-classification", model="facebook/dinov2-small-imagenet1k-1-layer")
pipeline("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
[{'label': 'macaw', 'score': 0.997848391532898},
 {'label': 'sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita',
  'score': 0.0016551691805943847},
 {'label': 'lorikeet', 'score': 0.00018523589824326336},
 {'label': 'African grey, African gray, Psittacus erithacus',
  'score': 7.85409429227002e-05},
 {'label': 'quail', 'score': 5.502637941390276e-05}]
Görsel soru yanıtlama

from transformers import pipeline

pipeline = pipeline(task="visual-question-answering", model="Salesforce/blip-vqa-base")
pipeline(
    image="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/idefics-few-shot.jpg",
    question="What is in the image?",
)
[{'answer': 'statue of liberty'}]

Neden Transformers kullanmalıyım?

  1. Kullanımı kolay son teknoloji modeller:

    • Doğal dil anlama ve üretme, bilgisayarla görü, ses, video ve çok modlu görevlerde yüksek performans.
    • Araştırmacılar, mühendisler ve geliştiriciler için düşük giriş engeli.
    • Kullanıcıya yönelik az sayıda soyutlama ve öğrenilmesi gereken yalnızca üç sınıf.
    • Tüm önceden eğitilmiş modellerimizi kullanmak için birleşik bir API.
  2. Daha düşük hesaplama maliyeti, daha küçük karbon ayak izi:

    • Sıfırdan eğitmek yerine eğitilmiş modelleri paylaşın.
    • Hesaplama süresini ve üretim maliyetlerini azaltın.
    • Tüm modaliteler genelinde 1M'den fazla önceden eğitilmiş kontrol noktasına sahip yüzlerce model mimarisi.
  3. Bir modelin yaşam döngüsünün her aşaması için doğru framework'ü seçin:

    • Son teknoloji modelleri 3 satır kodla eğitin.
    • Tek bir modeli PyTorch/JAX/TF2.0 framework'leri arasında dilediğiniz gibi taşıyın.
    • Eğitim, değerlendirme ve üretim için doğru framework'ü seçin.
  4. Bir modeli veya örneği ihtiyaçlarınıza göre kolayca özelleştirin:

    • Her mimari için, özgün yazarların yayımladığı sonuçları yeniden üretmek üzere örnekler sunuyoruz.
    • Modelin iç yapıları mümkün olduğunca tutarlı biçimde açığa çıkarılmıştır.
    • Model dosyaları, hızlı denemeler için kütüphaneden bağımsız olarak kullanılabilir.
Hugging Face Enterprise Hub

Ne zaman Transformers kullanmamalıyım?

  • Bu kütüphane, sinir ağları için yapı taşlarından oluşan modüler bir araç kutusu değildir. Model dosyalarındaki kod, araştırmacıların ek soyutlamalara/dosyalara dalmadan her bir model üzerinde hızlıca yineleme yapabilmesi için kasıtlı olarak ek soyutlamalarla yeniden düzenlenmemiştir.
  • Eğitim API'si, Transformers tarafından sağlanan PyTorch modelleriyle çalışmak üzere optimize edilmiştir. Genel amaçlı makine öğrenimi döngüleri için Accelerate gibi başka bir kütüphane kullanmalısınız.
  • Örnek kodlar yalnızca örnektir. Sizin özel kullanım durumunuzda doğrudan çalışmayabilir ve çalışması için kodu uyarlamanız gerekebilir.

Transformers kullanan 100 proje

Transformers, önceden eğitilmiş modelleri kullanmak için bir araç takımından çok daha fazlasıdır; etrafında ve Hugging Face Hub üzerinde kurulan bir proje topluluğudur. Transformers'ın; geliştiricilerin, araştırmacıların, öğrencilerin, profesörlerin, mühendislerin ve diğer herkesin hayalindeki projeleri hayata geçirmesine olanak tanımasını istiyoruz.

Transformers'ın 100.000 yıldızını kutlamak için, Transformers ile inşa edilmiş 100 inanılmaz projeyi listeleyen awesome-transformers sayfasıyla topluluğu ön plana çıkarmak istedik.

Bir projeye sahipseniz veya kullandığınız bir projenin listede yer alması gerektiğini düşünüyorsanız, eklemek için lütfen bir PR açın!

Örnek modeller

Modellerimizin çoğunu doğrudan Hub model sayfalarında test edebilirsiniz.

Çeşitli kullanım durumlarına yönelik birkaç örnek modeli görmek için aşağıdaki her modaliteyi genişletin.

Ses
Bilgisayarla görü
Çok modlu (Multimodal)
NLP
  • ModernBERT ile maskelenmiş sözcük tamamlama
  • Gemma ile adlandırılmış varlık tanıma
  • Mixtral ile soru yanıtlama
  • BART ile özetleme
  • T5 ile çeviri
  • Llama ile metin üretimi
  • Qwen ile metin sınıflandırma

Alıntı

🤗 Transformers kütüphanesi için alıntı yapabileceğiniz bir makalemiz bulunmaktadır:

@inproceedings{wolf-etal-2020-transformers,
    title = "Transformers: State-of-the-Art Natural Language Processing",
    author = "Thomas Wolf and Lysandre Debut and Victor Sanh and Julien Chaumond and Clement Delangue and Anthony Moi and Pierric Cistac and Tim Rault and Rémi Louf and Morgan Funtowicz and Joe Davison and Sam Shleifer and Patrick von Platen and Clara Ma and Yacine Jernite and Julien Plu and Canwen Xu and Teven Le Scao and Sylvain Gugger and Mariama Drame and Quentin Lhoest and Alexander M. Rush",
    booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
    month = oct,
    year = "2020",
    address = "Online",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2020.emnlp-demos.6/",
    pages = "38--45"
}