Die­ser Arti­kel ist per­fekt für Sie, wenn Sie ein Anfän­ger oder Fort­ge­schrit­te­ner im Bereich maschi­nel­les Ler­nen oder ein Daten­wis­sen­schaft­ler sind. Sie haben bereits Ihre bevor­zugte Biblio­thek für maschi­nel­les Ler­nen wie PyTorch oder Ten­sor­Flow aus­ge­wählt und die Aus­wahl der rich­ti­gen Archi­tek­tur für Ihr Modell gemeis­tert. Sie kön­nen auch ein Modell trai­nie­ren und reale Pro­bleme ange­hen. Aber wie geht es weiter?

In die­sem Arti­kel stelle ich fünf Biblio­the­ken vor, die mei­ner Mei­nung nach jeder Inge­nieur und Daten­wis­sen­schaft­ler für maschi­nel­les Ler­nen ken­nen sollte. Sie sind eine wert­volle Ergän­zung Ihrer Fähig­kei­ten, machen Sie zu einem wett­be­werbs­fä­hi­ge­ren Kan­di­da­ten und ver­ein­fa­chen den Ent­wick­lungs­pro­zess für maschi­nel­les Lernen.

1. MLF­low — Expe­ri­ment und Model tracking

Stel­len Sie sich vor, Sie sind ein ML-Ent­wick­ler und arbei­ten an einem Pro­jekt zur Erstel­lung eines Modells, das die Kun­den­ab­wan­de­rung vor­her­sagt. Sie begin­nen mit der Unter­su­chung Ihrer Daten mit­hilfe von Jupy­ter-Note­books und expe­ri­men­tie­ren mit ver­schie­de­nen Algo­rith­men und Hyper­pa­ra­me­tern. Mit zuneh­men­dem Fort­schritt wer­den Ihre Notiz­bü­cher immer vol­ler mit Code, Ergeb­nis­sen und Visua­li­sie­run­gen. Es wird schwie­rig, Ihre Fort­schritte zu ver­fol­gen, zu erken­nen, was funk­tio­niert hat und was nicht, und Ihre bes­ten Ergeb­nisse zu reproduzieren.

An die­ser Stelle kommt MLf­low ins Spiel. MLf­low ist eine Platt­form, die Ihnen hilft, Ihre ML-Expe­ri­mente von Anfang bis Ende zu ver­wal­ten und dabei Nach­voll­zieh­bar­keit und Repro­du­zier­bar­keit zu gewähr­leis­ten. Es bie­tet ein zen­tra­les Repo­si­tory für die Spei­che­rung Ihres Codes, Ihrer Daten und Modell­ar­te­fakte sowie ein Track­ing-Sys­tem, das alle Ihre Expe­ri­mente, ein­schließ­lich Hyper­pa­ra­me­ter, Metri­ken und Ergeb­nisse, aufzeichnet.

Hier erfah­ren Sie, wie Sie mit MLf­low die Fall­stri­cke ver­mei­den kön­nen, die bei der allei­ni­gen Ver­wen­dung von Jupy­ter-Note­books auftreten:

  1. Zen­tra­les Repo­si­tory: MLf­low hält Ihren Code, Ihre Daten und Modell­ar­te­fakte orga­ni­siert und leicht zugäng­lich. Sie kön­nen die benö­tig­ten Res­sour­cen schnell fin­den, ohne sich in einem Laby­rinth von Notiz­bü­chern zu verirren.
  2. Expe­ri­ment­ver­fol­gung: MLf­low zeich­net jedes Expe­ri­ment auf, ein­schließ­lich des genauen Codes, der Daten und der ver­wen­de­ten Hyper­pa­ra­me­ter. So kön­nen Sie ver­schie­dene Expe­ri­mente leicht ver­glei­chen und fest­stel­len, was zu den bes­ten Ergeb­nis­sen geführt hat.
  3. Repro­du­zier­bar­keit: Mit MLf­low kön­nen Sie Ihre bes­ten Modelle mit genau dem­sel­ben Code, den­sel­ben Daten und der­sel­ben Umge­bung repro­du­zie­ren. Dies ist ent­schei­dend, um die Kon­sis­tenz und Zuver­läs­sig­keit Ihrer Ergeb­nisse zu gewährleisten.

