Rekstur vélanáms í Mail.ru Mail

Rekstur vélanáms í Mail.ru Mail

Byggt á ræðum mínum á Highload++ og DataFest Minsk 2019.

Fyrir marga í dag er póstur óaðskiljanlegur hluti af netlífinu. Með hjálp hennar stundum við viðskiptabréfaskipti, geymum alls kyns mikilvægar upplýsingar sem tengjast fjármálum, hótelbókunum, pöntunum og margt fleira. Um mitt ár 2018 mótuðum við vörustefnu fyrir þróun pósts. Hvernig ætti nútímapóstur að vera?

Póstur verður að vera klár, það er að hjálpa notendum að vafra um vaxandi magn upplýsinga: sía, skipuleggja og veita þær á sem þægilegastan hátt. Hún hlýtur að vera það nothæft, sem gerir þér kleift að leysa ýmis verkefni beint í pósthólfinu þínu, til dæmis borga sektir (aðgerð sem ég nota því miður). Og á sama tíma þarf póstur að sjálfsögðu að veita upplýsingavernd, stöðva ruslpóst og verja gegn innbroti, þ.e. öruggur.

Þessi svæði skilgreina fjölda lykilvandamála, sem mörg hver er hægt að leysa á áhrifaríkan hátt með því að nota vélanám. Hér eru dæmi um eiginleika sem þegar eru til sem eru þróaðir sem hluti af stefnunni - einn fyrir hverja átt.

  • Snjall svar. Póstur er með snjallsvara. Tauganetið greinir texta bréfsins, skilur merkingu hans og tilgang og býður þar af leiðandi upp á þrjá viðeigandi svarmöguleika: jákvæða, neikvæða og hlutlausa. Þetta hjálpar til við að spara verulega tíma þegar bréfum er svarað og svarar líka oft á óhefðbundinn og fyndinn hátt.
  • Hópur tölvupóstatengt pöntunum í netverslunum. Við verslum oft á netinu og að jafnaði geta verslanir sent nokkra tölvupósta fyrir hverja pöntun. Til dæmis, frá AliExpress, stærstu þjónustunni, koma margir stafir inn fyrir eina pöntun og við reiknuðum út að í flugstöðinni gæti fjöldi þeirra orðið allt að 29. Þess vegna, með því að nota Named Entity Recognition líkanið, drögum við út pöntunarnúmerið og aðrar upplýsingar úr textanum og flokkaðu alla stafi í einum þræði. Einnig birtum við grunnupplýsingar um pöntunina í sérstökum reit sem gerir það auðveldara að vinna með þessa tegund tölvupósts.

    Rekstur vélanáms í Mail.ru Mail

  • Antiphishing. Vefveiðar eru sérstaklega hættuleg sviksamleg tegund tölvupósts, með hjálp sem árásarmenn reyna að fá fjárhagsupplýsingar (þar á meðal bankakort notandans) og innskráningar. Slík bréf líkja eftir raunverulegum bréfum sem þjónustan sendir, þar á meðal sjónrænt. Þess vegna, með hjálp Computer Vision, þekkjum við lógó og hönnunarstíl bréfa frá stórum fyrirtækjum (til dæmis Mail.ru, Sber, Alfa) og tökum tillit til þess ásamt texta og öðrum eiginleikum í ruslpóst- og vefveiðaflokkunum okkar .

Vélnám

Smá um vélanám í tölvupósti almennt. Póstur er mjög hlaðið kerfi: að meðaltali fara 1,5 milljarðar bréfa á dag í gegnum netþjóna okkar fyrir 30 milljónir DAU notenda. Um 30 vélanámskerfi styðja allar nauðsynlegar aðgerðir og eiginleika.

Hver bókstafur fer í gegnum heila flokkunarleiðslu. Fyrst slökkvum við á ruslpósti og skiljum eftir góða tölvupósta. Notendur taka oft ekki eftir vinnu ruslpósts, því 95-99% af ruslpósti endar ekki einu sinni í viðeigandi möppu. Ruslpóstgreining er mjög mikilvægur hluti af kerfinu okkar og sá erfiðasti þar sem á sviði ruslpósts er stöðug aðlögun á milli varnar- og árásarkerfa, sem veitir liðinu okkar stöðuga verkfræðilega áskorun.

