Foghlaim Meaisín Thionsclaíoch: 10 bPrionsabal Dearaidh

Foghlaim Meaisín Thionsclaíoch: 10 bPrionsabal Dearaidh

Sa lá atá inniu ann, cruthaítear seirbhísí nua, feidhmchláir agus cláir thábhachtacha eile gach lá a fhágann gur féidir rudaí dochreidte a chruthú: ó bhogearraí chun roicéad SpaceX a rialú go dtí idirghníomhú le citeal sa chéad seomra eile trí fhón cliste.

Agus, uaireanta, tagann gach ríomhchláraitheoir novice, cibé an tosaitheoir paiseanta é nó gnáth-Chruach Iomlán nó Eolaí Sonraí, ar an tuiscint go bhfuil rialacha áirithe ann maidir le ríomhchlárú agus cruthú bogearraí a shimplíonn an saol go mór.

San Airteagal seo, déanfaidh mé cur síos go hachomair ar 10 bprionsabal maidir le conas foghlaim mheaisín thionsclaíoch a ríomhchlárú ionas gur féidir í a chomhtháthú go héasca in iarratas/seirbhís, bunaithe ar mhodheolaíocht App 12-fachtóir. molta ag foireann Heroku. Is é mo thionscnamh feasacht a mhéadú ar an teicníc seo, rud a d'fhéadfadh cabhrú le go leor forbróirí agus daoine eolaíochta sonraí.

Is réamhrá é an t-alt seo do shraith alt faoi Fhoghlaim Meaisín thionsclaíoch. Ina measc beidh mé ag caint tuilleadh faoi conas múnla a dhéanamh i ndáiríre agus é a sheoladh isteach i dtáirgeadh, API a chruthú dó, chomh maith le samplaí ó réimsí agus cuideachtaí éagsúla a bhfuil ML ionsuite ina gcórais acu.

Prionsabal 1: Bonn cód amháin

Roinnt ríomhchláraitheoirí ag na chéad chéimeanna, as leisce chun é a dhéanamh amach (nó ar chúis éigin dá gcuid féin), déan dearmad faoi Git. Déanann siad dearmad go hiomlán ar an bhfocal, is é sin, caitheann siad comhaid ar a chéile sa tiomáint / ní dhéanann siad ach téacs a chaitheamh / a sheoladh le colúir, nó ní smaoiníonn siad trína sreabhadh oibre, agus tiomnaíonn siad gach ceann dá bhrainse féin, agus ansin chuig an máistir.

Deir an prionsabal seo: tá códbase amháin agus go leor imscaradh.

Is féidir Git a úsáid i dtáirgeadh agus i dtaighde agus forbairt (T&F), áit nach n-úsáidtear é chomh minic sin.

Mar shampla, sa chéim T&F is féidir leat gealltanais a fhágáil le modhanna agus múnlaí éagsúla próiseála sonraí, chun an ceann is fearr a roghnú ansin agus leanúint ar aghaidh ag obair leis níos faide.

Ar an dara dul síos, i dtáirgeadh is rud do-athsholáthair é seo - beidh ort breathnú i gcónaí ar an gcaoi a n-athraíonn do chód agus fios a bheith agat cén tsamhail a thug na torthaí is fearr, cén cód a d'oibrigh sa deireadh agus cad a tharla ba chúis leis stop a bheith ag obair nó tosú ag táirgeadh torthaí mícheart. . Sin a bhfuil gealltanais!

Is féidir leat pacáiste de do thionscadal a chruthú freisin, é a chur, mar shampla, ar Gemfury, agus ansin go simplí feidhmeanna a allmhairiú uaidh do thionscadail eile, ionas nach n-athscríobhtar iad 1000 uair, ach níos mó ar sin níos déanaí.

Prionsabal 2: spleáchais a dhearbhú agus a leithlisiú go soiléir

