Ionnsachadh Innealan Gnìomhachais: 10 Prionnsapalan Dealbhaidh

Ionnsachadh Innealan Gnìomhachais: 10 Prionnsapalan Dealbhaidh

An-diugh, bidh seirbheisean ùra, tagraidhean agus prògraman cudromach eile gan cruthachadh a h-uile latha a leigeas leat rudan iongantach a chruthachadh: bho bhathar-bog airson smachd a chumail air rocaid SpaceX gu eadar-obrachadh le coire san ath sheòmar tro fòn cliste.

Agus, uaireannan, bidh a h-uile prògramadair ùr-nodha, ge bith a bheil e na neach-tòiseachaidh dìoghrasach no na neach-saidheans àbhaisteach Làn-stack no neach-saidheans dàta, luath no mall a ’tighinn gu buil gu bheil riaghailtean sònraichte ann airson prògramadh agus cruthachadh bathar-bog a bhios gu mòr a’ sìmpleachadh beatha.

San artaigil seo, bheir mi cunntas goirid air 10 prionnsapalan air mar a nì thu prògram ionnsachadh innealan gnìomhachais gus am bi e furasta fhilleadh a-steach do thagradh / seirbheis, stèidhichte air modh-obrach App 12-factar. air a mholadh le sgioba Heroku. Is e an iomairt agam mothachadh a mheudachadh mun dòigh seo, a chuidicheas mòran de luchd-leasachaidh agus daoine saidheans dàta.

Tha an artaigil seo na prologue gu sreath de artaigilean mu Ionnsachadh Innealan gnìomhachais. Annta bruidhnidh mi tuilleadh mu mar a nì thu modail agus a chuir air bhog gu cinneasachadh, cruthaich API air a shon, a bharrachd air eisimpleirean bho dhiofar raointean agus chompanaidhean a tha air ML a chuir a-steach anns na siostaman aca.

Prionnsabal 1: Bunait aon chòd

Bidh cuid de luchd-prògramaidh aig na ciad ìrean, a-mach à leisg airson a dhèanamh a-mach (no airson adhbhar air choireigin), dìochuimhnich mu Git. Bidh iad an dàrna cuid gu tur a’ dìochuimhneachadh an fhacail, is e sin, bidh iad a’ tilgeil fhaidhlichean gu chèile san draibh/dìreach a’ tilgeil teacsa/a’ cur air falbh le calmain, air neo cha bhith iad a’ smaoineachadh tron ​​t-sruth-obrach aca, agus a’ gealltainn gach fear dhan mheur aca fhèin, agus an uair sin dhan maighstir.

Tha am prionnsapal seo ag ràdh: tha aon bhun-chòd agad agus iomadh cleachdadh.

Faodar Git a chleachdadh an dà chuid ann an cinneasachadh agus ann an rannsachadh is leasachadh (R&D), far nach eilear ga chleachdadh cho tric.

Mar eisimpleir, anns an ìre R&D faodaidh tu geallaidhean fhàgail le diofar dhòighean agus mhodalan giollachd dàta, gus an uairsin am fear as fheàrr a thaghadh agus leantainn air adhart ag obair leis nas fhaide.

San dàrna h-àite, ann an cinneasachadh is e rud nach gabh atharrachadh a tha seo - feumaidh tu an-còmhnaidh coimhead air mar a dh’ atharraicheas do chòd agus fios a bhith agad dè am modail a thug na toraidhean as fheàrr, dè an còd a dh ’obraich aig a’ cheann thall agus dè thachair a thug air stad a bhith ag obair no tòiseachadh air toraidhean ceàrr a thoirt gu buil. . Is ann air sgàth sin a tha geallaidhean!

Faodaidh tu cuideachd pasgan den phròiseact agad a chruthachadh, ga chuir, mar eisimpleir, air Gemfury, agus an uairsin dìreach cuir a-steach gnìomhan bhuaithe airson pròiseactan eile, gus nach ath-sgrìobhadh iad 1000 uair, ach barrachd air sin nas fhaide air adhart.

Prionnsabal 2: Cuir an cèill gu soilleir agus dealaich eisimeileachd

