Hva er Fastai?

Fastai er et åpen kildekode dyp læringsbibliotek på PyTorch, designet for å demokratisere KI ved å gjøre utvikling og distribusjon av nevrale nettverk enkelt og tilgjengelig.

Kjernekomponenter i Fastai

1. Fastai-biblioteket

Fastai-biblioteket er bygget på PyTorch-rammeverket og har som mål å gjøre dyp læring mer tilgjengelig. Det tilbyr et høynivå-API som abstraherer mange av kompleksitetene forbundet med dyp læring, slik at brukerne kan fokusere på oppgavespesifikke oppgaver i stedet for intrikate programmeringsdetaljer. Denne abstraksjonen oppnås gjennom et lagdelt API-design, som gir både høynivå- og lavnivå-komponenter for ulike oppgaver innen dyp læring. Bibliotekets funksjonalitet strekker seg fra bilde- og tekstbehandling til tabulære data og samarbeidsfiltrering.

Fastai v2 representerer en fullstendig omskriving med fokus på hastighet, fleksibilitet og brukervennlighet. Det er bygget på grunnleggende biblioteker som fastcore og fastgpu, som støtter de høynivå-komponentene i Fastai og er nyttige for mange programmerere og dataforskere.

2. Lagdelt API

Fastais lagdelte API er strukturert for å møte ulike brukeres behov – fra nybegynnere til avanserte forskere. Høynivå-API-et tilbyr klare funksjoner for trening av modeller innen flere domener, inkludert bilde, tekst, tabulære data og samarbeidsfiltrering. Disse funksjonene har fornuftige standardinnstillinger som forenkler modellbyggingsprosessen. Mellomnivå-API-et gir kjernefunksjoner for dyp læring og databehandling, mens lavnivå-API-et tilbyr optimaliserte primitive funksjoner og fundament for skreddersydd modellutvikling.

En nøkkelfunksjon i Fastais lagdelte arkitektur er evnen til å uttrykke underliggende mønstre for mange dyp lærings- og databehandlingsteknikker gjennom frakoblede abstraksjoner. Dette muliggjøres ved å utnytte dynamikken i Python og fleksibiliteten i PyTorch, slik at man får en balanse mellom brukervennlighet, fleksibilitet og ytelse.

3. Kurset “Practical Deep Learning for Coders”

Fastai tilbyr et gratis, massivt åpent nettkurs (MOOC) kalt “Practical Deep Learning for Coders”. Dette kurset gir praktisk erfaring med dyp læring, og krever kun kunnskaper i Python som forutsetning. Det dekker ulike emner innen dyp læring, som bildeklassifisering, naturlig språkprosessering og generative adversarial networks (GANs), med fokus på virkelige anvendelser. Kurset kompletteres av boken “Deep Learning for Coders with Fastai and PyTorch”, som går i dybden på KI-applikasjoner uten at man trenger en doktorgrad.

Nøkkelfunksjoner i Fastai

1. Høynivå-API

Fastais høynivå-API forenkler treningen av dyp læringsmodeller ved å integrere arkitektur, data og optimalisering i et helhetlig system. Det velger automatisk passende tapsfunksjoner og optimaliseringsalgoritmer, noe som reduserer sannsynligheten for brukerfeil. Dette API-et er spesielt nyttig for nybegynnere og de som ønsker å ta i bruk eksisterende metoder for dyp læring uten å fordype seg i kompleksiteten i den underliggende koden.

2. Overføringslæring

En av Fastais fremste egenskaper er støtte for overføringslæring, som gjør det mulig å trene modeller raskt og effektivt ved å utnytte forhåndstrente nettverk. Fastai optimaliserer denne prosessen gjennom teknikker som batch-normalisering, frysing av lag og diskriminative læringsrater. Disse teknikkene akselererer læringsprosessen og forbedrer modellens ytelse på tvers av ulike oppgaver.

3. Data Block API

Data block API er et fleksibelt system for å definere databehandlingspipelines. Det lar brukerne spesifisere datakilder, transformasjoner og lastemekanismer på en modulær måte. Dette API-et er avgjørende for å håndtere komplekse datasett og sikre at dataene er korrekt forberedt for modelltrening. Det gir en konsistent tilnærming på tvers av domener, noe som gjør det enklere å bruke dyp læring på ulike typer data.

4. Toveis callback-system

Fastai introduserer et nytt toveis callback-system som gir kroker inn i treningsløkken, slik at man kan gjøre dynamiske endringer i data, modeller eller optimalisatorer når som helst under trening. Dette systemet øker fleksibiliteten og tilpasningsmulighetene i modelltreningsprosesser, og gjør det mulig å implementere innovative tilnærminger med minimal kodeinnsats.