Næst aðskiljum við bréf frá fólki og vélmenni. Tölvupóstur frá fólki er mikilvægastur, svo við bjóðum upp á eiginleika eins og snjallsvar fyrir það. Bréf frá vélmenni eru skipt í tvo hluta: viðskipta - þetta eru mikilvæg bréf frá þjónustu, til dæmis staðfestingar á kaupum eða hótelbókunum, fjármál og upplýsinga - þetta eru fyrirtækisauglýsingar, afslættir.

Við teljum að viðskiptatölvupóstur sé jafn mikilvægur persónulegum bréfaskiptum. Þeir ættu að vera við höndina því oft þurfum við fljótt að finna upplýsingar um pöntun eða flugmiðapöntun og eyðum tíma í að leita að þessum stöfum. Þess vegna, til hægðarauka, skiptum við þeim sjálfkrafa í sex meginflokka: ferðalög, pantanir, fjármál, miða, skráningar og að lokum sektir.

Upplýsingabréf eru stærsti og líklega mikilvægari hópurinn sem þarfnast ekki viðbragða strax þar sem ekkert markvert breytist í lífi notandans ef hann les ekki slíkt bréf. Í nýja viðmótinu okkar fellum við þá saman í tvo þræði: samfélagsnet og fréttabréf, hreinsum þannig pósthólfið sjónrænt og skiljum aðeins mikilvæg skilaboð eftir sýnileg.

Rekstur vélanáms í Mail.ru Mail

Nýting

Mikill fjöldi kerfa veldur miklum erfiðleikum í rekstri. Þegar öllu er á botninn hvolft rýrna módel með tímanum, eins og hvaða hugbúnaður sem er: eiginleikar bila, vélar bila, kóði skekkist. Að auki eru gögn stöðugt að breytast: nýjum bætist við, hegðunarmynstri notenda er umbreytt o.s.frv., þannig að líkan án viðeigandi stuðnings mun virka verr og verr með tímanum.

Við megum ekki gleyma því að því dýpra sem vélanám kemst inn í líf notenda, því meiri áhrif hafa þeir á vistkerfið og þar af leiðandi því meira fjárhagslegt tap eða hagnað geta markaðsaðilar fengið. Því á vaxandi fjölda sviða eru leikmenn að laga sig að vinnu ML reikniritanna (klassísk dæmi eru auglýsingar, leit og áðurnefnd ruslpóstsvörn).

Vélnámsverkefni hafa líka sérkenni: allar, jafnvel smávægilegar, breytingar á kerfinu geta skapað mikla vinnu með líkaninu: vinna með gögn, endurþjálfun, dreifing, sem getur tekið vikur eða mánuði. Því hraðar sem umhverfið sem gerðir þínar starfa í breytist, því meiri fyrirhöfn þarf að viðhalda þeim. Teymi getur búið til fullt af kerfum og verið ánægt með það, en eytt svo nánast öllu fjármagni sínu í að viðhalda þeim, án þess að hafa tækifæri til að gera eitthvað nýtt. Við lentum einu sinni í slíku ástandi í ruslpóstteyminu. Og þeir komust að þeirri augljósu niðurstöðu að stuðningur þurfi að vera sjálfvirkur.

Sjálfvirkni

Hvað er hægt að gera sjálfvirkt? Nánast allt, reyndar. Ég hef bent á fjögur svæði sem skilgreina innviði vélanáms:

  • gagnasafn;
  • viðbótarþjálfun;
  • dreifa;
  • prófun og eftirlit.

Ef umhverfið er óstöðugt og breytist stöðugt, þá reynist allur innviði í kringum líkanið vera miklu mikilvægari en líkanið sjálft. Það er kannski gamall og góður línulegur flokkari, en ef þú gefur honum rétta eiginleika og færð góð viðbrögð frá notendum, mun hann virka miklu betur en nýjustu gerðir með öllum bjöllum og flautum.

Feedback Loop

Þessi lota sameinar gagnasöfnun, viðbótarþjálfun og dreifingu - í rauninni alla líkanuppfærsluferilinn. Hvers vegna er það mikilvægt? Skoðaðu skráningaráætlunina í póstinum:

Rekstur vélanáms í Mail.ru Mail

Vélrænni þróunaraðili hefur innleitt anti-bot líkan sem kemur í veg fyrir að vélmenni skrái sig í tölvupósti. Línuritið lækkar í gildi þar sem aðeins raunverulegir notendur eru eftir. Allt er frábært! En fjórir tímar líða, vélmennin fínstilla handritin sín og allt fer aftur í eðlilegt horf. Í þessari útfærslu eyddi verktaki mánuði í að bæta við eiginleikum og endurþjálfa líkanið, en ruslpósturinn gat aðlagað sig á fjórum klukkustundum.