Wenn Sie es also ernst mei­nen mit der Erstel­lung effek­ti­ver Modelle für maschi­nel­les Ler­nen, soll­ten Sie das Jupy­ter-Notiz­buch-Chaos hin­ter sich las­sen und sich die Leis­tungs­fä­hig­keit von MLf­low zu eigen machen.

2. Stream­lit – schnelle und ästhe­ti­sche Webanwendungen

Stream­lit ist das belieb­teste Front­end-Frame­work für Data Sci­ence. Es han­delt sich um ein Open-Source-Python-Frame­work. Es ermög­licht den Nut­zern, inter­ak­tive Daten­an­wen­dun­gen schnell und ein­fach zu erstel­len, was beson­ders für Daten­wis­sen­schaft­ler und Inge­nieure für maschi­nel­les Ler­nen von Vor­teil ist, die nicht über umfang­rei­che Web­ent­wick­lungs­kennt­nisse verfügen.

Mit Stream­lit kön­nen Ent­wick­ler attrak­tive Benut­zer­ober­flä­chen erstel­len und gemein­sam nut­zen und Modelle bereit­stel­len, ohne dass sie über tief­grei­fende Front-End-Erfah­rung oder ‑Kennt­nisse ver­fü­gen müs­sen. Das Frame­work ist kos­ten­los, kom­plett in Python geschrie­ben und quell­of­fen und ermög­licht die Erstel­lung von gemein­sam nutz­ba­ren Web­an­wen­dun­gen in weni­gen Minuten.

Wenn Sie ein Lieb­lings­pro­jekt haben, bei dem es um maschi­nel­les Ler­nen geht, wäre es eine gute Idee, ihm mit Stream­lit eine Schnitt­stelle hin­zu­zu­fü­gen. Es dau­ert nicht lange, damit zu arbei­ten, es gibt viele Vor­la­gen, und Sie kön­nen Ihr Front­end in weni­gen Minu­ten fer­tig­stel­len. Es ist auch extrem ein­fach, es zu tei­len, was bedeu­tet, dass es in Ihrem Lebens­lauf bestimmt gut aus­se­hen wird.

3. Fas­tAPI – ein­fa­che und schnelle Bereit­stel­lung Ihrer Modelle

Sobald Sie Ihr Modell trai­niert und vali­diert haben, müs­sen Sie es bereit­stel­len, damit es von ande­ren Anwen­dun­gen ver­wen­det wer­den kann. An die­ser Stelle kommt Fas­tAPI ins Spiel.

Fas­tAPI ist ein leis­tungs­star­kes Web-Frame­work für die Erstel­lung von RESTful-APIs. Es ist bekannt für seine Ein­fach­heit, Benut­zer­freund­lich­keit und Geschwin­dig­keit. Dies macht es zu einer idea­len Wahl für die Bereit­stel­lung von Model­len für maschi­nel­les Ler­nen in der Produktion.

Hier sind einige der Gründe, warum ML-Inge­nieure und Daten­wis­sen­schaft­ler Fas­tAPI erler­nen sollten:

  • Geschwin­dig­keit: Fas­tAPI ist unglaub­lich schnell. Sie ver­wen­det ein moder­nes asyn­chro­nes Pro­gram­mier­mo­dell, das die gleich­zei­tige Bear­bei­tung meh­re­rer Anfra­gen effi­zi­ent macht. Dies ist wich­tig für den Ein­satz von Model­len für maschi­nel­les Ler­nen, die große Daten­men­gen ver­ar­bei­ten müssen.
  • Ein­fach­heit: Fas­tAPI ist ein­fach zu erler­nen und zu ver­wen­den. Sie ver­fügt über eine klare und prä­zise Syn­tax, die das Schrei­ben von sau­be­rem und wart­ba­rem Code erleich­tert. Dies ist wich­tig für ML-Inge­nieure und Daten­wis­sen­schaft­ler, die nicht unbe­dingt erfah­rene Web­ent­wick­ler sind.
  • Benut­zer­freund­lich­keit: Fas­tAPI bie­tet eine Viel­zahl von Funk­tio­nen, die die Erstel­lung und Bereit­stel­lung von APIs erleich­tern. Zum Bei­spiel bie­tet es inte­grierte Unter­stüt­zung für auto­ma­ti­sche Doku­men­ta­tion, Daten­va­li­die­rung und Feh­ler­be­hand­lung. Dies spart Zeit und Mühe und ermög­licht es ML-Inge­nieu­ren, sich auf ihre eigent­li­che Arbeit zu kon­zen­trie­ren: die Erstel­lung und Bereit­stel­lung von Modellen.
  • Pro­duk­ti­ons­taug­lich: Fas­tAPI ist für den Pro­duk­ti­ons­ein­satz kon­zi­piert. Sie ver­fügt über Funk­tio­nen wie Unter­stüt­zung für meh­rere Backends, Sicher­heit und Bereit­stel­lungs­tools. Das macht sie zu einer zuver­läs­si­gen Wahl für die Bereit­stel­lung kri­ti­scher Machine-Learning-Modelle.

