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:
- Te whiriwhiri kanohi i nga whakaahua
- Whakatauranga o ia tangata
- Tukuna te hua
Ko te tuatahi ka whakatauhia e nga ope o mua i whakangungua
Te hoahoa mahi o te paipa aro mātai
Te tātari i nga whakaritenga hoahoanga kaupapa
I roto i te huringa ora
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:
- Te rokiroki rangitaki whakakotahi - me tuhi nga ratonga katoa i nga raarangi ki te waahi kotahi, kia watea ki te tātari
- Ka taea te whakatauine whakapae o te ratonga aromatawai - ko te Bottleneck pea
- 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.
- Tere (anō) tukunga o ngā ratonga motuhake me te tāpae katoa
- 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.
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:
- 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
- Ina paahitia te tātari tuatahi, ka tiakina te ahua ki te rōrahi docker
- 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.
- 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":
- 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.
- 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":
- Me whakahaere te ahua ma te paipa aro mātai:
- Te uta i te atahanga ki te mahara
- Ka kawea e matou te ahua ki te rahi e hiahiatia ana
- Te kimi kanohi katoa (MTCNN)
- 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)
- Whakaatuhia te ahua whakamutunga
- Me tuhi nga pouaka here
- Te tuhi i nga whakatauranga
- Te muku i te ahua ritenga (taketake).
- Te tiaki i te putanga mai i te paipa aro mātai
- 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)
Ko te whiriwhiri i tau ki runga ki a ia, ehara i te mea i mua
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
I tenei kaupapa i whakamahia hei
Redis
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
- Ka tukuna e te kaiwhakamahi he whakaahua ki te karetao Telegram
- "attrai-telegram-bot" ka whiwhi karere mai i te Telegram API ka poroporoaki
- Ko te mahi me te ahua ka taapirihia ki te rarangi tukutahi "ki_whakatau"
- Ka whiwhi te kaiwhakamahi i tetahi karere me te wa arotake kua whakaritea
- 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"
- "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
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
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)
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.
Ko etahi atu whakairoiro
Te maha o nga kaiwhakamahi ahurei me nga tono arotake mai i te tukunga, i runga i te ra
Te tohatoha wa o te paipa paipa aromatawai
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