Til þess að vera ekki svona hrikalega sársaukafull og þurfa ekki að endurgera allt seinna verðum við í upphafi að hugsa um hvernig endurgjafarlykkjan mun líta út og hvað við gerum ef umhverfið breytist. Við skulum byrja á því að safna gögnum - þetta er eldsneytið fyrir reiknirit okkar.

Gagnasafn

Það er ljóst að fyrir nútíma tauganet, því meiri gögn, því betra, og þau eru í raun framleidd af notendum vörunnar. Notendur geta hjálpað okkur með því að merkja gögn, en við getum ekki misnotað þetta, vegna þess að á einhverjum tímapunkti verða notendur þreyttir á að klára gerðir þínar og munu skipta yfir í aðra vöru.

Ein algengasta mistökin (hér vísa ég í Andrew Ng) er of mikil áhersla á mælikvarða á prófunargagnagrunninum, en ekki á endurgjöf frá notanda, sem er í raun aðal mælikvarðinn á gæði vinnunnar, þar sem við búum til vara fyrir notandann. Ef notandinn skilur ekki eða líkar ekki við vinnu líkansins, þá er allt eyðilagt.

Þess vegna ætti notandinn alltaf að geta kosið og hann ætti að fá tól fyrir endurgjöf. Ef við höldum að bréf sem tengist fjármálum sé komið í pósthólfið þurfum við að merkja það „fjármál“ og teikna hnapp sem notandinn getur smellt á og sagt að þetta séu ekki fjármál.

Gæði endurgjafar

Við skulum tala um gæði endurgjöf notenda. Í fyrsta lagi getur þú og notandinn sett mismunandi merkingu í eitt hugtak. Til dæmis heldur þú og vörustjórar þínir að „fjármál“ þýði bréf frá bankanum og notandinn heldur að bréf frá ömmu um lífeyri hennar eigi einnig við fjármál. Í öðru lagi eru notendur sem elska að ýta á hnappa án nokkurrar rökfræði. Í þriðja lagi getur notandinn haft verulega rangt fyrir sér í niðurstöðum sínum. Sláandi dæmi úr framkvæmd okkar er innleiðing flokkunar Nígerískt ruslpóstur, mjög fyndin tegund af ruslpósti þar sem notandinn er beðinn um að taka nokkrar milljónir dollara frá fjarlægum ættingja sem skyndilega fannst í Afríku. Eftir að hafa innleitt þennan flokkara könnuðum við „Ekki ruslpóst“ smellina á þessum tölvupóstum og í ljós kom að 80% þeirra voru safaríkur nígerískur ruslpóstur, sem bendir til þess að notendur geti verið mjög trúlausir.

Og við skulum ekki gleyma því að ekki aðeins fólk getur smellt á hnappana heldur líka alls kyns vélmenni sem þykjast vera vafri. Svo hrá endurgjöf er ekki góð til að læra. Hvað getur þú gert við þessar upplýsingar?

Við notum tvær aðferðir:

  • Umsögn frá tengdum ML. Til dæmis erum við með kerfi gegn botni á netinu, sem, eins og ég nefndi, tekur skjóta ákvörðun út frá takmörkuðum fjölda skilta. Og það er annað, hægt kerfi sem virkar eftir á. Það hefur meiri upplýsingar um notandann, hegðun hans o.s.frv. Fyrir vikið er upplýstasta ákvörðunin tekin; í samræmi við það hefur hún meiri nákvæmni og heilleika. Þú getur beint mismuninum á rekstri þessara kerfa yfir á það fyrsta sem þjálfunargögn. Þannig mun einfaldara kerfi alltaf reyna að nálgast árangur flóknara.
  • Smelltu flokkun. Þú getur einfaldlega flokkað hvern notandasmell, metið réttmæti hans og notagildi. Við gerum þetta í ruslpóstsvörn, notum notendaeiginleika, sögu hans, sendandaeiginleika, textann sjálfan og niðurstöðu flokkaranna. Fyrir vikið fáum við sjálfvirkt kerfi sem staðfestir endurgjöf notenda. Og þar sem það þarf að endurmennta það mun sjaldnar getur starf þess orðið grundvöllur allra annarra kerfa. Aðal forgangsverkefnið í þessu líkani er nákvæmni, vegna þess að þjálfun líkansins á ónákvæmum gögnum hefur afleiðingar.

