In den letz­ten Jah­ren ist die KI-Bran­che explo­diert und hat einen enor­men Auf­schwung erlebt. Die­ses Wachs­tum hat zu zahl­rei­chen neuen Pro­jek­ten geführt, die dar­auf abzie­len, die Modell­ent­wick­lung zu stan­dar­di­sie­ren. Den­noch ist die Modell­ent­wick­lung nur die Hälfte der Arbeit, und die meis­ten Pro­jekte schei­tern an der Umset­zung in die Produktion.

Die Bereit­stel­lung eines Modells als funk­tio­nale Ein­heit eines Pro­dukts (auch bekannt als ML-gesteu­er­tes Pro­dukt) ist nach wie vor eine Kunst, die von den Prak­ti­kern ver­langt, dass sie alle Teile sorg­fäl­tig Stück für Stück in einer Was­ser­fall­me­thode zusam­men­set­zen. Moderne KI-Infra­struk­tu­ren, wie sie im Fol­gen­den beschrie­ben wer­den, haben das Poten­zial, dies zu ändern.

Obwohl Scrum und agile Metho­den in der Tech­no­lo­gie­bran­che popu­lär gewor­den sind, kön­nen diese Metho­den bei der Ent­wick­lung von ML-gesteu­er­ten Pro­duk­ten auf­grund der fra­gi­len Abhän­gig­kei­ten zwi­schen den ein­zel­nen Schrit­ten nicht ange­wen­det werden:

  • Daten­er­mitt­lung – Daten­teams sam­meln Infor­ma­tio­nen aus inter­nen und exter­nen Ressourcen.
  • Daten­auf­be­rei­tung – Daten­teams wan­deln Roh­da­ten um und kura­tie­ren rele­vante Daten­punkte, die für das Pro­blem rele­vant sind (auch „Daten­merk­male“ genannt).
  • Modell­trai­ning – Daten­wis­sen­schaft­ler expe­ri­men­tie­ren mit den Daten, um eine Auf­gabe zu lösen.
  • Modell­va­li­die­rung – Daten­wis­sen­schaft­ler ver­fol­gen die Modell­ex­pe­ri­mente und fin­den das Modell mit der bes­ten Leistung.
  • Pro­duk­ti­ons­code – Inge­nieure schrei­ben einen Mikro­dienst, der das Modell nutzt, um Vor­her­sa­gen für die Pro­duk­tion zu treffen.
  • Bereit­stel­lung und Test – Der Pro­duk­ti­ons­code sollte für die Ska­lie­rung aus­ge­legt sein und mit­hilfe des CI/CD-Sys­tems des Unter­neh­mens bereit­ge­stellt und getes­tet werden.
  • Kon­ti­nu­ier­li­che Über­wa­chung und Lernen

Obwohl der ML-gesteu­erte Pro­dukt­ent­wick­lungs­zy­klus (auch ML-Work­flow genannt) ein sehr kom­ple­xer Pro­zess ist, kön­nen wir ihn in drei Haupt­pha­sen unter­tei­len: (1) Vor­be­rei­tung, (2) Schu­lung, (3) Produktisierung.

Der schwie­rigste Teil des ML-Lebens­zy­klus, der auch das größte Hin­der­nis dar­stellt, ist zwei­fel­los die Produktivitätsphase.

Die Aus­stat­tung des Modells mit Funk­tio­nen mit Vor­her­sa­ge­ge­nau­ig­keit (auch bekannt als On-Demand-Funk­tio­nen) kann die genau­es­ten und aktu­ells­ten Vor­her­sa­gen erzeu­gen, was für ML-gesteu­erte Pro­dukte zwin­gend erfor­der­lich ist.
Dies ist für ML-gesteu­erte Pro­dukte unab­ding­bar. Den­noch ist dies auf­grund der berüch­tig­ten Rei­bung zwi­schen DS- und SW-Inge­nieu­ren eine große Herausforderung.

SW-Inge­nieure müs­sen eng mit den Data Sci­en­tists zusam­men­ar­bei­ten, die das Modell trai­niert haben, um es pro­duk­ti­ons­reif zu machen. Manch­mal müs­sen sie sogar den Code ihrer Kol­le­gen zurück­ent­wi­ckeln oder ihn ganz neu schreiben.