Tha leabharlannan eadar-dhealaichte aig gach pròiseact a bheir thu a-steach bhon taobh a-muigh gus an cuir an sàs am badeigin. Ge bith an e leabharlannan Python a th’ ann, no leabharlannan de chànanan eile airson diofar adhbharan, no innealan siostam - is e an obair agad:

  • Cuir an cèill gu soilleir eisimeileachd, is e sin, faidhle anns am bi na leabharlannan, na h-innealan, agus na dreachan aca a thathas a’ cleachdadh sa phròiseact agad agus a dh’ fheumar a chuir a-steach (mar eisimpleir, ann am Python faodar seo a dhèanamh a ’cleachdadh Pipfile no requirements.txt. A. ceangal a leigeas le tuigse mhath: realpython.com/pipenv-iùil)
  • Cuir a-mach eisimeileachd gu sònraichte airson do phrògram rè leasachadh. Chan eil thu airson dreachan atharrachadh gu cunbhalach agus ath-shuidheachadh, mar eisimpleir, Tensorflow?

San dòigh seo, bidh e comasach do luchd-leasachaidh a thig còmhla ris an sgioba agad san àm ri teachd eòlas fhaighinn gu sgiobalta air na leabharlannan agus na dreachan aca a thathas a’ cleachdadh sa phròiseact agad, agus bidh cothrom agad cuideachd na dreachan agus na leabharlannan fhèin a chuir a-steach airson prògram sònraichte a riaghladh. pròiseact, a chuidicheas tu gus neo-fhreagarrachd leabharlannan no na dreachan aca a sheachnadh.

Cha bu chòir don tagradh agad cuideachd a bhith an urra ri innealan siostam a dh’ fhaodadh a bhith air an stàladh air OS sònraichte. Feumar na h-innealan sin ainmeachadh cuideachd anns na eisimeileachd a tha follaiseach. Tha seo riatanach gus suidheachaidhean a sheachnadh far nach eil an dreach de na h-innealan (a bharrachd air na tha ri fhaighinn) a rèir innealan siostam OS sònraichte.

Mar sin, eadhon ged a ghabhas curl a chleachdadh air cha mhòr a h-uile coimpiutair, bu chòir dhut fhathast a chuir an cèill ann an eisimeileachd, oir nuair a nì thu imrich gu àrd-ùrlar eile is dòcha nach bi e ann no nach e an dreach an tè a bha a dhìth ort bho thùs.

Mar eisimpleir, dh’ fhaodadh gum biodh na riatanasan agad.txt a’ coimhead mar seo:

# 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

Prionnsabal 3: rèiteachaidhean

Tha mòran air sgeulachdan a chluinntinn mu dhiofar luchd-leasachaidh a ’luchdachadh suas còd gun fhiosta gu GitHub gu stòran poblach le faclan-faire agus iuchraichean eile bho AWS, a’ dùsgadh an ath latha le fiachan de $ 6000, no eadhon $ 50000.

Ionnsachadh Innealan Gnìomhachais: 10 Prionnsapalan Dealbhaidh

Gu dearbh, tha na cùisean sin fìor, ach gu math cudromach. Ma stòras tu na teisteanasan agad no dàta eile a dh 'fheumar airson rèiteachadh taobh a-staigh a' chòd, tha thu a 'dèanamh mearachd, agus tha mi a' smaoineachadh nach eil feum air mìneachadh carson.

Is e roghainn eile a bhith a’ stòradh rèiteachaidhean ann an caochladairean àrainneachd. Faodaidh tu barrachd a leughadh mu chaochladairean àrainneachd an seo.

Eisimpleirean de dhàta a tha mar as trice air a stòradh ann an caochladairean àrainneachd:

  • Ainmean fearainn
  • URLan API/URI
  • Iuchraichean poblach is prìobhaideach
  • Caraidean (post, fònaichean, msaa)

San dòigh seo cha leig thu leas an còd atharrachadh gu cunbhalach ma dh’ atharraicheas na caochladairean rèiteachaidh agad. Cuidichidh seo thu gus ùine, oidhirp agus airgead a shàbhaladh dhut.

