З фізиків у Data Science (З двигунів науки в офісний планктон). Третя частина

З фізиків у Data Science (З двигунів науки в офісний планктон). Третя частина

Ця картинка, за авторством Артура Кузіна (n01z3), досить точно підсумовує зміст блог посту. Як наслідок, подальша розповідь має сприйматися скоріше як п'ятнична історія, аніж як щось вкрай корисне та технічне. Крім того, слід зазначити, що текст насичений англійськими словами. Якісь з них я не знаю, як правильно перекласти, а якісь перекладати просто не хочеться.

Перша частина.
Друга частина.

Про те, як проходив перехід з академічного середовища в середу індустріальну розкрито в перших двох серіях. У цій же розмова піде про те, що було далі.

Йшов січень 2017 року. На той момент я мав трохи більше року трудового стажу і працював я в Сан-Франциско в компанії TrueAccord як Sr. Data Scientist.

TrueAccord - це стартап, який займається збиранням боргів. Просто — колекторська агенція. Зазвичай колектори багато дзвонять. Ми ж посилали багато email'ів, а дзвонили мало. Кожен email вів на сайт компанії, де боржнику пропонувалося зробити знижку на борг, та ще й дозволити платити на виплат. Такий підхід приводив до кращої збирання, дозволяв масштабуватись і менше встрявати на судові позови.

Компанія була нормальна. Продукт зрозумілий. Керівництво осудне. Розташування вдале.

У середньому, в долині люди працюють на одному місці близько півтора року. Тобто будь-яка компанія, в якій ви працюєте, — це лише невелика сходинка. На цій сходинці ви піднімете трохи грошей, придбаєте нові знання, навички, зв'язки та рядки в резюме. Після цього йде перехід на наступний щабель.

У самому TrueAccord я займався тим, що прикручував рекомендаційні системи до email розсилок, а також пріорітизації телефонних дзвінків. Impact зрозумілий та через A/B тестування досить добре вимірювався у доларах. Так як до мого приходу машинного навчання до ладу не було, то й impact від моєї роботи був непоганий. Знову ж таки, покращувати нічого набагато простіше, ніж щось, що вже сильно оптимізовано.

Мені навіть base pay підняли після півроку роботи над цими системами із $150k до $163k. У спільноті Open Data Science (ODS) є мем про $163k. Ногами він росте саме звідси.

Все це було чудово, але нікуди не вело, чи вело, але не туди.

До TrueAccord, як до компанії, так і до хлопців, з якими я там працював, я належу з великою повагою. Я багато чому в них навчився, але довго працювати над рекомендаційними системами в колекторському агентстві не хотілося. З цієї сходинки треба було йти в якийсь бік. Якщо не вперед і вгору, то хоча б убік.

Що мені не подобається?

  1. З погляду машинного навчання завдання мене не порушували. Хотілося чогось модного, молодіжного, тобто Deep Learning, Computer Vision, чогось швидше близького до науки або хоча б до алхімії.
  2. Стартап, та ще й колекторське агентство, має проблеми з наймом висококваліфікованого персоналу. Як стартап, він не може багато платити. А як колекторська агенція він програє за статусністю. Грубо кажучи, якщо дівчина на побаченні спитає, де ти працюєш? Твоя відповідь: «У гугле» звучить на порядок краще, ніж у «колекторському агентстві». Мене злегка напружувало те, що у знайомих, які працюють у Google, Facebook, на відміну від мене, ім'я їхньої компанії відчиняло двері типу: тебе можуть запросити на конференцію або мітап, як спікера, або ж цікавіші люди пишуть на LinkedIn з пропозицією зустрінеться поспілкуватися за чаркою чаю. Я дуже люблю спілкуватися з незнайомими мені людьми наживо. Так що якщо ви мешкаєте в Сан-Франциско, не соромтеся писати - сходимо на каву, поговоримо.
  3. Крім мене в компанії працювало три Data Scientist'a. Я займався машинним навчанням, а вони займалися іншими Data Science завданнями, яких у будь-якому стартапі звідси і до завтра. Як результат, у машинному навчанні вони до ладу не розбиралися. А мені, щоб рости, треба з кимось спілкуватися, обговорювати статті та останні напрацювання, просити поради, зрештою.

Що було у наявності?

  1. Освіта фізика, а чи не computer science.
  2. Єдина мова програмування, яку я знав — Python. Було почуття, що і з C++ треба перейти на ти, але руки ніяк не доходили.
  3. Рік із копійками роботи в індустрії. Причому на роботі не займався ні Deep Learning, ні Computer Vision.
  4. Жодної статті щодо Deep Learning / Computer Vision в резюме.
  5. Було очищення Kaggle Master.