Á meðan við erum að þrífa gögnin og þjálfa ML kerfin okkar áfram, þá megum við ekki gleyma notendum, því fyrir okkur eru þúsundir, milljónir villna á línuritinu tölfræði og fyrir notandann er hver villa harmleikur. Til viðbótar við þá staðreynd að notandinn verður einhvern veginn að lifa með villu þinni í vörunni, eftir að hafa fengið endurgjöf, býst hann við að svipað ástand verði útrýmt í framtíðinni. Þess vegna er alltaf þess virði að gefa notendum ekki aðeins tækifæri til að kjósa, heldur einnig að leiðrétta hegðun ML kerfa, búa til til dæmis persónulega heuristics fyrir hvern endurgjöf smell; ef um póst er að ræða, gæti þetta verið möguleikinn til að sía slík bréf eftir sendanda og titli fyrir þennan notanda.

Þú þarft líka að smíða líkan sem byggir á sumum skýrslum eða beiðnum um að styðja í hálfsjálfvirkum eða handvirkum ham svo að aðrir notendur þjáist ekki af svipuðum vandamálum.

Heuristics til að læra

Það eru tvö vandamál með þessa heuristics og hækjur. Hið fyrsta er að sívaxandi fjölda hækja er erfitt að viðhalda, hvað þá gæðum þeirra og afköstum til lengri tíma litið. Annað vandamálið er að villan er kannski ekki tíð og nokkrir smellir til að þjálfa líkanið frekar duga ekki. Svo virðist sem þessi tvö óskyldu áhrif geti verið verulega hlutlaus ef eftirfarandi aðferð er beitt.

  1. Við búum til tímabundna hækju.
  2. Við sendum gögn úr því í líkanið, það uppfærir sig reglulega, þar á meðal á mótteknum gögnum. Hér er auðvitað mikilvægt að heuristics hafi mikla nákvæmni til að draga ekki úr gæðum gagna í þjálfunarsettinu.
  3. Síðan stillum við vöktunina til að kveikja á hækjunni og ef hækjan virkar ekki lengur og er alveg þakin líkaninu eftir nokkurn tíma, þá geturðu örugglega fjarlægt hana. Nú er ólíklegt að þetta vandamál endurtaki sig.

Svo hækjuher er mjög gagnlegt. Aðalatriðið er að þjónusta þeirra sé brýn og ekki varanleg.

Viðbótarþjálfun

Endurmenntun er ferlið við að bæta við nýjum gögnum sem fást vegna endurgjöf frá notendum eða öðrum kerfum og þjálfa núverandi líkan á þeim. Það geta verið nokkur vandamál með viðbótarþjálfun:

  1. Líkanið styður kannski einfaldlega ekki viðbótarþjálfun heldur lærir aðeins frá grunni.
  2. Hvergi er skrifað í bók náttúrunnar að viðbótarþjálfun muni örugglega bæta gæði vinnu í framleiðslu. Oft gerist hið gagnstæða, það er, aðeins versnun er möguleg.
  3. Breytingar geta verið ófyrirsjáanlegar. Þetta er frekar lúmskur punktur sem við höfum bent á fyrir okkur. Jafnvel þó að nýtt líkan í A/B prófi sýni svipaðar niðurstöður miðað við núverandi, þýðir það ekki að það virki eins. Vinna þeirra getur verið mismunandi í aðeins einu prósenti, sem getur leitt til nýrra villna eða skilað gömlum sem þegar hefur verið leiðrétt. Bæði við og notendurnir vitum nú þegar hvernig á að lifa með núverandi villum og þegar mikill fjöldi nýrra villna kemur upp getur notandinn líka ekki skilið hvað er að gerast, því hann býst við fyrirsjáanlegri hegðun.

Þess vegna er mikilvægast við viðbótarþjálfun að tryggja að líkanið sé bætt, eða að minnsta kosti ekki versnað.

Það fyrsta sem kemur upp í hugann þegar við tölum um viðbótarþjálfun er Active Learning nálgunin. Hvað þýðir þetta? Til dæmis ákvarðar flokkarinn hvort tölvupóstur tengist fjármálum og í kringum ákvörðunarmörk þess bætum við sýnishorn af merktum dæmum. Þetta virkar vel, til dæmis í auglýsingum, þar sem viðbrögð eru mikil og hægt er að þjálfa fyrirmyndina á netinu. Og ef það er lítil endurgjöf, þá fáum við mjög hlutdrægt úrtak miðað við dreifingu framleiðslugagna, á grundvelli þess er ómögulegt að meta hegðun líkansins meðan á notkun stendur.