5. Åpen kildekode og fellesskapsdrevet

Fastai er et åpen kildekode-prosjekt på GitHub, lisensiert under Apache License 2.0. Det nyter godt av et levende fellesskap av utviklere og forskere som bidrar til kontinuerlig utvikling og forbedring. Bibliotekets åpne natur sikrer at brukerne har tilgang til banebrytende teknikker og kan bidra til videre utvikling. Fastais fellesskap gir også rom for samarbeid og støtte for brukere over hele verden.

Bruksområder og anvendelser

Bildeanalyse

Fastai forenkler utviklingen av modeller for bildeanalyse med minimal kode. For eksempel kan en ImageNet-modell finjusteres på et spesifikt datasett, som Oxford IIT Pets-datasettet, og oppnå høy nøyaktighet med bare noen få kodelinjer. Bibliotekets integrasjon med PyTorch gjør det enkelt å utnytte de nyeste arkitekturene og teknikkene.

Tekst

Fastai er utstyrt med verktøy for naturlig språkprosessering (NLP), som muliggjør oppgaver som sentimentanalyse, tekstklassifisering og språkmodellering. Integrasjonen med PyTorch gir tilgang til moderne NLP-arkitekturer, som gjør det mulig å utvikle robuste språkmodeller som kan forstå og generere menneskelig språk.

Tabulære data

Fastai tilbyr komponenter for behandling av tabulære data, og støtter oppgaver som regresjon og klassifisering. Dets data block API er spesielt nyttig for transformasjon og lasting av tabulære datasett, slik at dataene behandles effektivt og nøyaktig for modelltrening. Denne funksjonen er essensiell for applikasjoner innen forretningsanalyse, helsevesen og finans, hvor tabulære data er utbredt.

Samarbeidsfiltrering

Samarbeidsfiltrering er et annet område hvor Fastai utmerker seg, og tilbyr verktøy for å bygge anbefalingssystemer. Bibliotekets høynivå-API forenkler opprettelsen og evalueringen av samarbeidsfiltreringsmodeller, slik at det blir lettere å utvikle personlige anbefalinger for brukere basert på deres preferanser og atferd.

Distribusjon

Fastai støtter distribusjon av trente modeller til produksjonsmiljøer, slik at utviklere kan integrere KI-funksjoner sømløst i applikasjoner. Bibliotekets fokus på praktisk anvendelse sikrer at distribusjon blir ivaretatt fra starten av, og muliggjør effektive og skalerbare løsninger for virkelige applikasjoner.

Fastai i forskningsartikler

Fastai er et dyp læringsbibliotek laget for å gi praktiske brukere høynivå-komponenter slik at de raskt og enkelt kan oppnå banebrytende resultater innen standard domener for dyp læring. Samtidig tilbyr det lavnivå-komponenter for forskere som ønsker å utvikle nye tilnærminger uten å gi avkall på brukervennlighet, fleksibilitet eller ytelse. Denne doble funksjonaliteten oppnås gjennom en nøye strukturert arkitektur som utnytter dynamikken i Python og fleksibiliteten i PyTorch. Biblioteket introduserer flere innovative funksjoner, blant annet et type-dispatch-system for Python, et GPU-optimalisert bibliotek for bildeanalyse, en optimalisator som forenkler moderne optimaliseringsalgoritmer, og et nytt 2-veis callback-system. Fastai har med suksess blitt brukt til å lage et omfattende dyp læringskurs, og det benyttes bredt innen forskning, industri og undervisning. For mer informasjon kan du lese artikkelen på arXiv.

  • Eksempel fra landbruk:
    Innen landbruk har Fastai blitt effektivt brukt til å bygge en klassifiseringsmodell for gjenkjenning av plantesykdommer ved bruk av et datasett med bilder av epleblader. Ved å benytte en forhåndstrent ResNet34-modell med Fastai-rammeverket, oppnådde studien en klassifiseringsnøyaktighet på 93,765 %. Dette demonstrerer bibliotekets evne til å spare treningstid og forbedre modellens ytelse i praktiske anvendelser. Mer informasjon finner du i studien på arXiv.

  • Eksempel på modellkomprimering:
    I tillegg har Fastais callback-system blitt brukt i andre biblioteker som FasterAI, som fokuserer på komprimeringsteknikker for nevrale nettverk som sparsifisering og beskjæring. Dette viser Fastais allsidighet og hvor enkelt det er å integrere med andre verktøy for å utføre banebrytende teknikker effektivt. Detaljer om denne implementeringen finnes i FasterAI-artikkelen på arXiv.