Чого хотілося?

  1. Позицію, на якій треба буде тренувати багато мереж, причому ближче до комп'ютерного зору.
  2. Краще, щоб це була велика компанія типу Google, Tesla, Facebook, Uber, LinkedIn і т.д. Хоча, в крайньому випадку, підійшов би і стартап.
  3. Потрібно, щоб у команді я не був найбільшим експертом з машинного навчання. Дуже потрібні були старші товариші, ментори та усіляке спілкування, яке мало прискорити процес навчання.
  4. Обчитавшись блог постів про те, як випускники без індустріального досвіду мають total compensation $300-500k на рік, хотілося піти у той же діапазон. Не те щоб мене з цього сильно бомбило, але раз кажуть що це поширене явище, а у мене при цьому менше, то це сигнал.

Завдання виглядало цілком вирішуваним, правда не в тому сенсі, що можна з ноги заходити в будь-яку компанію, а скоріше, що якщо брати змором, то все вийде. Тобто десятки-сотні спроб, і біль від кожної невдачі та кожного rejection, використати на те, щоб загострити фокус, покращити пам'ять та розтягнути добу до 36 годин.

Я підправив резюме, почав розсилати і ходити на інтерв'ю. Повз більшу частину я пролітав ще на стадії спілкування з HR. Багатьом був потрібний C++, а знати я його не знав і було стійке почуття, що на позиціях, на яких потрібно C++, мені буде не дуже цікаво.

Варто зазначити, що приблизно водночас відбувся фазовий перехід у типі змагань на Kaggle. До 2017 року було багато табличних даних і дуже рідко картиночні, а ось починаючи з 2017 року пішло багато завдань на комп'ютерний зір.

Життя потекло в режимі:

  1. Вдень робота.
  2. Коли tech screen/onsite береш time off.
  3. Вечорами та вихідними Kaggle + статті / книжки / блог пости

Кінець 2016 року відзначився тим, що я приєднався до спільноти Open Data Science (ODS)що дуже багато всього спростило. У співтоваристві вистачає хлопців із багатим індустріальним досвідом, що дозволило ставити багато дурних питань та отримувати багато розумних відповідей. Також там вистачає дуже сильних фахівців з машинного навчання всіх мастей, що несподівано дозволило мені через ODS закрити питання з регулярним глибоким спілкуванням про Data Science. До цих пір, у розрізі ML, ODS мені дає у рази більше, ніж я отримую на роботі.

Ну і, як водиться, в ODS вистачає фахівців зі змагань на Kaggle та інших майданчиках. У колективі вирішувати завдання веселіше і продуктивніше, тож з жартами, матом, мемами та іншими ботанічними розвагами ми почали рубати завдання одне за одним.

У березні 2017 — у команді із Сергієм Мушинським — третє місце за Dstl Satellite Imagery Feature Detection. Золота медаль на Kaggle + $20k на двох. На цьому завданні було прокачено роботу із супутниковими знімками + бінарна сегментація через UNet. Блог пост на хабрі на цю тему.

У тому ж березні я сходив на інтерв'ю NVidia в команду Self Driving. Сильно плив на питання про Object Detection. Знань не вистачало.

На успіх, в цей же час почалося змагання з Object Detection на aerial imagery від тих же DSTL. Сам бог велів вирішувати завдання і прокачуватися. Місяць вечорами та вихідними. Я набрався знань і фінішував другим. У цьому змаганні був цікавий нюанс у правилах, який призвів до того, що мене показували в Росії федеральними і не дуже каналами. Я потрапив на головну Lenta.ru, і в купу друкованих та інтернет видань. Mail Ru Group отримав позитивно PR за мій рахунок і свої гроші, а фундаментальна наука Росії збагатилася на 12000 фунтів. Як водиться, на цю тему було написано блог пост на хабр. За подробицями туди.

У цей же час зі мною зв'язався рекрутер Тесла і запропонував поспілкуватися на тему Computer Vision позиції. Я погодився. Лихо пройшов take home, два tech screen, onsite interview, дуже приємно поспілкувався з Andrei Karpathy, якого саме найняли в Теслу, як Director'а of AI. Наступна стадія – background check. Після цього Elon Musk мав особисто схвалити мою заявку. У Tesla жорстка Non Disclosure Agreement (NDA).
Backgound check я не пройшов. Рекрутер сказав, що я багато тріплюся online, порушуючи NDA. Єдине місце, де я щось говорив про інтерв'ю в Tesla - це ODS, так що поточна гіпотеза, що хтось зробив screenshot і написав HR в Tesla, і мене зняли з забігу від гріха подалі. Тоді було прикро. Зараз я тішуся, що не зрослося. Моя поточна позиція значно краща, хоча попрацювати з Андрієм було б дуже цікаво.