Rekstur vélanáms í Mail.ru Mail

Reyndar er markmið okkar að varðveita gömul mynstur, þegar þekktar gerðir, og eignast ný. Hér er samfellan mikilvæg. Líkanið, sem við lögðum oft mikla vinnu í að rúlla út, er þegar að virka, svo við getum einbeitt okkur að frammistöðu þess.

Mismunandi líkön eru notuð í pósti: tré, línuleg, taugakerfi. Fyrir hvert sem við gerum okkar eigin viðbótarþjálfunaralgrím. Í ferli viðbótarþjálfunar fáum við ekki aðeins ný gögn, heldur einnig oft nýja eiginleika, sem við munum taka tillit til í öllum reikniritunum hér að neðan.

Línuleg módel

Segjum að við höfum logistic regression. Við búum til tapslíkan úr eftirfarandi þáttum:

  • LogTap á nýjum gögnum;
  • við reglufestum vægi nýrra eiginleika (við snertum ekki þá gömlu);
  • við lærum líka af gömlum gögnum til að varðveita gömul mynstur;
  • og kannski það mikilvægasta: við bætum við Harmonic Regularization, sem tryggir að lóðin breytist ekki mikið miðað við gamla líkanið samkvæmt norminu.

Þar sem hver tapþáttur hefur stuðla, getum við valið ákjósanlegustu gildin fyrir verkefni okkar með krossfullgildingu eða byggt á vörukröfum.

Rekstur vélanáms í Mail.ru Mail

Деревья

Höldum áfram að ákvörðunartré. Við höfum tekið saman eftirfarandi reiknirit fyrir viðbótarþjálfun á trjám:

  1. Framleiðslan rekur skóg með 100-300 trjám, sem er þjálfaður á gömlu gagnasetti.
  2. Í lokin fjarlægjum við M = 5 stykki og bætum við 2M = 10 nýjum, þjálfuðum á öllu gagnasettinu, en með mikilli þyngd fyrir nýju gögnin, sem náttúrulega tryggir stigvaxandi breytingu á líkaninu.

Ljóst er að með tímanum fjölgar trjám mjög mikið og þeim þarf að fækka reglulega til að standast tímasetningar. Til að gera þetta notum við nú alls staðar nálæga Knowledge Distillation (KD). Stuttlega um meginregluna um starfsemi þess.

  1. Við höfum núverandi "flókna" líkan. Við keyrum það á þjálfunargagnasettinu og fáum bekkjarlíkindadreifingu við úttakið.
  2. Næst þjálfum við nemendalíkanið (líkanið með færri tré í þessu tilfelli) til að endurtaka niðurstöður líkansins með því að nota flokkadreifingu sem markbreytu.
  3. Það er mikilvægt að hafa í huga hér að við notum ekki gagnasettamerkið á nokkurn hátt og því getum við notað handahófskennd gögn. Auðvitað notum við gagnasýni úr bardagastraumnum sem æfingasýni fyrir nemendalíkanið. Þannig gerir þjálfunarsettið okkur kleift að tryggja nákvæmni líkansins og straumsýnið tryggir svipaða frammistöðu á framleiðsludreifingunni, sem bætir upp hlutdrægni þjálfunarsettsins.

Rekstur vélanáms í Mail.ru Mail

Samsetning þessara tveggja aðferða (að bæta við trjám og fækka reglulega með því að nota Knowledge Distillation) tryggir innleiðingu nýrra mynsturs og fullkominnar samfellu.

Með hjálp KD framkvæmum við einnig mismunandi aðgerðir á módeleiginleikum, svo sem að fjarlægja eiginleika og vinna á eyður. Í okkar tilviki höfum við fjölda mikilvægra tölfræðieiginleika (eftir sendendum, textaþjöppum, vefslóðum osfrv.) sem eru geymdir í gagnagrunninum, sem hafa tilhneigingu til að mistakast. Líkanið er auðvitað ekki tilbúið fyrir slíka þróun atburða, þar sem bilunaraðstæður eiga sér ekki stað í þjálfunarsettinu. Í slíkum tilfellum sameinum við KD og aukningartækni: við þjálfun fyrir hluta gagnanna fjarlægjum við eða endurstillum nauðsynlega eiginleika og við tökum upprunalegu merkimiðana (úttak núverandi líkans) og nemendalíkanið lærir að endurtaka þessa dreifingu .

