Hvad er Fastai?

Fastai er et open source dybdelæringsbibliotek bygget på PyTorch, designet til at demokratisere AI ved at gøre udvikling og udrulning af neurale netværk nemt og tilgængeligt.

Kernekomponenter i Fastai

1. Fastai-biblioteket

Fastai-biblioteket er bygget oven på PyTorch-rammeværket og har til formål at gøre dybdelæring mere tilgængelig. Det tilbyder en højniveau-API, der abstraherer mange af de kompleksiteter, der er forbundet med dybdelæring, så brugerne kan fokusere på applikationsspecifikke opgaver frem for indviklede programmeringsdetaljer. Denne abstraktion opnås gennem et lagdelt API-design, der tilbyder både høj- og lavniveau-komponenter til forskellige dybdelæringsopgaver. Bibliotekets funktionalitet strækker sig fra vision og tekstbehandling til tabeldata og kollaborativ filtrering.

Fastai v2 repræsenterer en komplet omskrivning med fokus på hastighed, fleksibilitet og brugervenlighed. Det er bygget på grundlæggende biblioteker som fastcore og fastgpu, som understøtter Fastais højniveau-komponenter og er nyttige for mange programmører og datavidenskabsfolk.

2. Lagdelt API

Fastais lagdelte API er struktureret til at imødekomme forskellige brugerbehov – fra begyndere til avancerede forskere. Højniveau-API’et tilbyder færdige funktioner til træning af modeller på tværs af flere domæner, herunder vision, tekst, tabeldata og kollaborativ filtrering. Disse funktioner leveres med fornuftige standardindstillinger, der forenkler modelopbygningen. Mellemniveau-API’et tilbyder kernefunktioner til dybdelæring og databehandling, mens lavniveau-API’et tilbyder optimerede byggesten og fundament for specialudviklede modeller.

En nøglefunktion i Fastais lagdelte arkitektur er evnen til at udtrykke fælles underliggende mønstre i mange dybdelærings- og databehandlingsteknikker gennem adskilte abstraktioner. Dette muliggøres ved at udnytte Pythons dynamik og PyTorchs fleksibilitet, hvilket tillader balance mellem brugervenlighed, fleksibilitet og ydeevne.

3. Practical Deep Learning for Coders-kursus

Fastai tilbyder et gratis, massivt åbent onlinekursus (MOOC) med titlen “Practical Deep Learning for Coders”. Dette kursus giver praktisk erfaring med dybdelæring, hvor det eneste forudsatte er kendskab til Python. Det dækker forskellige dybdelæringsemner som billedklassifikation, naturlig sprogbehandling og generative adversarial networks (GANs) med fokus på virkelige anvendelser. Kurset suppleres af bogen “Deep Learning for Coders with Fastai and PyTorch”, der går i dybden med AI-applikationer uden at kræve en ph.d.

Vigtige funktioner i Fastai

1. Højniveau-API

Fastais højniveau-API forenkler træningen af dybdelæringsmodeller ved at integrere arkitektur, data og optimering i et sammenhængende system. Den vælger automatisk passende tabsfunktioner og optimeringsalgoritmer, hvilket mindsker risikoen for brugerfejl. Denne API er særlig nyttig for begyndere og dem, der ønsker at anvende eksisterende dybdelæringsmetoder uden at fordybe sig i kompleksiteten i den underliggende kode.

2. Transfer Learning

En af Fastais mest fremtrædende funktioner er understøttelsen af transfer learning, som gør det muligt at træne modeller hurtigt og effektivt ved at udnytte prætrænede netværk. Fastai optimerer denne proces gennem teknikker som batch-normalisering, lagfrysning og differentierede læringsrater. Disse teknikker fremskynder læringen og forbedrer modelpræstationen på tværs af forskellige opgaver.

3. Data Block API

Data block API’et er et fleksibelt system til at definere databehandlings-pipelines. Det gør det muligt for brugere at angive datakilder, transformationer og indlæsning på en modulær måde. Denne API er afgørende for at håndtere komplekse datasæt og sikre, at data forberedes korrekt til modeltræning. Det giver en ensartet tilgang på tværs af domæner, hvilket gør det lettere at anvende dybdelæring på forskellige datatyper.

4. To-vejs callback-system

