この記事はLayerXテックアドカレ2023の2日目の記事です。 昨日はconvtoさんが「つくってまなぶ静的解析のすすめ」を書いてくれました。 次回はData&ML部の部長のgiwaさんが渾身の記事を書いてくれます。
こんにちは、未来の希望を実装したいTomoakiです。
今回は、機械学習チームで働くソフトウェアエンジニアの魅力について書きたいと思います。※ 注)ここでソフトウェアエンジニアとは、「機械学習エンジニアではない」という意味で使ってます。
私は機械学習チームでWebのソフトウェアエンジニア的な仕事とMLOpsエンジニア的な仕事を担っています。
Webのソフトウェアエンジニアの側面としては、リクエストに対して前処理、推論、後処理をするAPIサーバーの開発であったり、データセット作成のために内製しているアノテーションツールの開発をしています。
また、MLOpsエンジニアの側面としては、ログを集めて精度モニタリングできるようにデータバッチやダッシュボードを開発したりと、モデルの改善に必要なこと全般をしています。ルールベースなどの簡易的なモデルで対応する場合、ソフトウェアエンジニアがパイプライン全部を担うこともあります。
バクラクについて
バクラクは、企業の支出管理を起点にバックオフィス業務を効率化するSaaSを展開しており、企業取引の前段となる「稟議の統一」と「債権・債務の一元管理」を通じてなめらかな業務連携により企業経営を加速させます。
具体的には、請求書の受け取りから仕訳作成をサポートするサービスや稟議のサービス、法人カードなどを展開しています。 bakuraku.jp
バクラクでの機械学習チームの取り組み
AI-OCR機能
バクラクは複数のプロダクトを展開していますが、そのほとんどのサービスにOCRが組み込まれており、ファイルをアップロードすると必要な項目の読み取りが行われます。
例えば、バクラク請求書というサービスでは、請求書のOCRによって経理の方が請求書の内容を手入力する手間を削減しています。 この手間は決して軽視できるものではなく、転記作業の専任の部隊を設けている会社様も多いです。
実際の事例でいうと、月間1,900枚の請求書処理をされているお客様の場合、1人あたり平均月10時間の工数削減につながっています。(もちろんOCRだけのおかげではないですが) エンタープライズ企業になると経理担当者だけで100人を超えてくるので、市場の大きさを感じます。 bakuraku.jp
証憑マッチング機能
世の中の経理担当者は、法人カードが利用された後の証憑の回収に苦労しています。
月末になると、経理担当者が各所を走り回って証憑回収しているのを見たことがある人も多いでしょう。 弊社でも、この機能がリリースされる前には「Datadogの領収書、〇〇さんに届いてないですか?」みたいなやり取りをslackで何度も見てきました。
経理担当者は証憑を集めて終わりではありません。証憑を受け取った後、経理担当者は膨大なカードの決済履歴の中から証憑に紐付け決済を見つけ出し紐付けをする必要があります。
証憑マッチング機能では、証憑の写真を撮るだけで内容を読み取り、カード取引に自動で紐付けを行います。 デモ動画がこちら。
その他
上記に挙げた例以外にも、公開していないものも含めて推薦系やLLM系など、さまざまなプロジェクトがあります。
ソフトウェアエンジニアとして面白い点
私自身はもともとWeb系の開発を中心にやってきた人間で、機械学習についての知識は全くありませんでしたが、実際にバクラクの機械学習チームで働いていると、今までにない面白さを感じます。 それらをいくつか紹介していきたいと思います。
機械学習がプロダクト価値のど真ん中にある
これは決してソフトウェアエンジニアの視点に限った話ではありませんが、非常に重要なことだと思います。
バクラクを利用されているお客様の導入理由や導入事例を見ていると、AI-OCR機能が特に気に入っていただけているところが非常に多いです。
また、機能単体だけでなく、プロダクト全体としてもAI-OCR機能をはじめとした機械学習をフルに活用できるように体験設計しています。
例えば、経費精算のプロダクトでは、どうやったら迷わず楽に申請ができるかを考えた結果、AI-OCR機能を起点としたUI・UX設計に辿り着きました。 まさに機械学習がプロダクト価値の中心にあると感じています。
弊社の行動指針に「Bet Technology」というものがありますが、プロダクト作りもまさに技術にbetしており、プロダクト作りに取り組んでいます。
機械学習がプロダクト価値の中心にあるからこそ、ソフトウェアエンジニアが果たすべき責務は大きいです。 各プロダクトから呼び出されるAPIの保守運用や精度のモニタリング用のデータ整備、アノテーション用のアプリケーション作成など、多くの作業がありますが、これらのどこかで問題が発生するとお客様の体験に直結してしまいます。
また、お客様の体験だけを見ていても不十分で、その場しのぎの対応で乗り切っても、負債になるような対応だと未来の自分たちをどんどん苦しめることになります。 構成も複雑でデータ量も多いため、少しの負債が積もって収拾のつかない事態につながりかねないので、日々頭を悩ませながら開発していますが、開発者としては非常に面白いです。
また、アノテーションやデータセットの作り方などでもモデルの精度が変わってくるため、機械学習エンジニアでなくてもモデルの精度向上に貢献できることも魅力の一つです。
半年に1プロダクトリリース故に新機能の要望が溢れている
バクラクでは半年に1プロダクトのペースで新しいプロダクトをリリースしています。コンパウンドスタートアップとして、複数のプロダクトの立ち上げに注力しています。
新しいプロダクトの企画が始まるたびに、PMから機械学習チームへさまざまな相談が寄せられます。 ブログを書いている今もちょうど、新機能のMVPを作り終えたばかりでお客様の反応を早く見たくてワクワクしています。
機械学習がプロダクト価値のど真ん中にあるプロダクトがどんどんリリースされるのは最高ですね!
全員MLOpsエンジニア、全員機械学習エンジニア
機械学習チームは、機械学習バックグラウンドのあるメンバーと私のようにソフトウェアエンジニア出身のメンバーで構成されていますが、垣根はかなり低いと感じます。
たとえば、Kaggle GrandMasterのshimacosさんがAPIの開発やアノテーション基盤のフロントエンドの開発をたまに担当していたり、私自身も毎週開催されている機械学習勉強会に参加し、発表もしています。
機械学習系の機能は構成が複雑なため、チームで協力することが不可欠ですが、お互いが自分の領域を越境する姿勢があるからこそ、開発が回っていると感じます。
ソフトウェアエンジニアとしても、機械学習エンジニア寄りの仕事をするときは、未知の領域を開拓している感じがあり、ワクワクします!
ちなみに全員〇〇はLayerXの羅針盤の一つです。
最後に
機械学習チームでは、ソフトウェアエンジニアを大大大募集しています。MLOpsの経験がある方もない方も大歓迎です!興味がある方は、ぜひカジュアル面談しましょう!
また、関係ないですが、昨日コーポレートサイトがリニューアルされて、とてもカッコよくなりましたので、ぜひご覧ください layerx.co.jp