Path: blob/main/transformers_doc/tr/quicktour.ipynb
16913 views
Hızlı Başlangıç
Transformers, herkesin transformer modelleriyle öğrenmeye veya geliştirmeye başlayabilmesi için hızlı ve kullanımı kolay olacak şekilde tasarlanmıştır.
Kullanıcıya yönelik soyutlamalar yalnızca üç model oluşturma sınıfı ve iki çıkarsama veya eğitim API'si ile sınırlıdır. Bu hızlı başlangıç rehberi, Transformers'ın temel özelliklerini tanıtır ve sana şunları nasıl yapacağını gösterir:
önceden eğitilmiş bir model yükleme
Pipelineile çıkarsama yapmaTrainerile bir modeli ince ayarlama
Kurulum
Başlamak için bir Hugging Face hesabı oluşturmanı öneririz. Hesap, Hugging Face Hub'da sürüm kontrollü modelleri, veri kümelerini ve Spaces'leri barındırmanı ve erişmeni sağlar. Hub, keşif ve geliştirme için işbirlikçi bir platformdur.
Bir Kullanıcı Erişim Jetonu oluştur ve hesabına giriş yap.
İstendiğinde Kullanıcı Erişim Jetonunu notebook_login fonksiyonuna yapıştır.
huggingface_hub[cli] paketinin kurulu olduğundan emin ol ve aşağıdaki komutu çalıştır. İstendiğinde Kullanıcı Erişim Jetonunu yapıştır.
PyTorch'u kur.
Ardından Transformers'ın güncel bir sürümünü ve Hugging Face ekosisteminden veri kümelerine ve görüntü modellerine erişmek, eğitimi değerlendirmek ve büyük modeller için eğitimi optimize etmek için bazı ek kütüphaneleri kur.
Önceden eğitilmiş modeller
Her önceden eğitilmiş model üç temel sınıftan türetilir.
| Sınıf | Açıklama |
|---|---|
PreTrainedConfig | Dikkat başlığı sayısı veya kelime hazinesi boyutu gibi model özelliklerini belirten bir dosya. |
PreTrainedModel | Yapılandırma dosyasındaki model özellikleri tarafından tanımlanan bir model (veya mimari). Önceden eğitilmiş bir model yalnızca ham gizli durumları döndürür. Belirli bir görev için, ham gizli durumları anlamlı bir sonuca dönüştürmek üzere uygun model başlığını kullan (örneğin, LlamaModel ile LlamaForCausalLM karşılaştırması). |
| Ön işleyici | Ham girdileri (metin, görüntü, ses, multimodal) modele sayısal girdilere dönüştüren bir sınıf. Örneğin, PreTrainedTokenizer metni tensörlere, ImageProcessingMixin ise pikselleri tensörlere dönüştürür. |
Her görev ve makine öğrenmesi çerçevesi için uygun mimariyi otomatik olarak çıkarsadığından, modelleri ve ön işleyicileri yüklemek için AutoClass API'sini kullanmanı öneririz.
Hub'dan ağırlıkları ve yapılandırma dosyasını model ve ön işleyici sınıfına yüklemek için from_pretrained() kullan.
Bir model yüklerken, modelin en uygun şekilde yüklenmesini sağlamak için aşağıdaki parametreleri yapılandır.
device_map="auto"model ağırlıklarını otomatik olarak en hızlı cihazına atar.dtype="auto"model ağırlıklarını doğrudan depolandıkları veri tipinde başlatır; bu da ağırlıkların iki kez yüklenmesini önlemeye yardımcı olabilir (PyTorch, ağırlıkları varsayılan olaraktorch.float32ile yükler).
Metni tokenizer ile tokenleştir ve PyTorch tensörleri olarak döndür. Çıkarsamayı hızlandırmak için varsa modeli bir hızlandırıcıya taşı.
Model artık çıkarsama veya eğitim için hazır.
Çıkarsama için, tokenleştirilmiş girdileri metin üretmek üzere generate() fonksiyonuna geçir. Token kimliklerini batch_decode() ile tekrar metne çevir.
[!TIP] Bir modeli nasıl ince ayarlayacağını öğrenmek için Trainer bölümüne atla.
Pipeline
Pipeline sınıfı, önceden eğitilmiş bir modelle çıkarsama yapmanın en kolay yoludur. Metin üretimi, görüntü segmentasyonu, otomatik konuşma tanıma, belge soru cevaplama ve daha birçok görevi destekler.
[!TIP] Mevcut görevlerin tam listesi için Pipeline API referansına bak.
Bir Pipeline nesnesi oluştur ve bir görev seç. Varsayılan olarak, Pipeline belirli bir görev için varsayılan önceden eğitilmiş modeli indirir ve önbelleğe alır. Belirli bir model seçmek için model adını model parametresine geçir.
Çıkarsama için uygun bir hızlandırıcıyı otomatik olarak algılamak üzere Accelerator kullan.
Daha fazla metin üretmek için Pipeline'a bir başlangıç metni ver.
Çıkarsama için uygun bir hızlandırıcıyı otomatik olarak algılamak üzere Accelerator kullan.
Pipeline'a bir görüntü (URL veya yerel dosya yolu) geçir.
Çıkarsama için uygun bir hızlandırıcıyı otomatik olarak algılamak üzere Accelerator kullan.
Pipeline'a bir ses dosyası geçir.
Trainer
Trainer, PyTorch modelleri için eksiksiz bir eğitim ve değerlendirme döngüsüdür. Bir eğitim döngüsünü elle yazmakla ilişkili birçok şablon kodu soyutlar, böylece daha hızlı eğitime başlayabilir ve eğitim tasarımı seçimlerine odaklanabilirsin. Bir modelden, veri kümesinden, ön işleyiciden ve veri kümesinden veri grupları oluşturmak için bir veri toplayıcıdan ihtiyacın var.
Eğitim sürecini özelleştirmek için TrainingArguments sınıfını kullan. Eğitim, değerlendirme ve daha fazlası için birçok seçenek sunar. Eğitim ihtiyaçlarını karşılamak için grup boyutu, öğrenme hızı, karışık hassasiyet, torch.compile ve daha fazlası gibi eğitim hiperparametreleri ve özelliklerini dene. Hızlı bir temel sonuç elde etmek için varsayılan eğitim parametrelerini de kullanabilirsin.
Eğitim için bir model, tokenizer ve veri kümesi yükle.
Metni tokenleştirmek ve PyTorch tensörlerine dönüştürmek için bir fonksiyon oluştur. Bu fonksiyonu map yöntemiyle tüm veri kümesine uygula.
Veri grupları oluşturmak için bir veri toplayıcı yükle ve tokenizer'ı ona geçir.
Ardından, eğitim özellikleri ve hiperparametreleri ile TrainingArguments ayarla.
Son olarak, tüm bu bileşenleri Trainer'a geçir ve eğitimi başlatmak için train() fonksiyonunu çağır.
Modelini ve tokenizer'ını push_to_hub() ile Hub'a paylaş.
Tebrikler, Transformers ile ilk modelini eğittin!
Sonraki adımlar
Artık Transformers'ı ve sunduklarını daha iyi anladığına göre, en çok ilgini çekeni keşfetmeye ve öğrenmeye devam etmenin zamanı geldi.
Temel sınıflar: Yapılandırma, model ve işlemci sınıfları hakkında daha fazla bilgi edin. Bu, modellerin nasıl oluşturulacağını ve özelleştirileceğini, farklı girdi türlerinin (ses, görüntü, multimodal) nasıl ön işleneceğini ve modelinin nasıl paylaşılacağını anlamana yardımcı olacaktır.
Çıkarsama:
Pipeline'ı daha derinlemesine keşfet, LLM'lerle çıkarsama ve sohbet, ajanlar ve makine öğrenmesi çerçeven ve donanımınla çıkarsamayı nasıl optimize edeceğini öğren.Eğitim:
Trainer'ı daha ayrıntılı incele, dağıtık eğitim ve belirli donanım üzerinde eğitimi optimize etme hakkında bilgi edin.Kuantizasyon: Kuantizasyon ile bellek ve depolama gereksinimlerini azalt ve ağırlıkları daha az bit ile temsil ederek çıkarsamayı hızlandır.
Kaynaklar: Belirli bir görev için bir modelin nasıl eğitileceğine ve çıkarsama yapılacağına dair uçtan uca tarifler mi arıyorsun? Görev tariflerine göz at!