Mar eisimpleir, ma chleachdas tu Kaggle API gus deuchainnean a dhèanamh (mar eisimpleir, luchdaich sìos am bathar-bog agus ruith am modail troimhe gus dearbhadh nuair a bhios tu ga ruith gu bheil am modail ag obair gu math), bu chòir iuchraichean prìobhaideach bho Kaggle, leithid KAGGLE_USERNAME agus KAGGLE_KEY, a bhith air a stòradh ann an caochladairean àrainneachd.

Prionnsabal 4: Seirbheisean Treas Pàrtaidh

Is e am beachd an seo am prògram a chruthachadh ann an dòigh nach eil eadar-dhealachadh sam bith eadar goireasan ionadail agus treas-phàrtaidh a thaobh còd. Mar eisimpleir, faodaidh tu an dà chuid MySQL ionadail agus feadhainn treas-phàrtaidh a cheangal. Tha an aon rud a’ dol airson diofar APIan leithid Google Maps no Twitter API.

Gus seirbheis treas-phàrtaidh a dhì-cheadachadh no seirbheis eile a cheangal, cha leig thu leas ach na h-iuchraichean anns an rèiteachadh ann an caochladairean àrainneachd atharrachadh, air an do bhruidhinn mi sa pharagraf gu h-àrd.

Mar sin, mar eisimpleir, an àite a bhith a’ sònrachadh an t-slighe gu faidhlichean le stòran-dàta taobh a-staigh a’ chòd gach uair, tha e nas fheàrr an leabharlann pathlib a chleachdadh agus an t-slighe gu na stòran-dàta ainmeachadh ann an config.py, gus nach bi ge bith dè an t-seirbheis a chleachdas tu (airson Mar eisimpleir, CircleCI), bha e comasach don phrògram faighinn a-mach an t-slighe gu na stòran-dàta a’ toirt aire do structar an t-siostam faidhle ùr san t-seirbheis ùr.

Prionnsabal 5. Tog, sgaoil, àm ruith

Tha mòran dhaoine ann an Saidheans Dàta ga fhaighinn feumail na sgilean sgrìobhaidh bathar-bog aca a leasachadh. Ma tha sinn airson gun tuit am prògram againn cho ainneamh ‘s a ghabhas agus gun obraich sinn gun fàilligidhean cho fada’ s a ghabhas, feumaidh sinn am pròiseas airson dreach ùr fhoillseachadh ann an 3 ìrean:

  1. Ìre co-chruinneachaidhean sgoile. Bidh thu ag atharrachadh do chòd lom le goireasan fa leth gu pasgan ris an canar anns a bheil a h-uile còd agus dàta riatanach. Canar co-chruinneachadh ris a’ phacaid seo.
  2. Ìre leigeil ma sgaoil - an seo bidh sinn a’ ceangal ar config ris a’ cho-chruinneachadh, às aonais sin cha b’ urrainn dhuinn ar prògram a leigeil ma sgaoil. A-nis tha seo na fhoillseachadh gu tur deiseil airson a chuir air bhog.
  3. An ath thig an àrd-ùrlar sàsachadh. An seo bidh sinn a ’leigeil a-mach an tagradh le bhith a’ ruith na pròiseasan riatanach bhon fhoillseachadh againn.

Leigidh siostam mar seo airson dreachan ùra de mhodail a leigeil ma sgaoil no an loidhne-phìoban gu lèir dhut dreuchdan a sgaradh eadar luchd-rianachd agus luchd-leasachaidh, leigidh e leat dreachan a lorg agus casg a chuir air stadan nach eileas ag iarraidh den phrògram.

Airson an obair fuasglaidh, chaidh mòran sheirbheisean eadar-dhealaichte a chruthachadh anns an urrainn dhut pròiseasan a sgrìobhadh gus thu fhèin a ruith ann am faidhle .yml (mar eisimpleir, ann an CircleCI is e seo config.yml gus taic a thoirt don phròiseas fhèin). Tha Wheely sgoinneil air pasganan a chruthachadh airson pròiseactan.

Faodaidh tu pasganan a chruthachadh le dreachan eadar-dhealaichte den mhodail ionnsachaidh inneal agad, agus an uairsin am pasgan agus thoir sùil air na pasganan riatanach agus na dreachan aca gus na gnìomhan a sgrìobh thu às an sin a chleachdadh. Cuidichidh seo thu gus API a chruthachadh airson do mhodail, agus faodar am pasgan agad a chumail air Gemfury, mar eisimpleir.

