Yandex Loĝanta Programo, aŭ Kiel Sperta Backender Povas Fariĝi ML-Inĝeniero

Yandex Loĝanta Programo, aŭ Kiel Sperta Backender Povas Fariĝi ML-Inĝeniero

Yandex malfermas loĝejan programon en maŝinlernado por spertaj backend programistoj. Se vi skribis multon en C++/Python kaj volas apliki ĉi tiun scion al ML, tiam ni instruos vin kiel fari praktikajn esplorojn kaj provizi spertajn mentorojn. Vi laboros pri ŝlosilaj Yandex-servoj kaj akiros kapablojn en areoj kiel liniaj modeloj kaj gradienta akcelo, rekomendaj sistemoj, neŭralaj retoj por analizi bildojn, tekston kaj sonon. Vi ankaŭ lernos kiel ĝuste taksi viajn modelojn uzante metrikojn eksterrete kaj interrete.

La daŭro de la programo estas unu jaro, dum kiu partoprenantoj laboros en la maŝina inteligenteco kaj esplorfako de Yandex, kaj ankaŭ ĉeestos prelegojn kaj seminariojn. Partopreno estas pagita kaj implikas plentempan laboron: 40 horojn semajne, ekde la 1-a de julio ĉi-jare. Aplikoj nun estas malfermitaj kaj daŭros ĝis la 1-a de majo. 

Kaj nun pli detale - pri kian spektantaron ni atendas, kia estos la laborprocezo kaj, ĝenerale, kiel backend-specialisto povas ŝanĝi al kariero en ML.

Fokuso

Multaj kompanioj havas Loĝantajn Programojn, inkluzive de, ekzemple, Google kaj Facebook. Ili estas ĉefe celitaj al junioraj kaj meznivelaj specialistoj, kiuj provas fari paŝon al ML-esplorado. Nia programo estas por malsama publiko. Ni invitas programistojn, kiuj jam akiris sufiĉe da sperto kaj scias certe, ke en siaj kompetentecoj ili bezonas ŝanĝi al ML, por akiri praktikajn kapablojn - kaj ne la kapablojn de sciencisto - por solvi industriajn maŝinlernajn problemojn. Ĉi tio ne signifas, ke ni ne subtenas junajn esploristojn. Ni organizis apartan programon por ili - premio nomita laŭ Ilja Segalovich, kiu ankaŭ permesas vin labori en Yandex.

Kie laboros la loĝanto?

En la Departemento pri Maŝina Inteligenteco kaj Esploro, ni mem disvolvas projektajn ideojn. La ĉeffonto de inspiro estas scienca literaturo, artikoloj, kaj tendencoj en la esplorkomunumo. Mi kaj miaj kolegoj analizas tion, kion ni legas, rigardante kiel ni povas plibonigi aŭ pligrandigi la metodojn proponitajn de sciencistoj. Samtempe, ĉiu el ni konsideras sian areon de scio kaj interesoj, formulas la taskon surbaze de la areoj, kiujn li konsideras gravaj. La ideo por projekto kutime naskiĝas ĉe la intersekco de la rezultoj de ekstera esplorado kaj propraj kompetentecoj.

Ĉi tiu sistemo estas bona ĉar ĝi plejparte solvas la teknologiajn problemojn de Yandex-servoj eĉ antaŭ ol ili aperos. Kiam servo alfrontas problemon, ĝiaj reprezentantoj venas al ni, plej verŝajne por preni la teknologiojn, kiujn ni jam preparis, kio restas nur ĝuste apliki en la produkto. Se io ne estas preta, ni almenaŭ rapide memoros kie ni povas "komenci fosi" kaj en kiuj artikoloj serĉi solvon. Kiel ni scias, la scienca aliro estas stari sur la ŝultroj de gigantoj.

Kion fari

Ĉe Yandex - kaj eĉ specife en nia administrado - ĉiuj rilataj areoj de ML estas disvolvitaj. Nia celo estas plibonigi la kvaliton de plej diversaj produktoj, kaj ĉi tio servas kiel instigo por provi ĉion novan. Krome, novaj servoj aperas regule. Do la prelegprogramo enhavas ĉiujn ŝlosilajn (bone pruvitajn) areojn de maŝinlernado en industria evoluo. Kiam mi kompilis mian parton de la kurso, mi uzis mian instruan sperton ĉe la Lernejo de Datuma Analizo, same kiel la materialojn kaj laboron de aliaj SHAD-instruistoj. Mi scias, ke miaj kolegoj faris same.

