Fastai Nedir?

Fastai, PyTorch tabanlı, yapay zekâyı demokratikleştirmek için tasarlanmış açık kaynaklı bir derin öğrenme kütüphanesidir; sinir ağı geliştirmeyi ve dağıtımını kolay ve erişilebilir hale getirir.

Fastai’nin Temel Bileşenleri

1. Fastai Kütüphanesi

Fastai kütüphanesi, PyTorch çerçevesi üzerine kurulmuştur ve derin öğrenmeyi daha ulaşılabilir hale getirmeyi amaçlar. Birçok karmaşıklığı soyutlayan yüksek seviyeli bir API sunar; böylece kullanıcılar, ayrıntılı programlama detaylarından ziyade uygulama odaklı görevlere odaklanabilirler. Bu soyutlama, çeşitli derin öğrenme görevleri için hem yüksek hem de düşük seviyeli bileşenler sağlayan katmanlı bir API tasarımı ile gerçekleştirilir. Kütüphanenin işlevselliği, görsel ve metin işleme ile tablosal veri ve işbirlikli filtrelemeye kadar uzanır.

Fastai v2, hız, esneklik ve kullanım kolaylığı sağlamak amacıyla tamamen yeniden yazılmıştır. Fastcore ve fastgpu gibi temel kütüphaneler üzerine inşa edilmiştir; bunlar, Fastai’nin yüksek seviyeli bileşenlerini destekler ve birçok programcı ve veri bilimci için kullanışlıdır.

2. Katmanlı API

Fastai’nin katmanlı API’si, başlangıç seviyesinden ileri düzey araştırmacılara kadar farklı kullanıcı ihtiyaçlarına yanıt verecek şekilde yapılandırılmıştır. Yüksek seviyeli API, görsel, metin, tablosal veri ve işbirlikli filtreleme dahil olmak üzere çeşitli alanlarda model eğitimi için kullanıma hazır fonksiyonlar sunar. Bu fonksiyonlar, model oluşturmayı hızlandıran mantıklı varsayılan ayarlarla birlikte gelir. Orta seviyeli API, derin öğrenme ve veri işleme için temel yöntemler sunarken; düşük seviyeli API, özelleştirilmiş model geliştirme için optimize edilmiş ilkel ve temeller sağlar.

Fastai’nin katmanlı mimarisinin temel özelliklerinden biri, birçok derin öğrenme ve veri işleme tekniğinin altında yatan ortak desenleri ayrıştırılmış soyutlamalar yoluyla ifade edebilmesidir. Bu, Python’un dinamizmi ve PyTorch’un esnekliği sayesinde mümkün olur; böylece kullanım kolaylığı, esneklik ve performans arasında denge sağlanır.

3. Kodlayıcılar için Uygulamalı Derin Öğrenme Kursu

Fastai, “Kodlayıcılar için Uygulamalı Derin Öğrenme” başlıklı ücretsiz bir geniş katılımlı çevrimiçi kurs (MOOC) sunar. Bu kurs, yalnızca Python bilgisi ön koşuluyla, derin öğrenme konusunda uygulamalı deneyim kazandırır. Görüntü sınıflandırma, doğal dil işleme ve üretken adversaryal ağlar (GAN’ler) gibi çeşitli derin öğrenme konularını kapsar ve gerçek dünya uygulamalarına odaklanır. Kursu, “Fastai ve PyTorch ile Kodlayıcılar için Derin Öğrenme” adlı kitap tamamlar; bu kitap, doktora gerektirmeden AI uygulamalarına derinlemesine dalar.

Fastai’nin Temel Özellikleri

1. Yüksek Seviyeli API

Fastai’nin yüksek seviyeli API’si, mimari, veri ve optimizasyonu bütünleşik bir sisteme entegre ederek derin öğrenme modellerinin eğitimini basitleştirir. Uygun kayıp fonksiyonlarını ve optimizasyon algoritmalarını otomatik olarak seçer, bu da kullanıcı hatalarının olasılığını azaltır. Bu API, özellikle yeni başlayanlar ve mevcut derin öğrenme yöntemlerini altta yatan kodun karmaşıklığına girmeden uygulamak isteyenler için faydalıdır.

