Eining 7 / 11

MLOps og dreifing: Færa líkanið frá rannsóknarstofu til framleiðslu

Hagnaður:

  • Hæfni til að viðurkenna sérstakar áskoranir ML sem tengjast kóða-gagnalíkan tríóinu og pakkanum og kynna líkanið á netinu eða í lotu í samræmi við viðskiptaþörf.
  • Geta til að innleiða hægfara og afturköllunarmynstur (skuggi, kanarífugl, A/B, afturköllun) og bæta við prófaðri afturköllunaráætlun við hverja uppsetningu
  • Geta til að halda gagnakóða-mælingartengli líkansins sem settur er í framleiðslu rekjanlegum með matsþröskuldsstýrðri CI/CD og líkanaskrá

Að fá líkan til að ná 95% nákvæmni í fartölvunni er aðeins hálf sagan. Hinn helmingurinn - oft erfiði hlutinn - er að koma þessu líkani til raunverulegra notenda á áreiðanlegan, stigstærðan og viðhaldshæfan hátt. MLOps (Machine Learning Operations: fræðigreinin að setja, reka og viðhalda ML módelum í framleiðslu) sameinar DevOps starfshætti hugbúnaðarverkfræðinnar með einstökum áskorunum ML. Í þessari einingu förum við yfir skrefin við að færa líkanið í framleiðslu og hvernig gervigreind hjálpar í þessu ferli.

Hvers vegna er ML frábrugðið venjulegum hugbúnaði?

Í venjulegum hugbúnaði er hegðunin í kóðanum; Ef kóðinn breytist ekki breytist hegðunin ekki. Í ML fer hegðun eftir bæði kóða, gögnum og líkani. Þessar þrjár víddir skapa aukaáskoranir MLOps:

  • Gagnarek: Gögnin í framleiðslu færast frá gögnunum í þjálfun með tímanum; líkanið verður úrelt.
  • Þú þarft að gefa út þrjú atriði: kóða, gögn og líkan - allt þrennt.
  • Hljóðlaus bilun: Líkan getur bilað án þess að hrynja, án þess að gefa upp villur, einfaldlega með því að framleiða rangar spár. Til að ná þessu þarf eftirlit.

Þess vegna er mikill munur á „vinnulíkani“ og „framleiðslutilbúnu líkani“.

Módelpökkun og kynning

Fyrsta skrefið í að setja líkanið í framleiðslu er að pakka því saman: líkanaskránni, nauðsynlegum bókasöfnum, forvinnslukóða og útgáfuupplýsingum saman sem eina heild sem hægt er að endurskapa. Gámavæðing (t.d. Docker: að setja forritið í einangraðan kassa með öllum ósjálfstæðum) er staðalbúnaður hér; Það útilokar „það var að vinna á vélinni minni“ vandamálinu.

Tvö grunnmynstur við að þjóna líkaninu:

  • Online/rauntími (á netinu): Líkanið situr á bak við API og skilar tafarlausri spá fyrir hverja beiðni sem berast. Lítil leynd er mikilvæg.
  • Lotur: Líkanið vinnur úr stórum gagnasöfnum reglulega (t.d. býr til stig fyrir alla viðskiptavini á nóttunni). Seinkun skiptir ekki máli, skilvirkni er mikilvæg.

Hver er réttur fer eftir viðskiptaþörfinni: tafarlaus meðmæli á netinu, mánaðarlegt áhættustig í lotu.

Ábending: „Rauntími“ er kostnaður, ekki sjálfgefið. Lotan er miklu ódýrari og einfaldari ef niðurstaðan verður notuð innan nokkurra klukkustunda. Þarftu virkilega svar strax? Spurðu það fyrst.

Öruggar dreifingaraðferðir

Það er áhættusamt að opna nýja gerð beint fyrir alla umferð; Ef það er rangt verða allir fyrir áhrifum. Öruggt dreifingarmynstur:

  • Skuggadreifing: Nýja líkanið fær framleiðsluumferð, en spár þess eru ekki sýndar notanda, aðeins skráðar. Það er borið saman við gamla líkanið til að sjá hvort það sé öruggt í raunverulegum gögnum.
  • Uppsetning á kanarí: Nýja líkanið er fyrst sett út í lítið hlutfall af umferð (t.d. 5%); Ef það er ekkert vandamál er það aukið smám saman.
  • A/B prófun: Tvö líkön eru kynnt fyrir raunverulegum notanda samhliða og viðskiptamælingar (viðskipti, smellir) bornar saman.
  • Afturköllun: Geta til að fara fljótt aftur í gömlu útgáfuna ef nýja gerðin reynist slæm. Sérhver dreifing ætti að hafa afturköllunaráætlun.
