برنامه Yandex Resident یا چگونه یک Backender با تجربه می تواند یک مهندس ML شود

برنامه Yandex Resident یا چگونه یک Backender با تجربه می تواند یک مهندس ML شود

Yandex در حال باز کردن یک برنامه اقامت در یادگیری ماشین برای توسعه دهندگان باتجربه است. اگر در زبان C++/Python زیاد نوشته‌اید و می‌خواهید این دانش را در ML به کار ببرید، ما به شما آموزش می‌دهیم که چگونه تحقیقات عملی انجام دهید و مربیان مجربی را ارائه دهید. شما روی سرویس های کلیدی Yandex کار خواهید کرد و در زمینه هایی مانند مدل های خطی و تقویت گرادیان، سیستم های توصیه، شبکه های عصبی برای تجزیه و تحلیل تصاویر، متن و صدا مهارت کسب خواهید کرد. همچنین یاد خواهید گرفت که چگونه مدل های خود را با استفاده از معیارهای آفلاین و آنلاین به درستی ارزیابی کنید.

مدت زمان برنامه یک سال است که در طی آن شرکت کنندگان در بخش هوش ماشینی و تحقیقات Yandex کار می کنند و همچنین در سخنرانی ها و سمینارها شرکت خواهند کرد. مشارکت پرداختی است و شامل کار تمام وقت: 40 ساعت در هفته، از اول ژوئیه سال جاری می باشد. اکنون برنامه ها باز هستند و تا اول اردیبهشت ادامه خواهد داشت. 

و اکنون با جزئیات بیشتر - در مورد اینکه منتظر چه نوع مخاطبی هستیم، روند کار چگونه خواهد بود و به طور کلی، چگونه یک متخصص پشتیبان می تواند به حرفه ای در ML تغییر مکان دهد.

تمرکز

بسیاری از شرکت ها دارای برنامه های اقامت هستند، از جمله، به عنوان مثال، گوگل و فیس بوک. آنها عمدتاً متخصصان سطح پایین و میانی را هدف قرار می دهند که در تلاش هستند گامی به سمت تحقیقات ML بردارند. برنامه ما برای مخاطبان متفاوت است. ما از توسعه‌دهندگانی دعوت می‌کنیم که قبلاً تجربه کافی کسب کرده‌اند و مطمئناً می‌دانند که در شایستگی‌های خود باید به سمت ML حرکت کنند تا مهارت‌های عملی - و نه مهارت‌های یک دانشمند - را در حل مشکلات یادگیری ماشین صنعتی کسب کنند. این بدان معنا نیست که ما از محققان جوان حمایت نمی کنیم. ما یک برنامه جداگانه برای آنها ترتیب داده ایم - حق بیمه به نام ایلیا سگالوویچ، که همچنین به شما امکان می دهد در Yandex کار کنید.

ساکن کجا کار خواهد کرد؟

در بخش هوش ماشینی و تحقیقات، ما خودمان ایده های پروژه را توسعه می دهیم. منبع اصلی الهام، ادبیات علمی، مقالات و گرایش‌ها در جامعه پژوهشی است. من و همکارانم آنچه را که می خوانیم تجزیه و تحلیل می کنیم و به این می اندیشیم که چگونه می توانیم روش های پیشنهاد شده توسط دانشمندان را بهبود بخشیم یا گسترش دهیم. در عین حال، هر یک از ما حوزه دانش و علایق خود را در نظر می گیریم، تکلیف را بر اساس حوزه هایی که مهم می داند، تدوین می کنیم. ایده یک پروژه معمولاً در تلاقی نتایج تحقیقات خارجی و شایستگی‌های خود فرد متولد می‌شود.

این سیستم خوب است زیرا تا حد زیادی مشکلات فناوری خدمات Yandex را حتی قبل از ظهور آنها حل می کند. وقتی سرویسی با مشکلی مواجه می‌شود، نمایندگان آن به ما مراجعه می‌کنند، به احتمال زیاد فناوری‌هایی را که از قبل آماده کرده‌ایم استفاده می‌کنند، و تنها چیزی که باقی می‌ماند این است که به درستی در محصول اعمال شود. اگر چیزی آماده نیست، حداقل به سرعت به یاد می آوریم که از کجا می توانیم "کاوش را شروع کنیم" و در کدام مقاله به دنبال راه حل باشیم. همانطور که می دانیم رویکرد علمی این است که روی شانه های غول ها بایستیم.

چه باید کرد

در Yandex - و حتی به طور خاص در مدیریت ما - تمام حوزه های مرتبط ML در حال توسعه هستند. هدف ما بهبود کیفیت طیف گسترده ای از محصولات است و این به عنوان انگیزه ای برای آزمایش همه چیز جدید عمل می کند. علاوه بر این، خدمات جدید به طور منظم ظاهر می شوند. بنابراین برنامه سخنرانی شامل تمام زمینه های کلیدی (به خوبی اثبات شده) یادگیری ماشین در توسعه صنعتی است. هنگام تدوین بخشی از دوره، از تجربه تدریس خود در دانشکده تجزیه و تحلیل داده ها و همچنین از مطالب و کارهای سایر معلمان SHAD استفاده کردم. می دانم که همکارانم هم همین کار را کردند.

