天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

機械学習システム構築実践ガイド-Forkwell Library #37に参加してきた

forkwell.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

以下、イベントページから引用です。

今回の第37回目では、『機械学習システム構築実践ガイド』を取り上げます。
機械学習システムを構築する上で実際に発生する課題を想定し、動いているシステムやワークフローに機械学習を組み込む方法を解説した書籍です。
今回は著者の澁井雄介氏、そして、事例講演としてFastLabel株式会社の風見亮氏をお招きし、現場で使える!機械学習システム構築の話を本書の内容に沿って、お二方にご発表いただきます。

会の様子

機械学習システム構築実践ガイド

書籍の立ち位置

汎用的なノウハウを説明してる機械学習システムデザインパターンと兄弟的な立ち位置にあるということで、機械学習システムデザインパターンで説明したノウハウを本当に動くシステムに活かすとどうなるのか?という本になっているということでした。*1

機械学習の実用課題

これまで出てきた本やテックブログの中では、「機械学習システムエンジニアがもっと仲良くなろう」ということはたくさん書いていますが、実際にソースコードを含めてどのように機械学習をシステムに組み込むのか?というのは、どの企業も本も公開することがない点は課題だと思っているそうで、この課題感が今回の執筆のきっかけになったそうです。

機械学習界隈の進化スピードの速さ

AlexNetからまだ10年ほどしか経っていないにもかかわらず、生成AIが出てきており、ただでさえ変化が激しいIT界隈の中でもとんでもない速度で発展しているということでした。

また、研究→利用→実用の流れも強く意識されつつあるということで、研究という側面のみならず、社会課題を解決するために機械学習が用いられるようになってきているという話もありました。

AI Animals

本書では実際に動くプログラムとして、AI Animalsを作っているという話がありました。

こちらは機械学習を使うために必要となってくるもののほとんどをカバーしているということで、実用的なチームで開発する全範囲をカバーしているということでした。

違反検知

上記プロダクトでは画像違反の検知を実現しているそうで、具体的なシチュエーションを仮定した上で、ビジネスとしてもシステムとしても実用的な仕様を考え、実装しているということでした。

具体的には、開発の前にデータを整備し、アノテーションでラベリングし、実験して性能評価をするといった実務的な過程を経るようにし、Jupyter NotebookレベルのコードをPythonで書き直すといったステップも踏んでいるということでした。

また、ただ作って終わりだけではなく、偽陽性/偽陰性を計測によって検知する仕組みも本の中で作り込んでいるということです。

パイプライン

機械学習の文脈ではあまり語られない類似画像検索やパイプラインの自動化にも触れているという話がありました。

実践!データセントリックなAIモデル開発

データセントリックとは

機械学習のアプローチとして、アルゴリズムを改良してAIの精度を改善していく方法が一つのメジャーな方法としてありますが、そうではなくデータの質を改善し、質の高い少ないデータで精度を改善していく開発をデータセントリックと呼ぶという話がありました。

有効だった改善手法

さすがに具体的な数値までは公表できないということでしたが、有効だった改善アプローチとして、以下の手法があったということでした。

  • 人によって判断がブレやすいものを統一するために定義書を再作成する
  • 人間が見ても判断が曖昧なものは定義書を作成した上で除外する
  • ダウンサンプリング
MLOps

機械学習のライフサイクルを自動化するためにMLOpsが重要になってくるということで、MLOpsの実現のために行った取り組みや得た教訓に関して紹介がありました。

まず、MLOpsの構築に際しては、システムだけではなく人や組織も考慮した上で自動化するのが重要だったという話がありました。

次に、構築の際に使用した技術要素として、AWSのSageMakerの紹介や外部との連携をすることも踏まえて構築したSDKの紹介がありました。

会全体を通した感想

本の話と事例紹介の構成はいつも通りでよかったのですが、書籍の話がどのように現場に活かされているのかが今ひとつわからなかったのは残念に感じました。(事例講演の内容としては色々具体的な取り組みをしれて面白かったです)

澁井さんの情熱溢れる講演と情熱溢れる本の紹介はすごく面白くて、サンプルコードをより詳細に読んでみるモチベーションが上がりました。

*1:本当に動くとはどれくらいしっかり作っているのか?というと、1000万行近いコードを書いてリアルに動くシステムを作っている