Rekstur vélanáms í Mail.ru Mail

Við tókum eftir því að eftir því sem alvarlegri líkanmeðferð á sér stað, því hærra hlutfall af þráðsýni sem krafist er.

Fjarlæging eiginleika, einfaldasta aðgerðin, krefst aðeins lítinn hluta flæðisins, þar sem aðeins nokkrir eiginleikar breytast og núverandi gerð var þjálfuð á sama setti - munurinn er lítill. Til að einfalda líkanið (að fækka trjám nokkrum sinnum) er þegar krafist 50 til 50. Og ef sleppt er mikilvægum tölfræðilegum eiginleikum sem munu hafa alvarleg áhrif á frammistöðu líkansins, þarf enn meira flæði til að jafna vinnu ný aðgerðaleysisþolin gerð á allar tegundir bréfa.

Rekstur vélanáms í Mail.ru Mail

FastText

Við skulum halda áfram í FastText. Ég minni á að framsetning (Embedding) orðs samanstendur af summu innfellingar orðsins sjálfs og allra bókstafa þess N-grömm, venjulega þrígrömm. Þar sem það getur verið ansi mikið af þríritum er Bucket Hashing notað, það er að breyta öllu plássinu í ákveðið fast hashmap. Fyrir vikið er þyngdarfylki fengin með stærð innra lagsins á fjölda orða + fötu.

Með viðbótarþjálfun birtast ný merki: orð og þrírit. Ekkert markvert gerist í hefðbundinni eftirfylgniþjálfun frá Facebook. Aðeins gömul lóð með kross-entropy eru endurþjálfuð á nýjum gögnum. Þannig eru nýir eiginleikar ekki notaðir; auðvitað hefur þessi aðferð alla ofangreinda ókosti sem tengjast ófyrirsjáanleika líkansins í framleiðslu. Þess vegna breyttum við FastText aðeins. Við bætum við öllum nýjum lóðum (orðum og þríritum), stækkum allt fylkið með kross-entropy og bætum við harmoniskri reglusetningu á hliðstæðan hátt við línulega líkanið, sem tryggir óverulega breytingu á gömlu lóðunum.

Rekstur vélanáms í Mail.ru Mail

CNN

Convolutional net eru aðeins flóknari. Ef síðustu lögin eru kláruð í CNN, þá er auðvitað hægt að beita harmoniskri reglusetningu og tryggja samfellu. En ef þörf er á viðbótarþjálfun á öllu netinu, þá er ekki lengur hægt að beita slíkri reglusetningu á öll lög. Hins vegar er möguleiki á að þjálfa viðbótarinnfellingar í gegnum Triplet Loss (upprunalega grein).

Þrefalt tap

Með því að nota verkefni gegn vefveiðum sem dæmi skulum við líta á Triplet Loss almennt. Við tökum lógóið okkar, sem og jákvæð og neikvæð dæmi um lógó annarra fyrirtækja. Við lágmarkum fjarlægðina á milli þess fyrsta og hámarkum fjarlægðina á milli þess síðara, við gerum þetta með litlu bili til að tryggja meiri þéttleika flokkanna.

Rekstur vélanáms í Mail.ru Mail

Ef við þjálfum netið frekar, þá breytist metrarýmið okkar algjörlega og það verður algjörlega ósamrýmanlegt því fyrra. Þetta er alvarlegt vandamál í vandamálum sem nota vektora. Til að komast hjá þessu vandamáli munum við blanda inn gömlum innfellingum á meðan á þjálfun stendur.

Við höfum bætt nýjum gögnum við þjálfunarsettið og erum að þjálfa aðra útgáfu líkansins frá grunni. Á öðru stigi þjálfum við netið okkar frekar (Finetuning): fyrst er síðasta lagið lokið og síðan er allt netið ófrosið. Í því ferli að semja þríbura, reiknum við aðeins hluta af innfellingum með því að nota þjálfaða líkanið, afganginn - með því að nota það gamla. Þannig tryggjum við samhæfni mælirýmis v1 og v2 í ferli viðbótarþjálfunar. Einstök útgáfa af harmoniskri reglusetningu.

Rekstur vélanáms í Mail.ru Mail

Allur arkitektúr

