鈴木 海渡
機械学習・最適化・データサイエンス
※本記事は2023年10月に取材したものです。サービス名称や所属は取材当時の内容です。
自己紹介をお願いします
2022年に新卒で入社した鈴木海渡です。入社以来BtoB部門のエンジニアとして、顧客の課題解決に機械学習などの技術を駆使して取り組んでおり、今年で2年目になります。並行して、PFNで開発しているOSSであるOptunaの開発にも携わってきました。大学院では情報科学を専攻し、研究室ではオートマトン・形式言語理論の研究をしていました。
現在担当している主な業務内容や具体的な流れについて教えてください
私の所属するチームは、製造業の業務課題を解決することをテーマとし、様々なプロジェクトを実施しています。私はそのうち2つのプロジェクトに関わっています。
1つは工業製品の異常検知を行うプロジェクトです。現場での人手の検査業務を効率化するために、製品を撮影した画像を入力とした異常検知モデルの開発を行っています。データの分析、モデルの設計や学習、顧客へのヒアリングや進捗共有など、プロジェクト業務全般を担当しています。このプロジェクトでは、PFNの強みである自社保有の機械学習基盤を積極的に活用しています。例えば、複数の計算ジョブからなるワークフローを定義できるArgo Workflowsを用いて、モデルの学習・評価結果の計算などの主要な実験サイクルを自動化し、モデル改善のための試行錯誤にかかる手間を削減しています。
もう1つは、自然言語データの活用を行うプロジェクトです。顧客企業に蓄積されている社内文書データを入力とし、知見を抽出・検索する手法の開発などを行っています。元のノイジーな言語データに対する前処理から、大規模言語モデルを用いた情報抽出や要約、検索アルゴリズムの改善、実際に現場で使ってもらうためのユーザインタフェースの検討など、幅広い課題に様々な技術スタックを用いて取り組んでいます。
チームには私を含めて4人のメンバーがいます。1人は全体の進捗管理や顧客対応を担っているマネージャーで、残りの3人はそれぞれ別のプロジェクトをメインの作業者として担当しています。私は前述の異常検知プロジェクトをメインで担当しつつ、自然言語データの活用を行うプロジェクトにもサポートとして入り、技術相談・コードレビューなどを行っています。全体でのデイリーミーティングがあり、そこで進捗状況を共有し合い、進め方や技術内容について議論を交わしています。
私を含め、メンバーの大部分はリモートワーク中心で働いています。私自身が出不精なこともあり、出社が必要な業務や会社のイベントがある場合は出社しますが、それ以外はほとんど自宅からリモートで勤務し、たまに気分転換に出社するくらいの働き方になっています。ただ、リモートであっても文章で互いに相談したり、必要に応じてGoogle MeetsやSlack huddleなどで画面共有しながら話したりすることも多く、活発にコミュニケーションを取りながら業務を進めています。
プロジェクト業務の傍ら、PFNが開発しているOSSであるOptunaの開発にも参加してきました。最適化アルゴリズム、可視化機能などを実装してpull requestを出しつつ、コードレビューやissue対応などにも少し携わりました。基本的には金曜日をOptuna開発日として、業務時間全体の20%ほどを割いて参加していました。プロジェクトに余裕がある時は50%ほどを割いてより深く参加することもあり、柔軟な働き方をさせてもらっています。
入社してから現在まで PFN で成長したと感じることはありますか?
入社して最初の配属先は、PFNにとって新規の顧客とのプロジェクトで、当初は何をやるかを含めてほとんど手探りの状態でした。分野のドメイン知識も全くなかったため、まずは本や論文を漁りつつ、データを眺めて発見した傾向について顧客にひたすら質問をする、現場に見学に行くなど、少しでも多くドメイン知識を学ぶところから出発しました。ある程度分野自体や顧客の課題についての理解が進むと、用いる評価指標や、提案する手法の方向性などを徐々に具体化することができるようになりました。手探り状態から出発し、少しずつ不確実性を減少させていく、プロジェクト初期の進め方について経験することができました。
最終的にある程度良い性能を発揮する手法を提案することができ、それをソフトウェアとして納品することになりました。ソフトウェア自体の設計を改めて行い、ユニットテスト、ドキュメンテーションなどを充実させ、1つのパッケージとして納品するところまでを経験できました。これらは私にとって初めての経験でしたが、作業内容を全面的にレビューしてくれるメンターがいたため、勉強しながら進めることができました。
最初のプロジェクトがほぼ完了したため、入社2年目に入る頃には別のプロジェクトに移りました。そこではチームのテックリードに相当する役割を担うことになりました。私を含めて5人ほどのチームで、プロジェクト管理と顧客対応の責任者を担当しました。
私自身もエンジニアとして手を動かしつつ、開発項目の優先度を管理するリスト(プロダクトバックログ)を作成して顧客と開発項目の議論を行う、Github Projectsを用いて各人のタスクやレビューのアサイン状況を整理する、顧客への進捗報告を主導する、など様々な業務を行いました。これも私にとって初めての経験でしたが、前任のテックリードにメンターになってもらい、定期的な1on1を通して少しずつ進め方を学び、無事にプロジェクトを完遂することができました。
これ以来、チーム内で宙に浮いているタスクの存在や、エンジニア間での知識の転移の進み具合など、一作業者としての目の前のタスクの遂行以上のことにも意識が向くことが多くなり、一つ視野が広がったように感じています。
PFN に入社して良かったと特に感じる経験はありますか?
PFNの良いところの1つとして、全社的にSlackなどを用いた、チームの垣根に囚われないコミュニケーションが活発ということが挙げられます。この特性を活かして、チーム外の人も含めた他の社員との協働がうまく行った時は、非常に満足感があります。全社員が入っているカジュアルなチャンネルで自分のプロジェクトの技術的な困り事を相談したところ、その分野の専門家が現れて助けてもらったこともありますし、逆に自分の知見で他のエンジニアをサポートできたこともあります。他チームのエンジニアが新しく作った手法やツールを自分のプロジェクトで試験的に導入してみて、フィードバックを返すなどの形で協働することもあります。
また、技術情報を交換するイベントが好きなので、そういった社内イベントが盛り上がっているときは入社して良かったと感じます。社内のテックトークやインターンの発表会もよく盛り上がっていますし、PFN Dayという全社員が参加して丸一日かけて行われるプチ学会のようなイベントもあり、活発に発表や議論が行われています。
最後にメッセージをお願いします
私は入社当初、自分には強力な技術的バックグラウンドがなかったため、やっていけるか不安に思っていました。実際には入社後に新しく学ぶことが非常に多く、とにかくやれることに取り組んでいるうちに、気付けば1年半が経っていました。新しいことを経験する機会や、そのための技術について学ぶ機会も多く転がっている会社なので、バックグラウンドを問わず、新しいことを学んで実践してみることを楽しめる人には向いている会社だと思います。また、自社で計算機クラスターを持っているため、様々な試行錯誤がやりやすく、エンジニアにとって楽しく過ごせる環境だと思います。少しでも興味がある方は、ぜひPFNを選択肢の一つに加えてみて下さい。
もっと知る