Barashada Mashiinnada Warshadaha: 10 Mabaadi'da Naqshadeynta

Barashada Mashiinnada Warshadaha: 10 Mabaadi'da Naqshadeynta

Maalmahan, adeegyo cusub, codsiyo iyo barnaamijyo kale oo muhiim ah ayaa la abuuraa maalin kasta kuwaas oo suurtagal ka dhigaya in la abuuro waxyaabo cajiib ah: laga bilaabo software-ka lagu xakameynayo gantaalaha SpaceX ilaa la falgalka kiliyaha qolka ku xiga iyada oo loo marayo casriga.

Iyo, mararka qaarkood, barnaamij-yaqaan kasta, haddii uu yahay qof xamaasad leh ama ha ahaado mid caadi ah oo buuxa ama Saynis yahanka Xogta, hadhow ama hadhowba waxa uu u yimaaddaa ogaanshaha in ay jiraan xeerar gaar ah oo loogu talagalay barnaamijyada iyo abuurista software si weyn u fududeeya nolosha.

Maqaalkan, waxaan si kooban u sharxi doonaa 10 mabaadi'da sida loo barnaamijiyo barashada mashiinka warshadaha si ay si fudud ugu dhex milmi karto codsi/adeeg, iyadoo lagu salaynayo habka 12-factor App. waxaa soo jeediyay kooxda Heroku. Hindisahaygu waa in aan kordhiyo wacyiga farsamadan, taas oo caawin karta horumariyayaal badan iyo dadka sayniska xogta.

Maqaalkani waa horudhac maqaallo taxane ah oo ku saabsan Barashada Mashiinnada Warshadaha. In iyaga waxaan ka sii hadli doonaa oo ku saabsan sida dhabta ah loo sameeyo model iyo in la bilaabo soo saarista, u abuuraan API ah, iyo sidoo kale tusaaleyaal ka kala duwan meelaha iyo shirkadaha in ay dhiseen ML in nidaamyadooda.

Mabda'a 1: Hal code saldhig

Barmaamijiyeyaasha qaarkood marxaladaha ugu horreeya, caajisnimada si ay u ogaadaan (ama sababo iyaga ka mid ah), waxay illoobaan Git. Waxa ay si buuxda u ilaawaan ereyga, taas oo ah, in ay isku tuuraan faylasha midba midka kale ee wadista / kaliya tuura qoraalka / u dirto xamaamyada, ama maba fekerayaan shaqadooda, oo mid kastaa wuxuu u xilsaaray laantiisa, ka dibna sayid.

Mabda'ani wuxuu leeyahay: leeyihiin hal codebase iyo meelo badan oo la geeyo.

Git waxaa loo isticmaali karaa labadaba wax soo saarka iyo cilmi baarista iyo horumarinta (R&D), taas oo aan inta badan la isticmaalin.

Tusaale ahaan, marxaladda R&D waxaad kaga tagi kartaa ballan-qaadyo habab xogeedyo iyo qaabab kala duwan, si aad markaas u doorato midka ugu wanaagsan oo aad si fudud ugu sii waddo la shaqaynteeda.

Marka labaad, wax soo saarka tani waa shay aan la bedeli karin - waxaad u baahan doontaa inaad si joogto ah u eegto sida koodhkaagu isu beddelo oo aad ogaato qaabka uu soo saaray natiijooyinka ugu fiican, koodhka ayaa shaqeeyay dhammaadkii iyo wixii dhacay oo sababay inuu joojiyo shaqada ama bilaabo inuu bilaabo soo saarista natiijooyin khaldan. . Taasi waa waxa ballan-qaadyada loogu talagalay!

Waxa kale oo aad abuuri kartaa xirmo mashruucaaga ah, adigoo gelinaya, tusaale ahaan, Gemfury, ka dibna si fudud uga soo dejisan kartaa hawlaha mashaariicda kale, si aadan dib ugu qorin 1000 jeer, laakiin in ka badan oo dambe.

Mabda'a 2: Si cad u sheeg oo go'doomi ku tiirsanaanta