Ef við lítum á allt kerfið með því að nota ruslpóstsvörn sem dæmi, þá eru líkönin ekki einangruð, heldur hreiður inn í hvort annað. Við tökum myndir, texta og aðra eiginleika, með CNN og Fast Text fáum við innfellingar. Næst eru flokkarar settir ofan á innfellingarnar, sem gefa stig fyrir ýmsa flokka (tegund bréfa, ruslpóstur, tilvist lógós). Merkin og skiltin eru þegar farin að fara inn í skóginn af trjám til að endanleg ákvörðun verði tekin. Einstakir flokkarar í þessu kerfi gera það mögulegt að túlka betur niðurstöður kerfisins og nánar tiltekið endurþjálfa íhluti ef vandamál koma upp, frekar en að færa öll gögn inn í ákvörðunartré á hráu formi.

Rekstur vélanáms í Mail.ru Mail

Fyrir vikið tryggjum við samfellu á öllum stigum. Á neðsta stigi í CNN og Fast Text notum við harmonic regularization, fyrir flokkarana í miðjunni notum við einnig harmonic regularization og hraða kvörðun til að samræma líkindadreifinguna. Jæja, uppörvun trjáa er þjálfuð stigvaxandi eða með því að nota Knowledge Distillation.

Almennt séð er það yfirleitt sársauki að viðhalda slíku hreiðra vélanámskerfi, þar sem allir hlutir á neðra stigi leiða til uppfærslu á öllu kerfinu hér að ofan. En þar sem í uppsetningu okkar breytist hver íhlutur lítillega og er samhæfður þeim fyrri, er hægt að uppfæra allt kerfið stykki fyrir stykki án þess að þurfa að endurþjálfa alla uppbygginguna, sem gerir það kleift að styðja það án alvarlegra kostnaðar.

Dreifa

Við höfum rætt gagnasöfnun og viðbótarþjálfun á mismunandi gerðum líkana, þannig að við erum að halda áfram að dreifa þeim inn í framleiðsluumhverfið.

A/B próf

Eins og ég sagði áðan, í því ferli að safna gögnum, fáum við venjulega hlutdrægt sýni, sem það er ómögulegt að meta framleiðslugetu líkansins. Þess vegna verður að bera líkanið saman við fyrri útgáfu við uppsetningu til að skilja hvernig hlutirnir ganga í raun og veru, það er að gera A/B próf. Reyndar er ferlið við að rúlla út og greina töflur nokkuð venjubundið og auðvelt að gera það sjálfvirkt. Við birtum líkönin okkar smám saman til 5%, 30%, 50% og 100% notenda, á sama tíma og við söfnum öllum tiltækum mælingum um svör líkana og endurgjöf notenda. Ef um er að ræða alvarlegar útlínur, snúum við líkaninu sjálfkrafa til baka og í öðrum tilvikum, eftir að hafa safnað nægilega mörgum smellum notenda, ákveðum við að hækka hlutfallið. Fyrir vikið færum við nýja líkanið til 50% notenda algjörlega sjálfkrafa og útbreiðsla til allra áhorfenda verður samþykkt af einstaklingi, þó hægt sé að gera þetta skref sjálfvirkt.

Hins vegar býður A/B prófunarferlið upp á pláss fyrir hagræðingu. Staðreyndin er sú að sérhvert A/B próf er frekar langt (í okkar tilfelli tekur það frá 6 til 24 klukkustundir eftir því hversu mikið endurgjöfin er), sem gerir það frekar dýrt og með takmarkað fjármagn. Að auki þarf nægilega hátt hlutfall flæðis fyrir prófið til að flýta í raun og veru heildartíma A/B prófsins (að ráða tölfræðilega marktækt úrtak til að meta mælikvarða á litlu hlutfalli getur tekið mjög langan tíma), sem gerir fjöldi A/B rifa afar takmarkaður. Augljóslega þurfum við að prófa aðeins efnilegustu módelin, sem við fáum töluvert mikið af í viðbótarþjálfunarferlinu.

Til að leysa þetta vandamál þjálfuðum við sérstakan flokkara sem spáir fyrir um árangur A/B prófs. Til að gera þetta tökum við ákvarðanatökutölfræði, nákvæmni, endurköllun og aðrar mælingar á þjálfunarsettinu, á því sem frestað er og á sýnishorninu úr straumnum sem eiginleika. Við berum líka líkanið saman við það sem er í framleiðslu, með heuristics, og tökum tillit til flókins líkans. Með því að nota alla þessa eiginleika, metur flokkari sem er þjálfaður í prófunarsögu frambjóðendalíkön, í okkar tilviki eru þetta trjáskógar, og ákveður hvern hann á að nota í A/B prófinu.

