Co je Fastai?

Fastai je open-source knihovna pro hluboké učení na PyTorch, navržená pro demokratizaci AI tím, že usnadňuje vývoj a nasazení neuronových sítí.

Základní komponenty Fastai

1. Knihovna Fastai

Knihovna Fastai je postavena na frameworku PyTorch a jejím cílem je učinit hluboké učení přístupnějším. Poskytuje vysoce úrovňové API, které abstrahuje mnoho složitostí spojených s hlubokým učením, takže se uživatelé mohou soustředit na konkrétní úlohy místo detailního programování. Této abstrakce je dosaženo vrstveným návrhem API, které nabízí jak vysoce, tak nízkoúrovňové komponenty pro různé úlohy hlubokého učení. Funkčnost knihovny pokrývá od zpracování obrazu a textu po tabulková data a kolaborativní filtrování.

Fastai v2 představuje kompletní přepis zaměřený na zvýšení rychlosti, flexibility a jednoduchosti použití. Je postaveno na základních knihovnách jako fastcore a fastgpu, které podporují vysoce úrovňové komponenty Fastai a jsou užitečné pro řadu programátorů a datových vědců.

2. Vrstvené API

Vrstvené API Fastai je navrženo tak, aby vyhovovalo různým potřebám uživatelů – od začátečníků po pokročilé výzkumníky. Vysoce úrovňové API nabízí připravené funkce pro trénování modelů v několika doménách, včetně obrazu, textu, tabulkových dat a kolaborativního filtrování. Tyto funkce mají rozumná výchozí nastavení, která urychlují proces tvorby modelu. Střední úroveň API poskytuje základní metody pro hluboké učení a zpracování dat, zatímco nízkoúrovňové API nabízí optimalizované primitivy a základy pro tvorbu vlastních modelů.

Klíčovou vlastností vrstvené architektury Fastai je schopnost vyjadřovat společné základní vzory mnoha technik hlubokého učení a zpracování dat prostřednictvím oddělených abstrakcí. To je umožněno dynamikou Pythonu a flexibilitou PyTorch, což dovoluje najít rovnováhu mezi jednoduchostí použití, flexibilitou a výkonem.

3. Kurz „Praktické hluboké učení pro programátory“

Fastai nabízí bezplatný masivní online kurz (MOOC) s názvem „Praktické hluboké učení pro programátory“. Tento kurz poskytuje praktické zkušenosti s hlubokým učením, přičemž vyžaduje pouze znalost Pythonu jako předpoklad. Pokrývá různá témata hlubokého učení, jako je klasifikace obrazů, zpracování přirozeného jazyka a generativní protivné sítě (GAN), s důrazem na reálné aplikace. Kurz je doplněn knihou „Deep Learning for Coders with Fastai and PyTorch“, která se věnuje AI aplikacím bez nutnosti mít doktorát.

Klíčové vlastnosti Fastai

1. Vysoce úrovňové API

Vysoce úrovňové API Fastai zjednodušuje trénování modelů hlubokého učení tím, že integruje architekturu, data a optimalizaci do jednoho systému. Automaticky vybírá vhodné ztrátové funkce a optimalizační algoritmy, čímž snižuje riziko uživatelských chyb. Toto API je obzvláště užitečné pro začátečníky a ty, kteří chtějí využívat existující metody hlubokého učení bez nutnosti zabývat se složitostmi kódu.

2. Transfer Learning

Jednou z hlavních předností Fastai je podpora transfer learningu, která umožňuje rychlé a efektivní trénování modelů pomocí předtrénovaných sítí. Fastai tento proces optimalizuje pomocí technik jako je batch-normalizace, zamrzání vrstev a diskriminační učící rychlosti. Tyto techniky urychlují učení a zvyšují výkonnost modelů v různých úlohách.

3. API pro datové bloky

API pro datové bloky je flexibilní systém pro definování datových pipeline. Umožňuje uživatelům specifikovat zdroje dat, transformace a způsoby načítání modulárně. Toto API je klíčové pro správu komplexních datových sad a zajišťuje správnou přípravu dat pro trénování modelů. Poskytuje konzistentní přístup napříč různými doménami, což usnadňuje použití hlubokého učení na různé typy dat.

4. Obousměrný callback systém

Fastai představuje inovativní obousměrný callback systém, který poskytuje háčky do trénovací smyčky a umožňuje dynamické změny dat, modelů nebo optimalizátorů v libovolném okamžiku během tréninku. Tento systém zvyšuje flexibilitu a přizpůsobitelnost trénovacích procesů, což dovoluje implementovat inovativní přístupy s minimálním množstvím kódu.