Zusam­men­fas­send lässt sich sagen, dass Fas­tAPI ein leis­tungs­star­kes und viel­sei­ti­ges Tool ist, das für die Bereit­stel­lung von Model­len für maschi­nel­les Ler­nen in der Pro­duk­tion ver­wen­det wer­den kann. Seine Benut­zer­freund­lich­keit, Geschwin­dig­keit und Pro­duk­ti­ons­be­reit­schaft machen es zu einer idea­len Wahl für ML-Inge­nieure und Daten­wis­sen­schaft­ler, die ihre Modelle ande­ren zugäng­lich machen möchten.

4. XGBoost – schnel­le­res und bes­se­res Ver­fah­ren zur Vor­her­sage von Tabellendaten

XGBoost ist ein leis­tungs­star­ker Algo­rith­mus für maschi­nel­les Ler­nen, der für seine Genau­ig­keit, Geschwin­dig­keit und Ska­lier­bar­keit bekannt ist. Er basiert auf dem Gra­di­ent-Boos­ting-Ver­fah­ren, das meh­rere schwa­che Ler­ner zu einem star­ken Ler­ner kom­bi­niert. Mit ein­fa­chen Wor­ten: Man ver­wen­det meh­rere kleine Modelle wie Ran­dom Forest, kom­bi­niert sie zu einem gro­ßen Modell und erhält am Ende ein schnel­le­res Modell (im Ver­gleich z. B. zu einem neu­ro­na­len Netz), das gleich­zei­tig ska­lier­bar ist und weni­ger anfäl­lig für Über­an­pas­sung ist.

Hier sind einige der Gründe, warum ML-Inge­nieure und Daten­wis­sen­schaft­ler XGBoost ler­nen sollten:

  • Genau­ig­keit: XGBoost ist einer der genau­es­ten ver­füg­ba­ren Algo­rith­men für maschi­nel­les Ler­nen. Mit ihm wur­den viele Wett­be­werbe für maschi­nel­les Ler­nen gewon­nen, und er wird regel­mä­ßig unter den bes­ten Algo­rith­men für ver­schie­dene Auf­ga­ben eingestuft.
  • Geschwin­dig­keit: XGBoost ist auch sehr schnell. Er ist in der Lage, große Daten­sätze schnell und effi­zi­ent zu trai­nie­ren und Vor­her­sa­gen zu tref­fen. Dies macht ihn zu einer guten Wahl für Anwen­dun­gen, bei denen es auf Geschwin­dig­keit ankommt, z. B. bei der Betrugs­er­ken­nung in Echt­zeit oder bei der Finanzmodellierung.
  • Ska­lier­bar­keit: XGBoost ist hoch ska­lier­bar. Es kann große Daten­sätze und kom­plexe Modelle ver­ar­bei­ten, ohne an Genau­ig­keit ein­zu­bü­ßen. Dies macht es zu einer guten Wahl für Anwen­dun­gen, bei denen das Daten­vo­lu­men oder die Modell­kom­ple­xi­tät ein Pro­blem darstellen.

Wenn Sie eine Auf­gabe mit tabel­la­ri­schen Daten haben (z. B. die Vor­her­sage des Prei­ses eines Hau­ses auf der Grund­lage der Zim­mer, die es hat, oder die Berech­nung der Wahr­schein­lich­keit, dass ein Kunde ein Pro­dukt kauft, auf der Grund­lage der letz­ten Käufe/Kontodaten), soll­ten Sie immer zuerst XGBoost aus­pro­bie­ren, bevor Sie auf neu­ro­nale Netze mit Keras oder PyTorch zurückgreifen.

