機械学習エンジニアが意識している副業でも活かせる上流工程での経験値とは

株式会社メルカリ 機械学習エンジニア
荒瀬晃介
東京大学修士課程に所属しながら株式会社メルカリの機械学習チームでインターンを開始。新卒入社後は画像検索チームの TechLead などをつとめ、2020年4月から US 版メルカリの開発チームに異動。
Twitter:https://twitter.com/KosukeArase

「副業先で機械学習案件の提案でまず考えるのは、いかに機械学習を使わずに済むか。」そう語るのは、株式会社メルカリで機械学習エンジニアをされている荒瀬さん (@KosukeArase) 。本業で優秀な機械学習のチームにいながら、なぜ副業をしているのか。副業で意識していることや案件内容について伺いました。

Offers」は、時代の変化や環境にあわせてスキルを磨きたい、そんな人にぴったりのサービスです。「副業・複業」で、本業では経験できない、新しい環境/開発スタイルを経験しよう!

→「Offers」をもっと詳しくみる! かんたん60秒で副業を始めてみる

トップクラスのエンジニア組織にいながら副業をする理由

初めまして、荒瀬 (@KosukeArase) と申します。

株式会社メルカリにて、US Engineering チーム (US版メルカリの開発チーム) の機械学習エンジニアとして働いています。メルカリはエンジニアリング組織の開発に強く力を入れており、エンジニアにとっては非常に働きやすい環境となっております。また、技術レベルも高いため、自分が成長できる環境であるとも感じています。

そのような環境にいながらも副業に取り組んでいる理由としては、メルカリがかなり大きな会社になっているということが挙げられます。

メルカリでは常に大きなプロジェクトが動いており、それぞれのメンバーは業種におけるスペシャリストとして働いています。より広い技術領域やエンジニアリングに限らないビジネス的な仕事にも触れたいことと、0からのプロダクト開発を経験したいという気持ちを持っていたため、友人が起業した社員数が10人に満たない小さな会社で副業をすることに決めました。

機械学習エンジニアにはなぜ差別化が必要なのか

モデリングの知識だけだと陳腐化の可能性

元々修士時代にインターンを始めた理由は、アカデミアとインダストリーにギャップがあると感じていたためです。特に 2017 年当時では、AI をプロダクトに落とし込み顧客に価値を提供できている会社は GAFA をはじめとする非常に少ない大手企業に限られており、なぜ AI がこれだけ盛り上がっているのにこのような状況になっているのだろう、という疑問を持っていました。

インターンを始めて、そのギャップの原因はすぐに明らかになりました。機械学習モデルがあったとしても、それをサービスに落とし込むために必要なエンジニアリングに大きな工数が必要であるということです。

以下は機械学習システムの構成要素を表した有名な図なのですが、これから分かるように実際に機械学習をサービスに落とし込むために必要な要素のうち、モデリングが占める割合は非常に小さいことがわかります。

▲機械学習システムの構成要素 (出典)

また、モデリングはコモディティ化が進んでおり、さらには AutoML などでどんどん容易に作成できるようになっています。そこで、私は自身の生存戦略として、モデリングに特化するのではなく周辺分野のエンジニアリングを含め End-to-End で開発を担えるようにし、差別化を図りました。

サービスに落とし込むために必要なエンジニアリング知識

技術選定やアーキテクチャの設計のためには、モデリング、アルゴリズムの知識はもちろんですが、API として提供するためのアプリケーションレイヤーの知識やそれを支える Kubernetes などのインフラレイヤーの知識、さらには機械学習システムを運用するにあたって特有の知見など、幅広い技術領域に明るいことが求められます。

これらの機械学習サービス開発に必要な作業とそのサイクルは総称して MLOps とも呼ばれています。また、近年ではそれらを統一的に管理するために Kubeflow などの ML Platform も開発されており、MLOps や ML Platform に関する案件も多いです。

業界理解と提案力

特に受託の場合によくありますが、クライアントによっては、具体的な要件が固まる前のざっくりとした課題感の段階で相談をいただいたり、場合によってはこちらから営業に向かい、提案を行ったりします。

エンジニアリング力のみならず、クライアントの業界やサービスを深く理解しソリューションを提案するというコンサルティング的な能力も必要となります。