Varúð: Dreifing án afturköllunaráætlunar er ekki lokið. Að geta farið aftur í gömlu útgáfuna innan nokkurra mínútna verndar notandann þegar nýja gerðin hegðar sér óvænt í framleiðslu. Prófaðu þetta fyrir dreifingu.

Veik nálgun / Sterk nálgun

Veik: "Módelið var gott í prófunum, við fórum í loftið, opnuðum það fyrir öllum."

Güçlü: "Við settum líkanið í gáma, merktum það sem útgáfu. Í fyrsta lagi keyrðum við það í skuggaham með framleiðsluumferð í 3 daga, borum saman spárnar við gamla líkanið - frávik var ásættanlegt. Síðan opnuðum við það með 5% kanarífugli, fylgjumst með afköstum og leynd. Þegar engin vandamál voru uppi, höfðum við smám saman aukið skipunina aftur í 0%.

Munurinn: sterka nálgunin er smám saman, mæld og afturkræf. Áhættan er takmörkuð í hverju skrefi.

CI/CD og sjálfvirkni

CI/CD (Continuous Integration / Continuous Deployment: leiðsla sjálfvirkrar prófunar og útgáfu kóðabreytinga) í ML nær ekki aðeins yfir kóðann heldur einnig gögnin og líkanskrefin. Góð ML CI/CD leiðsla: keyrir prófanir þegar kóðinn breytist, framkvæmir gagnaprófun, endurþjálfar líkanið (ef nauðsyn krefur), athugar matsþröskulda og framfarir aðeins dreifingu ef viðmiðunarmörkin halda. Meginreglan um „þjálfun er sjálfvirk, dreifing er byggð á þröskuldi“ kemur í veg fyrir að slæma líkanið leki hljóðlaust út í framleiðslu.

AI er mjög gagnlegt þegar þú setur upp þessar leiðslur: að skrifa uppkastsskrá (YAML) drög, prófunartilvik, dreifingarforskriftir. En þú ákvarðar dreifingarþröskulda (hvað sem mælikvarðinn fer yfir hvaða gildi er birt) og afturköllunarstefnu; þetta eru áhættuákvarðanir í viðskiptum.

Endurgerðanleikainnviðir

Til að endurskapa hegðun líkans í framleiðslu, módelskrá: skrá sem heldur hvaða líkan var þjálfað með hvaða gögnum og kóða og hvaða mælikvarða það fékk. Fyrir hvert framleiðslulíkan ætti eftirfarandi að vera rekjanlegt: þjálfunargagnaútgáfa, kóðaútgáfa (git commit), ofurfæribreytur, matsstig og dreifingardagur. Þegar vandamál koma upp ættir þú að geta svarað spurningunni "hvaða líkan framleiddi þessa spá, með hvaða gögnum?" innan nokkurra mínútna. Við munum dýpka þetta í einingu 11.

þrjú smámál

Tilfelli 1 - Vandamál gripið af skuggadreifingu. Meðmælalíkan sló það gamla í prófunum. Að keyra það með framleiðsluumferð í skuggaham sýndi mjög lélegar ráðleggingar fyrir tiltekinn hluta notenda (nýja notendur) - prófunargögnin voru of lítil fyrir þennan hluta. Líkanið var lagað án þess að hafa nokkurn tíma sýnt notandanum. Ef það væri opnað beint myndi nýja notendaupplifunin truflast.

Mál 2 - Óafturkallanleg dreifing. Teymi setti út nýtt verðlíkan fyrir alla umferð, án áætlunar um afturköllun. Líkanið verðlagði sumar vörur óvænt mjög ódýrt. Að fara aftur í gömlu útgáfuna tók nokkrar klukkustundir vegna þess að ferlið var ekki tilbúið. Þar varð verulega tekjutap. Eftir það var lögboðnum afturköllunarprófum bætt við hverja uppsetningu.

Tilfelli 3 - Hljóðlaust gagnastreymi. Svikamynstur birtist í marga mánuði án nokkurra villna. En tækni svikara breyttist (gagnarek) og innköllun líkansins féll hljóðlega. Enginn tók eftir því því ekkert eftirlit var. Þegar búið var að koma á fót vöktunarspjaldi fyrir spár um dreifingu varð rekið sýnilegt snemma. Við munum fjalla um eftirlit í einingu 8.