5. ELI5 – machen Sie Ihre Modelle bes­ser inter­pre­tier­bar und transparent

Nach­dem Sie Ihr Modell trai­niert haben, kön­nen Sie es ein­fach ein­set­zen und ver­wen­den. Aber zu die­sem Zeit­punkt ist das Modell eher eine „Black Box“ – man steckt etwas hin­ein und bekommt etwas her­aus. Wie es funk­tio­niert? Das weiß nie­mand. Zah­len gehen hier­hin, Zah­len gehen dort­hin, und am Ende erhält man eine Antwort.

Und was ist, wenn Ihr Kunde/Chef Sie fragt, wie Ihr Modell zu einer bestimm­ten Ant­wort gekom­men ist? Auch hier wis­sen Sie es nicht. Oder viel­leicht wol­len Sie wis­sen, wel­che Para­me­ter beim Trai­ning am wich­tigs­ten sind und wel­che nur Rau­schen verursachen?

All diese Fra­gen kön­nen mit ELI5 beant­wor­tet wer­den. Diese Biblio­thek wird Ihnen hel­fen, Ihr Modell trans­pa­rent, inter­pre­tier­bar und leich­ter ver­ständ­lich zu machen. Aber nicht nur über das Modell, son­dern auch über die Daten, den Trai­nings­pro­zess, die Ver­tei­lung der Gewichte und die Ein­ga­be­pa­ra­me­ter kön­nen Sie viel mehr Infor­ma­tio­nen erhal­ten. Außer­dem kön­nen Sie Ihr Modell „debug­gen“ und mehr Erkennt­nisse dar­über gewin­nen, wel­che Archi­tek­tur bes­ser funk­tio­nie­ren könnte und wel­che Pro­bleme das aktu­elle Modell hat.

ELI5 unter­stützt bereits Biblio­the­ken wie Sci­kit-Learn, Keras, XGBoost und viele andere. Sie kön­nen Ihr Modell für die Klas­si­fi­zie­rung von Bil­dern, Tex­ten und Tabel­len­da­ten debuggen.

Fazit

Wir haben uns fünf füh­rende Data-Sci­ence-Frame­works ange­schaut. Wenn Sie jede Biblio­thek zumin­dest ein biss­chen ver­ste­hen, wer­den Sie viele Vor­teile dar­aus ziehen.

  1. Im Ver­gleich zu ande­ren Data Sci­en­tists haben Sie mehr Chan­cen auf einen Job, da Sie meh­rere Fähig­kei­ten in ver­schie­de­nen Aspek­ten des maschi­nel­len Ler­nens erwor­ben haben.
  2. Sie wer­den in der Lage sein, an Full-Stack-Pro­jek­ten zu arbei­ten, da Sie nicht nur Ihr Modell ent­wi­ckeln kön­nen, son­dern es auch mit einem Fas­tAPI-Backend bereit­stel­len und Benut­zer mit dem Stream­lit-Front­end inter­agie­ren las­sen können.
  3. Sie wer­den sich nicht in der „Jupy­ter Note­book-Hölle“ ver­ir­ren, da alle Ihre Machine-Lear­ning-Expe­ri­mente mit MLF­low nach­voll­zieh­bar und repro­du­zier­bar sind und alle Modelle kor­rekt ver­sio­niert werden.
  4. Tabel­la­ri­sche Daten sind kein Pro­blem für Sie, da Sie wis­sen, wie man schnell ska­lier­bare, schnelle und genaue Modelle mit XGBoost trainiert.
  5. Und die meis­ten Modelle sind für Sie keine „Black Boxes“ mehr, denn Sie kön­nen sie mit ELI5 bes­ser ver­ste­hen, ihren Denk­pro­zess debug­gen und ihre Vor­her­sa­gen erklären.

All diese Biblio­the­ken wer­den Ihnen das Leben leich­ter machen und viele nütz­li­che und wich­tige Fähig­kei­ten in Ihr Arse­nal auf­neh­men. Viel Spaß beim Programmieren!

Quelle: medium.com