En la unuaj monatoj, trejnado laŭ la kursprogramo konsistigos proksimume 30% de via labortempo, tiam ĉirkaŭ 10%. Tamen, estas grave kompreni, ke labori kun la ML-modeloj mem daŭros proksimume kvar fojojn malpli ol ĉiuj rilataj procezoj. Ĉi tiuj inkluzivas prepari la backend, ricevi datumojn, verki dukton por antaŭprilabori ĝin, optimumigi kodon, adapti al specifa aparataro, ktp. ML-inĝeniero estas, se vi ŝatas, plenstaka programisto (nur kun pli granda emfazo pri maŝinlernado) , kapabla solvi problemon de komenco ĝis fino. Eĉ kun preta modelo, vi verŝajne devos fari kelkajn pliajn agojn: paraleligi ĝian ekzekuton tra pluraj maŝinoj, prepari efektivigon en formo de tenilo, biblioteko aŭ komponantoj de la servo mem.

Studenta elekto
Se vi havis la impreson, ke estas pli bone fariĝi ML-inĝeniero unue laborante kiel backend-programisto, tio ne estas vera. Enskribiĝi en la sama ShAD sen vera sperto pri evoluigado de servoj, lernado kaj ege postulata sur la merkato estas bonega elekto. Multaj Yandex-specialistoj finiĝis en siaj nunaj pozicioj tiel. Se iu kompanio pretas oferti al vi laboron en la kampo de ML tuj post diplomiĝo, vi verŝajne ankaŭ akceptu la oferton. Provu eniri bonan teamon kun sperta mentoro kaj pretiĝu lerni multon.

Kio kutime malhelpas vin fari ML?

Se subtenanto aspiras fariĝi ML-inĝeniero, li povas elekti el du disvolvaj areoj - sen konsideri la loĝejan programon.

Unue, studu kiel parto de iu eduka kurso. Lecionoj Coursera proksimigos vin al kompreno de la bazaj teknikoj, sed por mergi vin en la profesio en sufiĉa mezuro, vi devas dediĉi multe pli da tempo al ĝi. Ekzemple, diplomiĝinte ĉe ShAD. Tra la jaroj, ShAD havis malsaman nombron da kursoj rekte pri maŝinlernado - averaĝe, proksimume ok. Ĉiu el ili estas vere grava kaj utila, inkluzive en la opinio de diplomiĝintoj. 

Due, vi povas partopreni en batalprojektoj, kie vi devas efektivigi unu aŭ alian ML-algoritmon. Tamen, ekzistas tre malmultaj tiaj projektoj sur la IT-disvolva merkato: maŝinlernado ne estas uzata en la plej multaj taskoj. Eĉ en bankoj, kiuj aktive esploras ML-rilatajn ŝancojn, nur kelkaj okupiĝas pri datuma analizo. Se vi ne povis aliĝi al unu el ĉi tiuj teamoj, via sola eblo estas aŭ komenci vian propran projekton (kie, plej verŝajne, vi fiksos viajn proprajn limdatojn, kaj ĉi tio malmulte rilatas al batalproduktaj taskoj), aŭ komenci konkuri. Kaggle.

Efektive, teamu kun aliaj komunumanoj kaj provu vin en konkursoj relative facila - precipe se vi subtenas viajn kapablojn per trejnado kaj la menciitaj kursoj pri Coursera. Ĉiu konkurso havas limdaton - ĝi servos kiel instigo por vi kaj preparos vin por simila sistemo en IT-kompanioj. Ĉi tio estas bona maniero - kiu, tamen, estas ankaŭ iomete divorcita de realaj procezoj. Ĉe Kaggle oni donas al vi antaŭprilaboritajn, kvankam ne ĉiam perfektajn, datumojn; ne ofertu pensi pri la kontribuo al la produkto; kaj plej grave, ili ne postulas solvojn taŭgajn por produktado. Viaj algoritmoj verŝajne funkcios kaj estos tre precizaj, sed viaj modeloj kaj kodo estos kiel Frankenstein kunkudrita de malsamaj partoj - en produktadprojekto, la tuta strukturo funkcios tro malrapide, estos malfacile ĝisdatigi kaj vastigi (ekzemple, lingvo kaj voĉalgoritmoj ĉiam parte reverkiĝos dum la lingvo disvolviĝas). Firmaoj interesiĝas pri tio, ke la listigita laboro povas esti farita ne nur de vi mem (estas klare, ke vi, kiel aŭtoro de la solvo, povas fari tion), sed ankaŭ de iu ajn el viaj kolegoj. La diferenco inter sporta kaj industria programado estas diskutita multe, kaj Kaggle edukas ĝuste "atletojn" - eĉ se ĝi faras tion tre bone, permesante al ili akiri iom da sperto.

Mi priskribis du eblajn evoluliniojn - trejnadon per edukaj programoj kaj trejnado "en batalo", ekzemple ĉe Kaggle. La loĝeja programo estas kombinaĵo de ĉi tiuj du metodoj. Prelegoj kaj seminarioj ĉe la nivelo de ŜAD, same kiel vere batalemaj projektoj, atendas vin.

fonto: www.habr.com

Aldoni komenton