2. Transfer Öğrenme

Fastai’nin öne çıkan özelliklerinden biri, transfer öğrenme desteğidir. Bu sayede önceden eğitilmiş ağlardan yararlanarak modellerin hızlı ve verimli şekilde eğitilmesi mümkün olur. Fastai, bu süreci batch-normalizasyon, katman dondurma ve ayrık öğrenme oranları gibi tekniklerle optimize eder. Bu teknikler, öğrenme sürecini hızlandırır ve model performansını farklı görevlerde artırır.

3. Veri Blok API’si

Veri blok API’si, veri işleme boru hatlarını tanımlamak için esnek bir sistemdir. Kullanıcıların veri kaynaklarını, dönüşümlerini ve yükleme mekanizmalarını modüler şekilde belirtmesini sağlar. Bu API, karmaşık veri kümelerinin yönetiminde ve verilerin model eğitimi için doğru şekilde hazırlanmasında etkilidir. Farklı alanlarda tutarlı bir yaklaşım sunar ve böylece derin öğrenme tekniklerini farklı veri türlerine uygulamayı kolaylaştırır.

4. İki Yönlü Callback Sistemi

Fastai, eğitim döngüsüne kancalar sağlayan yenilikçi iki yönlü bir callback sistemi sunar; böylece eğitim sırasında herhangi bir noktada veri, model veya optimizatörler üzerinde dinamik değişiklikler yapılabilir. Bu sistem, model eğitimi süreçlerinin esnekliğini ve özelleştirilebilirliğini artırır ve minimum kodlama ile yenilikçi yaklaşımların uygulanmasına olanak tanır.

5. Açık Kaynak ve Topluluk Odaklı

Fastai, GitHub’da barındırılan ve Apache Lisansı 2.0 ile lisanslanan açık kaynaklı bir projedir. Geliştiricilerden ve araştırmacılardan oluşan canlı bir topluluğun katkılarıyla sürekli gelişmekte ve iyileştirilmektedir. Kütüphanenin açık kaynak yapısı, kullanıcıların en güncel tekniklere erişmesini ve gelişimine katkı sağlamasını mümkün kılar. Fastai topluluğu aynı zamanda dünya çapındaki kullanıcılar için işbirlikçi öğrenme ve destek kaynağıdır.

Kullanım Alanları ve Uygulamalar

Görsel

Fastai, minimum kod ile bilgisayarla görme modellerinin geliştirilmesini kolaylaştırır. Örneğin, bir ImageNet modeli, Oxford IIT Pets veri kümesi gibi belirli bir veri kümesinde ince ayar yapılarak yalnızca birkaç satır kod ile yüksek doğruluk elde edebilir. Kütüphanenin PyTorch ile entegrasyonu, kullanıcıların en son mimari ve teknikleri kolayca kullanmasını sağlar.

Metin

Fastai, doğal dil işleme (NLP) görevleri için araçlarla donatılmıştır; bu, duygu analizi, metin sınıflandırma ve dil modelleme gibi görevleri mümkün kılar. Kütüphanenin PyTorch ile entegrasyonu, modern NLP mimarilerinin kullanımını kolaylaştırır ve insan dilini anlayıp üretebilen sağlam dil modellerinin geliştirilmesini sağlar.

Tablosal Veri

Fastai, tablosal verileri işlemek için bileşenler sunar ve regresyon ile sınıflandırma gibi görevleri destekler. Veri blok API’si, tablosal veri kümelerinin dönüştürülmesi ve yüklenmesi için özellikle faydalıdır; verilerin model eğitimi için verimli ve doğru şekilde işlenmesini sağlar. Bu özellik, tablosal verilerin yaygın olduğu iş analitiği, sağlık ve finans gibi uygulamalarda gereklidir.

