# 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](https://huggingface.co/spaces/transformers-community/Transformers-tenets) mevcuttur.

> [!NOTE]
> 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](./main_classes/configuration), [models](./main_classes/model) ve bir ön işleme sınıfı. [Tokenizers](./main_classes/tokenizer) NLP'yi, [image processors](./main_classes/image_processor) görüntüleri, [video processors](./main_classes/video_processor) videoları, [feature extractors](./main_classes/feature_extractor) sesleri ve [processors](./main_classes/processors) çok modlu girdileri işler.

- Tüm bu sınıflar, [Hugging Face Hub](https://huggingface.co/models)'daki veya kendi kaydettiğiniz bir kontrol noktasındaki önceden eğitilmiş bir 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öntemi kullanılarak basit ve birleşik bir şekilde önceden eğitilmiş örneklerden 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()](/docs/transformers/main/tr/main_classes/pipelines#transformers.pipeline) ve bir PyTorch modelini hızlıca eğitmek veya ince ayar yapmak için [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer).

## Temel ilkeler

Aşağıdaki ilkeler zamanla pekişmiş olup yeni felsefe [blog yazımızda](https://huggingface.co/spaces/transformers-community/Transformers-tenets) ayrıntılı olarak açıklanmıştır. Bu ilkeler, PR'ları 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. - **Bir Model, Bir Dosya.** Kullanıcıların okuduğu model dosyasında, çekirdek çıkarım/eğitim mantığı baştan sona görünür olmalıdır. - **Kod, Üründür.** Okunabilirlik ve diff alma için optimize edin. Zekice dolaylı gösterim yerine açık adlandırmaları tercih edin. - **Standartlaştırın, Soyutlamayın.** Model özel davranışları modelde tutun. Ortak arayüzleri yalnızca genel altyapı için kullanın. - **DRY\*** (Kullanıcılara yardımcı olduğunda tekrara gidin). Son kullanıcı modelleme dosyaları kendi içinde tamamlanmış kalmalıdır. Altyapı dışarıda ayrıştırılır. - **Minimal Kullanıcı API'si.** Az kod yolu, öngörülebilir kwargs, kararlı yöntemler. - **Geriye Doğru 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 hizalı ve test edilmiş olmalıdır.

## Ana sınıflar

- [**Yapılandırma sınıfları**](./main_classes/configuration) 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. Bir ön eğitilmiş modeli değişiklik yapmadan kullanırken, model oluşturulurken yapılandırma otomatik olarak örneklenir.
- **Model sınıfları**, en az bir [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) ile sarılmış PyTorch modelleridir ([torch.nn.Module](https://pytorch.org/docs/stable/nn.html#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_*.py` parçası yazar. Kütüphane, bu parçayı kullanıcıların okuduğu/hata ayıkladığı görünen `modeling_*.py` dosyası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](./modular_transformers) inceleyin.

- **Önişleme sınıfları**, ham veriyi modelin kabul ettiği biçime dönüştürür. [Tokenizör](./main_classes/tokenizer), 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](./main_classes/image_processor) görsele girdileri, [video işleyiciler](./main_classes/video_processor) video girdilerini, [özellik çıkarıcılar](./main_classes/feature_extractor) ses girdilerini ve [işleyiciler](./main_classes/processors) ç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()`, model, yapılandırma ve ön işleme sınıfını, kütüphanenin kendisi tarafından sağlanan (desteklenen modeller [Model Hub](https://huggingface.co/models)'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öylece `from_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.

