Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

urunga

Kia pai!

I roto i tenei tuhinga ka korero ahau i taku wheako ki te hanga hoahoanga microservice mo tetahi kaupapa ma te whakamahi i nga whatunga neural.

Me korero tatou mo nga whakaritenga hoahoanga, titiro ki nga momo hoahoa hangahanga, tātarihia ia waahanga o te hoahoanga kua oti, me te arotake ano hoki i nga inenga hangarau o te otinga.

Kia pai te pānui!

He kupu torutoru mo te raruraru me tona otinga

Ko te whakaaro nui ko te arotake i te ataahua o te tangata i runga i te tauine tekau i runga i te whakaahua.

I roto i tenei tuhinga ka neke atu tatou i te whakaahua i nga whatunga neural e rua i whakamahia me te tukanga o te whakarite raraunga me te whakangungu. Heoi, i roto i tetahi o nga panui e whai ake nei, ka hoki ano tatou ki te wetewete i te paipa aromatawai i te taumata hohonu.

Inaianei ka haere maatau i te paipa aro mātai i te taumata o runga, ka aro ki te taunekeneke o nga ratonga miihini i roto i te horopaki o te hoahoanga kaupapa katoa. 

I te wa e mahi ana i te paipa aromatawai ataahua, ka wehea te mahi ki nga waahanga e whai ake nei:

  1. Te whiriwhiri kanohi i nga whakaahua
  2. Whakatauranga o ia tangata
  3. Tukuna te hua

Ko te tuatahi ka whakatauhia e nga ope o mua i whakangungua MTCNN. Mo te tuarua, i whakangungua he whatunga neural convolutional i runga i te PyTorch, ma te whakamahi ResNet34 - mai i te toenga "kounga / tere o te whakatau i runga i te PTM"

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Te hoahoa mahi o te paipa aro mātai

Te tātari i nga whakaritenga hoahoanga kaupapa

I roto i te huringa ora ML Ko nga waahanga mahi mo te hoahoanga me te mahi aunoatanga o te whakatakoto tauira ko te nuinga o nga wa tino pau me te whakapau rawa.

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Te huringa ora o te kaupapa ML

Ko tenei kaupapa kaore he rereke - i whakatauhia kia takai te paipa aromatawai ki roto i te ratonga ipurangi, me ruku tatou ki te hoahoanga. Ko nga whakaritenga matua e whai ake nei i tohua:

  1. Te rokiroki rangitaki whakakotahi - me tuhi nga ratonga katoa i nga raarangi ki te waahi kotahi, kia watea ki te tātari
  2. Ka taea te whakatauine whakapae o te ratonga aromatawai - ko te Bottleneck pea
  3. Kia rite te nui o nga rauemi tukatuka kia tohatohahia hei arotake i ia ahua kia kore ai e puta ke atu i roto i te tohatoha wa mo te whakatau.
  4. Tere (anō) tukunga o ngā ratonga motuhake me te tāpae katoa
  5. Ko te kaha, mehemea e tika ana, ki te whakamahi i nga taonga noa i roto i nga ratonga rereke

hoahoanga

Whai muri i te wetewete i nga whakaritenga, ka kitea he tino pai te hoahoanga microservice.

Hei whakakore i nga mahunga kaore e tika ana, ko te Telegram API i kowhiria hei waahanga o mua.

Tuatahi, me titiro ki te hoahoa hanganga o te hoahoanga kua oti, katahi ka haere ki te whakaahuatanga o ia waahanga, me te whakaokawa hoki i te tukanga o te tukatuka whakaahua angitu.

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Te hoahoa hangahanga o te hoahoanga kua oti

Me korero taipitopito mo ia waahanga o te hoahoa, e tohu ana i te kawenga takitahi i roto i te tukanga o te arotake whakaahua.

Microservice "attrai-telegram-bot"

Ko tenei ratonga moroiti ka uru ki nga taunekeneke katoa me te Telegram API. E rua nga ahuatanga matua: te mahi me te ahua ritenga me te mahi me te hua o te paipa aromatawai. Kia titiro tatou ki nga ahuatanga e rua i roto i nga tikanga whanui.

I te wa e whiwhi ana i te karere ritenga me te ahua:

  1. Ka mahia te filtration, e whai ake nei nga arowhai:
    • Te waatea o te rahi atahanga tino pai
    • Te maha o nga whakaahua kaiwhakamahi kei te rarangi
  2. Ina paahitia te tātari tuatahi, ka tiakina te ahua ki te rōrahi docker
  3. Ka mahia he mahi i roto i te rarangi "ki_whakaaro", kei roto i era atu mea, ko te ara ki te ahua kei roto i ta maatau pukapuka.
  4. Mena ka tutuki pai nga mahi i runga ake nei, ka whiwhi te kaiwhakamahi i te panui me te tata ki te wa tukatuka whakaahua, ka tatauhia i runga i te maha o nga mahi i roto i te rarangi. Mena ka puta he hapa, ka tino whakamohiotia te kaiwhakamahi ma te tuku korero me nga korero mo nga mea kua he.

