サイバーエージェントPTA (Publisher Technology Association)のアドベントカレンダーの9日分です。(https://adventar.org/calendars/6450)
もう6年間以上弊社で機械学習エンジニアとして働いていて、ほとんど広告プロダクトの所属で。この間、ほぼずっと一人でした。というと、もちろんいろんなエンジニアやビジの人と協力していたが、チームのデータサイエンティスト人材として単体の一人でいた。
この職業で一人で働いているのはいろんな有利はある。議論せずに好きなアルゴやロジックを設計して導入しても文句なし。他詳しい人全くいないので言うこと完全に信用される。システムの構造100%と近く理解し、問題になったら割と調査しやすい。
でも去年、ある日、僕の独裁していた広告部に注力することが上の神々に決まれ、チームは大きく拡大しちゃった。直接関わっているDS人材は4人になって、と徐々に理解してきている優秀なインフラエンジニア数人増加。と自分は急にチームリーダーになった。本来の引きこもりオタクとしては、初期は大変なトラウマだったけど、なんとなく慣れてきた。
機械学習チームの大変なこと
いろいろある。
人間
人間的なとこから、みんなは非常に頭よく、みんなが自分の正しいと思っているやり方があって、とみんなは遠慮なく議論してくる。もう勝手に自分で方向性を決めていける日々が終わった。これはある意味大変ですが、すごく良いとこもある。黙って従う人たちだったらアルゴリズムを書いてくれる猿でもいい。DS人材は複雑な問題について考え、改善策を思い出せるだからこそ価値が高いです。
みんなの自由さ、プロダクトの成果、と自分の意見のバランスをとって方針を考える必要です。トップダウン管理は絶対ダメです、みんなの能力を無駄にしちゃう。でも完全に「好きに改善していいよ!」のフラットな組織もうまくいかない。
今のとこ「議論しあう」会を結構実施していて、みんなお互いのアイディアを聞いて指摘し合って、結果的に一番いいソリューションを見つける。完璧ではなく、ある意味大量の無駄なミーティング時間になっている。でもそれで全員は成長でき、プロダクトのオーナーシップを感じることになることもあるので多少不効率だっても全般的に良いと思う。
不具合
機械学習プロダクトは(当たり前に)複雑になるほどバグりやすい。特徴量加工・アルゴリズムアンサンブル・ヒューリスティック入札ロジック。。。全員は自分のやってみたいアイディアあがある。人数多いほどこういう動いているパーツは段々と増えてきて、よくリリースされてすぐ忘れられる。
だからある日「売り上げが下がっている!!なんで??」との質問が聞かれれば段々と答えにくくなってくる。予測時と学習時の特徴りょう加工が異なっている?急に必要だったデータを取れなくなった?加工システムの問題により一部取れなくなった?数年前作ったPIDシステムのredisはインフラコスト削減チームに削除されちゃった?
開発できないDSはもっと大変。。作ったモデルを誰か専門家じゃないエンジニアに渡して実装してもらわないといけない。そもそも勘違いされバグりやすいのは一つ、かつコードレビュー時でもロジックをレビューしている人はちゃんと言語を分かってなく、ちゃんとしたレビューにならない。
これの根本開発はおそらく無理、でも基本フルスタックDSエンジニアを採用しようとし、複数人の見ているレビュー体制を建てるのが助かる。日々の特徴量バグなどはある程度自動で診断できるけど、分布が多少異なっているみたいなケースは場合によってかなり困る。
いろいろ改善してきてるけど、まだ僕の人生は5割以上バグの要因を調べている気がする。
結局機械学習チーム一人しか入れない方がいい??
いえ、全然そう思わない。メンバー増やすのがかなり大変ですが、開発をめちゃくちゃ加速化できている。元々の5年間の計画のプロジェクトは全部同時に進めている。ずっと前から微妙だと思って分析する暇ないデータが分析されている。
お互いの弱点などをカバーできるのもとてもいい。機械学習エンジニア(少なくとも僕)は「全部自分でやれる」って思いがちですが、結局DSは広く、全部の専門家にはなりにくい。最近ある予測プロジェクトを実施していて、一人はアルゴリズムを設計し、チーム全員にレビューされ指摘されて、二人はその実装を行って、ともう一人は最後の結果の分析をしている。多分誰でも一人でその全部をできたけど、みんなの長所を生かすことによって最後はもっといいシステムになったと思う。それだけでなく、今でどういうシステムなのかを理解している人は3–4人いるなんで、属人性は随分解消された。
結論どういう作文
文字数から言うと不利の分がもっと長いだけど、チームが大きくなったのはすごくいいことだと思っている。今まで一緒に苦労してきて、一緒に達成させていただけたことをとても感謝している。これからの一年間に仲間を増やして、もっともっと成果出すのを楽しみにしている。みんなさんは自分のチームとの関わりの感謝をぜひ心に持って、クリスマスを過ごしてください。