機械学習システムデザインを読んだ。世界基準の機械学習システム開発の要点を理解するにはこれ一冊読めば大丈夫
機械学習システムデザイン ―実運用レベルのアプリケーションを実現する継続的反復プロセス を読み終えたので、感想を記しておく。
自分は6年半のプロダクション環境下での機械学習システム開発経験、バックエンド開発経験がある中でのレビューとなる。
転職後は機械学習エンジニアのポジションとして働くので、Chip Huyenさんが2022-06-21 に出版した書籍であるDesigning Machine Learning Systems: An Iterative Process for Production-Ready Applications
が2023/9/1に日本語訳されていたので良い機会なので読んでみた。4h30mぐらいで全てを読むことができました。
全体的な感想として、流石Chip Huyenさん!!!という書籍の内容でした。著者の豊富な経験を交えつつ、あらゆるところでリファレンスベースでの実例が紹介されているのが特徴で、この書籍を書き上げるのはとても大変だったと思います。論文だけで終わらずに、カンファレンスの講演やネット記事なども収集しているのが良い意味で実践的な事例が収集されています。そのおかげで、この書籍を読めば世界最先端の事例を事例ベースで学ぶことができます。
翻訳の質も非常に高く、この内容を日本語で学べるのはとても貴重ですね。機械学習システムに関する基礎としてはバイブルと言える内容です。仕事で機械学習に携わる人は要所要所で見直しつつ参照すると良さそうです。逆にハンズオン的にコードを書きつつ学ぼうという書籍ではないので、それを求めている人には合わないかも知れません。
目次は以下の通りで、
1章 機械学習システムの概要
2章 機械学習システム設計の概要
3章 データエンジニアリングの基礎知識
4章 訓練データ
5章 特徴エンジニアリング
6章 モデル開発とオフライン評価
7章 モデルのデプロイと予測サービス
8章 データ分布のシフトと監視
9章 実現場での継続学習とテスト
10章 MLOpsにおけるインフラとツール
11章 機械学習の人的側面
機械学習システムのモデリング部分だけではなく、データエンジニアリングや機械学習プラットフォーム、そして、11章では、機械学習チームの構成デザインまで言及されています。
感想
自分にとって興味深かった章をピックアップしながら、感想も書いておく。
- 1章機械学習システムの概要
「作るまでは偽物(fake-it-til-you make it)」のアプローチがとられます\
- 裏で人力でシステムを稼働させること
fake-it-til-you make it
というらしい、面白い!
- 裏で人力でシステムを稼働させること
- 1.2.1.1 さまざまな利害関係者と要求
- ここはかなりかなりリアルな利害関係者の様相を表していて面白い。機械学習プラットフォームチームが、モデリングを担当しているチームに対してヘイトを貯めている点とかも追うね、分かるよ!!となったり。
- 2章機械学習システム設計の概要
- 2.1 ビジネスと機械学習の目標
- この節ではバッサリと「スタイリッシュな機械学習の指標には興味がありません … マネージャーはビジネスの指標にしか興味上がりません」と書かれており、システム設計の章の初期でこの問題提起をするのは素晴らしいね。モデルの精度が上がっても、会社にとって意味がある改善に繋がらないと何も意味が無いからね。
- バックエンド開発と異なり機械学習システムの勘所としての難しさは、モデルの精度がシステムの要求水準に関わってくるところだが、どれくらいの精度になればそれば満たされるかが不明な点が大変な点ですよね。その対処法として Rules of MLでも言及されている通り、まずは機械学習なんてしなくてもヒューリスティックな取り組みで問題解決すれば良いんですよね。機械学習プロジェクトの困難さとして、まず機械学習を使うことが目的化するという副作用もあるので、そもそも何を解決したいのか、何がROI高いのかを常に自己問答していく必要がありますね。
- 2.4.1.4 さまざまな問題解決方法
- フレーミング(機械学習システムでいうところの、問題を機械学習でどのように解くか)について取り上げているが、これは面白い!自分はここだけ一箇所の書籍にしてしまってもいいんじゃないかなと思うくらい、奥深い題材だなと思う。
- こういう効果的なフレーミングは、実務経験とか百本ノック的に知識をため込んで置かないと効率的な落とし込みって難しい気がしている。ある程度経験を積んだ今なら、え、それって本当に現実的?めんどくさすぎでは?と考える癖がついたので、知恵を働かせるのが重要ですね。そういう意味だと トヨタ式鬼十訓を読んだ での知恵を絞り出せは大事な考え方です。
- Machine Learning System Design Interview も購入してパラパラと眺めてみたんですが、この書籍ではカバーしていない具体的なシステムデザイン集なので次はこれを眺めてみようかなと思います。
- 2.1 ビジネスと機械学習の目標
- 4章訓練データ
- リザーバーサンプリングが紹介されていて驚き! Amazon の製品検索で使われるロバストなキャッシュ手法の論文「ROSE Robust Caches for Amazon Product Search」で利用されていて自分は知ったが、一般的に知られているレベルなんですね? オンメモリに乗り切らない規模を扱うデータレイクのサンプリングでも使われているのかな?
- 11章機械学習の人的側面
- チーム構成 分業制 vs フルサイクル
- これは正解のないテーマだけど、自分の嗜好性としては圧倒的にフルサイクル支持派です。書籍内で言及されているBeware the data science pin factory: The power of the full-stack data science generalist and the perils of division of labor through function | Stitch Fix Technology – Multithreaded、Unpopular Opinion: Data Scientists Should be More End-to-Endの記事には自分は共感しかありません。自分が共感する理由として、キャリアの方向性としてResearch scientist を目指しているわけではないし、センスがロックスター並にあるという自負もないので、なおさらこの考えには共感できます。特に前者のERIC COLSONさん(Netflix の元VP Data Science and Engineering) の記事は読んだことがなかったんですが、めちゃくちゃおもしろかったです。主張としては、現在の機械学習プロジェクトは予測して計画するのは難しいし、実践しつついろんなことを学ぶ必要がある。分業制なんかしてたら、学ぶ機会が喪失してしまう、また調整コストや近視眼的な改善が増えてしまうと書かれており、首がもげるほど同意しました。
- yag_ays さんが書いているこれからの機械学習エンジニアの方向性の記事も同質のトピック妥当思うのでぜひご覧ください 事業会社の機械学習エンジニアのこれから|yag_ays
- Workshop on Applied Machine Learning Management なんかはまさにドンピシャのワークショップで、このトピックは論文化しづらそうなのにワークショップを開催しているのはKDDは偉大すぎる。でも1枚だけの予稿集しか公開されておらず、内容がつかめないので、可能ならスライドや動画が公開されるともっと嬉しい…
- チーム構成 分業制 vs フルサイクル
まとめ
LLM以前の機械学習システムを構築するにあたって、機械学習システムデザイン ―実運用レベルのアプリケーションを実現する継続的反復プロセス と本書や、自分の過去のブログ記事でも度々言及している Rules of ML: | Machine Learning | Google for Developers を読んでおけば世界最先端の機械学習実践者たちが実践している機械学習システムへの取り組みを学ぶことができる。
いやーこれが母国語で読めるなんて最高ですね。翻訳ありがとうございます!
LLMが出てきたこれからの時代はどうするのという問いについては、 Chip Huyen さんが現在鋭意執筆中の AI Engineering [Book] に期待したい。 この本の名前を AI Engineering という名前にしているのも、非常に共感できる。もうAIって言っていいんじゃなかろうかって自分も思うよ。LLM以前の自分だとこれはAIではなく機械学習ですと心のなかで思ったり、言ったりしてたけど今じゃ世界は変わってしまった。
関連しているかもしれない記事
- 「トヨタ式鬼十訓」を読んだ
- 「健康になる技術 大全」を読んだ
- 「Human-in-the-Loop機械学習」の出版を通じた技術書翻訳体験記 #hitlbook
- 能動学習とアノテーションをテーマにした書籍 「Human-in-the-Loop機械学習」を翻訳しました #hitlbook
- 自分の時間を取り戻せ。時間術大全 人生が本当に変わる87の時間ワザ を読んだ(4年ぶり、2周目)
📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。
このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。
このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。