Prionnsabal 6. Ruith do mhodail mar aon phròiseas no barrachd

A bharrachd air an sin, cha bu chòir dàta co-roinnte a bhith aig pròiseasan. Is e sin, feumaidh pròiseasan a bhith ann air leth, agus feumaidh a h-uile seòrsa dàta a bhith ann air leth, mar eisimpleir, air seirbheisean treas-phàrtaidh leithid MySQL no feadhainn eile, a rèir na tha a dhìth ort.

Is e sin, gu cinnteach chan fhiach dàta a stòradh taobh a-staigh an t-siostam faidhle pròiseas, air neo dh’ fhaodadh seo leantainn gu glanadh an dàta seo rè an ath fhoillseachadh / atharrachadh rèiteachaidhean no gluasad an t-siostam air a bheil am prògram a’ ruith.

Ach tha eisgeachd ann: airson pròiseactan ionnsachaidh inneal, faodaidh tu tasglann de leabharlannan a stòradh gus nach cuir thu a-steach iad a h-uile uair a chuireas tu dreach ùr air bhog, mura h-eil leabharlannan a bharrachd no atharrachaidhean sam bith air na dreachan aca. San dòigh seo, lughdaichidh tu an ùine a bheir e gus do mhodail a chuir air bhog ann an gnìomhachas.

Gus am modail a ruith mar grunn phròiseasan, faodaidh tu faidhle .yml a chruthachadh anns am bi thu a’ sònrachadh na pròiseasan riatanach agus an t-sreath aca.

Prionnsabal 7: Ath-chuairteachadh

Bu chòir na pròiseasan a tha a’ ruith san tagradh mhodail agad a bhith furasta tòiseachadh agus stad. Mar sin, leigidh seo leat atharrachaidhean còd a chuir an gnìomh gu sgiobalta, atharrachaidhean rèiteachaidh, sgèile gu sgiobalta agus gu sùbailte, agus casg a chuir air briseadh sìos den dreach obrach.

Is e sin, bu chòir do phròiseas leis a’ mhodail:

  • Lùghdaich an ùine tòiseachaidh. Mas fheàrr, cha bu chòir an ùine tòiseachaidh (bhon mhionaid a chaidh an àithne tòiseachaidh a chuir a-mach chun mhionaid a thig am pròiseas an gnìomh) a bhith nas fhaide na beagan dhiog. Tha tasgadh leabharlainn, air a mhìneachadh gu h-àrd, mar aon dòigh airson ùine tòiseachaidh a lughdachadh.
  • Crìochnaich gu ceart. Is e sin, tha èisteachd air a’ phort seirbheis air a chuir dheth, agus cha tèid iarrtasan ùra a chuirear a-steach don phort seo a phròiseasadh. An seo feumaidh tu an dàrna cuid conaltradh math a stèidheachadh le innleadairean DevOps, no tuigsinn mar a tha e ag obair leat fhèin (is fheàrr, gu dearbh, an tè mu dheireadh, ach bu chòir conaltradh a chumail an-còmhnaidh, ann am pròiseact sam bith!)

Prionnsabal 8: Cleachdadh / Amalachadh Leantainneach

Bidh mòran chompanaidhean a’ cleachdadh dealachadh eadar sgiobaidhean leasachaidh is cleachdadh an tagraidh (a’ toirt an aplacaid do luchd-cleachdaidh deireannach). Faodaidh seo leasachadh bathar-bog a lughdachadh gu mòr agus adhartas ann a bhith ga leasachadh. Bidh e cuideachd a’ milleadh cultar DevOps, far a bheil leasachadh agus amalachadh, gu ìre mhòr, air an cur còmhla.

Mar sin, tha am prionnsapal seo ag ràdh gum bu chòir don àrainneachd leasachaidh agad a bhith cho faisg ‘s a ghabhas air an àrainneachd cinneasachaidh agad.