Mashruuc kastaa wuxuu leeyahay maktabado kala duwan oo aad ka soo dejiso dibadda si aad meel ugu dabaqdo. Hadday tahay maktabadaha Python, ama maktabadaha luqadaha kale ujeedooyin kala duwan, ama aaladaha nidaamka - hawshaadu waa:

  • Si cad u sheeg ku-tiirsanaanta, taas oo ah, fayl ka koobnaan doona dhammaan maktabadaha, agabka, iyo noocyadooda lagu isticmaalo mashruucaaga oo ay tahay in lagu rakibo (tusaale ahaan, Python tan waxaa lagu samayn karaa iyadoo la adeegsanayo Pipfile ama shuruudaha.txt. A). isku xirka u oggolaanaya in si wanaagsan loo fahmo: realpython.com/pipenv-guide)
  • Go'doomi ku tiirsanaanta gaar ahaan barnaamijkaaga inta lagu jiro horumarka. Ma rabtaa inaad si joogto ah u beddesho noocyada oo aad dib u rakibto, tusaale ahaan, Tensorflow?

Sidan, horumariyayaashii ku biiri doona kooxdaada mustaqbalka waxay awood u yeelan doonaan inay si dhakhso ah u bartaan maktabadaha iyo noocyadooda loo isticmaalo mashruucaaga, waxaad sidoo kale heli doontaa fursad aad ku maamusho nuqulada iyo maktabadaha laftooda loogu rakibay si gaar ah. mashruuca, kaas oo kaa caawin doona inaad iska ilaaliso iswaafaq la'aanta maktabadaha ama noocyadooda.

Codsigaagu sidoo kale waa inuusan ku tiirsanaan aaladaha nidaamka ee laga yaabo in lagu rakibo OS gaar ah. Qalabkan waa in sidoo kale lagu caddeeyaa ku-tiirsanaanta muuqda. Tani waa lagama maarmaan si looga fogaado xaaladaha meesha nooca qalabka (iyo sidoo kale helitaankooda) aysan ku habboonayn qalabka nidaamka OS gaar ah.

Sidaa darteed, xitaa haddii curl lagu isticmaali karo ku dhawaad ​​dhammaan kombiyuutarada, waa inaad weli ku dhawaaqdaa ku-tiirsanaanta, maadaama marka aad u guureyso goob kale laga yaabo inaysan halkaas joogin ama nooca uusan noqon doonin kii markii hore loo baahnaa.

Tusaale ahaan, shuruudahaaga.txt waxay u ekaan karaan sidan:

# 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

Mabda'a 3: Habaynta

Qaar badan ayaa maqlay sheekooyin ku saabsan rag horumariyayaal kala duwan oo si lama filaan ah ugu dhejinaya koodka GitHub meelaha dadweynaha ee furayaasha sirta ah iyo furayaasha kale ee AWS, iyaga oo maalinta ku xigta ku soo toosaya deyn dhan $6000, ama xitaa $50000.

Barashada Mashiinnada Warshadaha: 10 Mabaadi'da Naqshadeynta

Dabcan, kiisaskani waa kuwo xad dhaaf ah, laakiin aad muhiim u ah. Haddii aad kaydiso aqoonsigaaga ama xogta kale ee loo baahan yahay qaabeynta gudaha koodhka, waxaad samaynaysaa qalad, waxaanan filayaa in aan loo baahnayn in la sharaxo sababta.

Beddelka kan waa in lagu kaydiyo qaabaynta doorsoomayaasha deegaanka. Waxaad wax badan ka akhrisan kartaa doorsoomayaasha deegaanka halkan.

Tusaalooyinka xogta sida caadiga ah lagu kaydiyo doorsoomayaasha deegaanka:

  • Magacyada domain
  • API URLs/URI's
  • Furayaasha guud iyo kuwa gaarka ah
  • Xidhiidhada (mail, telefoon, iwm.)

Sidan uma baahnid inaad si joogto ah u bedesho koodka haddii doorsoomayaasha qaabayntaadu ay isbedelaan. Tani waxay kaa caawin doontaa inaad badbaadiso waqti, dadaal iyo lacag.

