Fianarana milina indostrialy: Fitsipika famolavolana 10

Fianarana milina indostrialy: Fitsipika famolavolana 10

Amin'izao fotoana izao, ny serivisy vaovao, ny fampiharana ary ny programa manan-danja hafa dia noforonina isan'andro izay ahafahana mamorona zavatra tsy mampino: manomboka amin'ny rindrambaiko mifehy ny balafomanga SpaceX mankany amin'ny fifandraisana amin'ny kettle ao amin'ny efitrano manaraka amin'ny alΓ lan'ny smartphone.

Ary, indraindray, ny programmer vaovao rehetra, na izy dia mpikatroka mafana fo na olon-tsotra Full Stack na Data Scientist, na ho ela na ho haingana dia tonga saina fa misy fitsipika sasantsasany momba ny fandaharana sy ny famoronana rindrambaiko izay manatsotra ny fiainana.

Ato amin'ity lahatsoratra ity dia hamariparitra fohifohy ny fitsipika 10 momba ny fomba fandrindrana ny fianarana milina indostrialy aho mba ho mora ampidirina amin'ny fampiharana/serivisy, mifototra amin'ny fomba fiasa 12-factor App. natolotry ny ekipan'i Heroku. Ny fandraisako anjara dia ny hampitombo ny fahatsiarovan-tena amin'ity teknika ity, izay afaka manampy ireo mpamorona sy olona siantifika data.

Ity lahatsoratra ity dia santatry ny andian-dahatsoratra momba ny fianarana milina indostrialy. Ao amin'izy ireo aho dia hiresaka bebe kokoa momba ny fomba hanaovana modely iray ary handefa izany amin'ny famokarana, hamorona API ho azy, ary koa ohatra avy amin'ny faritra sy orinasa samihafa izay manana ML ao amin'ny rafitra misy azy.

Fitsipika 1: fototra code iray

Ny programmer sasany amin'ny dingana voalohany, noho ny hakamoana hamantatra izany (na noho ny antony manokana), dia manadino ny Git. Na hadinon'izy ireo tanteraka ilay teny, izany hoe, mifanipaka rakitra ao anaty fiara izy ireo / manipy lahatsoratra fotsiny / mandefa voromailala, na tsy mieritreritra ny fomba fiasan'izy ireo, ary manolo-tena amin'ny rantsany avy, ary avy eo amin'ny tompo.

Ity fitsipika ity dia milaza hoe: manana codebase iray ary fametrahana maro.

Ny Git dia azo ampiasaina amin'ny famokarana sy amin'ny fikarohana sy ny fampandrosoana (R&D), izay tsy ampiasaina matetika.

Ohatra, amin'ny dingana R&D dia azonao atao ny mamela ny fanoloran-tena miaraka amin'ny fomba fanodinana angon-drakitra samihafa sy modely, mba hisafidianana ny tsara indrindra ary hanohy hiasa bebe kokoa.

Faharoa, amin'ny famokarana dia zavatra tsy azo soloina izany - mila mijery lalandava ny fiovan'ny code-nao ianao ary mahafantatra hoe modely inona no namoaka vokatra tsara indrindra, inona no code niasa tamin'ny farany ary inona no nitranga ka nahatonga azy tsy hiasa na hanomboka hamokatra valiny diso. . Izany no atao hoe commit!

Azonao atao ihany koa ny mamorona fonosan'ny tetikasanao, mametraka azy, ohatra, ao amin'ny Gemfury, ary avy eo manafatra fotsiny ny fiasa avy aminy ho an'ny tetikasa hafa, mba tsy hamerenana azy ireo in-1000, fa bebe kokoa amin'izany any aoriana.

Fitsipika 2: Manambara mazava sy manasaraka ny fiankinan-doha

Ny tetikasa tsirairay dia manana tranomboky samihafa izay nafaranao avy any ivelany mba hampiharana azy any amin'ny toerana iray. Na tranomboky Python, na tranomboky amin'ny fiteny hafa ho an'ny tanjona samihafa, na fitaovana rafitra - ny andraikitrao dia:

  • Ambara mazava tsara ny fiankinan-doha, izany hoe, rakitra iray izay ahitana ny tranomboky, fitaovana, ary ny dikan-teny rehetra ampiasaina amin'ny tetikasanao ary tsy maintsy apetraka (ohatra, amin'ny Python dia azo atao amin'ny Pipfile na requirements.txt. A rohy ahafahana mahazo tsara: realpython.com/pipenv-guide)
  • Atokana ny fiankinan-doha manokana ho an'ny programanao mandritra ny fampandrosoana. Tsy te hanova dikan-teny tsy tapaka ianao ary hametraka indray, ohatra, Tensorflow?