Rekstur vélanáms í Mail.ru Mail

Við innleiðingu gerði þessi nálgun okkur kleift að fjölga árangursríkum A/B prófum nokkrum sinnum.

Prófanir og eftirlit

Prófanir og eftirlit skaða ekki heilsu okkar, einkennilega nóg, heldur þvert á móti bæta þær hana og losa okkur við óþarfa streitu. Prófun gerir þér kleift að koma í veg fyrir bilun og vöktun gerir þér kleift að greina hana í tíma til að draga úr áhrifum á notendur.

Það er mikilvægt að skilja hér að fyrr eða síðar mun kerfið þitt alltaf gera mistök - þetta er vegna þróunarferils hvers konar hugbúnaðar. Í upphafi kerfisþróunar er alltaf mikið um villur þar til allt er komið í lag og aðalstigi nýsköpunar er lokið. En með tímanum tekur óreiða sinn toll og villur birtast aftur - vegna niðurbrots á íhlutum í kring og breytinga á gögnum, sem ég talaði um í upphafi.

Hér vil ég taka fram að hvaða vélanámskerfi sem er ætti að skoða frá sjónarhóli hagnaðar þess allan lífsferil þess. Grafið hér að neðan sýnir dæmi um hvernig kerfið virkar til að ná sjaldgæfum tegund af ruslpósti (línan í línuritinu er nálægt núlli). Einn daginn varð hún brjáluð, vegna rangs geymdra eiginleika. Eins og heppnin hefði með það var ekkert eftirlit með óeðlilegri kveikingu; fyrir vikið byrjaði kerfið að vista bréf í miklu magni í „spam“ möppuna við ákvarðanatökumörkin. Þrátt fyrir að leiðrétta afleiðingarnar hefur kerfið þegar gert mistök svo oft að það borgar sig ekki jafnvel eftir fimm ár. Og þetta er algjör bilun frá sjónarhóli lífsferils líkansins.

Rekstur vélanáms í Mail.ru Mail

Þess vegna getur svo einfalt hlutur eins og eftirlit orðið lykilatriði í lífi líkans. Til viðbótar við staðlaða og augljósa mælikvarða lítum við á dreifingu líkanasvara og stiga, sem og dreifingu lykileiginleikagilda. Með því að nota KL frávik getum við borið saman núverandi dreifingu við þá sögulegu eða gildin í A/B prófinu við restina af straumnum, sem gerir okkur kleift að taka eftir frávikum í líkaninu og afturkalla breytingar tímanlega.

Í flestum tilfellum kynnum við fyrstu útgáfur okkar af kerfum með því að nota einfaldar heuristics eða líkön sem við notum sem eftirlit í framtíðinni. Til dæmis fylgjumst við með NER líkaninu í samanburði við venjulegar fyrir tilteknar netverslanir, og ef flokkunarumfjöllunin minnkar í samanburði við þær, þá skiljum við ástæðurnar. Önnur gagnleg notkun á heuristics!

Niðurstöður

Við skulum fara yfir lykilhugmyndir greinarinnar aftur.

  • Fibdeck. Við hugsum alltaf um notandann: hvernig hann mun lifa með mistökum okkar, hvernig hann mun geta tilkynnt þau. Ekki gleyma því að notendur eru ekki uppspretta hreinnar endurgjafar fyrir þjálfunarlíkön og það þarf að hreinsa það með hjálp ML-kerfa. Ef það er ekki hægt að safna merki frá notandanum, þá leitum við að öðrum endurgjöfum, til dæmis tengdum kerfum.
  • Viðbótarþjálfun. Aðalatriðið hér er samfella, þannig að við treystum á núverandi framleiðslulíkan. Við þjálfum nýjar gerðir þannig að þær séu ekki mikið frábrugðnar þeirri fyrri vegna harmoniku reglusetningar og svipaðra bragða.
  • Dreifa. Sjálfvirk dreifing byggð á mælingum dregur verulega úr tíma til að innleiða líkan. Eftirlit með tölfræði og dreifingu ákvarðanatöku, fjöldi falla frá notendum er skylda fyrir rólegan svefn og gefandi helgi.

Jæja, ég vona að þetta hjálpi þér að bæta ML kerfin þín hraðar, koma þeim á markað hraðar og gera þau áreiðanlegri og minna stressandi.

Heimild: www.habr.com

Bæta við athugasemd