副業案件の進め方の内容

受託案件の流れ

副業先は、「人と自然が、100年先も共生できる社会へ」というビジョンを掲げている株式会社イノカという会社で、AI、IoT を活用し生態系を水槽内で再現する「環境移送技術」を軸に事業を展開しております。

一方で、まだ外部資本を入れていない小さな会社であるため、本業である環境移送技術の開発を活かして機械学習サービスの受託開発も行っております。そこでは、クライアントのビジネス要件や既存のシステムなどをヒアリングし、それを踏まえてシステムに落とし込む必要があります。

副業先での受託案件は、大まかには以下のように進みます。

  • 1.コンサルティング:クライアントの業界やサービスを研究し、ビジネス要件を踏まえソリューションの提案を行う
  • 2.PoC:データ分析やモデルの作成、評価を行い、サービスとして価値を提供できる精度のモデルが作成可能か判断する
  • 3.開発:アーキテクチャの設計とシステムの開発を行い、作成したモデルを API として利用可能な形にする。また、必要に応じてモデルの継続的な更新の仕組みも作成する

担当工程と稼働イメージ

副業先では、これまでの経験を生かしてプロジェクトのリーディングに徹しており、上流工程を一貫して担当しています。具体的には、上記の工程のうち、以下のような仕事をしています。

  • コンサルティング
  • アルゴリズム選定
  • アーキテクチャ設計
  • 納品物のクオリティチェック

これらの上流工程での経験値は環境移送技術の開発でも役立っています。それらの開発や採用などにも深く関わっているため、受託案件以外の仕事も多いですが、合計の稼働時間は月に40〜60時間程度です。

稼働は午前中や夜、休日が中心ですが、メルカリではフレックスを導入しているため柔軟に働くことができています。

意識すべきことは機械学習を「なるべく使わない」こと

機械学習をなるべく使わない?

機械学習は、キーワードだけが一人歩きして認知されたために社会から期待が過剰に高まりある種のバブルとなっており、機械学習を使ったサービスを開発するぞ!という気持ちが先行しているケースを見かけます。しかし、機械学習はあくまで手段の1つであり、それを使ったサービスを作ることは目的ではありません。

事実、機械学習を使わなくても UI や人手でどうにかなる場合や、ルールベースやアルゴリズムの方が適しているケースは多いです。また、コストを掛けて導入しても、それに見合うビジネスインパクトが得られない場合もあります。

受託案件のコンサルティングでは「機械学習を使わないソリューションはないか」ということをまず第一に考えます。これは案件を失うことにも繋がりかねないのですが、手段ありきの提案をするよりも真摯な提案によってクライアントの信頼をいただける方がメリットが大きいと考えています。

価値を発揮できそうな部分で提案

事前にクライアントのサービスを触り持っていそうなデータを想像し、そのデータを用いて作成したモデルを導入することで大きな価値が生まれそうな箇所を事前に考えておくようにしています。また、競合の動向を含めた業界研究も重要です。

その上でクライアントとのヒアリングを行い、実現可能性が高く、やる意義も大きい提案をすることで、価値を発揮できるように心がけています。

副業は、広い技術領域やビジネス視点を持ち続けるための機会の一つ

今回は、副業、特に機械学習系の受託開発案件についてお話しました。もちろんこれは私のケースであり、機械学習エンジニアとしての働き方はこれに限らないとは思います。

一方で、広い技術領域やビジネス視点を持ち続けることはエンジニアとして非常に重要なことだと考えています。副業は、そのような経験を得るための良い選択肢の1つになるはずです。

また、私が副業をしているイノカではエンジニアを積極的に採用しています!この記事を読んでイノカでの副業に興味をもっていただけたら、是非採用ページもご覧いただけると幸いです!カジュアル面談も実施しておりますので、まずは気軽にエントリーをお願いいたします。

Offers」は、時代の変化や環境にあわせてスキルを磨きたい、そんな人にぴったりのサービスです。

いくつもの転職媒体を使って、企業を探し回るのはもう終わり。「副業」から始まる新しい働き方を実現します!

本業では経験できない、新しい環境/開発スタイルを経験しよう!



この記事をシェア

関連記事


副業・フリーランス

プログラミング

インタビュー

デザイン

お金

採用・組織

グルメ