Alamanuia Masini A'oa'oga: 10 Design Principles

Alamanuia Masini A'oa'oga: 10 Design Principles

I aso nei, o auaunaga fou, talosaga ma isi polokalame taua e faia i aso uma e mafai ai ona fatuina mea ofoofogia: mai le polokalama faakomepiuta mo le puleaina o le SpaceX rocket e fegalegaleai ma se ulo i le isi potu e ala i se telefoni.

Ma, o nisi taimi, soʻo se tagata fai polokalame fou, pe o ia o se amataga fiafia poʻo se Full Stack masani poʻo se Saienitisi Faʻamatalaga, e vave pe mulimuli ane oʻo mai i le iloa o loʻo i ai tulafono faʻapitoa mo le faʻatulagaina ma le fatuina o polokalama e matua faafaigofie ai le olaga.

I totonu o lenei tusiga, o le a ou faʻamatala faʻapuupuu 10 mataupu faavae o le faʻaogaina o masini aʻoaʻoga faʻapisinisi ina ia faigofie ona tuʻufaʻatasia i totonu o se talosaga / tautua, faʻavae i luga o le 12-factor App methodology. fautuaina e le 'au Heroku. O laʻu fuafuaga o le faʻateleina lea o le faʻalauiloaina o lenei metotia, lea e mafai ona fesoasoani i le tele o atinaʻe ma tagata faʻasaienisi faʻamatalaga.

O lenei tusiga o se faʻataʻitaʻiga i se faasologa o tala e uiga i alamanuia Machine Learning. I totonu ia i latou o le a ou talanoa atili ai pe faʻapefea ona faia moni se faʻataʻitaʻiga ma faʻalauiloa i totonu o le gaosiga, fatuina se API mo ia, faʻapea foʻi ma faʻataʻitaʻiga mai vaega eseese ma kamupani o loʻo fausia i totonu ML i totonu o latou faiga.

Mataupu Faavae 1: Tasi fa'avae code

O nisi tagata fai polokalame i laʻasaga muamua, ona o le paie e mafaufau i ai (poʻo se mafuaʻaga mo latou lava), galo ia Git. Latou te galo atoa le upu, o lona uiga, latou te togi faila i le tasi ma le isi i le taavale / na o le togiina o tusitusiga / lafo e lupe, pe latou te le mafaufau i la latou galuega, ma tautino atu taitoatasi i latou lava lala, ona sosoo ai lea ma le matai.

O loo faapea mai lenei mataupu faavae: ia tasi le codebase ma le tele o faʻatinoga.

Git e mafai ona faʻaoga uma i le gaosiga ma suʻesuʻega ma atinaʻe (R&D), lea e le faʻaaogaina soo.

Mo se faʻataʻitaʻiga, i le vaega R&D e mafai ona e tuʻuina atu faʻatasi ma auala eseese e faʻaogaina ai faʻamaumauga ma faʻataʻitaʻiga, ina ia mafai ai ona filifili le mea sili ma faigofie ona faʻaauau pea ona galue faʻatasi.

Lona lua, i le gaosiga o se mea e le mafai ona suia - e tatau ona e vaʻavaʻai i taimi uma pe faʻafefea ona suia lau code ma iloa poʻo le a le faʻataʻitaʻiga na maua ai iʻuga sili ona lelei, o le a le code na galue i le faaiuga ma le mea na tupu na mafua ai ona taofi le galue pe amata ona faia ni taunuuga le saʻo. . O le mea tonu lena e aoga ai!

E mafai foi ona e fatuina se afifi o lau poloketi, tuʻuina, mo se faʻataʻitaʻiga, i luga o Gemfury, ona naʻo le faʻaulufaleina mai o galuega mai ai mo isi galuega faatino, ina ia le toe tusia i latou 1000 taimi, ae sili atu i lena mea mulimuli ane.

Fa'avae 2: Fa'ailoa manino ma fa'aesea fa'alagolago