Відразу після цього я поринув у змагання з супутникових знімків на Kaggle від Planet Labs — Understanding the Amazon from Space. Завдання було просте і вкрай нудне, нікому вирішувати його не хотілося, але халявну золоту медальку чи призові хотілося всім. Тому командою Kaggle Master'ів із 7 осіб ми зійшлися на тому, що закидатимемо залізом. Натренували 480 мереж у режимі fit_predict і зробили з них триповерховий ансамбль. Фінішували сьомими. Блог пост з описом рішення від Артура Кузіна. До речі, Jeremy Howard, який широко відомий як автор Швидкий ШІ закінчив 23.

Після закінчення змагання через знайомого, який працював у AdRoll, на їхніх площах я організував Meetup. Там виступили представники Planet Labs про те, як виглядала організація змагання та розмітка даних з їхнього боку. Wendy Kwan, яка працює в Kaggle та займалася змаганням, розповіла про те, як бачила це вона. Я описав наше рішення, трюки, прийоми та технічні деталі. Дві третини аудиторії вирішувало це завдання, тому питання задавалися у справі і взагалі було круто. Jeremy Howard там також був. З'ясувалося, що завершив він на 23 місці, тому що не знав як стакати моделі і взагалі не знав про такий метод побудови ансамблів.

Мітапи в долині машинного навчання сильно відрізняються від мітапів в Москві. Як правило, мітапи в долині це дно. Але наш вийшов хороший. На жаль, товариш, який повинен був натиснути на кнопку і все записати, на кнопку не натиснув 🙁

Після цього мене запросили поспілкуватися на позицію Deep Learning Engineer у цей Planet Labs, причому відразу на onsite. Його я не пройшов. Формулювання відмови - недостатньо знань у Deep Learning.

Кожне змагання я оформляв як проект у LinkedIn. За завданням DSTL ми написали попередній друк і виклали на архів. Чи не стаття, але й то хліб. Всім іншим теж рекомендую роздмухати LinkedIn profile через змагання, статті, скіли та інше ололо. Позитивна кореляція тим часом, скільки ключових слів у вас у профілі в LinkedIn, і тим, як часто вам пишуть їсти.

Якщо взимку-навесні я сильно плив технічною частиною, то до серпня з'явилися і знання, і впевненість у собі.

Наприкінці липня на LinkedIn зі мною зв'язався хлопець, який працював як Data Science manager у Lyft та запросив випити кави, поспілкуватися за життя, за Lyft, за TrueAccord. Поспілкувались. Він запропонував поцікавитись до нього в команду на позицію Data Scientist. Я сказав, що варіант робітник, за умови, що це Computer Vision / Deep Learning з ранку до вечора. Він запевнив, що з його боку немає заперечень.

Я надіслав резюме, він закинув у внутрішній портал Lyft. Після цього мені зателефонував рекрутер, щоб розкрити резюме і дізнатися про мене більше. З перших слів повіяло, що для нього це формальність, тому що йому і по резюме очевидно, що "I am not a material for Lyft". Припускаю, що після цього моє резюме пішло в кошик для сміття.

Весь цей час, поки я інтерв'ювався, я обговорював свої невдачі та падіння в ODS і хлопці давали мені feedback і всіляко допомагали порадами, хоча, як водиться, дружнього тролінгу там теж вистачало.

Один з членів ODS запропонував звести мене з його приятелем, котрий якраз Director Of Engineering у Lyft. Сказано зроблено. Я приходжу на обід у Lyft, а там окрім цього приятеля ще Head of Data Science та один Product manager, який великий фанат Deep Learning. На обіді поспілкувалися за DL. А тому що я вже пів року тренував мережі 24/7, обчитувався кубометрами літератури, та ганяв завдання на Kaggle з більш-менш виразним результатами я міг говорити про Deep Learning годинами, причому, як у розрізі нових статей, так і в розрізі практичних прийомів .

Після обіду вони подивилися на мене і кажуть — одразу видно, що ти красень, не хочеш до нас поговорити? Причому додали, що мені зрозуміло, що take home + tech screen можна пропустити. Та що мене запросять одразу на onsite. Я погодився.

Після цього мені зателефонував той рекрутер, щоб призначити саме onsite interview, причому незадоволений. Бурмотів щось там про те, що не треба стрибати через голову.

