Mikä on Fastai?

Fastai on avoimen lähdekoodin syväoppimiskirjasto PyTorchin päällä, jonka tavoitteena on demokratisoida tekoäly tekemällä neuroverkkojen kehittämisestä ja käyttöönotosta helppoa ja saavutettavaa.

Fastai:n ydinkomponentit

1. Fastai-kirjasto

Fastai-kirjasto on rakennettu PyTorch-kehyksen päälle ja sen tarkoituksena on tehdä syväoppimisesta helpommin lähestyttävää. Se tarjoaa korkean tason API:n, joka abstrahoi monia syväoppimiseen liittyviä monimutkaisuuksia, jolloin käyttäjät voivat keskittyä sovelluskohtaiseen tekemiseen eivätkä ohjelmoinnin yksityiskohtiin. Tämä abstraktio saavutetaan kerroksellisella API-suunnittelulla, joka tarjoaa sekä korkean että matalan tason komponentteja erilaisiin syväoppimistehtäviin. Kirjaston toiminnallisuus ulottuu niin kuvantunnistukseen ja tekstinkäsittelyyn kuin taulukkodataan ja suosittelujärjestelmiin.

Fastai v2 on kokonaan uudelleenkirjoitettu versio, jonka tavoitteena on parantaa nopeutta, joustavuutta ja käytettävyyttä. Se rakentuu perustavanlaatuisten kirjastojen, kuten fastcore ja fastgpu, varaan, jotka tukevat Fastai:n korkean tason komponentteja ja ovat hyödyllisiä monille ohjelmoijille ja datatieteilijöille.

2. Kerroksellinen API

Fastai:n kerroksellinen API on suunniteltu erilaisiin käyttäjätarpeisiin aloittelijoista edistyneisiin tutkijoihin. Korkean tason API tarjoaa valmiita toimintoja mallien koulutukseen useilla alueilla, kuten visio, teksti, taulukkodata ja suosittelujärjestelmät. Näillä toiminnoilla on järkevät oletusasetukset, jotka nopeuttavat mallinrakennusprosessia. Keskitason API tarjoaa ydintoimintoja syväoppimiseen ja datankäsittelyyn, kun taas matalan tason API tarjoaa optimoituja rakennuspalikoita räätälöityyn mallikehitykseen.

Fastai:n kerroksellisen arkkitehtuurin keskeinen piirre on kyky ilmaista monia syväoppimisen ja datankäsittelyn yhteisiä malleja eriytettyjen abstraktioiden kautta. Tämä mahdollistuu hyödyntämällä Pythonin dynaamisuutta ja PyTorchin joustavuutta, jolloin saavutetaan tasapaino helppokäyttöisyyden, joustavuuden ja suorituskyvyn välillä.

3. Käytännön syväoppiminen ohjelmoijille -kurssi

Fastai tarjoaa ilmaisen, massiivisen verkkokurssin (MOOC) nimeltä “Practical Deep Learning for Coders”. Kurssi tarjoaa käytännön kokemusta syväoppimisesta, ja esivaatimuksena on vain Python-osaaminen. Kurssilla käsitellään muun muassa kuvien luokittelua, luonnollisen kielen käsittelyä ja generatiivisia vastakkaisverkkoja (GAN), painottuen käytännön sovelluksiin. Kurssia täydentää kirja “Deep Learning for Coders with Fastai and PyTorch”, joka syventyy tekoälysovelluksiin ilman tohtorintutkintoa.

Fastai:n keskeiset ominaisuudet

1. Korkean tason API

Fastai:n korkean tason API yksinkertaistaa syväoppimismallien koulutusta yhdistämällä arkkitehtuurin, datan ja optimoinnin yhtenäiseksi kokonaisuudeksi. Se valitsee automaattisesti sopivat tappiofunktiot ja optimointialgoritmit, mikä vähentää käyttäjävirheitä. Tämä API on erityisen hyödyllinen aloittelijoille ja niille, jotka haluavat hyödyntää valmiita syväoppimismenetelmiä ilman taustakoodin yksityiskohtien opiskelua.

2. Siirto-oppiminen