Tá leabharlanna éagsúla ag gach tionscadal a iompórtálann tú ón taobh amuigh chun iad a chur i bhfeidhm áit éigin. Cibé an leabharlanna Python é, nó leabharlanna teangacha eile chun críocha éagsúla, nó uirlisí córais - is é an tasc atá agat:

  • Dearbhaigh go soiléir spleáchais, is é sin, comhad ina mbeidh na leabharlanna, na huirlisí, agus a leaganacha go léir a úsáidtear i do thionscadal agus a chaithfear a shuiteáil (mar shampla, i Python is féidir é seo a dhéanamh ag baint úsáide as Pipfile nó requirements.txt. A. A. nasc a cheadaíonn go maith tuiscint a fháil: realpython.com/pipenv-treoir)
  • Leithlisigh spleáchais go sonrach do do chlár le linn forbartha. Ní theastaíonn uait leaganacha a athrú de shíor agus athshuiteáil a dhéanamh, mar shampla, Tensorflow?

Ar an mbealach seo, beidh na forbróirí a bheidh páirteach i d'fhoireann sa todhchaí in ann dul i dtaithí go tapa ar na leabharlanna agus ar na leaganacha a úsáidtear i do thionscadal, agus beidh deis agat freisin na leaganacha agus na leabharlanna suiteáilte féin a bhainistiú ar feadh tréimhse shonrach. tionscadal, a chabhróidh leat neamh-chomhoiriúnacht leabharlann nó a gcuid leaganacha a sheachaint.

Níor cheart go mbeadh d’iarratas ag brath ar uirlisí córais a d’fhéadfaí a shuiteáil ar OS ar leith. Ní mór na huirlisí seo a dhearbhú freisin sa léiriú spleáchais. Tá sé seo riachtanach chun cásanna a sheachaint nuair nach bhfuil leagan na n-uirlisí (chomh maith lena n-infhaighteacht) ag teacht le huirlisí córais OS ar leith.

Mar sin, fiú amháin más féidir curl a úsáid ar bheagnach gach ríomhaire, ba cheart duit é a dhearbhú fós i spleáchais, ós rud é agus tú ag aistriú chuig ardán eile b'fhéidir nach mbeidh sé ann nó nach é an leagan a bhí uait ar dtús.

Mar shampla, d’fhéadfadh go mbeadh cuma mar seo ar do riachtanais.txt:

# Model Building Requirements
numpy>=1.18.1,<1.19.0
pandas>=0.25.3,<0.26.0
scikit-learn>=0.22.1,<0.23.0
joblib>=0.14.1,<0.15.0

# testing requirements
pytest>=5.3.2,<6.0.0

# packaging
setuptools>=41.4.0,<42.0.0
wheel>=0.33.6,<0.34.0

# fetching datasets
kaggle>=1.5.6,<1.6.0

Prionsabal 3: Cumraíochtaí

Tá scéalta cloiste ag go leor daoine faoi fhorbróirí éagsúla ag uaslódáil cód de thaisme chuig GitHub isteach i stórtha poiblí le pasfhocail agus eochracha eile ó AWS, ag dúiseacht an lá dár gcionn le fiachas $6000, nó fiú $50000.

Foghlaim Meaisín Thionsclaíoch: 10 bPrionsabal Dearaidh

Ar ndóigh, tá na cásanna seo mhór, ach an-suntasach. Má stóráil tú do chuid dintiúir nó sonraí eile atá ag teastáil le haghaidh cumraíochta taobh istigh den chód, tá botún á dhéanamh agat, agus is dóigh liom nach gá a mhíniú cén fáth.

Rogha eile air seo is ea cumraíochtaí a stóráil in athróga timpeallachta. Is féidir leat tuilleadh a léamh faoi athróga timpeallachta anseo.

Samplaí de shonraí a stóráiltear go hiondúil in athróga timpeallachta:

  • Ainmneacha fearainn
  • URLanna API/URI
  • Eochracha poiblí agus príobháideacha
  • Teagmhálaithe (post, gutháin, srl.)