İşbirlikli Filtreleme

Fastai’nin öne çıktığı bir diğer alan ise işbirlikli filtrelemedir; öneri sistemleri geliştirmek için araçlar sunar. Kütüphanenin yüksek seviyeli API’si, işbirlikli filtreleme modellerinin oluşturulmasını ve değerlendirilmesini basitleştirir; böylece kullanıcıların tercih ve davranışlarına dayalı kişiselleştirilmiş önerilerin geliştirilmesi kolaylaşır.

Dağıtım

Fastai, eğitilen modellerin üretim ortamlarına dağıtımını destekler. Geliştiricilerin AI yeteneklerini uygulamalara sorunsuzca entegre etmesini sağlar. Kütüphanenin pratikliğe odaklanması, dağıtım hususlarının en baştan ele alınmasını ve gerçek dünya uygulamaları için verimli ve ölçeklenebilir çözümler geliştirilmesini sağlar.

Fastai Araştırma Makalelerinde

Fastai, uygulayıcıların standart derin öğrenme alanlarında hızlı ve kolay şekilde en iyi sonuçlara ulaşmasını sağlayan yüksek seviyeli bileşenler sunan bir derin öğrenme kütüphanesidir. Aynı zamanda, araştırmacıların yeni yaklaşımlar geliştirebilmesi için düşük seviyeli bileşenler de sağlar; bu, kullanım kolaylığı, esneklik veya performanstan ödün vermeden mümkündür. Bu ikili yetenek, Python’un dinamizmi ve PyTorch’un esnekliğinden yararlanan dikkatlice yapılandırılmış bir mimariyle sağlanır. Kütüphane; Python için bir tip yönlendirme sistemi, GPU’ya optimize edilmiş bir bilgisayarla görme kütüphanesi, modern optimizasyon algoritmalarını basitleştiren bir optimizatör ve yenilikçi bir iki yönlü callback sistemi gibi birçok yenilikçi özellik sunar. Fastai, kapsamlı bir derin öğrenme kursu oluşturmak için başarıyla kullanılmıştır ve araştırma, sanayi ve öğretimde yaygın olarak kullanılmaktadır. Daha fazla bilgi için makaleye arXiv üzerinden ulaşabilirsiniz.

  • Tarım Örneği:
    Tarım alanında Fastai, elma yaprağı görüntülerinden oluşan bir veri kümesi kullanılarak bitki hastalığı tanıma için sınıflandırma modeli geliştirmede etkili bir şekilde uygulanmıştır. Fastai çerçevesiyle önceden eğitilmiş bir ResNet34 modeli kullanılarak yapılan çalışmada %93.765 doğruluk elde edilmiştir. Bu, kütüphanenin pratik uygulamalarda eğitim süresini kısaltma ve model performansını artırma kabiliyetini göstermektedir. Daha fazla bilgiye arXiv üzerindeki çalışmadan ulaşabilirsiniz.

  • Model Sıkıştırma Örneği:
    Ayrıca, Fastai’nin callback sistemi, FasterAI gibi diğer kütüphanelerde de kullanılmıştır; bu kütüphane, seyrekleştirme ve budama gibi sinir ağı sıkıştırma tekniklerine odaklanır. Bu, Fastai’nin çok yönlülüğünü ve son teknoloji teknikleri verimli şekilde uygulamak için diğer araçlarla kolayca entegre olabilmesini gösterir. Bu uygulamanın ayrıntılarına FasterAI makalesinden arXiv üzerinden ulaşabilirsiniz.

Kullanım Örnekleri

Kurulum

Fastai’yi kullanmaya başlamak için conda veya pip ile kolayca kurabilirsiniz. İşte nasıl yapılacağı:

  • Conda (Linux veya Windows için önerilir):
    conda install -c fastai fastai
  • Pip (Tüm platformlarda çalışır):
    pip install fastai
  • Google Colab:
    Fastai’yi kurulum gerektirmeden, GPU desteğiyle hızlı hesaplamalar için Google Colab’da kullanabilirsiniz.