5. Open Source a řízeno komunitou

Fastai je open-source projekt hostovaný na GitHubu pod licencí Apache License 2.0. Těží z aktivní komunity vývojářů a výzkumníků, kteří přispívají k jeho dalšímu rozvoji a vylepšování. Otevřenost knihovny zajišťuje, že uživatelé mají přístup k nejnovějším technikám a mohou se zapojit do jejího vývoje. Komunita Fastai je také zdrojem spolupráce a podpory pro uživatele po celém světě.

Případy použití a aplikace

Vision

Fastai zjednodušuje tvorbu modelů počítačového vidění s minimem kódu. Například model pro ImageNet lze snadno doladit na konkrétní dataset, jako je Oxford IIT Pets, a dosáhnout vysoké přesnosti jen pomocí několika řádků kódu. Integrace knihovny s PyTorch umožňuje využívat nejmodernější architektury a techniky.

Text

Fastai je vybaven nástroji pro zpracování přirozeného jazyka (NLP), což umožňuje úlohy jako analýzu sentimentu, klasifikaci textu či jazykové modelování. Propojení s PyTorch dovoluje používat moderní NLP architektury a vytvářet robustní jazykové modely schopné porozumět a generovat lidský jazyk.

Tabulková data

Fastai nabízí komponenty pro zpracování tabulkových dat, včetně úloh jako regrese či klasifikace. Jeho API pro datové bloky je obzvláště užitečné pro transformaci a načítání tabulkových datasetů, což zajišťuje efektivní a přesné zpracování dat pro trénování modelu. Tato funkce je zásadní pro aplikace v business analytice, zdravotnictví či financích, kde tabulková data dominují.

Kolaborativní filtrování

Kolaborativní filtrování je další oblastí, ve které Fastai vyniká – nabízí nástroje pro tvorbu doporučovacích systémů. Vysoce úrovňové API knihovny usnadňuje vytváření i vyhodnocování těchto modelů, což umožňuje jednoduše vyvíjet personalizovaná doporučení na základě preferencí a chování uživatelů.

Nasazení

Fastai podporuje nasazení natrénovaných modelů do produkčních prostředí, takže vývojáři mohou bez problémů integrovat AI do aplikací. Důraz na praktičnost zajišťuje, že potřeby nasazení jsou řešeny již od začátku, což umožňuje efektivní a škálovatelná řešení pro reálné aplikace.

Fastai ve vědeckých publikacích

Fastai je knihovna pro hluboké učení navržená tak, aby poskytovala vysoce úrovňové komponenty pro rychlé a snadné dosažení špičkových výsledků v běžných doménách hlubokého učení. Zároveň nabízí nízkoúrovňové komponenty pro vývojáře a výzkumníky, kteří chtějí vytvářet nové přístupy bez kompromisů v jednoduchosti použití, flexibilitě či výkonu. Tato dvojí schopnost je dosažena pečlivě navrženou architekturou využívající dynamiku Pythonu a flexibilitu PyTorch. Knihovna zavádí několik inovativních prvků, včetně type dispatch systému pro Python, GPU-optimalizované knihovny pro počítačové vidění, optimalizátoru zjednodušujícího moderní optimalizační algoritmy a nového obousměrného callback systému. Fastai byl úspěšně použit pro tvorbu komplexního kurzu hlubokého učení a je široce využíván ve výzkumu, průmyslu i výuce. Podrobnosti najdete ve studii na arXiv.

  • Příklad z oblasti zemědělství:
    V zemědělství byl Fastai efektivně použit k vytvoření modelu pro rozpoznávání chorob rostlin pomocí datasetu snímků jablečných listů. S využitím předtrénovaného modelu ResNet34 ve frameworku Fastai studie dosáhla klasifikační přesnosti 93,765 %. To ukazuje schopnost knihovny zkrátit dobu tréninku a zvýšit výkonnost modelů v praxi. Více informací najdete ve studii na arXiv.

  • Příklad komprese modelu:
    Callback systém Fastai byl využit také v jiných knihovnách, například FasterAI, která se soustředí na kompresi neuronových sítí, jako je sparsifikace a ořezávání (pruning). To demonstruje univerzálnost Fastai a snadnou integraci s dalšími nástroji pro efektivní provádění špičkových technik. Podrobnosti o této implementaci najdete v FasterAI paper na arXiv.