Afritanleg sniðmát

Skrifaðu drög að dreifingaráætlun fyrir þetta líkan. Gerð: [hvað það gerir], notkun: [á netinu eða hópur?] Ætti að innihalda: 1) Pökkun (ílát, útgáfa) 2) Stigvaxandi dreifingarstefna (skuggi/kanarífugl/A-B) og hvers vegna3) Mælingar til að rekja (viðskipti + tæknileg + leynd)4) Afturköllunaráætlun og hvernig á að prófa5) Dreifingarmörk ættu að fara yfir hvaða gildi)

Athugaðu þessa ML CI/CD leiðslu:1) Er gagnaprófun í línunni?2) Getur dreifingin haldið áfram án þess að halda matsþröskuldinum (ætti það ekki)?3) Er afturköllun sjálfvirk?4) Er gögn+kóði+mælingar raktar í líkanaskránni?Plínustilling: [config]

Hjálpaðu mér að ákveða hvort net- eða lotukynning henti þessu líkani. Hversu lengi verður niðurstaðan notuð: [augnablik / mínúta / klukkustund / dag] Væntanlegt rúmmál beiðna: [númer] Er einhver tafatakmörkun: [ms]Hverjum myndir þú mæla með hvað varðar kostnað og flókið og hvers vegna?

Skrifaðu afturköllunarferli fyrir þetta líkan.- Hvaða mælikvarði/þröskuldur kallar fram lélega frammistöðu?- Hver eru afturköllunarskrefin?- Hversu langan tíma ætti afturköllunin að taka (markmið)?- Hvernig prófa ég þetta verklag fyrir framleiðslu?

Kynningarmynsturtafla

viðmiðun

Á netinu (rauntími)

Hópur

seinkun

Mikilvægt (ms)

óveruleg

Notkun

Tafarlaust svar krafist

Reglubundið stig

Kostnaður

hátt

lágt

margbreytileika

hátt

lágt

dæmi

Lifandi meðmæli, svindl

Mánaðarlegt áhættustig

Algeng mistök

  • Dreifðu án áætlunar um endurheimt. Rangt líkan snertir allan notandann.
  • Opnun beint fyrir 100% umferð. Takmarkaðu áhættu með þrepaskiptri dreifingu.
  • Ekki koma á eftirliti. Líkanið framleiðir villur hljóðlaust, án villu.
  • Óþarfi rauntíma kynning. Þó að skammta sé nægjanlegt, eykst kostnaður og flækjustig.
  • Ekki að tengja útgáfur líkan-gagnakóða. Þú getur ekki endurskapað vandamálið.
  • Sjálfvirk losun án dreifingarþröskulds. Slæma módelið laumast þegjandi inn.

Í stuttu máli

Að færa líkanið í framleiðslu er annað og oft erfiðara verkfræðiverkefni en að þjálfa það. ML krefst auka aga vegna þess að það fer eftir kóða-gagnalíkönum þríeyksins: pökkun og útgáfu, afhendingarmynstur (á netinu/lotu) sem hentar viðskiptaþörfinni, hægfara og afturkræf dreifing, þröskuldsstýrð CI/CD og módelskráning. Gervigreind er öflugt hjálpartæki við að búa til kóða og uppsetningu þessa innviða; en dreifingarþröskuldar, afturköllunarstefna og áhættuákvarðanir eru þínar. Dreifingu án afturköllunaráætlunar er ekki lokið.

Umsóknarverkefni

Geymdu (Docker) líkan og merktu það útgáfu. Ákveddu hvort þú ætlar að bjóða á netinu eða hópa út frá viðskiptaþörfum þínum og skrifaðu rökstuðninginn þinn. Skjalaðu áfangaáætlun (skuggi eða kanarífugl) og prófuð ferli til baka. Gakktu úr skugga um að þú skráir gagnaútgáfuna, kóðaframkvæmd og matsstig í líkanaskránni.

gátlisti

  • [ ] Líkanið er pakkað og útfært (ílát + merkimiði).
  • [ ] Kynningarmynstur (á netinu/lotur) var valið í samræmi við viðskiptaþörf.
  • [ ] Stigsett dreifingaráætlun (skuggi/kanarífugl) innleidd.
  • [ ] Afturköllunaraðferð skrifuð og prófuð.
  • [ ] CI/CD flýtir ekki fyrir dreifingu áður en matsþröskuldinum er náð.
  • [ ] Líkanaskráin geymir gagna+kóðann+mælingartengilinn.