Čo je Fastai?

Fastai je open-source knižnica hlbokého učenia na PyTorch, navrhnutá na demokratizáciu AI tým, že uľahčuje vývoj aj nasadenie neurónových sietí.

Hlavné komponenty Fastai

1. Fastai knižnica

Knižnica Fastai je postavená na frameworku PyTorch a jej cieľom je sprístupniť hlboké učenie. Poskytuje vysokourovňové API, ktoré abstrahuje mnohé zložitosti spojené s hlbokým učením, takže používatelia sa môžu sústrediť na konkrétne úlohy aplikácie a nie na komplikované programátorské detaily. Táto abstrakcia je dosiahnutá vrstveným návrhom API, ktoré poskytuje vysokú aj nízku úroveň komponentov pre rôzne úlohy hlbokého učenia. Funkcionalita knižnice siaha od vizuálneho a textového spracovania po tabuľkové dáta a kolaboratívne filtrovanie.

Fastai v2 je kompletný prepis zameraný na zvýšenie rýchlosti, flexibility a jednoduchosti použitia. Je postavený na základných knižniciach ako fastcore a fastgpu, ktoré podporujú vysokourovňové komponenty Fastai a sú užitočné pre mnohých programátorov a dátových vedcov.

2. Vrstvené API

Vrstvené API Fastai je štruktúrované tak, aby vyhovelo rôznym potrebám používateľov – od začiatočníkov po pokročilých výskumníkov. Vysokourovňové API ponúka pripravené funkcie na trénovanie modelov v rôznych oblastiach ako videnie, text, tabuľkové dáta a kolaboratívne filtrovanie. Tieto funkcie majú rozumné prednastavenia, ktoré zjednodušujú tvorbu modelov. Stredná úroveň API poskytuje základné metódy pre hlboké učenie a spracovanie dát, zatiaľ čo nízka úroveň API ponúka optimalizované primitíva a základy pre vlastný vývoj modelov.

Kľúčovou vlastnosťou vrstvenej architektúry Fastai je schopnosť vyjadriť spoločné základné vzory mnohých techník hlbokého učenia a spracovania dát pomocou oddelených abstrakcií. To je možné vďaka využitiu dynamiky Pythonu a flexibility PyTorch, čo umožňuje rovnováhu medzi jednoduchosťou použitia, flexibilitou a výkonom.

3. Kurz Praktické hlboké učenie pre programátorov

Fastai ponúka bezplatný masívny otvorený online kurz (MOOC) s názvom „Praktické hlboké učenie pre programátorov“. Tento kurz poskytuje praktické skúsenosti s hlbokým učením, pričom vyžaduje len znalosť Pythonu. Pokrýva rôzne témy hlbokého učenia ako klasifikácia obrázkov, spracovanie prirodzeného jazyka a generatívne protivnícke siete (GANs), s dôrazom na reálne aplikácie. Kurz dopĺňa kniha „Deep Learning for Coders with Fastai and PyTorch“, ktorá približuje AI aplikácie aj bez doktorátu.

Hlavné vlastnosti Fastai

1. Vysokourovňové API

Vysokourovňové API Fastai zjednodušuje trénovanie modelov hlbokého učenia integráciou architektúry, dát a optimalizácie do jedného systému. Automaticky vyberá vhodné stratové funkcie a optimalizačné algoritmy, čím znižuje pravdepodobnosť chýb používateľa. Toto API je obzvlášť užitočné pre začiatočníkov a tých, ktorí chcú použiť existujúce metódy hlbokého učenia bez nutnosti študovať zložitosť kódu.

2. Transfer Learning

Jednou z najvýraznejších vlastností Fastai je podpora transfer learningu, ktorý umožňuje rýchly a efektívny tréning modelov využitím predtrénovaných sietí. Fastai tento proces optimalizuje pomocou techník ako batch-normalizácia, zamŕzanie vrstiev a diskriminačné rýchlosti učenia. Tieto techniky urýchľujú učenie a zlepšujú výkonnosť modelu naprieč rôznymi úlohami.

3. Data Block API

Data block API je flexibilný systém na definovanie pipeline spracovania dát. Umožňuje používateľom špecifikovať zdroje dát, transformácie a mechanizmy načítavania modulárnym spôsobom. Toto API je kľúčové pri správe komplexných datasetov a zabezpečuje správnu prípravu dát na trénovanie modelov. Poskytuje konzistentný prístup naprieč rôznymi doménami, čo uľahčuje použitie hlbokého učenia na rôzne typy dát.

4. Dvojcestný callback systém