Ar an mbealach seo ní gá duit an cód a athrú i gcónaí má athraíonn d'athróga cumraíochta. Cabhróidh sé seo leat am, iarracht agus airgead a shábháil.

Mar shampla, má úsáideann tú Kaggle API chun tástálacha a dhéanamh (mar shampla, íoslódáil na bogearraí agus rith an tsamhail tríd chun a thástáil agus é á reáchtáil go n-oibríonn an tsamhail go maith), ansin ba cheart eochracha príobháideacha ó Kaggle, mar KAGGLE_USERNAME agus KAGGLE_KEY, a bheith stóráilte in athróga timpeallachta.

Prionsabal 4: Seirbhísí Tríú Páirtí

Is é an smaoineamh anseo ná an clár a chruthú sa chaoi is nach bhfuil aon difríocht idir acmhainní áitiúla agus acmhainní tríú páirtí i dtéarmaí cód. Mar shampla, is féidir leat MySQL áitiúil agus cinn tríú páirtí a nascadh. Tá an rud céanna fíor i gcás APIanna éagsúla cosúil le Google Maps nó Twitter API.

D'fhonn seirbhís tríú páirtí a dhíchumasú nó ceann eile a nascadh, ní mór duit ach na heochracha sa chumraíocht a athrú sna hathróga timpeallachta, ar labhair mé faoi sa mhír thuas.

Mar sin, mar shampla, in ionad an cosán chuig comhaid a shonrú le tacair shonraí taobh istigh den chód gach uair, is fearr an leabharlann pathlib a úsáid agus an cosán chuig na tacair sonraí a dhearbhú i config.py, ionas nach cuma cén tseirbhís a úsáideann tú (do mar shampla, CircleCI), bhí an clár in ann an cosán chuig na tacair sonraí a fháil amach agus struchtúr an chórais comhad nua sa tseirbhís nua á gcur san áireamh.

Prionsabal 5. Tógáil, scaoileadh, am rite

Bíonn sé úsáideach do go leor daoine in Eolaíocht Sonraí a scileanna scríbhneoireachta bogearraí a fheabhsú. Más mian linn go n-éireodh lenár gclár chomh hannamh agus is féidir agus oibriú gan teipeanna chomh fada agus is féidir, ní mór dúinn an próiseas chun leagan nua a scaoileadh a roinnt ina 3 chéim:

  1. Céim tionóil. Athraíonn tú do chód lom le hacmhainní aonair isteach i bpacáiste mar a thugtar air ina bhfuil an cód agus na sonraí riachtanacha go léir. Tugtar tionól ar an bpacáiste seo.
  2. Céim scaoileadh — anseo nascann muid ár gcumraíocht leis an tionól, agus gan é sin ní bheimis in ann ár gclár a scaoileadh. Anois tá sé seo go hiomlán réidh le seoladh scaoileadh.
  3. Ansin tagann an stáitse comhlíonadh. Anseo scaoilimid an t-iarratas trí na próisis riachtanacha a rith ónár scaoileadh.

Ligeann córas den sórt sin chun leaganacha nua de shamhail nó den phíblíne iomlán a scaoileadh duit róil a scaradh idir riarthóirí agus forbróirí, ligeann sé duit leaganacha a rianú agus seachnaíonn sé stadanna nach dteastaíonn ón gclár.

Maidir leis an tasc scaoileadh, cruthaíodh go leor seirbhísí éagsúla inar féidir leat próisis a scríobh chun tú féin a rith i gcomhad .yml (mar shampla, i CircleCI tá sé seo config.yml chun tacú leis an bpróiseas féin). Tá Wheely iontach ag cruthú pacáistí do thionscadail.