Um eine sol­che Lösung zu erstel­len, ist es üblich, eine neue Micro­ser­vice-Anwen­dung zu schrei­ben, die:

  • Umhül­len Sie das Modell mit einem Inferencing-Code.
  • Online-Trans­for­ma­tion der Daten aus den Pro­duk­ti­ons­da­ten­quel­len, so genau wie in unse­rem Vor­be­rei­tungs­pro­zess in „On-Demand-Fea­tures“.
  • Ver­sor­gung des Modells mit den On-Demand-Features.
  • Bereit­stel­len der Vorhersage

Aktu­elle Architekturen

Der­zei­tige Archi­tek­tu­ren sind als mono­li­thi­scher domä­nen­spe­zi­fi­scher Dienst (z. B. ein „Betrugs­er­ken­nungs­dienst“) auf­ge­baut, der für die Über­set­zung der domä­nen­spe­zi­fi­schen Anfrage (d. h. Trans­ak­tion), die Umwand­lung der Daten, die Vor­her­sage, die Über­wa­chung und die Modell­ver­wal­tung zustän­dig ist.
Diese Art von Archi­tek­tu­ren erfor­dern eine enge Zusam­men­ar­beit von DS- und SW-Inge­nieu­ren, um einen sol­chen Dienst zu entwickeln.

Auf­grund der kom­ple­xen Arbeits­ab­läufe bei der Bereit­stel­lung von Model­len such­ten Unter­neh­men nach neuen Ansät­zen, um die Ent­wick­lung und Bereit­stel­lung von ML-gesteu­er­ten Pro­duk­ten zu stan­dar­di­sie­ren und die lange Pro­duk­ti­ons­zeit des Pro­jekts zu reduzieren.

Im Jahr 2017 ver­öf­fent­lichte Uber einen Arti­kel über Michael­lan­gello – Uber’s ML Plat­form. Der Arti­kel beschrieb die Initia­ti­ven, die Uber ergrif­fen hat, um die Ent­wick­lung von ML-gesteu­er­ten Pro­duk­ten zu beschleu­ni­gen, sowie eine ein­zig­ar­tige Daten­ver­wal­tungs­schicht – den „Fea­ture Store“.

Der Fea­ture Store ist eine ein­zig­ar­tige Spei­cher­ebene, die die Wie­der­ver­wend­bar­keit von „Daten-Fea­tures“ ermög­licht. Er nutzt einen „kal­ten“ Spei­cher für die Bereit­stel­lung von Fea­tures für das Trai­ning und einen „hei­ßen“ Cache-Spei­cher, um sie für die Pro­duk­tion zu kommunizieren.

Obwohl die Idee einer gemein­sa­men Caching-Schicht kein neuer Ansatz in der SW-Ent­wick­lung ist, war das Kon­zept der Tren­nung des Was­ser­fall-Work­flows revo­lu­tio­när. Es ermög­lichte die Auf­tei­lung des Pro­zes­ses und die getrennte Behand­lung der Daten­ver­ar­bei­tung von der Modell­ent­wick­lung und erleich­terte den Feature-Engineering-Prozess.

Das Fea­ture-Engi­nee­ring gilt als die ite­ra­tivste, zeit- und res­sour­cen­auf­wän­digste Phase des Work­flows. In der Tat ver­brin­gen Daten­teams etwa 80 % ihrer Zeit damit. Eine Ver­ein­fa­chung die­ser Phase scheint daher ein not­wen­di­ger Schritt in der Ent­wick­lung der KI-Infrastruktur zu sein.

Kürz­lich haben andere Unter­neh­men das neue Para­digma über­nom­men und begon­nen, die ML-Betriebs­sys­teme von ihren Fea­ture-Betriebs­sys­te­men zu tren­nen und den mono­li­thi­schen Pro­zess zu durchbrechen.

Diese neue Archi­tek­tur ermög­licht es Unter­neh­men, Fea­ture- und Modell­be­lange zu tren­nen, einen Ver­trag zwi­schen dem Modell und den Daten zu stan­dar­di­sie­ren und die Rei­bung zwi­schen DS- und SW-Engi­nee­ring zu ver­rin­gern. Ähn­lich wie bei der „Microservices“-Revolution ermög­lichte uns die Stan­dar­di­sie­rung von Ein­hei­ten im Arbeits­ab­lauf, neue Teile zu ver­all­ge­mei­nern und unsere Ent­wick­lung zu beschleunigen.