Fastai zavádza nový dvojcestný callback systém, ktorý poskytuje háky do tréningovej slučky a umožňuje dynamické zmeny dát, modelov alebo optimalizátorov v ľubovoľnom bode tréningu. Tento systém zvyšuje flexibilitu a prispôsobiteľnosť tréningových procesov, vďaka čomu je možné s minimálnym kódom realizovať inovatívne prístupy.

5. Open Source a komunitou poháňaný vývoj

Fastai je open-source projekt hostovaný na GitHube pod licenciou Apache License 2.0. Ťaží z aktívnej komunity vývojárov a výskumníkov, ktorí prispievajú k jeho ďalšiemu vývoju a vylepšovaniu. Open-source charakter knižnice zabezpečuje, že používatelia majú prístup k najnovším technikám a môžu prispievať k jej vývoju. Komunita Fastai je zároveň zdrojom spoločného učenia a podpory pre používateľov po celom svete.

Použitie a aplikácie

Vision

Fastai zjednodušuje vývoj modelov počítačového videnia s minimom kódu. Napríklad model na ImageNet je možné doladiť na konkrétny dataset, ako je Oxford IIT Pets, s vysokou presnosťou už pomocou niekoľkých riadkov kódu. Integrácia knižnice s PyTorch umožňuje jednoducho využívať najmodernejšie architektúry a techniky.

Text

Fastai je vybavený nástrojmi pre spracovanie prirodzeného jazyka (NLP), vrátane úloh ako analýza sentimentu, klasifikácia textu a jazykové modelovanie. Integrácia s PyTorch umožňuje použitie moderných NLP architektúr, čo uľahčuje vývoj robustných jazykových modelov schopných porozumieť a generovať ľudský jazyk.

Tabuľkové dáta

Fastai poskytuje komponenty na spracovanie tabuľkových dát, podporuje úlohy ako regresia a klasifikácia. Jeho data block API je obzvlášť užitočné na transformáciu a načítavanie tabuľkových datasetov, čím zabezpečuje efektívne a presné spracovanie dát na trénovanie modelov. Táto funkcia je kľúčová pre aplikácie v business analytike, zdravotníctve či financiách, kde sú tabuľkové dáta bežné.

Kolaboratívne filtrovanie

Kolaboratívne filtrovanie je ďalšou oblasťou, kde Fastai vyniká, a ponúka nástroje na tvorbu odporúčacích systémov. Vysokourovňové API knižnice zjednodušuje tvorbu a vyhodnocovanie modelov kolaboratívneho filtrovania, čo uľahčuje vývoj personalizovaných odporúčaní na základe preferencií a správania používateľov.

Nasadenie

Fastai podporuje nasadenie trénovaných modelov do produkčných prostredí, čo vývojárom umožňuje jednoducho integrovať AI schopnosti do aplikácií. Dôraz knižnice na praktickosť zabezpečuje, že nasadenie je riešené už od začiatku, čím umožňuje efektívne a škálovateľné riešenia pre reálne aplikácie.

Fastai vo vedeckých prácach

Fastai je knižnica hlbokého učenia navrhnutá tak, aby poskytovala vysokourovňové komponenty pre rýchle a jednoduché dosiahnutie najmodernejších výsledkov v štandardných oblastiach hlbokého učenia. Zároveň však ponúka nízkoúrovňové komponenty pre výskumníkov, ktorí chcú vytvárať nové prístupy bez kompromisov v jednoduchosti, flexibilite či výkone. Táto dvojitá schopnosť je dosiahnutá starostlivo štruktúrovanou architektúrou, ktorá využíva dynamiku Pythonu a flexibilitu PyTorch. Knižnica prináša niekoľko inovačných vlastností, vrátane type dispatch systému pre Python, GPU-optimalizovanej knižnice počítačového videnia, optimalizátora zjednodušujúceho moderné optimalizačné algoritmy a nový 2-cestný callback systém. Fastai bol úspešne použitý na vytvorenie komplexného kurzu hlbokého učenia a je široko využívaný vo výskume, priemysle a výučbe. Viac informácií nájdete v článku na arXiv.

  • Príklad z poľnohospodárstva:
    V oblasti poľnohospodárstva bol Fastai efektívne použitý na vytvorenie klasifikačného modelu na rozpoznávanie chorôb rastlín s použitím datasetu obrázkov jablčných listov. Využitím predtrénovaného modelu ResNet34 spolu s frameworkom Fastai štúdia dosiahla klasifikačnú presnosť 93,765 %. To demonštruje schopnosť knižnice šetriť čas tréningu a zvýšiť výkonnosť modelu v praxi. Viac informácií nájdete v štúdii na arXiv.

  • Príklad kompresie modelov:
    Systém callbackov Fastai bol využitý aj v ďalších knižniciach, napríklad FasterAI, ktorá sa zameriava na techniky kompresie neurónových sietí ako sparsifikácia a orezávanie. To ukazuje univerzálnosť Fastai a jednoduchú integráciu s inými nástrojmi na efektívne vykonávanie najmodernejších techník. Podrobnosti o tejto implementácii sú dostupné v článku FasterAI na arXiv.