در ماه های اول، آموزش طبق برنامه دوره تقریباً 30٪ از زمان کار شما و سپس حدود 10٪ را تشکیل می دهد. با این حال، درک این نکته مهم است که کار با خود مدل‌های ML تقریباً چهار برابر کمتر از تمام فرآیندهای مرتبط طول می‌کشد. اینها شامل آماده سازی backend، دریافت داده، نوشتن خط لوله برای پیش پردازش آن، بهینه سازی کد، تطبیق با سخت افزار خاص، و غیره است. مهندس ML، اگر بخواهید، یک توسعه دهنده تمام پشته است (فقط با تاکید بیشتر بر یادگیری ماشین) ، قادر به حل یک مشکل از ابتدا تا انتها است. حتی با یک مدل آماده، احتمالاً باید تعدادی اقدامات بیشتر انجام دهید: اجرای آن را در چندین ماشین موازی کنید، پیاده‌سازی را در قالب یک دسته، یک کتابخانه یا اجزای خود سرویس آماده کنید.

انتخاب دانشجو
اگر این تصور را داشتید که بهتر است ابتدا با کار به عنوان یک توسعه دهنده باطن، مهندس ML شوید، این درست نیست. ثبت نام در همان ShAD بدون تجربه واقعی در توسعه خدمات، یادگیری و تقاضای بسیار در بازار یک گزینه عالی است. بسیاری از متخصصان Yandex به این ترتیب در موقعیت های فعلی خود قرار گرفتند. اگر هر شرکتی آماده است بلافاصله پس از فارغ التحصیلی به شما شغلی در زمینه ML ارائه دهد، احتمالاً باید این پیشنهاد را نیز بپذیرید. سعی کنید با یک مربی با تجربه وارد یک تیم خوب شوید و برای یادگیری چیزهای زیادی آماده شوید.

چه چیزی معمولاً شما را از انجام ML باز می دارد؟

اگر یک پشتیبان بخواهد مهندس ML شود، می تواند از بین دو حوزه توسعه انتخاب کند - بدون در نظر گرفتن برنامه اقامت.

ابتدا به عنوان بخشی از دوره آموزشی مطالعه کنید. درسها Coursera شما را به درک تکنیک های اساسی نزدیک تر می کند، اما برای غوطه ور شدن در این حرفه تا حد کافی، باید زمان بسیار بیشتری را به آن اختصاص دهید. مثلاً از ShAD فارغ التحصیل شوید. در طول سال‌ها، ShAD تعداد دوره‌های متفاوتی را مستقیماً در مورد یادگیری ماشین داشت - به طور متوسط، حدود هشت. هر یک از آنها واقعا مهم و مفید هستند، از جمله از نظر فارغ التحصیلان. 

در مرحله دوم، می توانید در پروژه های جنگی شرکت کنید که در آن نیاز به پیاده سازی یک یا آن الگوریتم ML دارید. با این حال، چنین پروژه‌هایی در بازار توسعه فناوری اطلاعات بسیار اندک هستند: یادگیری ماشینی در اکثر وظایف استفاده نمی‌شود. حتی در بانک‌هایی که فعالانه فرصت‌های مرتبط با ML را بررسی می‌کنند، تنها تعداد کمی از آنها در تجزیه و تحلیل داده‌ها مشغول هستند. اگر نتوانستید به یکی از این تیم ها بپیوندید، تنها گزینه شما این است که یا پروژه خود را شروع کنید (که به احتمال زیاد، ضرب الاجل های خود را تعیین می کنید، و این ارتباط چندانی با وظایف تولید رزمی ندارد)، یا شروع به رقابت کنید. کاگل.

در واقع، با دیگر اعضای جامعه تیم شوید و خودتان را در مسابقات امتحان کنید نسبتا آسان - به خصوص اگر از مهارت های خود با آموزش و دوره های ذکر شده در Coursera پشتیبانی کنید. هر مسابقه یک مهلت دارد - به عنوان انگیزه ای برای شما عمل می کند و شما را برای یک سیستم مشابه در شرکت های فناوری اطلاعات آماده می کند. این یک راه خوب است - که با این حال، کمی از فرآیندهای واقعی نیز جدا است. در Kaggle داده های از پیش پردازش شده، البته نه همیشه کامل، به شما داده می شود. پیشنهاد نکنید که در مورد کمک به محصول فکر کنید. و مهمتر از همه، آنها به راه حل های مناسب برای تولید نیاز ندارند. الگوریتم‌های شما احتمالاً کار می‌کنند و بسیار دقیق هستند، اما مدل‌ها و کد شما مانند فرانکشتاین خواهد بود که از قسمت‌های مختلف به هم دوخته شده‌اند - در یک پروژه تولید، کل ساختار خیلی کند کار می‌کند، به‌روزرسانی و گسترش آن دشوار خواهد بود (به عنوان مثال، الگوریتم های زبان و صدا همیشه با توسعه زبان تا حدی بازنویسی می شوند). شرکت ها به این واقعیت علاقه مند هستند که کارهای ذکر شده نه تنها توسط خودتان (مشخص است که شما به عنوان نویسنده راه حل می توانید این کار را انجام دهید) بلکه توسط هر یک از همکارانتان نیز قابل انجام باشد. تفاوت بین برنامه ریزی ورزشی و صنعتی مورد بحث قرار گرفته است многоو Kaggle دقیقاً "ورزشکاران" را آموزش می دهد - حتی اگر این کار را به خوبی انجام دهد و به آنها اجازه می دهد تا کمی تجربه کسب کنند.

من دو خط احتمالی توسعه را شرح دادم - آموزش از طریق برنامه های آموزشی و آموزش "در مبارزه"، به عنوان مثال در Kaggle. برنامه اقامت ترکیبی از این دو روش است. سخنرانی ها و سمینارها در سطح ShAD و همچنین پروژه های واقعاً جنگی در انتظار شما هستند.

منبع: www.habr.com

اضافه کردن نظر