Ayrıca kullanıcılar, Fastai’nin resmi dokümantasyonunu ve topluluk forumlarını, yaygın kurulum sorunlarını gidermek veya belirli kurulum konfigürasyonları için çözüm aramak amacıyla inceleyebilirler. Kütüphanenin Jupyter defterleri ve Google Colab ile entegrasyonu, deneme ve öğrenme için etkileşimli bir ortam sağlayarak kullanım kolaylığını artırır.

Yüksek Seviyeli API

Fastai’deki yüksek seviyeli API, kullanım kolaylığı ve hızlı geliştirme için tasarlanmıştır. Karmaşıklığın büyük kısmını soyutlayarak kullanıcıların minimum kod ile model inşa edip eğitmelerine olanak tanır. Bu API, modelleri hızlıca prototiplemek ve fikirler üzerinde düşük seviyeli PyTorch detaylarına girmeden denemeler yapmak için özellikle faydalıdır.

Yüksek Seviyeli API Kullanım Örnekleri

1. Görüntü Sınıflandırma

from fastai.vision.all import * 
path = untar_data(URLs.PETS) 
dls = ImageDataLoaders.from_name_re(
    path=path, 
    fnames=get_image_files(path/"images"),
    pat=r'/([^/]+)_\d+.jpg$', 
    item_tfms=RandomResizedCrop(450, min_scale=0.75), 
    batch_tfms=[*aug_transforms(size=224, max_warp=0.), Normalize.from_stats(*imagenet_stats)]
)
learn = cnn_learner(dls, resnet34, metrics=error_rate)
learn.fit_one_cycle(4)

Bu örnek, Fastai’nin yüksek seviyeli API’si ile Oxford IIT Pets veri kümesinde bir görüntü sınıflandırıcıyı nasıl kurup eğitebileceğinizi gösterir.

2. Metin Duygu Analizi

from fastai.text.all import *
path = untar_data(URLs.IMDB)
dls = TextDataLoaders.from_folder(path, valid='test')
learn = text_classifier_learner(dls, AWD_LSTM, drop_mult=0.5, metrics=accuracy)
learn.fine_tune(1)

Burada, Fastai ile IMDB veri kümesi üzerinde bir duygu analizi modeli oluşturulmaktadır.

3. Tablosal Veri

from fastai.tabular.all import *
path = untar_data(URLs.ADULT_SAMPLE)
dls = TabularDataLoaders.from_csv(
    path/'adult.csv', path=path, y_names="salary",
    cat_names=['workclass', 'education', 'marital-status', 'occupation', 'relationship', 'race'],
    cont_names=['age', 'fnlwgt', 'education-num'],
    procs=[Categorify, FillMissing, Normalize]
)
learn = tabular_learner(dls, metrics=accuracy)
learn.fit_one_cycle(3)

Bu örnek, özellikle Adult veri kümesi için Fastai’nin tablosal veri üzerindeki kullanımını göstermektedir.

Orta Seviyeli API

Fastai’deki orta seviyeli API, yüksek seviyeli API’ye kıyasla daha fazla özelleştirme olanağı sunar; böylece kullanıcılar, en düşük seviyeli detaylara girmeden eğitim sürecinin çeşitli yönlerini değiştirebilirler. Kullanım kolaylığı ile esneklik arasında denge sağlar ve modelleri üzerinde daha fazla kontrol isteyen ancak önceden tanımlı bileşenlerin rahatlığından da faydalanmak isteyen kullanıcılara hitap eder.

Orta Seviyeli API Bileşenleri

  • Learner: Modeli, veriyi ve eğitim döngüsünü kapsayan temel bir bileşendir. Farklı mimariler, optimizatörler ve metriklerle özelleştirilebilir.
  • Callback’ler: Eğitim döngüsünü özel davranışlarla (ör. kontrol noktası kaydetme, öğrenme oranı ayarlama, metrik kaydı) genişletmeye olanak tanıyan fonksiyonlardır.