Príklady použitia

Inštalácia

Na začatie používania fastai ho môžete jednoducho nainštalovať cez conda alebo pip. Tu je postup:

  • Conda (odporúčané pre Linux alebo Windows):
    conda install -c fastai fastai
  • Pip (funguje naprieč platformami):
    pip install fastai
  • Google Colab:
    Použite fastai bez inštalácie v Google Colab, ktorý podporuje GPU runtime pre rýchlejšie výpočty.

Používatelia môžu navyše preskúmať oficiálnu dokumentáciu fastai a komunitné fóra na riešenie bežných inštalačných problémov alebo pri hľadaní riešení pre špecifické nastavenia. Integrácia knižnice s Jupyter notebookmi a Google Colab ďalej zvyšuje jej použiteľnosť vďaka interaktívnemu prostrediu na experimentovanie a učenie sa.

Vysokourovňové API

Vysokourovňové API vo fastai je navrhnuté pre jednoduchosť použitia a rýchly vývoj. Abstrahuje väčšinu zložitosti, takže používatelia sa môžu sústrediť na tvorbu a trénovanie modelov s minimom kódu. API je obzvlášť užitočné na rýchle prototypovanie modelov a testovanie nápadov bez nutnosti zaoberať sa detailmi PyTorch frameworku.

Príklady použitia vysokourovňového API

1. Klasifikácia obrázkov

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)

Tento príklad ukazuje, ako nastaviť a natrénovať klasifikátor obrázkov na datasete Oxford IIT Pets pomocou vysokourovňového API fastai.

2. Analýza sentimentu textu

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)

Tu sa fastai používa na vytvorenie modelu analýzy sentimentu na datasete IMDB.

3. Tabuľkové dáta

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)

Tento príklad ilustruje použitie fastai pre tabuľkové dáta, konkrétne dataset Adult.

Stredná úroveň API

Stredná úroveň API vo fastai ponúka väčšie možnosti prispôsobenia ako vysokourovňové API, umožňuje používateľom meniť rôzne aspekty tréningového procesu bez nutnosti ísť do najnižších detailov. Poskytuje vyváženie medzi jednoduchosťou a flexibilitou, vhodné pre tých, ktorí potrebujú väčšiu kontrolu nad modelmi, ale stále ocenia pohodlie preddefinovaných komponentov.

Komponenty strednej úrovne API

  • Learner: Hlavný komponent, ktorý zahŕňa model, dáta a tréningovú slučku. Môže byť prispôsobený rôznymi architektúrami, optimalizátormi a metrikami.
  • Callbacks: Funkcie, ktoré rozširujú tréningovú slučku o vlastné správanie, ako je ukladanie checkpointov, úprava learning rate alebo logovanie metrík.

Príklad použitia

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

V tomto príklade sa používa callback na uloženie modelu s najlepšou presnosťou počas tréningu, čo demonštruje flexibilitu API strednej úrovne.

Nízka úroveň API

Pre pokročilých používateľov a výskumníkov, ktorí potrebujú plnú kontrolu nad modelmi, poskytuje nízkoúrovňové API fastai prístup k základným funkcionalitám PyTorch a optimalizovaným primitívam. Táto úroveň API je určená pre tých, ktorí chcú posúvať hranice hlbokého učenia návrhom nových architektúr alebo implementáciou vlastných tréningových rutín.

Vlastnosti nízkej úrovne API

  • Pipeline a Transforms: Prispôsobiteľné sekvencie spracovania dát, ktoré možno upraviť podľa špecifických potrieb.
  • Objektovo orientované tenzory: Rozšírenia PyTorch tensorov pre intuitívnejšiu manipuláciu.
  • Optimalizované operácie: Efektívne operácie s tenzormi využívajúce schopnosti PyTorch.

Príklad použitia

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

Tento úryvok ukazuje, ako vytvoriť vlastnú pipeline na spracovanie obrázka pomocou nízkoúrovňového API fastai.