Ein neuer Hori­zont erstrahlt.

Im Ver­gleich zu den der­zei­ti­gen Archi­tek­tu­ren wer­den moderne KI-Infra­struk­tu­ren den ope­ra­ti­ven Auf­wand der Modell­be­reit­stel­lung von der Funk­ti­ons­be­reit­stel­lung tren­nen und die Bin­dung zwi­schen DS- und SW-Inge­nieu­ren teil­weise aufheben.

Dar­über hin­aus über­neh­men neue Archi­tek­tu­ren rasch das Fea­ture-Store-Kon­zept und die Tren­nung von Belan­gen in der ML-Indus­trie. Den­noch rei­chen Fea­ture Stores nicht aus und lösen nur einen Teil des Pro­blems; daher müs­sen moderne Infra­struk­tu­ren umfas­sende Lösun­gen bieten:

Data Sci­ence-Platt­for­men (auch bekannt als MLOps-Platt­for­men)
Data Sci­ence-Platt­for­men sind umfas­sende Lösun­gen, die für die Ent­wick­lung, Ver­fol­gung von Expe­ri­men­ten, Ver­wal­tung, Bereit­stel­lung, Über­wa­chung und Ver­wal­tung von Model­len zustän­dig sind. Sie sind für den ope­ra­ti­ven Aspekt die­ses Pro­zes­ses ver­ant­wort­lich und erleich­tern die Kom­ple­xi­tät des täg­li­chen Betriebs.

Die MLOps-Platt­for­men stel­len einen gene­ri­schen Infe­renz­ser­ver bereit, der eine Infe­renz­schicht für die Lösung bereit­stel­len kann, die eine Reihe von Ein­ga­be­funk­tio­nen ent­hält. Diese Ser­ver kön­nen auch eine „Trans­for­ma­ti­ons­schicht“ imple­men­tie­ren, die eine Ver­bin­dung zu den Fea­ture-Platt­for­men ermög­licht. Einige auf dem Markt befind­li­che Pro­dukte bie­ten bereits eine sol­che Schicht: KFSer­ving, Ten­sor­Flow ser­ving, Sel­don, Sage­Ma­ker, GCP, und andere.

Viele haben über die Bedeu­tung von MLOps-Sys­te­men und ihre Fähig­keit, die Abhän­gig­keit von Ops zu ver­rin­gern, geschrie­ben. Den­noch ist es wich­tig, sie nicht mit Infra­struk­tur­lö­sun­gen zu ver­wech­seln, da sie eine andere Rolle spie­len.
Eine her­vor­ra­gende Ana­lo­gie sind Kafka und Jenk­ins – Kafka ist ein Infra­struk­tur­sys­tem, wäh­rend Jenk­ins ein DevOps-Sys­tem ist.

Funk­ti­ons­platt­for­men (Tech­nik)
Fea­ture-Platt­for­men sind eine feh­lende Kom­po­nente im ML-Öko­sys­tem. Die Fea­ture-Platt­for­men sind für die Umwand­lung, Bereit­stel­lung und Über­wa­chung der Fea­tures der Modelle verantwortlich.

Auf­grund ihrer Rolle als funk­tio­na­ler Teil der Pro­duk­ti­ons­sys­teme müs­sen moderne Fea­ture-Platt­for­men die Ein­hal­tung der Pro­duk­ti­ons-SLA gewähr­leis­ten und eine sta­bile, ska­lier­bare, latenz­arme und aus­fall­si­chere Lösung bieten.

Es ist wich­tig zu beto­nen, dass Fea­tures sowohl für das Trai­ning als auch für die Infe­renz benö­tigt wer­den, und Fea­tures soll­ten in bei­den Pha­sen ent­wi­ckelt wer­den. Die­ses zwei­glei­sige Ver­fah­ren führt zu einer Schief­lage zwi­schen dem Trai­ning und der Infe­renz – es liegt in der Ver­ant­wor­tung der Platt­form, einen Mecha­nis­mus bereit­zu­stel­len, der den Abgleich zwi­schen bei­den gewährleistet.