Příklady použití

Instalace

Chcete-li začít používat fastai, můžete jej snadno nainstalovat pomocí conda nebo pip. Zde je postup:

  • Conda (doporučeno pro Linux nebo Windows):
    conda install -c fastai fastai
  • Pip (funguje napříč platformami):
    pip install fastai
  • Google Colab:
    Používejte fastai bez instalace přímo v Google Colab, který podporuje GPU prostředí pro rychlejší výpočty.

Uživatelé mohou také prozkoumat oficiální dokumentaci fastai a komunitní fóra pro řešení běžných problémů s instalací nebo hledání řešení pro specifická nastavení. Integrace knihovny s Jupyter notebooky a Google Colab dále zvyšuje její uživatelskou přívětivost díky interaktivnímu prostředí pro experimentování a učení.

Vysoce úrovňové API

Vysoce úrovňové API ve fastai je navrženo pro snadné použití a rychlý vývoj. Abstrahuje mnoho složitostí, takže se uživatelé mohou soustředit na sestavení a trénování modelů s minimálním množstvím kódu. API je zvláště výhodné pro rychlé prototypování a iteraci bez nutnosti zabývat se nízkoúrovňovými detaily PyTorch.

Příklady použití vysoce úrovňového API

1. Klasifikace obrázků

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 příklad ukazuje, jak nastavit a natrénovat klasifikátor obrázků na datasetu Oxford IIT Pets pomocí vysoce úrovňového API fastai.

2. Analýza sentimentu v 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)

Zde je fastai použit k vytvoření modelu analýzy sentimentu na datasetu IMDB.

3. Tabulková 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)

Tento příklad demonstruje použití fastai pro tabulková data, konkrétně pro dataset Adult.

Střední úroveň API

Střední úroveň API ve fastai nabízí více možností přizpůsobení než vysoce úrovňové API a umožňuje uživatelům upravovat různé aspekty trénovacího procesu bez nutnosti zabývat se nejnižšími detaily. Nabízí kompromis mezi jednoduchostí a flexibilitou a vyhovuje uživatelům, kteří potřebují větší kontrolu nad svými modely, ale stále ocení pohodlí předdefinovaných komponent.

Komponenty střední úrovně API

  • Learner: Klíčová komponenta, která zapouzdřuje model, data a trénovací smyčku. Lze ji přizpůsobit různými architekturami, optimalizátory a metrikami.
  • Callbacks: Funkce, které umožňují rozšířit trénovací smyčku o vlastní chování, např. ukládání checkpointů, úpravu učící rychlosti nebo logování metrik.

Příklad použití

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

V tomto příkladu je callback použit pro uložení modelu s nejlepší přesností během tréninku, což ukazuje flexibilitu střední úrovně API.

Nízkoúrovňové API

Pro pokročilé uživatele a výzkumníky, kteří potřebují plnou kontrolu nad svými modely, poskytuje nízkoúrovňové API fastai přístup k základním funkcím PyTorch a optimalizovaným primitivům. Tato úroveň API je určena těm, kteří chtějí posouvat hranice hlubokého učení návrhem nových architektur nebo implementací vlastních trénovacích rutin.

Vlastnosti nízkoúrovňového API

  • Pipeline a transformace: Přizpůsobitelné sekvence zpracování dat, které lze uzpůsobit konkrétním potřebám.
  • Objektově orientované tensory: Rozšíření PyTorch tensorů pro intuitivnější manipulaci.
  • Optimalizované operace: Efektivní tensorové operace využívající schopnosti PyTorch.

Příklad použití

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

Tato ukázka demonstruje vytvoření vlastní datové pipeline pomocí nízkoúrovňového API fastai s aplikací série transformací na obrázek.