Is féidir leat pacáistí a chruthú le leaganacha éagsúla de do mhúnla meaisínfhoghlama, agus ansin iad a phacáistiú agus tagairt a dhéanamh do na pacáistí riachtanacha agus a leaganacha chun na feidhmeanna a scríobh tú as sin a úsáid. Cabhróidh sé seo leat API a chruthú do do mhúnla, agus is féidir do phacáiste a óstáil ar Gemfury, mar shampla.

Prionsabal 6. Rith do mhúnla mar phróiseas amháin nó níos mó

Ina theannta sin, níor cheart go mbeadh sonraí comhroinnte ag próisis. Is é sin, ní mór próisis a bheith ann ar leithligh, agus ní mór go mbeadh gach cineál sonraí ann ar leithligh, mar shampla, ar sheirbhísí tríú páirtí cosúil le MySQL nó daoine eile, ag brath ar an méid atá uait.

Is é sin, is cinnte nach fiú sonraí a stóráil taobh istigh den chóras comhaid próisis, nó d’fhéadfadh go n-imréitigh na sonraí seo le linn an chéad eisiúint eile / athrú cumraíochtaí nó aistriú an chórais ar a ritheann an clár.

Ach tá eisceacht ann: i gcás tionscadal meaisínfhoghlama, is féidir leat taisce leabharlann a stóráil ionas nach n-athshuiteálann tú iad gach uair a sheolann tú leagan nua, mura bhfuil aon leabharlanna breise nó aon athruithe déanta ar a gcuid leaganacha. Ar an mbealach seo, laghdóidh tú an t-am a thógann sé chun do mhúnla a sheoladh sa tionscal.

Chun an tsamhail a reáchtáil mar phróisis éagsúla, is féidir leat comhad .yml a chruthú ina sonraíonn tú na próisis riachtanacha agus a seicheamh.

Prionsabal 7: In-athchúrsáil

Ba cheart go mbeadh na próisis a ritheann i d’iarratas eiseamláireach éasca le tosú agus stop. Mar sin, ligfidh sé seo duit athruithe cód, athruithe cumraíochta, scála tapa agus solúbtha a imscaradh go tapa, agus cosc ​​a chur ar mhiondealuithe féideartha ar an leagan oibre.