Im Gegen­satz zu den MLOps-Platt­for­men sind die Fea­ture-Platt­for­men nicht für das ope­ra­tive Öko­sys­tem zustän­dig, son­dern für den Zugriff auf den Produktionsdatenfluss.

Fea­ture-Platt­for­men sind für die fol­gen­den Ziele verantwortlich:

  • Zugriff auf und Spei­che­rung von Merk­mals­wer­ten und Merkmalsgruppen
  • Ver­wal­tung und Über­wa­chung von Feature-Metadaten
  • Ermög­li­chen und Ver­wal­ten von sugared engi­nee­ring Prozessen
  • Han­deln als ope­ra­tive Funk­tion und Sicher­stel­lung eines hoch­gra­di­gen SLA

Moderne Fea­ture-Platt­for­men stel­len nicht nur Spei­cher zur Ver­fü­gung, son­dern auch eine stan­dar­di­sierte Kom­mu­ni­ka­ti­ons­schicht zwi­schen dem tech­ni­schen Auf­wand für das Ver­schie­ben und Trans­for­mie­ren von Daten und der eigent­li­chen Trans­for­ma­ti­ons­lo­gik (Busi­ness).

Fea­ture-Platt­for­men soll­ten die fol­gen­den Funk­tio­nen umfas­sen, um ihren Zweck zu erfül­len: Gover­nance-Schicht, Fea­ture-Spei­cher, Trans­for­ma­ti­ons­rah­men und eine Betriebsschicht.

Gover­nance
Fea­ture-Platt­for­men soll­ten eine ein­heit­li­che Gover­nance für die Fea­tures bie­ten, einschließlich:

  • Meta­da­ten und Fea­ture-Regis­ter – d.h. Fea­ture-Name, text­li­che Erläu­te­rung sei­ner Logik, Eigen­tü­mer­schaft usw.
  • Merk­mal­s­ka­ta­log – Ermög­licht die Zusam­men­ar­beit und Wie­der­ver­wend­bar­keit von Merk­ma­len inner­halb des Unternehmens.
  • Über­wa­chung – Ermög­licht die Ver­fol­gung der Fea­ture-Leis­tung und die Ent­de­ckung von Abwei­chun­gen in den Daten.
  • Ver­sio­nie­rung – Ver­fol­gung ver­schie­de­ner Imple­men­tie­run­gen der Datentransformation.

Merk­mals­spei­cher (Spei­che­rung)
Der Merk­mals­spei­cher ist für die Bereit­stel­lung von Merk­ma­len sowohl für die Bereit­stel­lung als auch für die Schu­lung zustän­dig. Er sollte auch als ein­zi­ger Punkt der Wahr­heit in Bezug auf die Schu­lung und Bereit­stel­lung von Merk­ma­len die­nen und den Abgleich zwi­schen Online- und Off­line-Wer­ten sicherstellen.

Diese Kom­po­nente ist auch dafür ver­ant­wort­lich, eine „Zeitreise“-Funktionalität zu ermög­li­chen, die für die Ver­fol­gung unter­schied­li­cher Werte von Zeit­rei­hen­merk­ma­len und die Syn­chro­ni­sie­rung der Werte mit ande­ren Merk­ma­len im Daten­satz uner­läss­lich ist.

Um die­ses Ziel zu errei­chen, kön­nen ver­schie­dene Archi­tek­tu­ren imple­men­tiert wer­den; die typi­sche Archi­tek­tur kom­bi­niert jedoch „Online-/Offline“-Speicher (also Merk­mal­spei­cher), die die Last durch den Fil­ter der Latenz­an­for­de­rung aufteilen.

Trans­for­ma­ti­ons-Frame­work
Das Trans­for­ma­ti­ons-Frame­work sollte Werk­zeuge für die Kom­mu­ni­ka­tion mit dem Merk­mals­spei­cher bereit­stel­len, um Roh­da­ten zu ver­ar­bei­ten, anzu­rei­chern und in einen Merk­mals­wert zu berech­nen und die­sen im Merk­mals­spei­cher zu speichern.