Fastai introducerer et nyt to-vejs callback-system, der giver hooks ind i træningssløjfen og muliggør dynamiske ændringer af data, modeller eller optimeringsalgoritmer til enhver tid under træningen. Dette system øger fleksibiliteten og tilpasningsmulighederne i træningsprocesserne, så innovative metoder kan implementeres med minimal kodeindsats.

5. Open Source og fællesskabsdrevet

Fastai er et open source-projekt, der hostes på GitHub og er licenseret under Apache License 2.0. Det nyder godt af et levende fællesskab af udviklere og forskere, som bidrager til den løbende udvikling og forbedring. Bibliotekets open source-natur sikrer, at brugerne har adgang til banebrydende teknikker og kan bidrage til dets udvikling. Fastais fællesskab er også en kilde til samarbejdslæring og support for brugere verden over.

Anvendelser og brugsscenarier

Vision

Fastai forenkler udviklingen af computer vision-modeller med minimal kode. For eksempel kan en ImageNet-model finjusteres på et specifikt datasæt, såsom Oxford IIT Pets-datasættet, og opnå høj nøjagtighed med blot få linjer kode. Bibliotekets integration med PyTorch sikrer, at brugerne nemt kan udnytte de nyeste arkitekturer og teknikker.

Tekst

Fastai er udstyret med værktøjer til naturlig sprogbehandling (NLP), hvilket muliggør opgaver som sentimentanalyse, tekstklassifikation og sprogmodellering. Bibliotekets integration med PyTorch muliggør brugen af moderne NLP-arkitekturer, hvilket gør det let at udvikle robuste sproglige modeller, der kan forstå og generere menneskesprog.

Tabeldata

Fastai tilbyder komponenter til behandling af tabeldata og understøtter opgaver som regression og klassifikation. Dets data block API er især nyttigt til transformation og indlæsning af tabeldatasæt, hvilket sikrer, at data behandles effektivt og korrekt i forbindelse med modeltræning. Denne funktion er essentiel for applikationer inden for forretningsanalyse, sundhedssektoren og finans, hvor tabeldata er udbredt.

Kollaborativ filtrering

Kollaborativ filtrering er et andet område, hvor Fastai udmærker sig ved at tilbyde værktøjer til opbygning af anbefalingssystemer. Bibliotekets højniveau-API forenkler oprettelse og evaluering af kollaborative filtreringsmodeller, hvilket gør det lettere at udvikle personlige anbefalinger baseret på brugernes præferencer og adfærd.

Udrulning

Fastai understøtter udrulning af trænede modeller til produktionsmiljøer, så udviklere kan integrere AI-funktioner problemfrit i applikationer. Bibliotekets fokus på praktikalitet sikrer, at overvejelser om udrulning adresseres fra starten, hvilket muliggør effektive og skalerbare løsninger til virkelige anvendelser.

Fastai i videnskabelige artikler

Fastai er et dybdelæringsbibliotek designet til at levere højniveau-komponenter til praktikere, så de hurtigt og nemt kan opnå resultater i verdensklasse inden for standard dybdelæringsdomæner. Samtidig tilbyder det lavniveau-komponenter til forskere, der ønsker at udvikle nye metoder uden at gå på kompromis med brugervenlighed, fleksibilitet eller ydeevne. Denne dobbelte kapabilitet opnås gennem en nøje struktureret arkitektur, der udnytter Pythons dynamik og PyTorchs fleksibilitet. Biblioteket introducerer flere innovative funktioner, herunder et type dispatch-system for Python, et GPU-optimeret computer vision-bibliotek, en optimizer der forenkler moderne optimeringsalgoritmer, og et nyt to-vejs callback-system. Fastai er blevet brugt med succes til at skabe et omfattende dybdelæringskursus, og det anvendes bredt i forskning, industri og undervisning. For flere detaljer kan du læse artiklen på arXiv.

  • Eksempel fra landbruget:
    Inden for landbruget er Fastai effektivt blevet anvendt til at opbygge en klassifikationsmodel til genkendelse af plantesygdomme ved brug af et datasæt med billeder af æbleblade. Ved anvendelse af en prætrænet ResNet34-model med Fastai-rammeværket opnåede studiet en klassifikationsnøjagtighed på 93,765 %. Dette demonstrerer bibliotekets evne til at spare træningstid og forbedre modelpræstationen i praktiske applikationer. Du kan læse mere i studiet på arXiv.

  • Eksempel på modelkomprimering:
    Derudover er Fastais callback-system blevet udnyttet i andre biblioteker såsom FasterAI, der fokuserer på komprimeringsteknikker som sparsificering og beskæring af neurale netværk. Dette viser Fastais alsidighed og lette integration med andre værktøjer til at udføre banebrydende teknikker effektivt. Detaljer om denne implementering findes i FasterAI-artiklen på arXiv.