O poloketi ta'itasi e iai faletusi eseese e te fa'aulufale mai i fafo ina ia fa'aogaina i se mea. Pe o faletusi Python, poʻo faletusi o isi gagana mo faʻamoemoega eseese, poʻo meafaigaluega faʻaoga - o lau galuega o le:

  • Faʻaalia manino le faʻalagolago, o lona uiga, o se faila o le a aofia uma ai faletusi, meafaigaluega, ma latou faʻaoga o loʻo faʻaaogaina i lau poloketi ma e tatau ona faʻapipiʻi (mo se faʻataʻitaʻiga, i le Python e mafai ona faia lenei mea e faʻaaoga ai le Pipfile poʻo requirements.txt. A so'oga e mafai ai ona malamalama lelei: realpython.com/pipenv-guide)
  • Fa'ate'a fa'alagolago fa'apitoa mo lau polokalame i le taimi o atina'e. E te le manaʻo e suia i taimi uma lomiga ma toe faʻapipiʻi, mo se faʻataʻitaʻiga, Tensorflow?

I lenei auala, o tagata atiaʻe o le a auai i lau 'au i le lumanaʻi o le a mafai ona vave masani i faletusi ma a latou faʻamatalaga o loʻo faʻaaogaina i lau poloketi, ma o le ae maua foi le avanoa e pulea ai lomiga ma faletusi latou lava faʻapipiʻiina mo se faʻapitoa. poloketi, lea o le a fesoasoani ia te oe e aloese mai le le fetaui o faletusi po o latou lomiga.

O lau talosaga e le tatau foi ona faʻalagolago i meafaigaluega faʻapipiʻi e mafai ona faʻapipiʻi i luga o se OS patino. O nei meafaigaluega e tatau foi ona faʻaalia i faʻaaliga faʻalagolago. E manaʻomia lenei mea ina ia aloese ai mai tulaga e le fetaui ai le faʻasologa o meafaigaluega (faʻapea foʻi ma lo latou avanoa) ma meafaigaluega faʻaogaina o se OS faapitoa.

O le mea lea, e tusa lava pe mafai ona faʻaogaina le curl i luga o komepiuta uma, e tatau lava ona e faʻaalia i luga o faʻalagolago, talu ai pe a faimalaga i se isi faʻavae atonu e le o iai pe o le a le o le lomiga lea na e manaʻomia muamua.

Mo se faʻataʻitaʻiga, o lau requirements.txt atonu e foliga faapenei:

# 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

Mataupu Faavae 3: Fa'atonuga

E to'atele ua fa'alogo i tala e uiga i le tele o tagata atina'e na fa'afuase'i ona tu'uina atu le code i GitHub i fale teuoloa lautele ma fa'aupuga ma isi ki mai le AWS, ala mai i le aso na soso'o ai ma se aitalafu e $6000, po'o le $50000.

Alamanuia Masini A'oa'oga: 10 Design Principles

Ioe, o nei mataupu e ogaoga, ae matua taua. Afai e te teuina au faʻamatalaga poʻo isi faʻamatalaga e manaʻomia mo le faʻatulagaina i totonu o le code, o loʻo e faia se mea sese, ma ou te manatu e leai se manaʻoga e faʻamatalaina pe aisea.

O se isi mea i lenei mea o le teuina o fetuunaiga i fesuiaiga o le siosiomaga. E mafai ona e faitau atili e uiga i fesuiaiga o le siosiomaga iinei.

Fa'ata'ita'iga o fa'amaumauga e masani ona teuina i fesuiaiga o le si'osi'omaga:

  • Igoa fanua
  • API URLs/URI's
  • Ki fa'alaua'itele ma fa'apitoa
  • Feso'ota'iga (meli, telefoni, ma isi)

O le auala lea e te le tau suia ai pea le code pe afai e suia au fetuunaiga. O le a fesoasoani lea e laveai ai lou taimi, taumafaiga ma tupe.

Mo se faʻataʻitaʻiga, afai e te faʻaogaina le Kaggle API e faʻatino ai suʻega (mo se faʻataʻitaʻiga, download le polokalama ma faʻataʻitaʻi le faʻataʻitaʻiga e faʻataʻitaʻi ai pe a faʻaogaina e lelei le faʻataʻitaʻiga), ona tatau lea ona faʻaogaina ki patino mai Kaggle, e pei o KAGGLE_USERNAME ma KAGGLE_KEY. teuina i fesuiaiga o le siosiomaga.

Mataupu Faavae 4: Auaunaga Vaega Tolu

O le manatu iinei o le fatuina lea o le polokalame i se auala e leai se eseesega i le va o punaoa faʻapitonuʻu ma isi vaega i tulaga o code. Mo se faʻataʻitaʻiga, e mafai ona e faʻafesoʻotaʻi uma MySQL i le lotoifale ma isi vaega. E tutusa lava mo API eseese e pei ole Google Maps poʻo Twitter API.

Ina ia mafai ona faʻamalo se auaunaga lona tolu pe faʻafesoʻotaʻi se isi, e naʻo lou manaʻomia e sui ki i le faʻatulagaga i fesuiaiga o le siosiomaga, lea na ou talanoa i ai i le parakalafa i luga.

O lea, mo se faʻataʻitaʻiga, nai lo le faʻamalamalamaina o le ala i faila ma faʻamaumauga i totonu o le code i taimi taʻitasi, e sili atu le faʻaogaina o le pathlib library ma faʻaalia le ala i le datasets i config.py, e tusa lava po o le a le auaunaga e te faʻaaogaina (mo faʻataʻitaʻiga, CircleCI), na mafai e le polokalame ona suʻeina le ala i faʻamaumauga e faʻatatau i le fausaga o le faila faila fou i le auaunaga fou.

Mataupu Faavae 5. Fausia, fa'asa'oloto, ta'avale

E to'atele tagata i Fa'asaienisi Fa'amatalaga latou te iloa e aoga le fa'aleleia atili o latou tomai tusitusi fa'akomepiuta. Afai matou te mananaʻo ia faʻalavelave la matou polokalame i se mea e seasea mafai ai ma ia galue e aunoa ma ni faaletonu mo le umi e mafai ai, matou te manaʻomia le vaevaeina o le faʻagasologa o le tuʻuina atu o se lomiga fou i 3 vaega:

  1. Vaega potopotoga. E te suia lau faʻailoga faʻatasi ma punaoa taʻitasi i totonu o se mea e taʻua o le afifi o loʻo i ai tulafono uma ma faʻamaumauga talafeagai. O lenei afifi e ta'ua o se fa'apotopotoga.
  2. Vaega tatalaina - o iinei tatou te faʻafesoʻotaʻi ai la tatou config i le faʻapotopotoga, a aunoa ma lea e le mafai ona faʻamalolo la tatou polokalama. O lea la o se fa'asalalauga atoatoa lea ua sauni e fa'alauiloa.
  3. E soso'o mai le tulaga fa'asalaga. O iinei matou te tuʻuina atu ai le talosaga e ala i le faʻaogaina o faiga talafeagai mai la matou faʻamalolo.

O sea faiga mo le tuʻuina atu o faʻamatalaga fou o se faʻataʻitaʻiga poʻo le pipeline atoa e mafai ai ona e vavaeeseina matafaioi i le va o pule ma atinaʻe, faʻatagaina oe e siaki faʻasologa ma puipuia taofi le manaʻomia o le polokalame.

Mo le galuega faʻasaʻo, ua faia le tele o auaunaga eseese e mafai ona e tusia ai faiga e faʻatautaia ai oe lava i se faila .yml (mo se faʻataʻitaʻiga, i le CircleCI o le config.yml lea e lagolago ai le faagasologa lava ia). E lelei tele Wheely i le fatuina o afifi mo galuega faatino.

E mafai ona e faia afifi ma fa'aliliuga eseese o lau masini a'oa'oga fa'ata'ita'iga, ona fa'apipi'i lea ma fa'asino i afifi talafeagai ma latou fa'aoga e fa'aoga ai galuega na e tusia mai ai. O le a fesoasoani lea ia te oe e fatuina se API mo lau faʻataʻitaʻiga, ma o lau afifi e mafai ona talimalo i Gemfury, mo se faʻataʻitaʻiga.

Fa'avae 6. Fa'atino lau fa'ata'ita'iga i se faiga se tasi pe sili atu

E le gata i lea, o fa'agasologa e le tatau ona fa'asoa fa'amaumauga. O lona uiga, o faiga e tatau ona i ai eseese, ma o ituaiga uma o faʻamaumauga e tatau ona i ai eseese, mo se faʻataʻitaʻiga, i luga o auaunaga a isi vaega e pei o MySQL poʻo isi, faʻatatau i mea e te manaʻomia.

O lona uiga, e mautinoa lava e le aoga le teuina o faʻamatalaga i totonu o le faiga o faila faila, a le o lea e mafai ona taʻitaʻia ai lenei faʻamatalaga i le isi faʻasalalauga / suiga o faʻasalalauga poʻo le fesiitaiga o le polokalama o loʻo faʻaogaina ai le polokalame.

Ae o loʻo i ai se tuusaunoaga: mo poloketi aʻoaʻoga masini, e mafai ona e teuina se faʻaoga o faletusi ina ia aua neʻi toe faʻapipiʻiina i taimi uma e te faʻalauiloa ai se lomiga fou, pe a leai ni faletusi faaopoopo poʻo ni suiga ua faia i a latou lomiga. I lenei auala, o le ae faʻaitiitia le taimi e faʻalauiloa ai lau faʻataʻitaʻiga i alamanuia.

Ina ia faʻataʻitaʻiina le faʻataʻitaʻiga e pei o ni faʻagasologa, e mafai ona e fatuina se faila .yml lea e te faʻamaonia ai faiga talafeagai ma latou faʻasologa.

Mataupu Faavae 7: Toe fa'aaogaina

O fa'agasologa o lo'o fa'agasolo i lau fa'ata'ita'iga talosaga e tatau ona faigofie ona amata ma taofi. O le mea lea, o lenei mea o le a faʻatagaina ai oe e faʻapipiʻi vave suiga o code, suiga faʻatulagaina, faʻavavevave ma fetuutuunai fua, ma puipuia ai le gau o le galuega galue.

O lona uiga, o lau faagasologa ma le faʻataʻitaʻiga e tatau ona:

  • Fa'aiti'itia taimi amata. O le mea lelei, o le taimi amata (mai le taimi na tuʻuina atu ai le poloaiga amata i le taimi e amata ai le gaioiga) e le tatau ona sili atu nai lo ni nai sekone. Faletusi caching, faʻamatalaina i luga, o se tasi auala mo le faʻaitiitia o le taimi amata.
  • Fa'ai'u sa'o. O lona uiga, o le faʻalogo i luga o le taulaga tautua ua faʻagata, ma o talosaga fou e tuʻuina atu i lenei uafu o le a le faʻagasolo. O iinei e te manaʻomia ai le faʻatulagaina o fesoʻotaʻiga lelei ma DevOps enisinia, pe malamalama pe faʻapefea ona galue oe lava (sili, ioe, o le mea mulimuli, ae o fesoʻotaʻiga e tatau ona tausia i taimi uma, i soʻo se galuega!)

Mataupu Faavae 8: Fa'aauau le Fa'atinoina/Tu'ufa'atasi

O le tele o kamupani e faʻaaogaina se vaeluaga i le va o le atinaʻeina o talosaga ma 'au faʻapipiʻi (faʻaavanoaina le talosaga i tagata faʻauʻu). O lenei mea e mafai ona faʻagesegese ai le atinaʻeina o polokalama ma le alualu i luma i le faʻaleleia. E faʻaleagaina ai foʻi le aganuʻu DevOps, lea o loʻo i ai le atinaʻe ma le tuʻufaʻatasia, pe a tautala, tuʻufaʻatasia.

O le mea lea, o lenei mataupu faavae o loʻo taʻu mai ai o lau siosiomaga atinaʻe e tatau ona latalata i lau siosiomaga gaosiga.

O lenei mea o le a mafai ai:

  1. Fa'aitiitia le taimi fa'asa'oloto i le fa'asefulu taimi
  2. Fa'aitiitia le numera o mea sese ona o le le fetaui o code.
  3. E faʻaitiitia ai foi le mamafa o galuega a le aufaigaluega, talu ai o le au atinaʻe ma tagata o loʻo faʻaaogaina le talosaga ua tasi nei le 'au.

Meafaigaluega e mafai ai ona e galue i lenei mea o le CircleCI, Travis CI, GitLab CI ma isi.

E mafai ona e vave faia faʻaopoopoga i le faʻataʻitaʻiga, faʻafouina, ma faʻalauiloa vave, ae o le a faigofie, i le tulaga o le toilalo, e toe foʻi vave i le galuega galue, ina ia le iloa e le tagata faʻaaoga. E mafai ona fai lenei mea aemaise lava le faigofie ma vave pe a lelei au su'ega.

Fa'aitiitia eseesega!!!

Mataupu Faavae 9. O au ogalaau

Ogoa (po'o "Logs") o mea na tutupu, e masani ona fa'amaumau i tusitusiga, e tupu i totonu o le talosaga (event stream). O se faʻataʻitaʻiga faigofie: "2020-02-02 - tulaga faʻaoga - igoa faʻagasologa." Ua mamanuina ina ia mafai e le tagata atiaʻe ona iloa moni le mea o loʻo tupu pe a faʻagasolo le polokalame. Na te vaʻaia le alualu i luma o faʻagasologa ma malamalama pe o le mea na faʻamoemoeina e le tagata faʻavae.

O lenei mataupu faavae o loʻo taʻu mai e le tatau ona e teuina au ogalaau i totonu o lau faila faila - e tatau ona e "tuuina atu" i latou i luga o le lau, mo se faʻataʻitaʻiga, fai lenei mea i luga o le tulaga masani a le faiga. Ma i lenei auala o le a mafai ai ona mataʻituina le tafe i totonu o le nofoaga i le taimi o le atinaʻe.

O lona uiga e leai lava se mana'oga e teu ai ogalaau? Ioe e leai. O lau talosaga e le tatau ona faia lenei mea-tu'u i auaunaga isi vaega. O lau talosaga e mafai ona na'o le tu'uina atu o ogalaau i se faila patino po'o se laina mo le va'aiga i le taimi moni, po'o le tu'uina atu i se fa'amoemoe lautele fa'amaumauga fa'amaumauga (e pei o le Hadoop). O lau talosaga lava ia e le tatau ona teuina pe fegalegaleai ma ogalaau.

Mataupu Faavae 10. Su'ega!

Mo aʻoaʻoga masini faʻapisinisi, o lenei vaega e matua taua tele, talu ai e tatau ona e malamalama o le faʻataʻitaʻiga e saʻo lelei ma maua mea e te manaʻo ai.

E mafai ona faia suʻega e faʻaaoga ai le pytest, ma faʻataʻitaʻiina e faʻaaoga ai se faʻamaumauga laiti pe afai e iai sau faʻasologa / faʻavasegaina galuega.

Aua nei galo e seti le fatu lava e tasi mo faʻataʻitaʻiga aʻoaʻoga loloto ina ia latou le maua ai i taimi uma iʻuga eseese.

O se faʻamatalaga puupuu lea o le 10 mataupu faavae, ma, ioe, e faigata ona faʻaaogaina e aunoa ma le taumafai ma vaʻai pe faʻapefea ona latou galulue, o lea o lenei tusiga ua naʻo se faʻataʻitaʻiga i se faasologa o tala manaia lea o le a ou faʻaalia ai pe faʻapefea ona fatuina. fa'ata'ita'iga a'oa'oga masini fa'apisinisi , pe fa'afefea ona tu'ufa'atasia i faiga, ma pe fa'apefea ona fa'afaigofie e nei ta'iala le olaga mo i tatou uma.

O le a ou taumafai foi e faʻaaoga mataupu faavae lelei e mafai e se tasi ona tuʻuina i faʻamatalaga pe a latou manaʻo ai.

puna: www.habr.com

Faaopoopo i ai se faamatalaga