Прийшов. Onsite interview. П'ять годин спілкування із різними людьми. Жодного питання не те, що про Deep Learning, про машинне навчання в принципі нічого не було. Якщо немає Deep Learning / Computer Vision, то мені це не цікаво. Отже, результати інтерв'ю були ортогональні.

Дзвонить цей рекрутер і каже – вітаю, ти пройшов на друге onsite інтерв'ю. Це все викликає подив. Який ще другий onsite? Я про таке й не чув жодного разу. Сходив. Там кілька годин, на цей раз все про традиційне машинне навчання. Це вже краще. Але все одно не цікаво.

Дзвонить рекрутер з привітанням, що я пройшов на третій onsite interview і присягається, що ось це буде останнє. Сходив і на нього - і ось тут був і DL, і CV.

Я мав багатомісячний prior, який казав мені, що офера не буде. Лікую не на технічних скилах, так на soft. Не на soft, то на тому, що позицію закриють або що компанія поки не наймає, а просто мацає ринок та рівень кандидатів.

Середина серпня. Я нормально випив пива. Думки похмурі. Минуло 8 місяців, а офера нема. Під пивом добре креативиться, особливо якщо цей креатив дивний. Мені на думку спадає ідея. Я їй поділяюся з Олексієм Швецем, який на той момент був postdoc'ом у MIT.

А що якщо взяти найближчу конференцію з DL/CV, подивитися змагання, які в рамках її проводяться, щось натренувати та зробити сабміт? Оскільки там усі експерти, які на цьому будують свої кар'єри, і займалися цим багато місяців чи навіть років, то шансів ми не маємо. Але це не страшно. Робимо за якимось осмисленим сабмітом, відлітаємо на ньому на останнє місце, а після цього пишемо pre-print або статтю про те, що ми не такі, як усі і розповідаємо про наше рішення. А статтю вже у LinkedIn та в резюме.

Тобто начебто і у справі і більше правильних ключових слів у резюме, що мало трохи збільшити шанси дістатися tech screen. Код та сабміти з мене, тексти з Олексія. Дичину, звичайно, але чому б і ні?

Сказано зроблено. Найближча конференція, яку ми загуглили, була MICCAI і там справді були змагання. Ми тицьнули в першу ж. Це було Gastrointestinal Image ANAlysis (GIANA). У задачі 3 підзавдання. До дедлайну лишалося 8 днів. З ранку я протверезів, але ідею не відкинув. Взяв свої пайплайни з Kaggle, перебив із супутникових даних на медичні. 'fit_predict'. Олексій підготував двосторінковий опис рішень щодо кожного завдання, і ми надіслали. Готово. Теоретично можна видихнути. Але з'ясувалося, що на цьому ж workshop є ще одне завдання (Robotic Instrument Segmentation) з трьома підзадачами і що у неї дедлайн зрушили на 4 дні, тобто ми можемо і туди зробити fit_predict і відіслати. Так ми зробили.

На відміну від Kaggle, у цих змагань була своя академічна специфіка:

  1. Жодного Leaderboard. Сабміт відправляються по email.
  2. Тебе знімають, якщо представник команди не приїхав подати рішення на конференцію на Workshop.
  3. Твоє місце на лідерборді стає відомим лише під час конференції. Такий собі академічний драматизм.

Конференція MICCAI 2017 проходила у Quebec City. Скажу чесно, до вересня — я почав вигоряти, тож ідея взяти тиждень відпустки на роботі і змотатися до Канади виглядала цікаво.

Приїхав на конференцію. Прийшов на цей Workshop, нікого не знаю, сиджу у кутку. Всі один одного знають, щось там спілкуються, сиплять розумними медичними словами. Перше змагання. Виступають учасники, розказують про свої рішення. Там хвацько накручено, з вогником. Моя черга. А мені якось навіть соромно. Вони завдання вирішували, працювали над нею, науку рухали, а ми чисто — fit_predict з минулих напрацювань, не для науки, а щоб резюме хитнути.

Вийшов, сказав, що я не експерт і в медицині з нулів, вибачився за те, що витрачаю їхній час, показав один слайд із рішенням. Спустився до зали.

Оголошують перше підзавдання - ми перші, причому з відривом.
Оголошують другу – треті.
Оголошують третю - знову перші і знову з відривом.
Загальне – перше.

З фізиків у Data Science (З двигунів науки в офісний планктон). Третя частина

Офіційний press release.