Eksempler på brug

Installation

For at begynde at bruge fastai kan du nemt installere det med enten conda eller pip. Sådan gør du:

  • Conda (anbefales til Linux eller Windows):
    conda install -c fastai fastai
  • Pip (fungerer på tværs af platforme):
    pip install fastai
  • Google Colab:
    Brug fastai uden installation ved at benytte Google Colab, som understøtter GPU-runtime for hurtigere beregninger.

Derudover kan brugere udforske fastais officielle dokumentation og fællesskabsfora for fejlfinding af almindelige installationsproblemer eller for at finde løsninger på specifikke konfigurationer. Bibliotekets integration med Jupyter-notebooks og Google Colab øger dets anvendelighed ved at tilbyde et interaktivt miljø til eksperimenter og læring.

Højniveau-API

Højniveau-API’et i fastai er designet til brugervenlighed og hurtig udvikling. Det abstraherer meget af kompleksiteten, så brugerne kan fokusere på at opbygge og træne modeller med minimal kode. API’et er særligt gavnligt for hurtigt at prototype modeller og eksperimentere med idéer uden at gå i dybden med de lavniveau-detaljer, som PyTorch er baseret på.

Eksempler på brug af højniveau-API

1. Billedklassifikation

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 eksempel viser, hvordan man sætter en billedklassifikationsmodel op og træner den på Oxford IIT Pets-datasættet med fastais højniveau-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 bruges fastai til at opbygge en sentimentanalysemodel på IMDB-datasættet.

3. Tabeldata

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 eksempel illustrerer brugen af fastai til tabeldata, specifikt Adult-datasættet.

Mellemniveau-API

Mellemniveau-API’et i fastai tilbyder flere tilpasningsmuligheder end højniveau-API’et og gør det muligt for brugere at ændre forskellige aspekter af træningsprocessen uden at dykke helt ned i de laveste detaljer. Det giver en balance mellem brugervenlighed og fleksibilitet og henvender sig til brugere, som har brug for mere kontrol over deres modeller, men stadig sætter pris på bekvemmeligheden ved foruddefinerede komponenter.

Komponenter i mellemniveau-API’et

  • Learner: En kernekomponent, der samler model, data og træningssløjfe. Den kan tilpasses med forskellige arkitekturer, optimizere og metrikker.
  • Callbacks: Funktioner, der gør det muligt at udvide træningssløjfen med brugerdefineret adfærd, såsom at gemme checkpoints, justere læringsrater eller logge metrikker.

Eksempel på brug

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

I dette eksempel bruges en callback til at gemme modellen med den bedste nøjagtighed under træningen, hvilket viser fleksibiliteten i mellemniveau-API’et.

Lavniveau-API

For avancerede brugere og forskere, der har brug for fuld kontrol over deres modeller, giver fastais lavniveau-API adgang til de underliggende PyTorch-funktioner og optimerede byggesten. Dette niveau af API’et er tiltænkt dem, der ønsker at udfordre grænserne for dybdelæring ved at designe nye arkitekturer eller implementere brugerdefinerede træningsrutiner.

Funktioner i lavniveau-API’et

  • Pipeline og transforms: Tilpasningsdygtige databehandlingssekvenser, der kan tilpasses specifikke behov.
  • Objektorienterede tensors: Udvidelser til PyTorch-tensors, der gør manipulation mere intuitiv.
  • Optimerede operationer: Effektive tensoroperationer, der udnytter PyTorchs kapacitet.

Eksempel på brug

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

Denne kode viser, hvordan man opretter en brugerdefineret datapipeline med fastais lavniveau-API og anvender en række transformationer på et billede.