Amin'izany fomba izany, ireo mpamorona izay hanatevin-daharana ny ekipanao amin'ny ho avy dia ho afaka hahafantatra haingana ny tranomboky sy ny dikan-teny ampiasaina amin'ny tetikasanao, ary hanana fahafahana hitantana ireo dikan-teny sy tranomboky napetraka ho an'ny tanjona manokana ihany koa ianao. tetikasa, izay hanampy anao hisoroka ny tsy mifanaraka amin'ny tranomboky na ny dikan-ny.

Tsy tokony hiantehitra amin'ny fitaovana rafitra mety hapetraka amin'ny OS manokana ihany koa ny fampiharanao. Ireo fitaovana ireo dia tsy maintsy ambara ihany koa amin'ny fiankinan-doha. Ilaina izany mba hisorohana ny toe-javatra izay tsy mifanaraka amin'ny fitaovana rafitra an'ny OS manokana ny dikan-ny fitaovana (ary koa ny fisiany).

Noho izany, na dia azo ampiasaina amin'ny ordinatera rehetra aza ny curl, dia tokony mbola hanambara izany amin'ny fiankinan-doha ianao, satria rehefa mifindra any amin'ny sehatra hafa dia mety tsy ho eo izy io na tsy ilay dikan-teny ilainao tany am-boalohany.

Ohatra, mety ho toy izao ny requirements.txt anao:

# 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

Fitsipika faha-3: Configuration

Maro no nandre ny tantaran'ireo lehilahy mpandrindra isan-karazany nampiakatra tsy nahy ny kaody tao amin'ny GitHub tao amin'ny trano fitehirizam-bahoaka miaraka amin'ny tenimiafina sy fanalahidy hafa avy amin'ny AWS, nifoha ny ampitso niaraka tamin'ny trosa $6000, na $50000 aza.

Fianarana milina indostrialy: Fitsipika famolavolana 10

Mazava ho azy fa tafahoatra ireo tranga ireo, saingy tena manan-danja. Raha mitahiry ny mombamomba anao ianao na angona hafa ilaina amin'ny fanamafisana ao anatin'ilay kaody, dia manao fahadisoana ianao, ary heveriko fa tsy ilaina ny manazava ny antony.

Ny safidy hafa amin'izany dia ny fitehirizana ny fandrindrana amin'ny fari-piainan'ny tontolo iainana. Afaka mamaky bebe kokoa momba ny fari-piainan'ny tontolo iainana ianao eto.

Ohatra amin'ny angona izay voatahiry matetika ao amin'ny fari-piainan'ny tontolo iainana:

  • Anaran-tranonkala
  • URL API/URI
  • Fanalahidy ho an'ny daholobe sy manokana
  • Fifandraisana (mailaka, telefaona, sns.)

Amin'izany fomba izany dia tsy mila manova ny kaody ianao raha miova ny fari-piadidianao. Hanampy anao hamonjy fotoana sy ezaka ary vola izany.

Ohatra, raha mampiasa ny Kaggle API ianao hanaovana fitsapana (ohatra, alaivo ny rindrankajy ary asio ilay maodely amin'ny fitsapana rehefa mihazakazaka fa mandeha tsara ilay maodely), dia ny fanalahidy manokana avy amin'ny Kaggle, toy ny KAGGLE_USERNAME sy KAGGLE_KEY, dia tokony ho voatahiry ao anaty fari-piainan'ny tontolo iainana.

Fitsipika 4: Sampan-draharahan'ny Ankolafy Fahatelo

Ny hevitra eto dia ny hamorona ny programa amin'ny fomba izay tsy misy fahasamihafana eo amin'ny loharano eo an-toerana sy avy amin'ny antoko fahatelo amin'ny resaka code. Ohatra, azonao atao ny mampifandray ny MySQL eo an-toerana sy ny antoko fahatelo. Toy izany koa ny API isan-karazany toy ny Google Maps na Twitter API.

Mba hanesorana ny serivisy an'ny antoko fahatelo na hampifandray ny hafa dia mila manova ny lakile amin'ny fanamafisana ao amin'ny fari-piainan'ny tontolo iainana, izay noresahiko tao amin'ny andalana etsy ambony.

Noho izany, ohatra, raha tokony hamaritra ny lalana mankany amin'ny rakitra miaraka amin'ny datasets ao anatin'ny code isaky ny mandeha, dia tsara kokoa ny mampiasa ny pathlib library ary manambara ny lalana mankany amin'ny datasets ao amin'ny config.py, ka na inona na inona serivisy ampiasainao (ho an'ny Ohatra, CircleCI), ny programa dia afaka nahita ny lalana mankany amin'ny datasets amin'ny fiheverana ny firafitry ny rafitra rakitra vaovao amin'ny serivisy vaovao.

Fitsipika 5. Manangana, mamoaka, fotoana fiasana

