Faida:
- Uwezo wa kutambua changamoto maalum za ML zinazohusiana na utatu wa modeli-data-mfano na kuwasilisha kielelezo mtandaoni au kwa kundi kulingana na hitaji la biashara.
- Uwezo wa kutekeleza mifumo ya uwekaji taratibu na urejeshaji nyuma (kivuli, canary, A/B, kurejesha) na kuongeza mpango wa urejeshaji uliojaribiwa kwa kila upelekaji.
- Uwezo wa kuweka kiunga cha metriki ya data-code-metric ya modeli iliyowekwa katika uzalishaji inayoweza kufuatiliwa na CI/CD inayodhibitiwa na kiwango cha juu cha tathmini na usajili wa mfano.
Kupata mfano ili kufikia usahihi wa 95% kwenye daftari ni nusu tu ya hadithi. Nusu nyingine - mara nyingi sehemu ngumu - ni kupata modeli hiyo kwa watumiaji halisi kwa njia ya kutegemewa, hatarishi, na inayoweza kudumishwa. MLOps (Operesheni za Kujifunza kwa Mashine: taaluma ya kuweka, kuendesha, na kudumisha miundo ya ML katika uzalishaji) inachanganya mbinu za DevOps za uhandisi wa programu na changamoto za kipekee za ML. Katika kitengo hiki, tunashughulikia hatua za kuhamisha muundo hadi kwa uzalishaji na jinsi akili ya bandia inavyosaidia katika mchakato huu.
Kwa nini ML ni tofauti na programu ya kawaida?
Katika programu ya kawaida, tabia ni katika kanuni; Ikiwa nambari haibadilika, tabia haibadilika. Katika ML, tabia inategemea nambari zote mbili, data na mfano. Vipimo hivi vitatu huunda changamoto za ziada za MLOps:
- Data drift: Data katika uzalishaji husogea mbali na data katika mafunzo kwa muda; mtindo unakuwa wa kizamani.
- Unahitaji kutoa toleo la vitu vitatu: Msimbo, data, na muundo-vyote vitatu.
- Kushindwa kwa kimya: Mfano unaweza kushindwa bila kuanguka, bila kutoa makosa, kwa kutoa utabiri usio sahihi. Kukamata hii kunahitaji ufuatiliaji.
Ndiyo maana kuna tofauti kubwa kati ya "mfano wa kufanya kazi" na "mfano tayari wa uzalishaji".
Ufungaji wa mfano na uwasilishaji
Hatua ya kwanza ya kuweka modeli katika uzalishaji ni kuifungasha: faili ya kielelezo, maktaba muhimu, msimbo wa kuchakata mapema, na maelezo ya toleo pamoja kama jumla inayoweza kuzaa tena. Uwekaji wa vyombo (k.m. Docker: kuweka programu kwenye kisanduku kilichotengwa na tegemezi zake zote) ni kawaida hapa; Inaondoa shida ya "ilikuwa ikifanya kazi kwenye mashine yangu".
Mitindo miwili ya msingi ya kutumikia mfano:
- Mkondoni/muda halisi (mtandaoni): Muundo hukaa nyuma ya API, na kurudisha ubashiri wa papo hapo kwa kila ombi linaloingia. Ucheleweshaji wa chini ni muhimu.
- Kundi: Muundo huu huchakata seti kubwa za data mara kwa mara (k.m. hutoa alama kwa wateja wote usiku). Latency haina maana, ufanisi ni muhimu.
Ni ipi iliyo sahihi inategemea hitaji la biashara: pendekezo la papo hapo mtandaoni, alama za hatari za kila mwezi kwa kundi.
Kidokezo: "Muda halisi" ni gharama, sio chaguo-msingi. Kundi ni nafuu zaidi na rahisi zaidi ikiwa matokeo yatatumika ndani ya masaa. Je, unahitaji jibu la papo hapo? Uliza hilo kwanza.
Salama mikakati ya usambazaji
Kufungua mtindo mpya moja kwa moja kwa trafiki yote ni hatari; Ikiwa sio sawa, kila mtu huathirika. Mitindo ya usambazaji salama:
- Utumiaji kivuli: Muundo mpya hupokea trafiki ya uzalishaji, lakini utabiri wake hauonyeshwi kwa mtumiaji, umeingia tu. Inalinganishwa na mfano wa zamani ili kuona ikiwa ni salama katika data halisi.
- Usambazaji wa Canary: Muundo mpya hutolewa kwanza kwa asilimia ndogo ya trafiki (k.m. 5%); Ikiwa hakuna tatizo, huongezeka hatua kwa hatua.
- Jaribio la A/B: Miundo miwili inawasilishwa kwa mtumiaji halisi kwa sambamba na vipimo vya biashara (ugeuzaji, mibofyo) hulinganishwa.
- Urejeshaji nyuma: Uwezo wa kurudi kwa haraka kwa toleo la zamani ikiwa mtindo mpya utageuka kuwa mbaya. Kila upelekaji unapaswa kuwa na mpango wa kurejesha.
Tahadhari: Usambazaji bila mpango wa kurejesha haujakamilika. Kuweza kurejesha toleo la zamani ndani ya dakika chache hulinda mtumiaji wakati muundo mpya ukifanya kazi bila kutarajiwa katika toleo la umma. Jaribu hili kabla ya kupelekwa.
Mbinu dhaifu / Mbinu kali
Dhaifu: "Mfano huo ulikuwa mzuri katika kupima, tulienda kuishi, tuliifungua kwa kila mtu."
Güçlü: "Tuliweka mfano kwenye kontena, tukaiweka lebo kama toleo. Kwanza, tuliiendesha katika hali ya kivuli na trafiki ya uzalishaji kwa siku 3, tukilinganisha ubashiri na muundo wa zamani - kupotoka kulikubalika. Kisha tukaifungua kwa 5% ya canary, kufuatilia vipimo vya upitishaji na ucheleweshaji. Wakati hakukuwa na shida, tuliiongeza hatua kwa hatua hadi 100%.
Tofauti: mbinu kali ni ya taratibu, iliyopimwa na inayoweza kubadilishwa. Hatari ni mdogo kwa kila hatua.
CI/CD na otomatiki
CI/CD (Ushirikiano Unaoendelea / Usambazaji Unaoendelea: bomba la majaribio ya kiotomatiki na kutoa mabadiliko ya misimbo) katika ML haijumuishi tu msimbo bali pia data na hatua za muundo. Bomba nzuri la ML CI/CD: hufanya majaribio wakati msimbo unabadilika, hufanya uthibitishaji wa data, hufunza tena muundo (ikihitajika), hukagua vizingiti vya tathmini, na huboresha utumaji ikiwa tu kiwango cha juu kinashikilia. Kanuni ya "mafunzo ni ya kiotomatiki, upelekaji ni msingi wa kizingiti" huzuia mtindo mbaya kuvuja kimya kwenye uzalishaji.
AI inasaidia sana wakati wa kusanidi mabomba haya: kuandika rasimu za faili ya usanidi (YAML), kesi za majaribio, hati za kupeleka. Lakini unabainisha viwango vya usambazaji (vipimo vyovyote vinavyozidi thamani iliyochapishwa) na sera ya kurejesha; haya ni maamuzi ya hatari ya biashara.
Miundombinu ya kuzaliana
Ili kuzaliana tabia ya modeli katika uzalishaji, sajili ya kielelezo: rekodi inayoweka ni modeli ipi ilifunzwa kwa kutumia data na msimbo upi, na vipimo vipi ilipokea. Kwa kila muundo wa toleo la umma, yafuatayo yanafaa kufuatiliwa: toleo la data ya mafunzo, toleo la msimbo (git commit), viwango vya juu, alama za tathmini na tarehe ya kutekelezwa. Tatizo linapotokea, unapaswa kuwa na uwezo wa kujibu swali "ni mtindo gani ulitoa utabiri huu, na data gani?" ndani ya dakika. Tutaongeza hii katika sura ya 11.
kesi tatu ndogo
Kesi ya 1 - Tatizo lililonaswa na usambazaji wa kivuli. Mfano wa pendekezo ulishinda ule wa zamani katika majaribio. Kuiendesha na trafiki ya uzalishaji katika hali ya kivuli ilipatikana kutoa mapendekezo duni sana kwa sehemu fulani ya watumiaji (watumiaji wapya) - data ya jaribio ilikuwa wakilishi wa chini wa sehemu hii. Muundo huo ulirekebishwa bila kuonyeshwa kwa mtumiaji. Ikiwa ingefunguliwa moja kwa moja, matumizi mapya ya mtumiaji yangetatizwa.
Kesi ya 2 - Usambazaji usioweza kubatilishwa. Timu ilizindua muundo mpya wa bei kwa watazamaji wote, bila mipango ya kurejesha. Mtindo huo uligharimu baadhi ya bidhaa bila kutarajia kwa bei nafuu sana. Kurejesha toleo la zamani kulichukua saa kwa sababu mchakato haukuwa tayari. Kulikuwa na hasara kubwa ya mapato. Baadaye, jaribio la urejeshaji la lazima liliongezwa kwa kila utumaji.
Kesi ya 3 - Uhamishaji wa data kimya. Mtindo wa ulaghai ulionekana kwa miezi bila makosa yoyote. Lakini mbinu za wadanganyifu zilibadilika (data drift) na kumbukumbu ya mfano ilishuka kimya kimya. Hakuna mtu aliyegundua kwa sababu hapakuwa na ufuatiliaji. Mara baada ya jopo la ufuatiliaji wa usambazaji wa utabiri kuanzishwa, drift ilionekana mapema. Tutashughulikia ufuatiliaji katika kitengo cha 8.
Violezo vinavyoweza kunakiliwa
Andika rasimu ya mpango wa upelekaji wa modeli hii. Muundo: [inachofanya], matumizi: [mtandaoni au kundi?] Inapaswa kujumuisha:1) Ufungaji (chombo, toleo)2) Mbinu ya uwekaji wa ongezeko (kivuli/mfereji/A-B) na kwa nini3) Vipimo vya kufuatilia (biashara + kiufundi + muda)4) Mpango wa kurejesha nyuma na jinsi ya kujaribu5) Usambazaji unapaswa kuzidi viwango gani vya thamani)
Angalia bomba hili la ML CI/CD:1) Je, uthibitishaji wa data uko kwenye mstari?2) Je, utumaji unaweza kuendelea bila kushikilia kiwango cha juu cha tathmini (lazima sivyo)?3) Je, urejeshaji ni otomatiki?4) Je, vipimo vya data+code+ vinafuatiliwa katika sajili ya kielelezo?Mipangilio ya laini: [config]
Nisaidie kuamua ikiwa wasilisho la mtandaoni au bechi linafaa kwa muundo huu. Je, matokeo yatatumika kwa muda gani: [papo hapo / dakika / saa / siku]Ukubwa wa ombi linalotarajiwa: [number]Je, kuna kikwazo cha kuchelewesha: [ms]Ni kipi ungependekeza kulingana na gharama na utata na kwa nini?
Andika utaratibu wa kurejesha muundo huu.- Je, ni kipimo/kizingiti gani kinachosababisha utendakazi duni?- Je, ni hatua zipi za kurejesha?- Urejeshaji unapaswa kuchukua muda gani (lengo)?- Je, ninawezaje kupima utaratibu huu kabla ya uzalishaji?
Jedwali la muundo wa wasilisho
kigezo
Mtandaoni (muda halisi)
Kundi
kuchelewa
Muhimu (ms)
isiyo na maana
Matumizi
Jibu la papo hapo linahitajika
Alama ya mara kwa mara
Gharama
juu
chini
utata
juu
chini
mfano
Mapendekezo ya moja kwa moja, kashfa
Alama ya kila mwezi ya hatari
Makosa ya kawaida
- Sambaza bila mpango wa kurejesha. Muundo mbaya humpata mtumiaji mzima.
- Inafungua moja kwa moja kwa trafiki 100%. Punguza hatari kwa usambazaji uliopangwa.
- Sio kuanzisha ufuatiliaji. Mfano hutoa makosa kimya kimya, bila makosa.
- Uwasilishaji usiohitajika wa wakati halisi. Wakati batching inatosha, gharama na utata huongezeka.
- Haiunganishi matoleo ya msimbo wa data ya modeli. Huwezi kuzaliana tatizo.
- Kutolewa kiotomatiki bila kikomo cha usambazaji. Mfano mbaya huingia kimya kimya.
Kwa muhtasari
Kuhamisha modeli kwenye uzalishaji ni kazi tofauti na mara nyingi ngumu zaidi ya uhandisi kuliko kuifunza. ML inahitaji nidhamu ya ziada kwa sababu inategemea aina tatu za muundo wa data-msimbo: upakiaji na matoleo, muundo wa uwasilishaji (mtandaoni/bechi) ambao unakidhi hitaji la biashara, utumaji wa taratibu na unaoweza kutenduliwa, CI/CD inayodhibitiwa na kiwango cha juu na usajili wa modeli. Akili ya Bandia ni msaada mkubwa katika kuzalisha kanuni na usanidi wa miundombinu hii; lakini vizingiti vya usambazaji, sera ya kurudi nyuma, na maamuzi ya hatari ni yako. Usambazaji bila mpango wa kurejesha haujakamilika.
Jukumu la maombi
Containerize (Docker) mfano na uweke lebo toleo. Amua ikiwa utatoa mtandaoni au bechi kulingana na mahitaji ya biashara yako na uandike sababu yako. Andika mpango wa kupeleka kwa awamu (kivuli au canary) na utaratibu uliojaribiwa wa kurejesha. Hakikisha umerekodi toleo la data, ahadi ya msimbo, na alama za tathmini katika sajili ya mfano.
orodha ya ukaguzi
- [ ] Muundo umefungwa na kubadilishwa (chombo + lebo).
- [ ] Muundo wa uwasilishaji (mtandaoni/bechi) ulichaguliwa kulingana na hitaji la biashara.
- [ ] Mkakati wa kusambaza kwa hatua (kivuli/mfereji) umetekelezwa.
- [ ] Utaratibu wa kurejesha umeandikwa na kupimwa.
- [ ] CI/CD haifanyi utumaji mapema kabla ya kiwango cha tathmini kufikiwa.
- [ ] Sajili ya kielelezo inashikilia kiungo cha data+code+metric.