Fastai i praksis: Publicerede eksempler

  1. Fastai: A Layered API for Deep Learning
    Forfattere: Jeremy Howard, Sylvain Gugger
    Fastai er et dybdelæringsbibliotek designet til at lette hurtig prototypning og udrulning af dybdelæringsmodeller. Det opnår dette ved at tilbyde højniveau-komponenter til standard dybdelæringsopgaver, samtidig med at forskere kan dykke ned i lavniveau-komponenter for specialtilpassede løsninger. Denne artikel beskriver bibliotekets arkitektur, der udnytter Pythons dynamik og PyTorchs fleksibilitet til at skabe adskilte abstraktioner for dybdelæringsopgaver. Fastais innovationer inkluderer et type dispatch-system, et GPU-optimeret computer vision-bibliotek, et nyt optimizer-design og et to-vejs callback-system. Bibliotekets brugervenlighed og evne til at levere resultater i verdensklasse har gjort det populært i forskning, industri og undervisning. Læs mere

  2. Microvasculature Segmentation in Human BioMolecular Atlas Program (HuBMAP)
    Forfattere: Youssef Sultan, Yongqiang Wang, James Scanlon, Lisa D’lima
    Dette studie anvender Fastai til billedsegmentering i Human BioMolecular Atlas Program (HuBMAP), med fokus på segmentering af mikrokarstrukturer i menneskenyrer. Metoden starter med en Fastai U-Net-model og udforsker alternative arkitekturer og dybe modeller for at forbedre segmenteringsnøjagtigheden. Arbejdet fremhæver Fastais evne til at fungere som et grundlæggende værktøj i medicinsk billedbehandling og giver indblik i avancerede segmenteringsteknikker og deres benchmarking mod basismodeller. Læs mere

  3. Egglog Python: A Pythonic Library for E-graphs
    Forfatter: Saul Shanabrook
    Selvom denne artikel ikke direkte omhandler Fastai, introducerer den Python-bindings til egglog-biblioteket med fokus på integration af e-graph-teknikker i Python. Denne tilgang flugter med Fastais filosofi om at udnytte Pythons styrker til at fremme innovation inden for maskinlæring og videnskabelige beregninger. Den illustrerer, hvordan Pythoniske API’er kan fremme samarbejde og innovation på tværs af domæner og potentielt supplere Fastais alsidighed. [Læs mere](https://arxiv.org/abs/2404

Ofte stillede spørgsmål

Hvad er Fastai?

Fastai er et omfattende, open source dybdelæringsbibliotek bygget oven på PyTorch. Det forenkler oprettelse og træning af neurale netværk gennem højniveau-API'er, understøtter vision, NLP, tabeldata og kollaborativ filtrering, og har til formål at demokratisere dybdelæring for brugere på alle niveauer.

Hvem har udviklet Fastai?

Fastai blev udviklet af Jeremy Howard og Rachel Thomas som en del af en mission om at gøre dybdelæring tilgængelig og praktisk for alle.

Hvad gør Fastai unik?

Fastai tilbyder en lagdelt API med høj-, mellem- og lavniveau-komponenter, brugervenlige abstraktioner, understøttelse af transfer learning, en modulær datablock-API og et kraftfuldt callback-system. Det er open source og understøttes af et levende fællesskab.

Hvad er almindelige anvendelser for Fastai?

Fastai bruges til computer vision, naturlig sprogbehandling (NLP), tabeldataanalyse, kollaborativ filtrering (anbefalingssystemer) og udrulning af modeller i produktion. Det er populært i forskning, industri og uddannelse.

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å problemfrit i Google Colab og Jupyter-notebooks.

Er Fastai gratis at bruge?

Ja, Fastai er fuldstændig open source under Apache License 2.0. Al software, forskning og kurser udgives gratis for at sikre global tilgængelighed.

Udforsk Fastai og byg AI-løsninger

Opdag, hvordan Fastais højniveau-API'er og open source-værktøjer kan accelerere dine AI-projekter og din læringsrejse. Prøv FlowHunt for problemfri AI-udvikling.

Lær mere

Keras
Keras

Keras

Keras er et kraftfuldt og brugervenligt open source API til avancerede neurale netværk, skrevet i Python og i stand til at køre ovenpå TensorFlow, CNTK eller Th...

5 min læsning
Keras Deep Learning +3
AllenNLP
AllenNLP

AllenNLP

AllenNLP er et robust open source-bibliotek til NLP-forskning, bygget på PyTorch af AI2. Det tilbyder modulære, udvidelige værktøjer, fortrænede modeller og nem...

3 min læsning
NLP Open Source +6
Brugerdefineret OpenAI LLM
Brugerdefineret OpenAI LLM

Brugerdefineret OpenAI LLM

Lås op for kraften i brugerdefinerede sprogmodeller med komponenten Custom OpenAI LLM i FlowHunt. Integrer problemfrit dine egne OpenAI-kompatible modeller—incl...

3 min læsning
AI LLM +5