Дехто в аудиторії посміхається — дивиться на мене з повагою. В інших, тих, хто, мабуть, вважався експертом в області, вибив грант на це завдання і багато років цим займався, обличчя трохи перекосило.

Далі — друге завдання, яке три підзадачі і яке посунули на чотири дні.

Тут я теж перепросив, знову показав наш один слайд.
Та сама історія. Два перші, одне друге, загальне перше.

Я думаю, що, напевно, це перший в історії випадок, коли колекторська агенція виграла змагання з медичних зображень.

І ось я стою на сцені, мені вручають якийсь черговий диплом і мене бомбить. Як же, матір вашу, так? Ці академіки витрачають гроші платників податків, працюють над тим, щоб спростити та покращити якість роботи докторів, тобто, в теорії, і мою тривалість життя, а якесь тіло порвало весь цей академічний колектив на британський прапор за кілька вечорів.

Бонусом до цього — в інших командах у аспірантів, які цими завданнями багато місяців займалися, буде симпатичне для HR'ів резюме, тобто до tech screen вони дійдуть легко. А у мене перед очима стоїть свіжо отриманий email:

A Googler recently referred you for the Research Scientist, Google Brain (United States) role. We carefully reviewed your background and experience and decided not to proceed with your application at this time.

Загалом, прямо зі сцени, я й питаю аудиторію: «А ось хто знає, де я працюю?». Один із організаторів змагання знав — він загуглив, що таке TrueAccord. Решта – ні. Продовжую: «Працюю я в колекторському агентстві, і на роботі не займаюся ні Computer Vision, ні Deep Learning. А багато в чому це відбувається тому, що HR відділи Google Brain і Deepmind фільтрують моє резюме, не даючи шансів показати технічну підготовку. «

Вручили грамоту, перерву. Мене відкликає убік група академіків. З'ясувалося, що це Health група з Deepmind. Вони так перейнялися, що відразу захотіли зі мною поспілкуватися на тему вакансії Research Engineer у їхній команді. (Ми, таки, поспілкувалися. Це спілкування затяглося на 6 місяців, я пройшов take home, quiz, але зрізався на tech screen. 6 місяців від початку спілкування до tech screen - це довго. Довге очікування надає присмак непотрібності. Research Engineer в Deepmind в Лондоні, на тлі TrueAccord був сильний step up, але на тлі моєї поточної позиції це step down.

Висновок

Приблизно в той же час мені, таки, прийшов offer від Lyft, який я прийняв.
За підсумками цих двох змагань з MICCAI було опубліковано:

  1. Automatic instrument segmentation in robot-assisted surgery using deep learning
  2. Angiodysplasia detection and localization using глибокого сприятливого neural networks
  3. 2017 Робочий інструмент segmentation challenge

Тобто, незважаючи на всю дикість ідеї, додати інкрементальних статей та препринтів через змагання працює добре. А наступні роки ми ще й посилили.

З фізиків у Data Science (З двигунів науки в офісний планктон). Третя частина

Останні кілька років я працюю в Lyft, займаючись Computer Vision / Deep Learning для Self Driving машин. Тобто, що хотів, те й одержав. І завдання, і статусну компанію, і сильних колег, і всі інші плюшки.

За ці місяці я мав спілкування, як з великими компаніями Google, Facebook, Uber, LinkedIn, так і з морем стартапів різної величини.

Усі ці місяці було боляче. Всесвіт щодня каже тобі, щось не дуже приємне. Регулярний rejection, регулярно робиш помилки і все це присмачено стійким почуттям безвиході. Гарантій, що в тебе все вийде немає, а ось почуття, що ти дурень є. Дуже нагадує те, як я намагався працевлаштуватись одразу після універу.

Я думаю, що багато хто шукав роботу в долині і у них все проходило дуже простіше. Фокус, на мій погляд, ось у чому. Якщо шукати роботу в області, в якій ти розумієшся, маєш багатий досвід і твоє резюме свідчить про це — проблем немає. Взяв та знайшов. Вакансії море.

А от якщо шукати роботу в новій для себе області, тобто коли знань немає, зв'язків немає і резюме не говорить про те — в цей момент все стає вкрай цікаво.

Ось зараз мені регулярно пишуть рекрутери і пропонують зайнятися тим же, чим я займаюся зараз, але в іншій компанії. Роботу і справді час міняти. Але йти займатися тим, що я й так добре вмію немає сенсу. Навіщо?

А ось під те, чого мені хочеться, у мене знову немає ні знань, ні рядків у резюме. Подивимося, чим це все закінчиться. Якщо все зростеться напишу наступну частину. 🙂

Джерело: habr.com

Додати коментар або відгук