Leigidh seo le:

  1. Lùghdaich an ùine sgaoilidh grunn thursan
  2. Lùghdaich an àireamh de mhearachdan air sgàth neo-fhreagarrachd còd.
  3. Bidh seo cuideachd a’ lughdachadh an eallach obrach air luchd-obrach, leis gu bheil luchd-leasachaidh agus daoine a tha a’ cleachdadh an tagraidh a-nis mar aon sgioba.

Is e innealan a leigeas leat obrachadh le seo CircleCI, Travis CI, GitLab CI agus feadhainn eile.

Faodaidh tu cur ris a ’mhodail gu sgiobalta, ùrachadh agus a chuir air bhog sa bhad, fhad‘ s a bhios e furasta, air eagal fàilligidhean, tilleadh gu math luath chun dreach obrach, gus nach bi an neach-cleachdaidh deireannach eadhon mothachail air. Faodar seo a dhèanamh gu sònraichte furasta agus luath ma tha deuchainnean math agad.

Lùghdaich eadar-dhealachaidhean !!!

Prionnsabal 9. Na logaichean agad

Tha logaichean (no “Logaichean”) nan tachartasan, mar as trice air an clàradh ann an cruth teacsa, a tha a’ tachairt taobh a-staigh an tagraidh (sruth tachartais). Eisimpleir shìmplidh: "2020-02-02 - ìre an t-siostaim - ainm pròiseas." Tha iad air an dealbhadh gus am faic an leasaiche gu litireil na tha a’ tachairt nuair a bhios am prògram a’ ruith. Bidh e a’ faicinn adhartas phròiseasan agus a’ tuigsinn a bheil e mar a bha an leasaiche fhèin an dùil.

Tha am prionnsapal seo ag ràdh nach bu chòir dhut na logaichean agad a stòradh taobh a-staigh an t-siostam faidhle agad - cha bu chòir dhut ach “toradh” a chuir chun sgrion, mar eisimpleir, dèan seo air toradh àbhaisteach an t-siostaim. Agus san dòigh seo bidh e comasach sùil a chumail air an t-sruth anns a 'phort-adhair rè leasachadh.

A bheil seo a’ ciallachadh nach eil feum air logaichean a shàbhaladh idir? Gu dearbh chan eil. Cha bu chòir don tagradh agad seo a dhèanamh - fàg gu seirbheisean treas-phàrtaidh e. Chan urrainn don tagradh agad ach logaichean a chuir air adhart gu faidhle sònraichte no inneal-crìochnachaidh airson coimhead fìor-ùine, no a chuir air adhart gu siostam stòraidh dàta adhbhar coitcheann (leithid Hadoop). Cha bu chòir don tagradh agad fhèin logaichean a stòradh no eadar-obrachadh.

Prionnsabal 10. Deuchainn!

Airson ionnsachadh innealan gnìomhachais, tha an ìre seo air leth cudromach, oir feumaidh tu tuigsinn gu bheil am modail ag obair gu ceart agus a ’toirt a-mach na bha thu ag iarraidh.

Faodar deuchainnean a chruthachadh a’ cleachdadh pytest, agus an deuchainn le bhith a’ cleachdadh dàta beag ma tha gnìomh ais-tharraing/seòrsachaidh agad.

Na dìochuimhnich an aon sìol a shuidheachadh airson modalan ionnsachaidh domhainn gus nach bi iad an-còmhnaidh a’ toirt a-mach diofar thoraidhean.

B’ e tuairisgeul goirid a bha seo air na 10 prionnsapalan, agus, gu dearbh, tha e duilich an cleachdadh gun a bhith a’ feuchainn agus a’ faicinn mar a tha iad ag obair, agus mar sin chan eil anns an artaigil seo ach prologue gu sreath de artaigilean inntinneach anns am bi mi a’ nochdadh mar a chruthaicheas tu. modalan ionnsachaidh innealan tionnsgalach, mar a thèid an fhilleadh a-steach do shiostaman, agus mar as urrainn dha na prionnsapalan sin beatha a dhèanamh nas fhasa dhuinn uile.

Feuchaidh mi cuideachd ri prionnsapalan fionnar a chleachdadh a dh’ fhaodas duine sam bith fhàgail anns na beachdan ma thogras iad.

Source: www.habr.com

Cuir beachd ann