I tua atu, ko tenei ratonga miihini, penei i te kaimahi herewi, ka whakarongo ki te rarangi "i muri_whakaaronga", e tika ana mo nga mahi kua paahitia i roto i te paipa arotake.

Ina whiwhi mahi hou mai i te "after_estimate":

  1. Mena ka pai te tukatuka i te ahua, ka tukuna e matou te hua ki te kaiwhakamahi; ki te kore, ka whakamohiohia e matou he hapa.
  2. Ko te tango i te ahua ko te hua o te paipa aro mātai

Aromatawai microservice "attrai-estimator"

He kaimahi herewi tenei ratonga moroiti me te whakauru i nga mea katoa e pa ana ki te paipa arotake whakaahua. Kotahi anake te algorithm e mahi ana i konei - me tātari.

Ina whiwhi mahi hou mai i te "to_estimate":

  1. Me whakahaere te ahua ma te paipa aro mātai:
    1. Te uta i te atahanga ki te mahara
    2. Ka kawea e matou te ahua ki te rahi e hiahiatia ana
    3. Te kimi kanohi katoa (MTCNN)
    4. Ka arotakehia e matou nga kanohi katoa (ka takai matou i nga kanohi i kitea i te taahiraa whakamutunga ki roto i te puranga me te whakatau ResNet34)
    5. Whakaatuhia te ahua whakamutunga
      1. Me tuhi nga pouaka here
      2. Te tuhi i nga whakatauranga
  2. Te muku i te ahua ritenga (taketake).
  3. Te tiaki i te putanga mai i te paipa aro mātai
  4. Ka tukuna e matou te mahi ki roto i te rarangi "after_estimate", e whakarongohia ana e te "attrai-telegram-bot" microservice i korerohia i runga ake nei.

Graylog (+ mongoDB + Elasticsearch)

karekau he otinga mo te whakahaerenga porowhangai. I roto i tenei kaupapa, i whakamahia mo tana kaupapa.

Ko te whiriwhiri i tau ki runga ki a ia, ehara i te mea i mua ELK tāpae, na te pai o te mahi me te Python. Ko nga mea katoa hei mahi ki te takiuru ki Graylog ko te taapiri i te GELFTCPHandler mai i te kete hinahina ki te toenga o nga kaikawe kaitautapa pakiaka o ta maatau ratonga moroiti python.

I te mea he tangata i mahi tahi me te puranga ELK i mua, he pai taku wheako i a au e mahi ana me Graylog. Ko te mea e pouri ana ko te hiranga o Kibana i runga i te atanga paetukutuku Graylog.

RabbitMQ

RabbitMQ he kaihokohoko karere i runga i te kawa AMQP.

I tenei kaupapa i whakamahia hei te tino pumau me te whakamatau i te waa te kaihokohoko mo te herewi me te mahi i roto i te aratau roa.

Redis

Redis he DBMS NoSQL e mahi ana me nga hanganga raraunga uara-matua

I etahi wa ka hiahia ki te whakamahi i nga mea noa e whakatinana ana i etahi hanganga raraunga i roto i nga momo miihini Python rereke.

Hei tauira, ka penapenahia e Redis he mapi tohu o te ahua "telegram_user_id => maha o nga mahi kaha i roto i te rarangi," ka taea e koe te whakaiti i te maha o nga tono mai i tetahi kaiwhakamahi ki tetahi uara, na reira, ka aukati i nga whakaeke DoS.

Kia whakaōkawahia te tukanga o te tukatuka whakaahua angitu

  1. Ka tukuna e te kaiwhakamahi he whakaahua ki te karetao Telegram
  2. "attrai-telegram-bot" ka whiwhi karere mai i te Telegram API ka poroporoaki
  3. Ko te mahi me te ahua ka taapirihia ki te rarangi tukutahi "ki_whakatau"
  4. Ka whiwhi te kaiwhakamahi i tetahi karere me te wa arotake kua whakaritea
  5. Ko te "attrai-estimator" he mahi mai i te rarangi "to_estimate", ka whakahaere i nga whakatau tata ki roto i te paipa me te whakaputa i te mahi ki roto i te rarangi "i muri_etima"
  6. "attrai-telegram-bot" e whakarongo ana ki te rarangi "after_estimate", ka tukuna te hua ki te kaiwhakamahi

DevOps

Ka mutu, i muri i te arotake i te hoahoanga, ka taea e koe te neke ki te waahanga whakamere - DevOps

Pokai Docker

 

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Pokai Docker  — he punaha whakahiato, ko te mahi kei roto i te Docker Engine ka waatea mai i te pouaka.