Olona maro ao amin'ny Data Science no mahita fa ilaina ny manatsara ny fahaizany manoratra rindrambaiko. Raha tiantsika hidona tsy fahita firy araka izay azo atao ny programantsika ary hiasa tsy misy tsy fahombiazana mandritra ny fotoana maharitra, dia mila mizara ny dingana famoahana dikan-teny vaovao ho dingana 3 isika:

  1. sehatra FIVORIAMBE. Ovainao amin'ny loharanon-karena tsirairay ny kaody tsy misy anao ho lasa fonosana antsoina hoe misy ny kaody sy angona ilaina rehetra. Ity fonosana ity dia antsoina hoe fivoriambe.
  2. sehatra famotsorana - eto izahay dia mampifandray ny config-nay amin'ny fivoriambe, raha tsy misy izany dia tsy afaka mamoaka ny programa izahay. Ankehitriny ity dia famoahana vonona tanteraka.
  3. Manaraka izany ny sehatra tanteraka. Eto izahay dia mamoaka ny fampiharana amin'ny alΓ lan'ny fampandehanana ireo dingana ilaina amin'ny famoahana anay.

Ny rafitra toy izany amin'ny famoahana dikan-teny vaovao amin'ny modely na ny fantsona iray manontolo dia ahafahanao manasaraka ny andraikitry ny mpitantana sy ny mpamorona, ahafahanao manara-maso ny dikan-teny ary manakana ny fijanonana tsy ilaina amin'ny programa.

Ho an'ny asa famotsorana, tolotra maro samihafa no noforonina izay ahafahanao manoratra ny fizotran'ny fandehananao amin'ny rakitra .yml (ohatra, ao amin'ny CircleCI ity no config.yml hanohanana ny dingana). Tena mahay mamorona fonosana ho an'ny tetikasa i Wheely.

Azonao atao ny mamorona fonosana miaraka amin'ny dikan-teny samihafa amin'ny maodelin'ny fianarana milina, ary avy eo amboary izy ireo ary manondro ireo fonosana ilaina sy ny dikan'izy ireo mba hampiasana ireo asa nosoratanao avy tao. Izany dia hanampy anao hamorona API ho an'ny modelyo, ary ny fonosanao dia azo apetraka ao amin'ny Gemfury, ohatra.

Fitsipika 6. Ataovy toy ny dingana iray na maromaro ny modelyo

Fanampin'izany, ny dingana dia tsy tokony hanana angona iombonana. Izany hoe, ny dingana dia tsy maintsy misy misaraka, ary ny karazana data rehetra dia tsy maintsy misy misaraka, ohatra, amin'ny serivisy an'ny antoko fahatelo toy ny MySQL na hafa, miankina amin'ny zavatra ilainao.

Izany hoe, azo antoka fa tsy mendrika ny mitahiry angona ao anatin'ny rafitry ny fichier, raha tsy izany dia mety hitarika amin'ny famafana an'io data io mandritra ny famoahana/fanovΓ na ny fanovana manaraka na ny famindrana ny rafitra izay iasan'ny programa.

Saingy misy ny maningana: ho an'ny tetikasa fianarana milina, azonao atao ny mitahiry cache ny tranomboky mba tsy hamerenana azy ireo isaky ny manomboka dikan-teny vaovao ianao, raha tsy misy tranomboky fanampiny na fanovana natao tamin'ny dikan-teniny. Amin'izany fomba izany dia hampihena ny fotoana ilainao hanombohana ny modelyo amin'ny indostria ianao.

Mba hampandehanana ny maodely ho dingana maromaro, azonao atao ny mamorona rakitra .yml izay amaritanao ny dingana ilaina sy ny filaharany.

Fitsipika faha-7: azo averina

Tokony ho mora atomboka sy ajanona ireo dingana mandeha amin'ny fampiharana modely anao. Noho izany, izany dia ahafahanao mametraka haingana ny fanovana kaody, ny fanovana ny fandrindrana, ny haavony haingana sy mora, ary ny fisorohana ny mety ho fahapotehan'ny dikan-teny miasa.