Yksi Fastai:n huippuominaisuuksista on siirto-oppimisen tuki, jonka ansiosta mallien koulutus onnistuu nopeasti ja tehokkaasti hyödyntämällä esikoulutettuja verkkoja. Fastai optimoi tätä prosessia muun muassa batch-normalisoinnilla, kerrosten jäädyttämisellä ja eriytetyillä oppimisnopeuksilla. Nämä tekniikat nopeuttavat oppimista ja parantavat mallien suorituskykyä eri tehtävissä.

3. Data block -API

Data block -API on joustava järjestelmä datankäsittelyn prosessiketjujen määrittelyyn. Käyttäjä voi määrittää tietolähteet, muunnokset ja latausmekanismit modulaarisesti. Tämä API on keskeinen monimutkaisten aineistojen hallinnassa ja varmistaa datan oikean valmistelun mallin koulutukseen. Se tarjoaa yhtenäisen lähestymistavan eri domeeneihin, mikä helpottaa syväoppimismenetelmien soveltamista erilaiseen dataan.

4. Kaksisuuntainen callback-järjestelmä

Fastai esittelee uudenlaisen kaksisuuntaisen callback-järjestelmän, joka tarjoaa koukkuja koulutussilmukkaan mahdollistaen dynaamisia muutoksia dataan, malleihin tai optimointiin missä tahansa koulutusvaiheessa. Tämä lisää mallikoulutuksen joustavuutta ja räätälöitävyyttä mahdollistaen innovatiiviset lähestymistavat vähäisellä koodin määrällä.

5. Avoin lähdekoodi ja yhteisövetoisuus

Fastai on avoimen lähdekoodin projekti GitHubissa, Apache 2.0 -lisenssillä. Sitä kehittää aktiivinen kehittäjien ja tutkijoiden yhteisö, joka osallistuu jatkuvaan kehitykseen ja parantamiseen. Kirjaston avoimuus takaa pääsyn alan huipputekniikoihin ja mahdollistaa käyttäjien osallistumisen kehitykseen. Fastai:n yhteisö tarjoaa myös vertaistukea ja yhteisöllistä oppimista maailmanlaajuisesti.

Käyttötapaukset ja sovellukset

Kuvantunnistus

Fastai helpottaa tietokonenäkömallien kehittämistä minimaalisella koodilla. Esimerkiksi ImageNet-malli voidaan hienosäätää tietylle aineistolle, kuten Oxford IIT Pets -datalle, ja saavuttaa korkea tarkkuus vain muutamalla koodirivillä. Kirjaston integraatio PyTorchiin takaa, että käyttäjät voivat hyödyntää alan huippuarkkitehtuureja helposti.

Teksti

Fastai tarjoaa työkaluja luonnollisen kielen käsittelyyn (NLP), mahdollistaen tehtäviä kuten sentimenttianalyysi, tekstiluokittelu ja kielimallinnus. Kirjaston integraatio PyTorchiin mahdollistaa modernien NLP-arkkitehtuurien käytön ja tukee kestäviä kielimalleja, jotka ymmärtävät ja tuottavat ihmiskieltä.

Taulukkodata

Fastai sisältää komponentteja taulukkodatan käsittelyyn, tukien mm. regressiota ja luokittelua. Sen data block -API on erityisen hyödyllinen taulukkodatasettien muunnoksessa ja latauksessa, varmistaen tehokkaan ja tarkan datankäsittelyn mallikoulutukseen. Tämä on olennaista esimerkiksi liiketoiminta-analytiikassa, terveydenhuollossa ja rahoituksessa, joissa taulukkodata on vallitsevaa.

Suosittelujärjestelmät

Yhteistoiminnallinen suodatus on toinen alue, jossa Fastai loistaa tarjoten työkaluja suosittelujärjestelmien rakentamiseen. Korkean tason API helpottaa suosittelumallien luontia ja arviointia, mahdollistaen yksilöllisten suositusten kehittämisen käyttäjien mieltymysten ja käyttäytymisen perusteella.

Käyttöönotto

Fastai tukee koulutettujen mallien käyttöönottoa tuotantoympäristöihin, mahdollistaen tekoälyominaisuuksien integroinnin sovelluksiin saumattomasti. Käytännöllisyyteen panostava kirjasto huomioi käyttöönoton jo alusta alkaen, mahdollistaen tehokkaat ja skaalautuvat ratkaisut tosielämän sovelluksiin.

Fastai tutkimusjulkaisuissa