Tusaale ahaan, haddii aad isticmaasho Kaggle API si aad u samayso imtixaannada (tusaale, soo deji software-ka oo ku socodsii moodeelka si aad u tijaabiso marka uu qaabku si fiican u shaqeeyo), markaa furayaasha gaarka ah ee Kaggle, sida KAGGLE_USERNAME iyo KAGGLE_KEY, waa inay ahaadaan lagu kaydiyaa doorsoomayaasha deegaanka.

Mabda'a 4: Adeegyada Dhinac Saddexaad

Fikradda halkan waa in la abuuro barnaamijka si aanay u kala duwanayn khayraadka maxaliga ah iyo kuwa saddexaad ee code. Tusaale ahaan, waxaad ku xidhi kartaa MySQL gudaha iyo kuwa saddexaadba. Waxa la mid ah API-yada kala duwan sida Khariidadaha Google ama Twitter API.

Si aad u baabi'iso adeeg saddexaad ama mid kale, waxaad u baahan tahay inaad bedesho furayaasha qaabeynta doorsoomayaasha deegaanka, kaas oo aan kaga hadlay cutubka kore.

Marka, tusaale ahaan, halkii aad ka sheegi lahayd dariiqa faylalka leh xog-ururinta gudaha koodhka mar kasta, way fiicantahay in la isticmaalo maktabadda pathlib oo aad ku dhawaaqdo dariiqa xogta ee config.py, iyada oo aan loo eegin adeeg kasta oo aad isticmaasho (for tusaale ahaan, CircleCI), barnaamijku waxa uu awooday in uu ogaado dariiqa loo maro xog-ururinta iyada oo la tixgalinayo qaab dhismeedka nidaamka faylka cusub ee adeega cusub.

Mabda'a 5. Dhis, sii daayo, runtime

Dad badan oo ku jira Sayniska Xogta ayaa faa'iido u leh inay horumariyaan xirfadahooda qorista software. Haddii aan rabno in barnaamijkeenu u burburo sida ugu yar ee suurtogalka ah oo uu u shaqeeyo guuldarro la'aan ilaa inta suurtogalka ah, waxaan u baahanahay inaan u qaybinno habka loo sii daayo nooc cusub 3 marxaladood:

  1. Heerka kiniisadaha. Koodhkaaga qaawan ee agabka gaarka ah waxaad u beddeshaa waxa loogu yeero xirmo ka kooban dhammaan koodka iyo xogta lagama maarmaanka ah. Xirmadaan waxaa loo yaqaannaa shir.
  2. Heerka sii deyn - halkan waxaan ku xireynaa qaabeyntayada golaha, taas oo la'aanteed ma awoodi karno inaan sii deyno barnaamijkayaga. Hadda kani waa siidaynta gabi ahaanba diyaar u ah in la bilaabo.
  3. Marka xigta ayaa timaaddaa marxaladda buuxin. Halkan waxaan ku sii dayn arjiga anaga oo socodsiinaya hababka lagama maarmaanka u ah siideynteena.

Nidaamka noocan oo kale ah ee lagu sii daayo noocyada cusub ee qaabka ama dhammaan dhuumaha ayaa kuu oggolaanaya inaad kala saarto doorarka u dhexeeya maamulayaasha iyo horumarinta, waxay kuu ogolaaneysaa inaad la socoto noocyada waxayna ka hortagtaa joojinta aan loo baahnayn ee barnaamijka.

Hawsha sii daynta, adeegyo badan oo kala duwan ayaa la sameeyay kuwaaso aad ku qori karto habraacyo aad naftaada ugu shaqaynayso faylka .yml (tusaale ahaan, gudaha CircleCI kani waa config.yml si uu u taageero habka laftiisa). Wheely wuxuu ku fiican yahay abuurista xirmooyinka mashaariicda.