Izany hoe, ny dingana ataonao amin'ny modely dia tokony:

  • Ahenao ny fotoana fanombohana. Raha ny tsara indrindra, ny fotoana fanombohana (hatramin'ny fotoana namoahana ny baiko fanombohana ka hatramin'ny fotoana nanombohan'ilay dingana) dia tsy tokony hihoatra ny segondra vitsy. Ny caching tranomboky, voalaza etsy ambony, dia teknika iray hampihenana ny fotoana fanombohana.
  • Farano tsara. Izany hoe miato ny fihainoana ny seranan-tsambon'ny serivisy, ary tsy hokarakaraina ny fangatahana vaovao apetraka amin'ity seranan-tsambo ity. Eto ianao dia mila mametraka fifandraisana tsara amin'ny injeniera DevOps, na mahatakatra ny fomba fiasan'ny tenanao (tsara indrindra, mazava ho azy, ity farany, fa ny fifandraisana dia tokony hotazonina foana, amin'ny tetikasa rehetra!)

Fitsipika 8: Fametrahana/Fampidirana mitohy

Orinasa maro no mampiasa fisarahana eo amin'ny ekipan'ny fampivoarana ny fampiharana sy ny fametrahana (fanomezana ho an'ny mpampiasa farany ny fampiharana). Izany dia mety hampiadana be ny fivoaran'ny rindrambaiko sy ny fandrosoana amin'ny fanatsarana azy. Izy io koa dia manimba ny kolontsaina DevOps, izay misy ny fampandrosoana sy ny fampidirana, raha lazaina amin'ny teny manodidina, mitambatra.

Noho izany, ity fitsipika ity dia milaza fa ny tontolo fampandrosoana anao dia tokony ho akaiky araka izay azo atao amin'ny tontolo famokarana anao.

Izany dia ahafahanao:

  1. Ahena im-polo ny fotoana famoahana
  2. Ahena ny isan'ny lesoka noho ny tsy mifanaraka kaody.
  3. Mampihena ny enta-mavesatry ny mpiasa ihany koa izany, satria ekipa iray izao ny mpamorona sy ny olona mampiasa ny fampiharana.

Ny fitaovana ahafahanao miasa amin'izany dia ny CircleCI, Travis CI, GitLab CI ary ny hafa.

Afaka manao fanampim-panazavana haingana amin'ny maodely ianao, manavao azy ary manomboka izany avy hatrany, raha toa ka ho mora, raha misy tsy fahombiazana, ny hiverina haingana amin'ny dikan-teny miasa, mba tsy ho hitan'ny mpampiasa farany izany. Azo atao izany indrindra fa mora sy haingana raha manana fitsapana tsara ianao.

Ahena ny fahasamihafana!!!

Fitsipika 9. Ny dianao

Ny logs (na "Logs") dia fisehoan-javatra, matetika voarakitra amin'ny endrika lahatsoratra, izay mitranga ao anatin'ny rindranasa (rivotra hetsika). Ohatra tsotra: "2020-02-02 - haavon'ny rafitra - anaran'ny dingana." Izy ireo dia natao mba ho hitan'ny developer ara-bakiteny ny zava-mitranga rehefa mandeha ny programa. Hitany ny fandrosoan'ny dingana ary takany raha araka ny fikasan'ny mpamorona.

Ity fitsipika ity dia milaza fa tsy tokony hitahiry ny dianao ao anatin'ny rafitra fichier-nao ianao - tokony "mamoaka" azy ireo amin'ny efijery ianao, ohatra, manao izany amin'ny vokatra mahazatra an'ny rafitra. Ary amin'izany fomba izany dia azo atao ny manara-maso ny fikorianan'ny terminal mandritra ny fampandrosoana.

Midika ve izany fa tsy ilaina ny mitahiry logs mihitsy? Tsia mazava ho azy. Tsy tokony hanao an'izany fotsiny ny fampiharanao - avelao amin'ny serivisy antoko fahatelo. Ny fampiharanao dia tsy afaka mandefa logs amina rakitra na terminal manokana hojerena amin'ny fotoana tena izy, na mandefa izany any amin'ny rafitra fitahirizana angon-drakitra tanjona ankapobeny (toy ny Hadoop). Ny fampiharanao mihitsy dia tsy tokony hitahiry na hifanerasera amin'ny logs.

Fitsipika 10. Fitsapana!

Ho an'ny fianarana milina indostrialy, ity dingana ity dia tena zava-dehibe, satria mila mahatakatra ianao fa miasa tsara ny modely ary mamokatra izay tadiavinao.

Ny fitsapana dia azo noforonina amin'ny alΓ lan'ny pytest, ary asedraina amin'ny alΓ lan'ny angon-drakitra kely raha manana asa famerenana / fanasokajiana ianao.

Aza adino ny mametraka voa mitovy ho an'ny modely fianarana lalina mba tsy hamokatra vokatra hafa tsy tapaka.

Famaritana fohy momba ireo fitsipika 10 ity, ary mazava ho azy fa sarotra ny mampiasa azy ireo raha tsy manandrana sy mahita ny fomba fiasan'izy ireo, ka ity lahatsoratra ity dia sasin-teny fotsiny amin'ny andian-dahatsoratra mahaliana izay hanambarako ny fomba hamoronana. modely fianarana milina indostrialy , ny fomba hampidirana azy ireo amin'ny rafitra, ary ny fomba ahafahan'ireo fitsipika ireo hanamora ny fiainana ho antsika rehetra.

Hiezaka ihany koa aho hampiasa fitsipika mahafinaritra izay azon'ny olona avela ao amin'ny fanehoan-kevitra raha tiany.

Source: www.habr.com

Add a comment