Fastai on syväoppimiskirjasto, joka tarjoaa korkean tason komponentteja huipputulosten saavuttamiseksi nopeasti ja helposti vakiintuneilla syväoppimisalueilla. Samalla se tarjoaa matalan tason komponentteja tutkijoille, jotka haluavat kehittää uusia lähestymistapoja tinkimättä käytettävyydestä, joustavuudesta tai suorituskyvystä. Tämä kaksijakoinen kyvykkyys saavutetaan huolellisesti rakennetulla arkkitehtuurilla, joka hyödyntää Pythonin dynaamisuutta ja PyTorchin joustavuutta. Kirjasto sisältää useita innovatiivisia ominaisuuksia, kuten tyypin perusteella ohjautuvan järjestelmän Pythonille, GPU-optimoidun tietokonenäkö-kirjaston, optimoijan, joka yksinkertaistaa moderneja optimointialgoritmeja, sekä uuden kaksisuuntaisen callback-järjestelmän. Fastai:ta on onnistuneesti käytetty kattavan syväoppimiskurssin luomiseen ja se on laajasti käytössä tutkimuksessa, teollisuudessa ja opetuksessa. Lisätietoja löydät artikkelista arXivissa.

  • Maatalousesimerkki:
    Maatalouden alalla Fastai:ta on käytetty tehokkaasti kasvitautien tunnistusmallin rakentamiseen omenalehtikuvien datalla. Hyödyntämällä esikoulutettua ResNet34-mallia Fastai-kehyksessä tutkimuksessa saavutettiin 93,765 %:n luokittelutarkkuus. Tämä osoittaa kirjaston kyvyn säästää koulutusaikaa ja parantaa mallin suorituskykyä käytännön sovelluksissa. Lisätietoja tutkimuksesta arXivissa.

  • Mallien pakkausesimerkki:
    Lisäksi Fastai:n callback-järjestelmää on hyödynnetty muissa kirjastoissa, kuten FasterAI:ssa, joka keskittyy neuroverkkojen pakkaustekniikoihin, kuten harvennukseen ja karsintaan. Tämä osoittaa Fastai:n monipuolisuuden ja helpon integroitavuuden muihin työkaluihin huipputekniikoiden tehokkaaseen toteutukseen. Toteutuksen yksityiskohdat löytyvät FasterAI-artikkelista arXivissa.

Käyttöesimerkkejä

Asennus

Fastai:n käyttöönotto on helppoa asentamalla se joko condalla tai pipillä. Näin teet sen:

  • Conda (suositeltu Linuxille tai Windowsille):
    conda install -c fastai fastai
  • Pip (toimii kaikilla alustoilla):
    pip install fastai
  • Google Colab:
    Käytä Fastai’ta ilman asennusta hyödyntämällä Google Colabia, joka tukee GPU-ajoympäristöä nopeampaan laskentaan.

Käyttäjät voivat lisäksi tutustua Fastai:n viralliseen dokumentaatioon ja yhteisöfoorumeihin yleisten asennusongelmien ratkaisussa tai etsiessään apua erityisiin kokoonpanoihin. Kirjaston integraatio Jupyter-muistikirjoihin ja Google Colabiin parantaa entisestään sen käytettävyyttä tarjoamalla interaktiivisen ympäristön kokeilulle ja oppimiselle.

Korkean tason API

Fastai:n korkean tason API on suunniteltu helppokäyttöisyyttä ja nopeaa kehitystä ajatellen. Se abstrahoi suuren osan monimutkaisuudesta, jolloin käyttäjä voi keskittyä mallien rakentamiseen ja koulutukseen minimaalisella koodilla. API sopii erityisen hyvin nopeaan prototyyppien rakentamiseen ja ideoiden testaamiseen ilman taustalla olevan PyTorch-kehyksen yksityiskohtiin syventymistä.

Esimerkkejä korkean tason API:n käytöstä

1. Kuvien luokittelu

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)

Tämä esimerkki havainnollistaa, kuinka kuvaluokitin rakennetaan ja koulutetaan Oxford IIT Pets -datalla Fastai:n korkean tason API:lla.

2. Tekstin sentimenttianalyysi

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)

Tässä Fastai’ta käytetään sentimenttianalyysimallin rakentamiseen IMDB-datalla.

3. Taulukkodata

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)