Waxaad samayn kartaa baakado leh noocyo kala duwan oo ah nooca barashada mashiinkaaga, ka dibna xirxiran oo tixraac xirmooyinka lagama maarmaanka ah iyo noocyadooda si aad u isticmaasho hawlaha aad ka soo qortay halkaas. Tani waxay kaa caawin doontaa inaad u abuurto API moodeelkaaga, iyo xirmadaada waxaa lagu martigelin karaa Gemfury, tusaale ahaan.

Mabda'a 6. U wad moodeelkaaga hal ama dhowr habab

Waxaa intaa dheer, geeddi-socodyadu waa inaysan lahaan xogta la wadaago. Taasi waa, geeddi-socodyadu waa inay si gaar ah u jiraan, dhammaan noocyada xogta waa inay si gaar ah u jiraan, tusaale ahaan, adeegyada dhinac saddexaad sida MySQL ama kuwa kale, iyadoo ku xidhan waxaad u baahan tahay.

Taasi waa, hubaal maaha in lagu kaydiyo xogta gudaha nidaamka faylka nidaamka, haddii kale tani waxay horseedi kartaa nadiifinta xogtan inta lagu jiro sii deynta soo socota / isbeddelka qaabeynta ama wareejinta nidaamka uu barnaamijku ku socdo.

Laakiin waxaa jira wax ka reeban: mashaariicda mashiinka wax lagu barto, waxaad kaydin kartaa kaydka maktabadaha si aadan dib ugu rakibin mar kasta oo aad bilowdo nooc cusub, haddii aan maktabado dheeraad ah ama wax isbeddel ah lagu samayn noocyadooda. Sidan, waxaad yaraynaysaa wakhtiga ay ku qaadanayso in la bilaabo moodelkaaga warshadaha.

Si aad moodelka ugu socodsiiso dhowr habab, waxaad samayn kartaa faylka .yml kaas oo aad ku qeexday hababka lagama maarmaanka ah iyo sida ay isugu xigaan.

Mabda'a 7: Dib u warshadaynta

Hababka ku socda codsigaaga moodeelka waa in ay fududaato in la bilaabo lana joojiyo. Sidaa darteed, tani waxay kuu ogolaaneysaa inaad si dhakhso ah u geyso isbeddelada koodka, isbeddelka qaabeynta, si degdeg ah oo dabacsanaan leh, oo aad uga hortagto burburka suurtagalka ah ee nooca shaqada.

Taasi waa, nidaamkaaga moodelku waa inuu:

  • Yaree wakhtiga bilowga Fikrad ahaan, wakhtiga bilawga ah (laga bilaabo wakhtiga amarka bilawga la soo saaray ilaa wakhtiga uu hawshu shaqaynayo) waa in aanu ka badnayn dhawr ilbiriqsi. Kaydinta maktabadda, ee kor lagu sharaxay, waa hal farsamo oo lagu dhimo wakhtiga bilowga.
  • Si sax ah u dhamee. Taasi waa, dhageysiga dekedda adeegga runtii waa la hakiyay, codsiyada cusub ee loo soo gudbiyay dekeddan lama shaqeyn doono. Halkan waxaad u baahan tahay inaad xiriir wanaagsan la sameyso injineerada DevOps, ama aad fahamto sida ay u shaqeyso naftaada (doorbidayaa, dabcan, kan dambe, laakiin isgaarsiinta mar walba waa in la ilaaliyaa, mashruuc kasta!)

Mabda'a 8: Diyaarinta/Is-dhexgalka Joogtada ah

Shirkado badan ayaa isticmaala kala soocida udhaxaysa horumarinta arjiga iyo kooxaha geynta (samaynta arjiga diyaar u ah isticmaalayaasha dhamaadka). Tani waxay si weyn u dhimi kartaa horumarinta software iyo horumarka horumarinta. Waxa kale oo ay wax u dhimaysaa dhaqanka DevOps, halkaas oo horumarka iyo is dhexgalka ay yihiin, qiyaas ahaan, la isku daray.

Sidaa darteed, mabda'aani wuxuu dhigayaa in deegaankaaga horumarineed uu ahaado mid u dhow sida ugu macquulsan deegaankaaga wax soo saarka.

