Transformers documentation
Felsefe
Felsefe
Transformers, PyTorch öncelikli bir kütüphanedir. Makalelerine sadık, kullanımı ve uyarlaması kolay modeller sunar.
Örnekler, görselleştirmeler ve zaman çizelgeleri içeren, daha uzun ve kapsamlı bir makale, resmi referansımız olarak burada mevcuttur.
Felsefemiz pratik yoluyla evrilir. Aşağıda, mevcut ve kararlı ilkelerimiz yer almaktadır.
Bu kütüphanenin kimler için olduğu
- Model mimarilerini keşfeden veya genişleten araştırmacılar ve eğitimciler.
- Modelleri ince ayar yapan, değerlendiren veya sunan uygulayıcılar.
- Öngörülebilir bir API ile “olduğu gibi çalışan” önceden eğitilmiş bir model arayan mühendisler.
Bekleyebileceğiniz şeyler
Her model için üç temel sınıf gereklidir: configuration, models ve bir ön işleme sınıfı. Tokenizers NLP'yi, image processors görüntüleri, video processors videoları, feature extractors sesleri ve processors çok modlu girdileri işler.
Tüm bu sınıflar, Hugging Face Hub üzerinde sağlanan veya kendi kaydettiğiniz bir ön eğitilmiş kontrol noktasından ilgili sınıf örneğini ve ilişkili verileri (yapılandırmaların hiperparametreleri, tokenizörlerin sözlüğü, işlemcilerin parametreleri ve modellerin ağırlıkları) indirerek (gerekirse), önbelleğe alarak ve yükleyerek ortak bir
from_pretrained()yöntemiyle basit ve birleşik bir şekilde başlatılabilir.Bu üç temel sınıfın üzerine, kütüphane iki API sunar: belirli bir görevde bir modeli hızlıca çıkarım için kullanmak için pipeline() ve bir PyTorch modelini hızlıca eğitmek veya ince ayar yapmak için Trainer.
Temel ilkeler
Aşağıdaki ilkeler zamanla pekişmiş olup, bunlar yeni felsefe blog yazımızda ayrıntılı olarak açıklanmıştır. Bu ilkeler, PR'leri ve katkıları incelerken geliştirici kararlarını yönlendirir.
- Gerçeklik Kaynağı. Uygulamalar, resmi sonuçlara ve beklenen davranışa sadık kalmalıdır.
- Model tek, dosya tek. Kullanıcıların okuduğu model dosyasında, çekirdek çıkarım/eğitim mantığı baştan sona görünür.
- Kod, Üründür. Okunabilirlik ve diff alma için optimize edin. Zekice dolaylı gösterim yerine açık adları tercih edin.
- Standartlaştırın, Soyutlamayın. Modelle ilgili davranışları modelde tutun. Ortak arayüzleri yalnızca genel altyapı için kullanın.
- DRY* (Kullanıcılara fayda sağladığında tekrarla). Son kullanıcı model dosyaları kendi içinde bütünlüklü kalır. Altyapı ayrı bir bileşen olarak çıkarılır.
- Minimal Kullanıcı API'si. Az kod yolu, öngörülebilir kwargs, kararlı yöntemler.
- Geriye Uyumluluk. Halka açık yüzeyler bozulmamalıdır. Eski Hub artefaktları çalışmaya devam etmelidir.
- Tutarlı Halka Açık Yüzey. Adlandırma, çıktılar ve isteğe bağlı tanılamalar uyumlu hale getirilmiş ve test edilmiştir.
Ana sınıflar
Yapılandırma sınıfları bir model oluşturmak için gereken hiperparametreleri saklar. Bunlar, katman sayısı ve gizli boyut gibi değerleri içerir. Bunları her zaman kendiniz örneklemek zorunda değilsiniz. Değiştirilmemiş bir önceden eğitilmiş model kullanıldığında, model oluşturulurken yapılandırma otomatik olarak örneklenir.
Model sınıfları, en az bir PreTrainedModel ile sarılmış PyTorch modelleridir (torch.nn.Module).
Modüler dönüştürücüler. Katkıda bulunanlar, mevcut bileşenlerden yeniden kullanımı bildiren küçük bir
modular_*.pyparçası yazar. Kütüphane, bu parçayı kullanıcıların okuduğu/hata ayıkladığı görünenmodeling_*.pydosyasına otomatik olarak genişletir. Bakımcılar parçayı incelemeye alır; kullanıcılar genişletilmiş dosyada değişiklik yapar. Bu, gereksiz kod sapmalarından kaçınarak “Bir Model, Bir Dosya” ilkesini korur. Daha fazla bilgi için katkıda bulunma belgelerini inceleyin.Önişleme sınıfları, ham veriyi modelin kabul ettiği biçime dönüştürür. Tokenizör, her model için sözlüğü saklar ve dizeleri token gömme indeksleri listesine kodlamak ve çözmek için yöntemler sağlar. Görsel işleyiciler görsele girdileri, video işleyiciler video girdilerini, özellik çıkarıcılar ses girdilerini ve işleyiciler çok modlu girdileri önişler.
Tüm bu sınıflar, önceden eğitilmiş örneklerden örneklenebilir, yerel olarak kaydedilebilir ve Hub üzerinde üç yöntemle paylaşılabilir:
from_pretrained(), bir model, yapılandırma ve ön işleme sınıfını, kütüphanenin kendisi tarafından sağlanan (desteklenen modeller Model Hub'da bulunabilir) veya kullanıcının yerel olarak (veya bir sunucuda) sakladığı önceden eğitilmiş bir sürümden örneklemenizi sağlar.save_pretrained(), bir modeli, yapılandırmayı ve ön işleme sınıfını yerel olarak kaydetmenizi sağlar; böylecefrom_pretrained()ile yeniden yüklenebilir.push_to_hub(), bir model, yapılandırma ve ön işleme sınıfını Hub üzerinde paylaşmanızı sağlar; böylece herkes tarafından kolayca erişilebilir hale gelir.