Tämä esimerkki näyttää, miten Fastai’ta käytetään taulukkodatan, erityisesti Adult-datan, kanssa.

Keskitason API

Fastai:n keskitason API tarjoaa enemmän räätälöintimahdollisuuksia kuin korkean tason API, mahdollistaen koulutusprosessin eri osa-alueiden muuttamisen ilman syväsukellusta alimpaan kooditasoon. Se tarjoaa tasapainon käytettävyyden ja joustavuuden välillä, sopien käyttäjille, jotka tarvitsevat enemmän kontrollia mutta arvostavat valmiita komponentteja.

Keskitason API:n komponentit

  • Learner: Ydinkomponentti, joka sisältää mallin, datan ja koulutussilmukan. Voidaan räätälöidä eri arkkitehtuureilla, optimointialgoritmeilla ja mittareilla.
  • Callbacks: Toimintoja, joilla laajennetaan koulutussilmukkaa mukautetuilla toiminnoilla, kuten tallennuspisteillä, oppimisnopeuden säädöillä tai mittarien lokituksella.

Käyttöesimerkki

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

Tässä esimerkissä callback tallentaa mallin parhaan tarkkuuden perusteella koulutuksen aikana, osoittaen keskitason API:n joustavuuden.

Matalan tason API

Edistyneille käyttäjille ja tutkijoille, jotka tarvitsevat täyden kontrollin malleistaan, Fastai:n matalan tason API tarjoaa pääsyn PyTorchin ominaisuuksiin ja optimoituihin rakennuspalikoihin. Tämä API-taso on tarkoitettu niille, jotka haluavat kehittää uusia arkkitehtuureja tai räätälöityjä koulutusrutiineja.

Matalan tason API:n ominaisuuksia

  • Pipeline ja Transforms: Mukautettavissa olevat datankäsittelyketjut, räätälöitävissä tarkkoihin tarpeisiin.
  • Olio-ohjelmoinnilliset tensorit: Parannuksia PyTorchin tensoreihin helpottamaan intuitiivista käsittelyä.
  • Optimoidut operaatiot: Tehokkaat tensorilaskut hyödyntäen PyTorchin suorituskykyä.

Käyttöesimerkki

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

Tämä katkelma näyttää, kuinka luodaan mukautettu dataputki Fastai:n matalan tason API:lla soveltaen sarjan muunnoksia kuvaan.