Fastai v praxi: publikované príklady

  1. Fastai: A Layered API for Deep Learning
    Autori: Jeremy Howard, Sylvain Gugger
    Fastai je knižnica hlbokého učenia navrhnutá na uľahčenie rýchleho prototypovania a nasadzovania modelov hlbokého učenia. Dosahuje to poskytovaním vysokourovňových komponentov pre štandardné úlohy hlbokého učenia a zároveň umožňuje výskumníkom pracovať s nízkoúrovňovými komponentmi pre vlastné riešenia. Tento článok popisuje architektúru knižnice, ktorá využíva dynamiku Pythonu a flexibilitu PyTorch na tvorbu oddelených abstrakcií pre úlohy hlbokého učenia. Medzi inovácie Fastai patrí type dispatch systém, GPU-optimalizovaná knižnica počítačového videnia, nový dizajn optimalizátora a dvojcestný callback systém. Jednoduchosť použitia a schopnosť dosiahnuť špičkové výsledky spravili Fastai populárnym vo výskume, priemysle aj vzdelávaní. Čítať viac

  2. Segmentácia mikrovaskulatúry v Human BioMolecular Atlas Program (HuBMAP)
    Autori: Youssef Sultan, Yongqiang Wang, James Scanlon, Lisa D’lima
    Táto štúdia využíva Fastai na segmentáciu obrázkov v rámci programu Human BioMolecular Atlas Program (HuBMAP), so zameraním na segmentáciu mikrovaskulatúrnych štruktúr v ľudských obličkách. Metodika začína Fastai U-Net modelom a skúma alternatívne architektúry a hlboké modely na zlepšenie presnosti segmentácie. Táto práca ukazuje, že Fastai môže slúžiť ako základný nástroj v medicínskom zobrazovaní a poskytuje poznatky o pokročilých segmentačných technikách a ich porovnaní s referenčnými modelmi. Čítať viac

  3. Egglog Python: Pythonická knižnica pre E-graphs
    Autor: Saul Shanabrook
    Hoci nie priamo o Fastai, tento článok predstavuje Python bindingy pre knižnicu egglog, zdôrazňujúc integráciu e-graph techník do Pythonu. Tento prístup je v súlade s filozofiou Fastai využívať silu Pythonu na podporu inovácií v strojovom učení a vedeckom výpočte. Ilustruje, ako Pythonické API môžu uľahčiť spoluprácu a inovácie naprieč doménami a potenciálne doplniť univerzálnosť Fastai. [Čítať viac](https://arxiv.org/abs/2404

Najčastejšie kladené otázky

Čo je Fastai?

Fastai je komplexná open-source knižnica hlbokého učenia postavená na PyTorch. Zjednodušuje tvorbu a trénovanie neurónových sietí pomocou vysokourovňových API, podporuje úlohy vo videní, NLP, tabuľkových dátach a kolaboratívnom filtrovaní a kladie si za cieľ demokratizovať hlboké učenie pre používateľov všetkých úrovní.

Kto vyvinul Fastai?

Fastai vyvinuli Jeremy Howard a Rachel Thomas v rámci misie sprístupniť hlboké učenie a urobiť ho praktickým pre každého.

Čo robí Fastai unikátnym?

Fastai ponúka vrstvené API s vysokou, strednou aj nízkou úrovňou, používateľsky prívetivé abstrakcie, podporu transfer learningu, modulárne data block API a výkonný callback systém. Je open-source a podporovaný živou komunitou.

Aké sú bežné použitia Fastai?

Fastai sa používa na počítačové videnie, spracovanie prirodzeného jazyka (NLP), analýzu tabuľkových dát, kolaboratívne filtrovanie (odporúčacie systémy) a nasadzovanie modelov do produkcie. Je populárny vo výskume, priemysle aj vzdelávaní.

Ako nainštalujem Fastai?

Fastai môžete nainštalovať cez conda pomocou 'conda install -c fastai fastai' alebo cez pip pomocou 'pip install fastai'. Bez problémov funguje aj v Google Colab a Jupyter notebookoch.

Je Fastai zadarmo?

Áno, Fastai je plne open-source pod licenciou Apache License 2.0. Všetok softvér, výskum aj kurzy sú voľne dostupné, aby bola zabezpečená globálna prístupnosť.

Objavte Fastai a budujte AI riešenia

Zistite, ako môžu vysokúrovňové API a open-source nástroje Fastai urýchliť vaše AI projekty a vzdelávaciu cestu. Vyskúšajte FlowHunt pre bezproblémový vývoj AI.

Zistiť viac