Die Trans­for­ma­ti­ons-Frame­works soll­ten den Ent­wick­lern eine ver­ein­fachte Kom­mu­ni­ka­tion ermög­li­chen, indem sie die Menge an tech­ni­schem Code redu­zie­ren, die für die Ver­ar­bei­tung von „High-Level-Use-Cases“ erfor­der­lich ist, z. B. Back­fil­ling, On-Demand-Trans­for­ma­tio­nen, Bulk-(Offline-)Transformationen, funk­tio­nale (z. B. Geo-Distanz, abge­lei­tete Merk­male) usw.

Betriebs­ebene
Da die Funk­ti­ons­platt­form ein kri­ti­scher Teil der Pro­duk­ti­ons­lö­sung ist, muss sie die SLA des Pro­dukts erfül­len, d. h. nied­rige Latenz­zei­ten, Ska­lier­bar­keit, hohe Ver­füg­bar­keit usw. bieten.

Groß ange­legte Imple­men­tie­run­gen kön­nen auch die Her­aus­for­de­rung der Bereit­stel­lung von Funk­tio­nen in ver­schie­de­nen Cloud-Umge­bun­gen bewältigen.

Das große Bild
Die Bereit­stel­lung eines ML-gesteu­er­ten Pro­dukts, das Online-Modell­vor­her­sa­gen genau als funk­tio­na­len Teil des Pro­dukts lie­fern kann, ist eine sehr kom­plexe Auf­gabe, aber das sollte nicht so sein. Eine moderne KI-Infrastruktur kann Rei­bungs­ver­luste effek­tiv redu­zie­ren und eine fried­li­che Inter­ak­tion zwi­schen Daten­wis­sen­schaft­lern und Inge­nieu­ren schaffen.

Wie beim tra­di­tio­nel­len Soft­ware­pro­zess erwar­ten wir eine Unter­bre­chung des Arbeits­ab­laufs, um den betrieb­li­chen und tech­ni­schen Auf­wand bei der Ent­wick­lung und Bereit­stel­lung neuer Dienste zu reduzieren.

Auf­grund der Kom­ple­xi­tät der daten­ge­steu­er­ten Pro­dukte wird der ML-Bereich sein mono­li­thi­sches Sys­tem in meh­rere Sys­teme auf­tei­len müs­sen. Jedes ist für eine andere Auf­gabe zustän­dig, ähn­lich wie im tra­di­tio­nel­len Softwarebereich.

Fea­ture-Platt­for­men wer­den Roh­da­ten aus den Pro­duk­ti­ons­da­ten­quel­len sam­meln und umge­wan­delte Fea­tures kura­tie­ren, die die Modell­platt­for­men für Trai­nings- und Ser­vice­zwe­cke nut­zen kön­nen. Im Gegen­satz dazu hel­fen die MLOps-Platt­for­men Daten­wis­sen­schaft­lern bei der Ent­wick­lung und Bereit­stel­lung von ML-Modellen.

Abschlie­ßende Überlegungen

Bei den aktu­el­len Lösun­gen auf dem Markt ist es immer noch schwie­rig, zwi­schen den ver­schie­de­nen Tei­len der Archi­tek­tur zu unter­schei­den. Daher ist es wich­tig, zwi­schen MLOps und KI-Infra­struk­tu­ren zu unter­schei­den, da beide Sys­teme sehr unter­schied­li­che Auf­ga­ben haben.

Obwohl einige auf­stre­bende Archi­tek­tu­ren beträcht­li­che Fort­schritte gemacht haben, kon­zen­trie­ren sich aktu­elle Lösun­gen immer noch auf den Betrieb und die Bereit­stel­lung von Funk­tio­nen, anstatt sich auf die Her­aus­for­de­rung zu kon­zen­trie­ren, diese zu erstellen.

Moderne Funk­ti­ons­platt­for­men müs­sen sich auf die Funk­ti­ons­er­stel­lung und nicht auf die Zwi­schen­spei­che­rung kon­zen­trie­ren und könn­ten der Schlüs­sel zur Erleich­te­rung der Ent­wick­lung und Bereit­stel­lung neuer ML-gesteu­er­ter Pro­dukte und Dienste sein.

Quelle: medium.com