Eksempler på bruk

Installasjon

For å komme i gang med fastai, kan du enkelt installere det med enten conda eller pip. Slik gjør du:

  • Conda (Anbefalt for Linux eller Windows):
    conda install -c fastai fastai
  • Pip (Fungerer på tvers av plattformer):
    pip install fastai
  • Google Colab:
    Bruk fastai uten installasjon ved å benytte Google Colab, som støtter GPU-runtime for raskere beregninger.

I tillegg kan brukere utforske fastais offisielle dokumentasjon og fellesskapsfora for feilsøking av vanlige installasjonsproblemer eller for å finne løsninger på spesifikke oppsett. Bibliotekets integrasjon med Jupyter-notatbøker og Google Colab forbedrer brukervennligheten ytterligere ved å gi et interaktivt miljø for eksperimentering og læring.

Høynivå-API

Høynivå-API-et i fastai er designet for brukervennlighet og rask utvikling. Det abstraherer mye av kompleksiteten, slik at brukerne kan fokusere på å bygge og trene modeller med minimal kode. API-et er spesielt nyttig for rask prototyping av modeller og iterasjon over ideer uten å måtte gå inn i detaljene i det underliggende PyTorch-rammeverket.

Eksempler på bruk av høynivå-API

1. Bildeklassifisering

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)

Dette eksempelet demonstrerer hvordan man setter opp og trener en bildeklassifiseringsmodell på Oxford IIT Pets-datasettet ved hjelp av fastais høynivå-API.

2. Tekst-sentimentanalyse

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)

Her brukes fastai til å bygge en modell for sentimentanalyse på IMDB-datasettet.

3. Tabulære data

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)

Dette eksempelet viser bruk av fastai for tabulære data, spesielt Adult-datasettet.

Mellomnivå-API

Mellomnivå-API-et i fastai gir flere tilpasningsmuligheter enn høynivå-API-et, slik at brukerne kan endre ulike aspekter av treningsprosessen uten å gå helt ned på lavnivå. Det gir en balanse mellom brukervennlighet og fleksibilitet, og er tilpasset brukere som trenger mer kontroll over modellene sine, men fortsatt ønsker bekvemmeligheten av forhåndsdefinerte komponenter.

Komponenter i mellomnivå-API

  • Learner: En kjernekomponent som kapsler inn modellen, data og treningsløkke. Kan tilpasses med ulike arkitekturer, optimalisatorer og metrikker.
  • Callbacks: Funksjoner som lar deg utvide treningsløkken med tilpassede handlinger, som å lagre sjekkpunkter, justere læringsrater eller logge metrikker.

Eksempel på bruk

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

I dette eksempelet brukes en callback for å lagre modellen med best nøyaktighet under trening, noe som viser fleksibiliteten i mellomnivå-API-et.

Lavnivå-API

For avanserte brukere og forskere som trenger full kontroll over modellene sine, gir fastais lavnivå-API tilgang til de underliggende PyTorch-funksjonalitetene og optimaliserte primitive operasjoner. Dette nivået av API-et er ment for de som ønsker å pushe grensene for dyp læring ved å designe nye arkitekturer eller implementere egendefinerte treningsrutiner.

Funksjoner ved lavnivå-API

  • Pipeline og transformasjoner: Tilpassbare databehandlingssekvenser som kan skreddersys etter behov.
  • Objektorienterte tensores: Utvidelser til PyTorch-tensorer som gir mer intuitiv manipulasjon.
  • Optimaliserte operasjoner: Effektive tensoroperasjoner som utnytter PyTorchs kapabiliteter.

Eksempel på bruk

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

Denne kodesnutten viser hvordan man lager en egendefinert datapipeline med fastais lavnivå-API, og bruker en serie transformasjoner på et bilde.