Fastai v praxi: publikované příklady

  1. Fastai: Vrstvené API pro hluboké učení
    Autoři: Jeremy Howard, Sylvain Gugger
    Fastai je knihovna pro hluboké učení navržená pro rychlý prototypování a nasazování modelů hlubokého učení. Dosahuje toho poskytováním vysoce úrovňových komponent pro běžné úlohy hlubokého učení, přičemž výzkumníkům umožňuje vstupovat do nízkoúrovňových komponent pro vlastní řešení. Tento článek popisuje architekturu knihovny, která využívá dynamiku Pythonu a flexibilitu PyTorch k vytvoření oddělených abstrakcí pro úlohy hlubokého učení. Inovace Fastai zahrnují type dispatch systém, GPU-optimalizovanou knihovnu pro počítačové vidění, nový návrh optimalizátoru a obousměrný callback systém. Snadné použití knihovny a schopnost dosahovat špičkových výsledků z ní činí populární nástroj ve výzkumu, průmyslu i vzdělávání. Více zde

  2. Segmentace mikrovasculatury v programu Human BioMolecular Atlas (HuBMAP)
    Autoři: Youssef Sultan, Yongqiang Wang, James Scanlon, Lisa D’lima
    Tato studie využívá Fastai pro segmentaci obrazů v rámci programu HuBMAP, zaměřenou na segmentaci mikrovasculatury v lidských ledvinách. Metodologie začíná modelem Fastai U-Net a zkoumá alternativní architektury a hluboké modely pro zvýšení přesnosti segmentace. Práce ukazuje, že Fastai může sloužit jako základní nástroj v medicínském zobrazování a nabízí pohled na pokročilé segmentační techniky a jejich porovnání s výchozími modely. Více zde

  3. Egglog Python: Pythonická knihovna pro E-graphs
    Autor: Saul Shanabrook
    Přestože se článek netýká přímo Fastai, představuje Python bindingy pro knihovnu egglog a zdůrazňuje integraci e-graph technik do Pythonu. Tento přístup je v souladu s filozofií Fastai využívat silné stránky Pythonu pro rozvoj strojového učení a vědeckých inovací. Ukazuje, jak pythonická API mohou usnadnit spolupráci a inovace napříč obory a potenciálně doplnit univerzálnost Fastai. [Více zde](https://arxiv.org/abs/2404

Často kladené otázky

Co je Fastai?

Fastai je komplexní open-source knihovna pro hluboké učení postavená na PyTorch. Zjednodušuje tvorbu a trénování neuronových sítí pomocí vysoce úrovňových API, podporuje úlohy pro zpracování obrazu, textu, tabulkových dat a kolaborativního filtrování a jejím cílem je demokratizovat hluboké učení pro uživatele všech úrovní pokročilosti.

Kdo vyvinul Fastai?

Fastai vyvinuli Jeremy Howard a Rachel Thomas v rámci mise zpřístupnit hluboké učení a učinit jej praktickým pro všechny.

Čím je Fastai jedinečné?

Fastai nabízí vrstvené API s vysoce, středně i nízkoúrovňovými komponentami, uživatelsky přívětivé abstrakce, podporu transfer learningu, modulární API pro datové bloky a výkonný callback systém. Je open-source a podporováno aktivní komunitou.

Jaké jsou běžné případy použití Fastai?

Fastai se používá pro počítačové vidění, zpracování přirozeného jazyka (NLP), analýzu tabulkových dat, kolaborativní filtrování (doporučovací systémy) a nasazování modelů do produkce. Je oblíbené ve výzkumu, průmyslu i vzdělávání.

Jak Fastai nainstaluji?

Fastai můžete nainstalovat pomocí conda příkazem 'conda install -c fastai fastai' nebo přes pip pomocí 'pip install fastai'. Funguje také bez problémů v Google Colab a Jupyter noteboocích.

Je Fastai zdarma?

Ano, Fastai je plně open-source pod licencí Apache License 2.0. Veškerý software, výzkum i kurzy jsou vydávány zdarma, aby byly globálně dostupné.

Prozkoumejte Fastai a tvořte AI řešení

Objevte, jak vysoce úrovňová API a open-source nástroje Fastai mohou urychlit vaše AI projekty a studium. Vyzkoušejte FlowHunt pro bezproblémový vývoj AI.

Zjistit více

AllenNLP

AllenNLP

AllenNLP je robustní open-source knihovna pro výzkum zpracování přirozeného jazyka (NLP), postavená na PyTorch týmem AI2. Nabízí modulární, rozšiřitelné nástroj...

3 min čtení
NLP Open Source +6
Torch

Torch

Torch je open-source knihovna pro strojové učení a rámec pro vědecké výpočty založený na jazyce Lua, optimalizovaný pro úlohy hlubokého učení a umělé inteligenc...

5 min čtení
Torch Deep Learning +3
Caffe

Caffe

Caffe je open-source framework pro hluboké učení od BVLC, optimalizovaný pro rychlost a modularitu při tvorbě konvolučních neuronových sítí (CNN). Široce využív...

5 min čtení
Caffe Deep Learning +4