Fastai käytännössä: julkaistuja esimerkkejä

  1. Fastai: A Layered API for Deep Learning
    Kirjoittajat: Jeremy Howard, Sylvain Gugger
    Fastai on syväoppimiskirjasto, jonka tavoitteena on nopeuttaa syväoppimismallien prototyyppausta ja käyttöönottoa. Se toteuttaa tämän tarjoamalla korkean tason komponentteja vakiotehtäviin ja mahdollistaa tutkijoille syventymisen matalan tason komponentteihin räätälöityihin ratkaisuihin. Artikkeli esittelee kirjaston arkkitehtuuria, joka hyödyntää Pythonin dynaamisuutta ja PyTorchin joustavuutta luodakseen eriytettyjä abstraktioita syväoppimistehtäviin. Fastai:n innovaatioita ovat mm. tyypin perusteella ohjautuva järjestelmä, GPU-optimoitu tietokonenäkö-kirjasto, uusi optimoijan rakenne ja kaksisuuntainen callback-järjestelmä. Helppokäyttöisyys ja huipputulosten mahdollistaminen ovat tehneet siitä suositun tutkimuksessa, teollisuudessa ja opetuksessa. Lue lisää

  2. Microvasculature Segmentation in Human BioMolecular Atlas Program (HuBMAP)
    Kirjoittajat: Youssef Sultan, Yongqiang Wang, James Scanlon, Lisa D’lima
    Tässä tutkimuksessa käytetään Fastai’ta kuvasegmentointiin Human BioMolecular Atlas Programissa (HuBMAP), erityisesti ihmisen munuaisten mikroverisuonirakenteiden segmentointiin. Menetelmä aloitetaan Fastai:n U-Net-mallilla, ja vaihtoehtoisia arkkitehtuureja ja syviä malleja tutkitaan segmentoinnin tarkkuuden parantamiseksi. Työ osoittaa Fastai:n kyvyn toimia perustyökaluna lääketieteellisessä kuvantamisessa ja tarjoaa näkemyksiä edistyneisiin segmentointitekniikoihin sekä niiden vertailuun perustason malleihin. Lue lisää

  3. Egglog Python: A Pythonic Library for E-graphs
    Kirjoittaja: Saul Shanabrook
    Vaikka artikkeli ei käsittele suoraan Fastai’ta, se esittelee egglog-kirjaston Python-sidokset ja korostaa e-graafitekniikoiden integrointia Pythoniin. Lähestymistapa on linjassa Fastai:n filosofian kanssa, jossa hyödynnetään Pythonin vahvuuksia koneoppimisen ja tieteellisen laskennan innovaatioiden edistämiseen. Se osoittaa, miten Python-tyyliset API:t voivat helpottaa yhteistyötä ja innovointia eri aloilla, mahdollisesti täydentäen Fastai:n monipuolisuutta. [Lue lisää](https://arxiv.org/abs/2404

Usein kysytyt kysymykset

Mikä on Fastai?

Fastai on kattava, avoimen lähdekoodin syväoppimiskirjasto, joka on rakennettu PyTorchin päälle. Se yksinkertaistaa neuroverkkojen luontia ja koulutusta korkean tason rajapinnoilla, tukee kuvantunnistusta, NLP:tä, taulukkodataa ja yhteistoiminnallista suodatusta, ja sen tavoitteena on demokratisoida syväoppiminen kaikille käyttäjille taitotasosta riippumatta.

Kuka kehitti Fastai'n?

Fastai'n kehittivät Jeremy Howard ja Rachel Thomas osana missiota tehdä syväoppimisesta saavutettavaa ja käytännöllistä kaikille.

Mikä tekee Fastai'sta ainutlaatuisen?

Fastai tarjoaa kerroksellisen API:n, jossa on korkean, keskitason ja matalan tason komponentteja, käyttäjäystävällisiä abstraktioita, siirto-oppimisen tuen, modulaarisen data block -rajapinnan sekä tehokkaan callback-järjestelmän. Se on avoimen lähdekoodin ja sitä tukee aktiivinen yhteisö.

Mihin Fastai'ta yleisimmin käytetään?

Fastai'ta käytetään tietokonenäköön, luonnollisen kielen käsittelyyn (NLP), taulukkodatan analyysiin, yhteistoiminnalliseen suodatukseen (suositusjärjestelmät) sekä mallien käyttöönottoon tuotantoon. Se on suosittu tutkimuksessa, teollisuudessa ja opetuksessa.

Kuinka asennan Fastai'n?

Voit asentaa Fastai'n conda:lla komennolla 'conda install -c fastai fastai' tai pip:llä komennolla 'pip install fastai'. Se toimii myös saumattomasti Google Colabissa ja Jupyter-muistikirjoissa.

Onko Fastai ilmainen käyttää?

Kyllä, Fastai on täysin avoimen lähdekoodin ohjelmisto Apache 2.0 -lisenssillä. Kaikki ohjelmistot, tutkimukset ja kurssit julkaistaan ilmaiseksi maailmanlaajuista saavutettavuutta varten.

Tutustu Fastaihin ja rakenna tekoälyratkaisuja

Löydä, kuinka Fastai'n korkean tason rajapinnat ja avoimen lähdekoodin työkalut voivat nopeuttaa tekoälyprojekteja ja oppimismatkaa. Kokeile FlowHuntia saumattomaan tekoälykehitykseen.

Lue lisää

Torch
Torch

Torch

Torch on avoimen lähdekoodin koneoppimiskirjasto ja tieteellinen laskentakehys, joka perustuu Luaan ja on optimoitu syväoppimisen ja tekoälyn tehtäviin. Se tarj...

4 min lukuaika
Torch Deep Learning +3
NumPy
NumPy

NumPy

NumPy on avoimen lähdekoodin Python-kirjasto, joka on keskeinen numeerisessa laskennassa ja tarjoaa tehokkaat taulukko-operaatiot ja matemaattiset funktiot. Se ...

5 min lukuaika
NumPy Python +3
Keras
Keras

Keras

Keras on tehokas ja käyttäjäystävällinen avoimen lähdekoodin korkean tason neuroverkkojen API, joka on kirjoitettu Pythonilla ja pystyy toimimaan TensorFlow'n, ...

4 min lukuaika
Keras Deep Learning +3