Ma te whakamahi i te "swarm", ka taea te wehewehe i nga pona katoa i roto i to taatau roopu ki nga momo 2 - he kaimahi me te kaiwhakahaere. I runga i nga miihini o te momo tuatahi, ka tohatohahia nga roopu ipu (tapae), ko nga miihini o te momo tuarua te kawenga mo te whakatauine, te whakataurite me ētahi atu āhuatanga hauhautanga. He kaimahi ano nga kaiwhakahaere ma te taunoa.

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Huihui me te kaiwhakahaere rangatira kotahi me nga kaimahi tokotoru

Ko te rahi o te tautau ka taea he 1 node; ka noho kotahi te miihini hei kaiwhakahaere rangatira me te kaimahi i te wa kotahi. I runga i te rahi o te kaupapa me te iti rawa o nga whakaritenga mo te aukati i te he, i whakatauhia kia whakamahia tenei huarahi.

Ma te titiro whakamua, ka kii ahau mai i te tukunga whakaputanga tuatahi, i te waenganui o Hune, karekau he raruraru e pa ana ki tenei roopu roopu (engari ehara tenei i te mea ko taua whakahaere ka whakaaehia i roto i nga waahanga-nui. nga kaupapa, e pa ana ki nga whakaritenga o te he.

Tāpae Docker

I roto i te aratau pokai, kei a ia te kawenga mo te tuku i nga taapu (nga huinga o nga ratonga docker) tāpae poupou

E tautoko ana i nga whirihora tito-docker, ka taea e koe te whakamahi i nga whiringa tohatoha.  

Hei tauira, ma te whakamahi i enei tawhā, he iti noa nga rauemi mo ia o nga tauira moroiti arotake (ka tohatohahia e matou nga matua N mo nga tauira N, i roto i te ratonga miihini ka whakawhāitihia te maha o nga waahanga e whakamahia ana e PyTorch ki te kotahi)

attrai_estimator:
  image: 'erqups/attrai_estimator:1.2'
  deploy:
    replicas: 4
    resources:
      limits:
        cpus: '4'
    restart_policy:
      condition: on-failure
      …

He mea nui kia maumahara ko Redis, RabbitMQ me Graylog he ratonga whaimana, a kaore e taea te whakahiato kia rite ki te "attrai-estimator"

E tohu ana i te patai - he aha i kore ai a Kubernetes?

Te ahua nei ko te whakamahi i nga Kubernetes i roto i nga kaupapa iti me te rahi-rahi he nui ake; ko nga mahi katoa e tika ana ka taea te tiki mai i a Docker Swarm, he tino pai ki te whakamahi mo te kaiwhakatakoto ipu, he iti ano te arai ki te urunga.

Te Hangahanga

Ko enei katoa i tukuna ki te VDS me nga ahuatanga e whai ake nei:

  • PTM: 4 matua Intel® Xeon® Gold 5120 PTM @ 2.20GHz
  • RAM: 8 GB
  • SSD: 160GB

Whai muri i nga whakamatautau utauta a rohe, te ahua nei na te nui o te urunga mai o nga kaiwhakamahi, ka ranea tenei miihini.

Engari, i muri tonu i te tukunga, ka tukuna e ahau he hononga ki tetahi o nga papa whakaahua rongonui i roto i te CIS (yup, ko taua mea ano), i muri mai ka aro nga tangata, a, i roto i etahi haora kua angitu te ratonga ki te tukatuka i nga mano tini o nga whakaahua. I te wa ano, i nga wa tino nui, ko nga rauemi CPU me te RAM kaore i te haurua i whakamahia.

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural
Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Ko etahi atu whakairoiro

Te maha o nga kaiwhakamahi ahurei me nga tono arotake mai i te tukunga, i runga i te ra

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

Te tohatoha wa o te paipa paipa aromatawai

Tirohanga whanui mo te hoahoanga ratonga mo te aromatawai ahua i runga i nga whatunga neural

kitenga

Hei whakarāpopototanga, ka taea e au te kii ko te hoahoanga me te huarahi ki te whakariterite i nga ipu i tino tika - ahakoa i nga wa tino nui kaore he maturuturunga iho, he whakaheke ranei i te waa tukatuka. 

Ki taku whakaaro ko nga kaupapa iti me te reo-rahi e whakamahi ana i te wa-tuuturu o nga whatunga neural i runga i te PTM i roto i a raatau mahi ka taea te whakamahi angitu i nga mahi e whakaahuatia ana i tenei tuhinga.

Ka tapiritia e ahau i te tuatahi he roa ake te tuhinga, engari kia kore ai e tuku he panui roa, i whakatau ahau ki te waiho i etahi waahanga o tenei tuhinga - ka hoki atu ki a raatau i roto i nga tuhinga a muri ake nei.

Ka taea e koe te peke i te karetao i runga i Telegram - @AttraiBot, ka mahi kia tae noa ki te mutunga o te ngahuru 2020. Me whakamahara ahau ki a koe kaore he raraunga kaiwhakamahi e rongoa - kaore nga whakaahua taketake, me nga hua o te paipa aromatawai - ka turakina nga mea katoa i muri i te tukatuka.

Source: will.com

Tāpiri i te kōrero