Kullanım Örneği

learn = cnn_learner(dls, resnet18, metrics=accuracy, cbs=[SaveModelCallback(monitor='accuracy')])
learn.fine_tune(2)

Bu örnekte, eğitim sırasında en iyi doğruluk değerine sahip modeli kaydetmek için bir callback kullanılmış olup, orta seviyeli API’nin esnekliği gösterilmiştir.

Düşük Seviyeli API

Modelleri üzerinde tam kontrol sahibi olmak isteyen ileri düzey kullanıcılar ve araştırmacılar için Fastai’nin düşük seviyeli API’si, altta yatan PyTorch işlevselliklerine ve optimize edilmiş ilkelere erişim sağlar. Bu API seviyesi, yeni mimariler tasarlamak veya özel eğitim rutinleri uygulamak isteyenler için tasarlanmıştır.

Düşük Seviyeli API Özellikleri

  • Pipeline ve Transforms: Belirli ihtiyaçlara göre uyarlanabilen, özelleştirilebilir veri işleme dizileri.
  • Nesne Yönelimli Tensorlar: PyTorch tensorlarına yapılan iyileştirmeler, daha sezgisel kullanım sağlar.
  • Optimize Edilmiş İşlemler: PyTorch’un yeteneklerinden yararlanan verimli tensor işlemleri.

Kullanım Örneği

from fastai.data.all import *
pipe = Pipeline([PILImage.create, Resize(128), ToTensor])
img = pipe('path/to/image.jpg')

Bu kod, Fastai’nin düşük seviyeli API’siyle bir görüntü üzerinde özelleştirilmiş bir veri boru hattı oluşturmayı ve bir dizi dönüşüm uygulamayı göstermektedir.

