ML開発を通じてチーム間連携に心血を注いだ話~黒板AI作成リリースまでのあゆみ~

はじめに

データ部MLProductDevチームでML開発に取り組んでいます、森といいます。この記事では、3月21日に黒板AI作成機能をリリースしたことを受け、PoC着手からリリースに至るまでの開発経緯を振り返ってみたいと思います。

andpad.jp

andpad.jp

データ部はアンドパッド社内に蓄積されたデータを活用して、継続的にビジネス価値を創出していくことを目指しています。2022年は種まき期との位置づけで豆図AIキャプチャの開発・リリースを通じてAIによるプロダクト貢献を具現化してきました。2023年は発芽期との位置づけで、豆図AIキャプチャを発展させる形で開発・リリースしたのが黒板AI作成機能です。

tech.andpad.co.jp

2022年の種まき期の取り組みについて深掘りした内容をこちらの対談形式の記事でまとめています。

www.wantedly.com

黒板AI作成とは

黒板AI作成とは、マンションやオフィスビルなど大型建築物の施工において、工事写真の撮影のために必要な豆図付き黒板作成の業務を、豆図画像の保存や黒板内容のテキストの転記作業をAIで自動化し、効率化を実現したものです。

黒板AI作成の画面例;特設ページから転載

従来、このような情報の収集・黒板への転記・写真の整理などは人海戦術で実施されてきました。黒板AI作成機能を用いることでコスト削減(時間短縮)と品質向上(転記ミス削減)を図ることができます。

開発の経緯

黒板AI作成の開発は、一般的なAI系の開発と同様、まずはPoCを行って原理確認をするところから着手しました。

初期

試行錯誤を通じて開発の筋道をつけれたものの、実データの多様性を甘く見ていた時期でした。

隔週の定例会議を設け、検討状況をプロダクトマーケティングマネージャおよびプロダクトマネージャと共有しつつ、実現可能性の吟味や機能要否の取捨選択を行って、イメージを擦り合わせていきました。入力された図面を一連のAIを駆使して処理するフローを作成し、プロトタイプを作って結果を吟味しました。

現時点で当時を振り返ってもうすこし力を入れてやっておくべきだったと思われるのは、図面の収集と体裁の吟味です。収集した図面を観察する限り、鉄筋コンクリートの柱や壁を列挙した図面は標準的な体裁が定められておらず、緩やかな慣習や経験知に沿って成り立っているようです。図面作成者や作図ソフトの裁量が許されていると思われ、標準化や機械可読性といった観点は考慮されていません。 開発に先立って図面を収集する際は網羅性を高めるべく様々な体裁のものを対象に加えたつもりでした。しかし、後段になって当時想定した範疇からはみ出した体裁の図面が存在することが明らかになり、いくつもの修正を必要としました。

中期

実装がガンガン進んで最も達成感を味わえた時期でありつつ、開発チーム同士の理解を深化させることに課題を感じた時期でした。

一連の処理フローがある程度メドがついてきたところで、次はAIと連携するフロントエンド・バックエンドとのやり取りを行いました。この開発では図面画像を処理してAPIサーバとして提供するML開発のチームと、APIサーバの応答を受けてユーザに提示するアプリのフロントエンド・バックエンド開発のチームとに分かれていました。APIの応答の仕様を決めていくところからすり合わせが始まり、まずは適当なサンプル図面を用意してそれに対応するAPI応答として、JSONで黒板を列挙したテキストを作りました。続いてそれをAPIサーバに実装し、固定的な応答を返すモックアップサーバを構築してフロントエンド・バックエンドチームに提供しました。それからビジュアルなデバッグができるように、AIの処理フローごとの表示、JSON応答のダウンロード、応答を図面上に可視化、ができるwebアプリをstreamlitで実装し、チーム間で共有しました。

デバッグ用webアプリの画面表示例

当時を振り返ると、チーム間でのやり取りをいろんな形式で模索することで、より具体的なイメージをもって開発を進められたと感じます。システム的な接点はAPIを通じたJSONのやりとりだけである、と間口を狭めることなく、相互理解を深めるための手段としてモックアップサーバとWEBアプリを提供できたのがよかったのではないかと思います。一方で、MLチームはAPIの直接のやり取り先となるバックエンドの開発環境をよく理解しておらず、提供したものはMLチーム観点のみでの有用性を考慮していた点は反省したいと思います。リリースの後に振り返りを行い、提供した手段のよしあしについてフィードバックを得られたので、次回以降の開発ではさらに改良を行ってチーム間のやりとりを加速していきたいです。

後期

締め切りに向けてプロトタイプを全力でブラッシュアップし続ける、体力勝負の時期でした。

サンプル図面を処理するフローが確立されると、それ以外の様々な体裁の図面を投入して挙動を確認しました。想定とは異なる図面の体裁が投入されてもある程度うまくいくように設計していたものの、やはりプログラマの想定を上回る多様な体裁の図面が世の中には存在しているようで、様々な考慮漏れが顕在化しました。できるだけ想定範囲を広げるべく改修を施しましたが網羅できるものではなく、この点はフロントエンドのメンバーが様々な救済措置を実装してくれました。AIの誤判定をユーザが目視して配筋リストの検出結果を修正したり、行や列の調整をできたりするUIです。これにより受け入れ可能な体裁をかなり増やすことができ、多様なエンドユーザから利用してもらえるようにできました。 当時を振り返ると、リリース期限が迫る中でさまざまな想定外事象が発生しており、ひたすら救済措置を乱れ打つというような開発状況でした。リリース以降の運用品質や、将来的な追加開発の品質を担保すべく、当初の図面体裁を想定するフェーズから工夫できる点があったのではと考えています。

おわりに

黒板AI作成機能の開発を振り返って、各フェーズで起こった事象と工夫した点や改良すべき点を記してみました。アンドパッドには配筋リスト以外にも多くの有用そうな画像データや図面データが日々蓄積されており、本件のような開発事案が今後とも多く発生するであろうと想像しています。それらの開発がMLチーム単体で決着することは考えづらく、他のプロダクトのチームと共同での取り進めが基本となると思われます。 今回の開発を通じて得た知見を活かして、各チームの良さを出し合いながら、プロダクト開発をよりよくすることを通じて、継続的にビジネス価値を創出していきます。

アンドパッドでは一緒に働く仲間を大募集しています。

アンドパッドでは、「幸せを築く人を、幸せに。」というミッションの実現のため、一緒に働く仲間を大募集しています。 アンドパッドにおけるデータ活用の可能性は無限大で、AI・MLOps・データサイエンス・データアナリティクス・データエンジニアリング、どの切り口においても取り組むべき事柄がたくさんあります。様々な技術的課題にチームで挑戦する中で成長を遂げることができます。まずはカジュアル面談からでもご応募いただければより詳しい情報をお伝えできますので、是非ご応募いただければと思います。

機械学習エンジニア | 株式会社アンドパッド