Is é sin, ba cheart do do phróiseas leis an tsamhail:

  • Íoslaghdaigh an t-am tosaithe. Go hidéalach, níor cheart go mbeadh an t-am tosaithe (ón nóiméad a eisíodh an t-ordú tosaithe go dtí an nóiméad a thagann an próiseas i bhfeidhm) níos mó ná cúpla soicind. Teicníc amháin is ea taisceadh leabharlainne, a gcuirtear síos air thuas, chun am tosaithe a laghdú.
  • Críoch i gceart. Is é sin, tá éisteacht ar an gcalafort seirbhíse ar fionraí i ndáiríre, agus ní dhéanfar iarratais nua a chuirtear isteach chuig an gcalafort seo a phróiseáil. Anseo ní mór duit cumarsáid mhaith a bhunú le hinnealtóirí DevOps, nó tuiscint a fháil ar conas a oibríonn sé tú féin (b'fhearr, ar ndóigh, an dara ceann, ach ba cheart cumarsáid a choinneáil i gcónaí, in aon tionscadal!)

Prionsabal 8: Imlonnú/Comhtháthú Leanúnach

Úsáideann go leor cuideachtaí deighilt idir na foirne forbartha agus imlonnaithe feidhmchlár (a chuireann an feidhmchlár ar fáil d’úsáideoirí deiridh). Is féidir leis seo moill mhór a chur ar fhorbairt bogearraí agus ar dhul chun cinn maidir lena fheabhsú. Milleann sé cultúr DevOps freisin, áit a bhfuil forbairt agus comhtháthú, go garbh, le chéile.

Mar sin, deir an prionsabal seo gur chóir go mbeadh do thimpeallacht forbartha chomh gar agus is féidir do do thimpeallacht táirgthe.

Ceadóidh sé seo:

  1. Laghdaigh an t-am scaoilte na mílte uair
  2. Laghdaigh líon na n-earráidí mar gheall ar neamh-chomhoiriúnacht an chóid.
  3. Laghdaíonn sé seo freisin an t-ualach oibre ar an bhfoireann, ós rud é gur foireann amháin anois iad na forbróirí agus na daoine a úsáideann an feidhmchlár.

Is iad na huirlisí a ligeann duit oibriú leis seo ná CircleCI, Travis CI, GitLab CI agus daoine eile.

Is féidir leat breisithe a dhéanamh go tapa ar an múnla, é a nuashonrú, agus é a sheoladh láithreach, agus beidh sé éasca, i gcás teipeanna, filleadh go han-tapa ar an leagan oibre, ionas nach dtabharfaidh an t-úsáideoir deiridh faoi deara fiú é. Is féidir é seo a dhéanamh go háirithe go héasca agus go tapa má tá tástálacha maithe agat.

Íoslaghdaigh na difríochtaí!!!

Prionsabal 9. Do logs

Is éard is logaí (nó “Logaí”) ann teagmhais, a thaifeadtar i bhformáid téacs de ghnáth, a tharlaíonn laistigh den fheidhmchlár (sruth imeachtaí). Sampla simplí: "2020-02-02 - leibhéal an chórais - ainm an phróisis." Tá siad deartha ionas gur féidir leis an bhforbróir a fheiceáil go litriúil cad atá ag tarlú nuair a bhíonn an clár ar siúl. Feiceann sé dul chun cinn na bpróiseas agus tuigeann sé an bhfuil sé mar a bhí beartaithe ag an bhforbróir féin.

Deir an prionsabal seo nár cheart duit do logaí a stóráil taobh istigh de do chóras comhad - níor cheart duit ach iad a “aschur” chuig an scáileán, mar shampla, déan é seo ar aschur caighdeánach an chórais. Agus ar an mbealach seo beidh sé indéanta monatóireacht a dhéanamh ar an sreabhadh sa chríochfort le linn na forbartha.

An gciallaíonn sé seo nach gá logaí a shábháil ar chor ar bith? Ar ndóigh ní. Níor cheart go ndéanfadh d’iarratas é seo a dhéanamh – fág chuig seirbhísí tríú páirtí é. Ní féidir le d’fheidhmchlár logaí a chur ar aghaidh ach chuig comhad nó teirminéal ar leith le féachaint orthu i bhfíor-am, nó iad a chur ar aghaidh chuig córas stórála sonraí ginearálta (cosúil le Hadoop). Níor cheart d’iarratas féin logaí a stóráil nó idirghníomhú leo.

Prionsabal 10. Tástáil!

Maidir le foghlaim meaisín tionsclaíoch, tá an chéim seo thar a bheith tábhachtach, ós rud é go gcaithfidh tú a thuiscint go n-oibríonn an tsamhail i gceart agus go dtáirgeann sé an méid a bhí uait.

Is féidir tástálacha a chruthú le pytest, agus iad a thástáil le tacar sonraí beaga má tá tasc aischéimniúcháin/rangaithe agat.

Ná déan dearmad an síol céanna a shocrú do mhúnlaí domhainfhoghlama ionas nach mbíonn torthaí difriúla acu i gcónaí.

Cur síos gairid a bhí anseo ar na 10 bprionsabal, agus, ar ndóigh, tá sé deacair iad a úsáid gan iarracht a dhéanamh agus féachaint conas a oibríonn siad, mar sin níl san alt seo ach réamhrá le sraith alt suimiúil ina nochtfaidh mé conas a chruthú. samhlacha meaisínfhoghlama tionsclaíocha , conas iad a chomhtháthú i gcórais, agus conas is féidir leis na prionsabail seo an saol a dhéanamh níos éasca dúinn go léir.

Déanfaidh mé iarracht freisin prionsabail fionnuar a úsáid is féidir le duine ar bith a fhágáil sna tuairimí más mian leo.

Foinse: will.com

Add a comment