Uygulamada Fastai: Yayınlanmış Örnekler

  1. Fastai: Derin Öğrenme için Katmanlı API
    Yazarlar: Jeremy Howard, Sylvain Gugger
    Fastai, derin öğrenme modellerinin hızlı prototiplenmesi ve dağıtımı için tasarlanmış bir kütüphanedir. Standart derin öğrenme görevleri için yüksek seviyeli bileşenler sunarken, araştırmacıların özel çözümler geliştirmesini sağlayacak düşük seviyeli bileşenlere de izin verir. Bu makale, Python’un dinamizmi ve PyTorch’un esnekliğinden yararlanarak derin öğrenme görevleri için ayrıştırılmış soyutlamalar oluşturan kütüphane mimarisini ayrıntılı olarak anlatır. Fastai’nin yenilikleri arasında tip yönlendirme sistemi, GPU’ya optimize edilmiş bir bilgisayarla görme kütüphanesi, yeni bir optimizatör tasarımı ve iki yönlü callback sistemi bulunur. Kullanım kolaylığı ve en iyi sonuçlar üretme kabiliyeti, onu araştırma, sanayi ve eğitimde popüler kılmıştır. Daha fazla oku

  2. Human BioMolecular Atlas Programı (HuBMAP) için Mikrodamar Segmentasyonu
    Yazarlar: Youssef Sultan, Yongqiang Wang, James Scanlon, Lisa D’lima
    Bu çalışma, insan böbreğindeki mikrodamar yapılarını segmentlemek için Human BioMolecular Atlas Programı (HuBMAP) kapsamında Fastai’yi görüntü segmentasyonu amacıyla kullanmaktadır. Yöntem, Fastai U-Net modeliyle başlamakta ve segmentasyon doğruluğunu artırmak için alternatif mimariler ve derin modelleri keşfetmektedir. Bu çalışma, Fastai’nin tıbbi görüntülemede temel bir araç olma kabiliyetini ve ileri düzey segmentasyon tekniklerinde temel oluşturmasını vurgular. Daha fazla oku

  3. Egglog Python: Pythonic E-graf Kütüphanesi
    Yazar: Saul Shanabrook
    Doğrudan Fastai ile ilgili olmasa da, bu makale egglog kütüphanesi için Python bağlayıcılarını tanıtır ve e-graf tekniklerinin Python’a entegrasyonunu vurgular. Bu yaklaşım, Fastai’nin Python’un gücünden yararlanarak makine öğrenimi ve bilimsel hesaplama inovasyonlarını artırma felsefesiyle uyumludur. Pythonic API’lerin, Fastai’nin çok yönlülüğünü tamamlayabilecek şekilde, alanlar arası işbirliği ve yeniliği nasıl kolaylaştırabileceğini gösterir. [Daha fazla oku](https://arxiv.org/abs/2404

Sıkça sorulan sorular

Fastai nedir?

Fastai, PyTorch üzerine inşa edilmiş kapsamlı, açık kaynaklı bir derin öğrenme kütüphanesidir. Yüksek seviyeli API'lerle sinir ağı oluşturma ve eğitimi kolaylaştırır, görsel, NLP, tablosal veri ve işbirlikli filtreleme görevlerini destekler ve her seviyeden kullanıcı için derin öğrenmeyi demokratikleştirmeyi amaçlar.

Fastai'yi kim geliştirdi?

Fastai, Jeremy Howard ve Rachel Thomas tarafından, derin öğrenmeyi herkes için erişilebilir ve pratik hale getirme misyonunun bir parçası olarak geliştirilmiştir.

Fastai'yi benzersiz kılan nedir?

Fastai; yüksek, orta ve düşük seviyeli bileşenlerden oluşan katmanlı bir API, kullanıcı dostu soyutlamalar, transfer öğrenme desteği, modüler veri blok API'si ve güçlü bir callback sistemi sunar. Açık kaynaklıdır ve canlı bir topluluk tarafından desteklenmektedir.

Fastai'nin yaygın kullanım alanları nelerdir?

Fastai; bilgisayarla görme, doğal dil işleme (NLP), tablosal veri analizi, işbirlikli filtreleme (öneri sistemleri) ve modelleri üretime alma gibi alanlarda kullanılır. Araştırma, sanayi ve eğitimde popülerdir.

Fastai'yi nasıl kurabilirim?

'conda install -c fastai fastai' komutuyla conda üzerinden ya da 'pip install fastai' komutuyla pip üzerinden Fastai'yi kurabilirsiniz. Ayrıca Google Colab ve Jupyter defterlerinde sorunsuz şekilde çalışır.

Fastai ücretsiz mi?

Evet, Fastai tamamen açık kaynaklıdır ve Apache Lisansı 2.0 altındadır. Tüm yazılım, araştırma ve kurslar, küresel erişilebilirliği sağlamak için ücretsiz olarak sunulmaktadır.

Fastai'yi Keşfedin ve AI Çözümleri Geliştirin

Fastai'nin yüksek seviyeli API'leri ve açık kaynak araçlarının AI projelerinizi ve öğrenme yolculuğunuzu nasıl hızlandırabileceğini keşfedin. Sorunsuz AI geliştirme için FlowHunt'ı deneyin.

Daha fazla bilgi

SpaCy

SpaCy

spaCy, gelişmiş Doğal Dil İşleme (NLP) için hız, verimlilik ve üretime hazır özellikleriyle bilinen, güçlü ve açık kaynaklı bir Python kütüphanesidir. Tokenizas...

5 dakika okuma
spaCy NLP +4
AllenNLP

AllenNLP

AllenNLP, PyTorch üzerine inşa edilmiş, AI2 tarafından geliştirilen sağlam ve kapsamlı bir açık kaynaklı NLP kütüphanesidir. Modüler, genişletilebilir araçlar, ...

3 dakika okuma
NLP Open Source +6
DL4J

DL4J

DL4J veya DeepLearning4J, Java Sanal Makinesi (JVM) için açık kaynaklı, dağıtık bir derin öğrenme kütüphanesidir. Eclipse ekosisteminin bir parçası olan bu kütü...

5 dakika okuma
Deep Learning Java +4