Fastai i praksis: Publiserte eksempler

  1. Fastai: A Layered API for Deep Learning
    Forfattere: Jeremy Howard, Sylvain Gugger
    Fastai er et dyp læringsbibliotek designet for å lette rask prototyping og distribusjon av dyp læringsmodeller. Det oppnår dette ved å tilby høynivå-komponenter for standard dyp læringsoppgaver, samtidig som forskere kan gå i dybden med lavnivå-komponenter for skreddersydde løsninger. Denne artikkelen beskriver bibliotekets arkitektur, som utnytter Pythons dynamikk og PyTorchs fleksibilitet for å skape frakoblede abstraksjoner for dyp læring. Fastais innovasjoner inkluderer et type-dispatch-system, et GPU-optimalisert bildebehandlingsbibliotek, et nytt optimalisatordesign og et toveis callback-system, blant annet. Bibliotekets brukervennlighet og evne til å produsere banebrytende resultater har gjort det populært innen forskning, industri og utdanning. Les mer

  2. Microvasculature Segmentation in Human BioMolecular Atlas Program (HuBMAP)
    Forfattere: Youssef Sultan, Yongqiang Wang, James Scanlon, Lisa D’lima
    Denne studien benytter Fastai for bildesegmentering i Human BioMolecular Atlas Program (HuBMAP), med fokus på segmentering av mikrovaskulære strukturer i menneskelige nyrer. Metodikken starter med en Fastai U-Net-modell og utforsker alternative arkitekturer og dype modeller for å forbedre segmenteringsnøyaktigheten. Dette arbeidet fremhever Fastais evne til å være et grunnleggende verktøy i medisinsk bildebehandling, og gir innsikt i avanserte segmenteringsteknikker og deres benchmarking mot basismodeller. Les mer

  3. Egglog Python: A Pythonic Library for E-graphs
    Forfatter: Saul Shanabrook
    Selv om denne artikkelen ikke handler direkte om Fastai, introduserer den Python-tilknytninger for egglog-biblioteket, med vekt på integrering av e-graph-teknikker i Python. Denne tilnærmingen samsvarer med Fastais filosofi om å utnytte Pythons styrker for å fremme innovasjon innen maskinlæring og vitenskapelig databehandling. Den illustrerer hvordan Pythoniske API-er kan legge til rette for samarbeid og innovasjon på tvers av domener, og potensielt komplettere Fastais allsidighet. [Les mer](https://arxiv.org/abs/2404

Vanlige spørsmål

Hva er Fastai?

Fastai er et omfattende, åpen kildekode dyp læringsbibliotek bygget på toppen av PyTorch. Det forenkler opprettelse og trening av nevrale nettverk gjennom høynivå-API-er, støtter bildeanalyse, NLP, tabulære data og samarbeidsfiltrering, og har som mål å demokratisere dyp læring for brukere på alle ferdighetsnivåer.

Hvem har utviklet Fastai?

Fastai ble utviklet av Jeremy Howard og Rachel Thomas som en del av et oppdrag for å gjøre dyp læring tilgjengelig og praktisk for alle.

Hva gjør Fastai unikt?

Fastai tilbyr et lagdelt API med høynivå-, mellomnivå- og lavnivå-komponenter, brukervennlige abstraksjoner, støtte for overføringslæring, en modulær datablokk-API og et kraftig callback-system. Det er åpen kildekode og støttes av et levende fellesskap.

Hva er vanlige brukstilfeller for Fastai?

Fastai brukes til bildeanalyse, naturlig språkprosessering (NLP), analyse av tabulære data, samarbeidsfiltrering (anbefalingssystemer) og distribusjon av modeller til produksjon. Det er populært innen forskning, industri og utdanning.

Hvordan installerer jeg Fastai?

Du kan installere Fastai via conda med 'conda install -c fastai fastai' eller via pip med 'pip install fastai'. Det fungerer også sømløst i Google Colab og Jupyter-notatbøker.

Er Fastai gratis å bruke?

Ja, Fastai er fullt ut åpen kildekode under Apache License 2.0. All programvare, forskning og kurs publiseres gratis for å sikre global tilgjengelighet.

Utforsk Fastai og Bygg KI-løsninger

Oppdag hvordan Fastais høynivå-API-er og åpen kildekode-verktøy kan akselerere dine KI-prosjekter og læringsreise. Prøv FlowHunt for sømløs KI-utvikling.

Lær mer

AllenNLP

AllenNLP

AllenNLP er et robust, åpen kildekode-bibliotek for NLP-forskning, bygget på PyTorch av AI2. Det tilbyr modulære, utvidbare verktøy, forhåndstrente modeller og ...

3 min lesing
NLP Open Source +6
Keras

Keras

Keras er et kraftig og brukervennlig åpen kildekode API for nevrale nettverk på høyt nivå, skrevet i Python og kan kjøres på toppen av TensorFlow, CNTK eller Th...

5 min lesing
Keras Deep Learning +3
PyTorch

PyTorch

PyTorch er et åpen kildekode maskinlæringsrammeverk utviklet av Meta AI, kjent for sin fleksibilitet, dynamiske beregningsgrafer, GPU-akselerasjon og sømløs Pyt...

8 min lesing
PyTorch Deep Learning +4