Yandex常駐プログラム、または経験豊富なバックエンドがMLエンジニアになる方法





Yandexは、経験豊富なバックエンド開発者向けに常駐の機械学習プログラムを開きます。 C ++ / Pythonで多くのことを書いており、この知識をMLに適用したい場合は、実践的な研究を行い、経験豊富なキュレーターを選択する方法をお教えします。 主要なYandexサービスに取り組み、線形モデルや勾配ブースティング、推奨システム、画像、テキスト、音声を分析するためのニューラルネットワークなどの分野でスキルを習得します。 また、オフラインおよびオンラインのメトリックを使用してモデルを適切に評価する方法も学習します。



プログラムの期間は1年で、その間、参加者は機械知能学部およびYandex研究部門で働き、講義やセミナーに参加します。 参加は支払われ、完全雇用を想定しています。今年の7月1日から週40時間です。 アプリケーションは既に開いており、5月1日まで続きます。



そして今、より詳細に-私たちが待っている聴衆の種類、ワークフローとは何か、そして一般的に、バックエンドのスペシャリストがどのようにMLのキャリアに切り替えるかについて。



指向性



多くの企業には、たとえばGoogleやFacebookなどのレジデンシープログラムがあります。 これらは主に、ML研究に向けて歩み出そうとしている中級および中級の専門家を対象としています。 私たちのプログラムは、異なる視聴者向けです。 すでに十分な経験を積んでおり、機械学習の産業上の問題を解決するために、科学者のスキルではなくMLに移行し、実践的なスキルを習得する必要があることを知っているバックエンド開発者を招待します。 これは、若い研究者を支援しないという意味ではありません。 彼らのために、私たちは別のプログラムを組織しました-イリヤ・セガロビッチ 、それはあなたがYandexで働くことも可能にします。



居住者が働かなければならない場所



私たちは、機械の知能と研究の管理において、プロジェクトのアイデアを開発します。 インスピレーションの主な情報源は、科学文献、記事、および研究コミュニティの動向です。 私の同僚と私は、私たちが読んだものを分析し、科学者によって提案された方法をどのように改善または拡張できるかを調べます。 同時に、私たちはそれぞれ、知識と興味のある領域を考慮に入れ、重要だと考える領域に基づいて問題を定式化します。 外部研究の結果と彼ら自身の能力の接点で、プロジェクトのアイデアは通常生まれています。



このようなシステムは、Yandexサービスの技術的な問題が発生する前に解決するという点で優れています。 サービスの前に問題が発生した場合、その代表者が当社に来て、当社で既に準備されている技術を採用する可能性が高く、製品にのみ適用できます。 準備ができていない場合は、解決策を探すためにどの記事で「掘り始める」ことができるかを少なくともすぐに思い出します。 ご存知のように、科学的アプローチは巨人の肩の上に立つことです。



どうする



Yandexでは、特に経営陣でさえ、現在のMLの方向性はすべて発展しています。 私たちの仕事は、多種多様な製品の品質を改善することであり、これは新しいものすべてをテストする動機となります。 さらに、新しいサービスが定期的に表示されます。 そのため、講義プログラムには、産業開発における機械学習の重要な(確立された)分野がすべてあります。 コースの私の部分を作成する際に、私は他のSHAD教師の教材と開発だけでなく、データ分析学部での教育経験も活用しました。 私は同僚が同じことをしたことを知っています。



最初の数か月のコースプログラムのトレーニングは、勤務時間の約30%、その後約10%になります。 ただし、MLモデル自体の操作は、関連するすべてのプロセスの約4分の1しかかかりません。 これには、バックエンドの準備、データの受信、前処理のためのパイプラインの作成、コードの最適化、特定のハードウェアへの適応などが含まれます。MLエンジニアは、フルスタック開発者(機械学習に大きな偏りがある場合のみ)最初から最後まで問題を解決します。 既製のモデルであっても、複数のマシンで実行を並列化する、ペン、ライブラリ、またはサービス自体のコンポーネントの形で実装を準備するなど、多くのアクションを実行する必要があります。



学生の選択

最初にバックエンド開発者として働くことによってMLエンジニアに行く方が良いという印象がある場合、これはそうではありません。 サービス開発の実際の経験がなくても同じSHADに参入し、市場で学び、非常に人気があるようにすることは、優れた選択肢です。 Yandexの多くの専門家は、このように現在の立場にいることに気付きました。 卒業後すぐにMLの分野で仕事を提供する企業があれば、その提案を受け入れる価値があるでしょう。 経験豊富なメンターと一緒に優れたチームに参加して、多くのことを学ぶ準備をしてください。


通常MLを妨げるもの



バックレンダーがMLエンジニアになりたい場合、常駐プログラムを考慮せずに、開発の2つの方向から選択できます。



まず、教育コースの一環として勉強すること。 Coursera のレッスンは、基本的なテクニックの理解に近づきますが、職業に十分に没頭するには、より多くの時間を費やす必要があります。 たとえば、SHADを終了します。 異なる年に、ShADの機械学習には直接、異なる数のコースがありました。平均して、約8です。 それらのそれぞれは、卒業生によるとを含め、本当に重要で便利です。



次に、1つまたは別のMLアルゴリズムを実装する必要がある戦闘プロジェクトに参加できます。 ただし、IT開発市場にはそのようなプロジェクトはほとんどありません。ほとんどのタスクでは機械学習は使用されません。 ML関連の機会を積極的に模索している銀行でも、データ分析を行う銀行はほとんどありません。 これらのチームのいずれかに参加できない場合は、独自のプロジェクトを開始する必要があります(ほとんどの場合、自分で期限を設定しますが、これは戦闘生産タスクとはほとんど関係ありません)、またはKaggleでの競合を開始します。



実際、コミュニティの他のメンバーとチームを組み、競技会に参加することは比較的簡単です -特にCourseraに記載されているトレーニングやコースでスキルを強化する場合。 各コンペティションには期限があります-それはあなたにとってインセンティブとなり、IT企業で同様のシステムを準備します。 これは良い方法ですが、実際のプロセスとは少し異なります。 Kaggleでは、常に完全なデータではありませんが、前処理が行われます。 製品への貢献について考えようとしないでください。 そして最も重要なことは、生産に適したソリューションを必要としないことです。 あなたのアルゴリズムはおそらく実行可能で高い精度を持っていることが証明されますが、モデルとコードはフランケンシュタインのさまざまな部分から縫い付けられたように見えます-戦闘プロジェクトでは、この設計全体の動作が遅すぎ、更新と拡張が困難です(たとえば、言語と音声のアルゴリズムは常に言語の開発と部分的に対応しています)。 企業は、上記の作業を実行できるだけでなく(ソリューションの作成者としてこれを実行できることは明らかです)、同僚も関心を持っています。 スポーツプログラミングとインダストリアルプログラミングの違いについては多くのことが言われていますが、Kaggleは正確に「アスリート」を教育しています。



2つの可能な開発ラインについて説明しました。教育プログラムによるトレーニングと、たとえばKaggleでの「戦闘」トレーニングです。 常駐プログラムは、これら2つの方法の組み合わせです。 SHADレベルの講義とセミナー、そして真の戦闘プロジェクトがあなたを待っています。



All Articles