Tani waxay ogolaan doontaa:

  1. Iska yaree wakhtiga sii daynta tobanaan jeer
  2. Iska yaree tirada khaladaadka sababtoo ah kood la'aanta.
  3. Tani waxay sidoo kale yaraynaysaa culayska shaqada ee shaqaalaha, maadaama kuwa horumariya iyo dadka diraya arjiga ay hadda yihiin hal koox.

Qalabka kuu ogolaanaya inaad tan la shaqeyso waa CircleCI, Travis CI, GitLab CI iyo kuwa kale.

Waxaad si dhakhso ah u samayn kartaa wax dheeraad ah oo ku saabsan moodalka, cusbooneysiin, oo isla markiiba bilaabay, halka ay sahlanaan doonto, haddii ay dhacdo guuldarrooyin, inaad si dhakhso ah ugu soo noqoto nooca shaqada, si markaa isticmaalaha ugu dambeeya uusan xitaa u dareemin. Tan waxa la samayn karaa si gaar ah si fudud oo degdeg ah haddii aad imtixaano fiican leedahay.

Kala duwanaanshaha yaree!!!

Mabda'a 9. Logooyadaada

Logs (ama "Logs") waa dhacdooyin, badanaa lagu duubay qaab qoraal ah, oo ka dhaca codsiga dhexdiisa (dhacdooyinka dhacdooyinka). Tusaale fudud: "2020-02-02 - heerka nidaamka - magaca habka." Waxa loo nashqadeeyay si horumariyuhu uu si dhab ah u arko waxa dhacaya marka barnaamijku socdo. Wuxuu arka horumarka habraacyada oo wuxuu fahmayaa inay tahay sidii horumariyaha laftiisu uu damacsanaa.

Mabda'aani wuxuu dhigayaa inaadan ku kaydin diiwaankaaga gudaha nidaamka faylkaaga - waa inaad "ku soo saartaa" shaashadda, tusaale ahaan, ku samee wax soo saarka caadiga ah ee nidaamka. Sidan ayayna suurtogal u noqon doontaa in la kormeero qulqulka terminalka inta lagu jiro horumarka.

Tani miyay la macno tahay in aan loo baahnayn in gabi ahaanba la kaydiyo diiwaanka? Dabcan maya. Codsigaagu waa inaanu samayn tan - u daa adeegyada dhinac saddexaad. Codsigaagu waxa uu kaliya u gudbin karaa diiwaannada fayl gaar ah ama terminal si loo daawado wakhtiga dhabta ah, ama waxa uu u gudbin karaa nidaamka kaydinta xogta ujeedada guud (sida Hadoop). Codsigaaga laftiisa waa in aanu kaydin ama la falgelin qoraalada.

Mabda'a 10. Tijaabi!

Barashada mashiinka warshadaha, marxaladani aad bay muhiim u tahay, maadaama aad u baahan tahay inaad fahamto in moodalku si sax ah u shaqeeyo oo uu soo saaro waxaad rabtay.

Tijaabooyinku waxa la samayn karaa iyada oo la isticmaalayo pytest, oo lagu tijaabiyo iyada oo la isticmaalayo xog-ururin yar haddii aad hayso hawl dib u celin/kala soocid.

Ha ilaawin inaad dejiso abuur isku mid ah moodooyinka barasho qoto dheer si aanay si joogto ah u soo saarin natiijooyin kala duwan.

Tani waxay ahayd tilmaan kooban oo ku saabsan 10-ka qodob, dabcan, way adag tahay in la isticmaalo iyada oo aan la isku dayin lana arag sida ay u shaqeeyaan, haddaba maqaalkani waa uun horudhac qormo taxane ah oo xiiso leh oo aan daaha ka qaadi doono sida loo abuuro. Moodooyinka barashada mashiinka warshadaha, sida loogu dhex daro nidaamyada, iyo sida mabaadi'daani ay nolosha noogu fududayn karaan dhammaanteen.

Waxaan sidoo kale isku dayi doonaa inaan isticmaalo mabaadi'da qabow oo qof kasta uu kaga tagi karo faallooyinka haddii ay rabaan.

Source: www.habr.com

Add a comment