機械学習システムのアーキテクチャを検討する上で考慮すべき課題について調査しまとめた資料です。Money Forward 社内で開かれた MLOps についての勉強会のために作成しました。
## Reference
### 大規模なデータを扱う難しさ
- Architecture Evolution in Repro https://speakerdeck.com/joker1007/architecture-evolution-in-repro
- Sidekiq to Kafka ストリームベースのmicro services https://speakerdeck.com/joker1007/sidekiq-to-kafka-sutorimubesufalsemicro-services
- ReproのImport/Exportを支えるサーバーレスアーキテクチャhttps://speakerdeck.com/joker1007/exportwozhi-erusabaresuakitekutiya
- Next.js + Railsでリニューアルした社内ニコカレシステムの技術スタックを公開します - Fusic Tech Blog https://tech.fusic.co.jp/posts/2021-07-15-nicole-renewal/
- Repro における Presto の安定化・パフォーマンス改善の歩み / Repro Tech Meetup #9 https://speakerdeck.com/a_bicky/repro-tech-meetup-number-9
- MySQL/InnoDB の裏側 / Rails Developers Meetup 2018 Day 1 - Speaker Deck https://speakerdeck.com/a_bicky/rails-developers-meetup-2018-day-1
- AWS 導入事例:株式会社マネーフォワード | AWS https://aws.amazon.com/jp/solutions/case-studies/moneyforward/
- 組織と事業の急拡大に立ち向かうためのマルチテナント Amazon EKS クラスタ/マルチアカウントアーキテクチャ / Multi-tenant EKS Muti-account architecture at Money Forward https://speakerdeck.com/0gajun/multi-tenant-eks-muti-account-architecture-at-money-forward
- O'Reilly Japan - データ指向アプリケーションデザイン https://www.oreilly.co.jp/books/9784873118703/
### 機械学習システムの難しさ
- Vertex Model Monitoring で活用する、Google の MLOps 監視手法 | Google Cloud Blog https://cloud.google.com/blog/ja/topics/developers-practitioners/monitor-models-training-serving-skew-vertex-ai
- A brief introduction to Training/Serving Skew https://zenn.dev/asei/articles/e593da33c53ee4
### 大規模なデータを扱うためのアーキテクチャ
- Big Data + Fast Data = ラムダアーキテクチャー! | NTTデータ先端技術株式会社 https://www.intellilink.co.jp/column/bigdata/2015/041500.aspx
- ビッグ データ アーキテクチャ - Azure Architecture Center | Microsoft Docs https://docs.microsoft.com/ja-jp/azure/architecture/data-guide/big-data/#lambda-architecture
- O'Reilly Japan - データ指向アプリケーションデザイン https://www.oreilly.co.jp/books/9784873118703/
- Data preprocessing for machine learning: options and recommendations | Cloud Architecture Center | Google Cloud https://cloud.google.com/architecture/data-preprocessing-for-ml-with-tf-transform-pt1
- The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing – Google Research https://research.google/pubs/pub43864/)
- The Beam Model [model evolution and details, ~45 min] - Google スライド https://docs.google.com/presentation/d/1SHie3nwe-pqmjGum_QDznPr-B_zXCjJ2VBDGdafZme8/edit#slide=id.g12846a6162_0_4764
- Streaming 101: The world beyond batch – O’Reilly https://www.oreilly.com/radar/the-world-beyond-batch-streaming-101/
- From Lambda to Lambda-less: Lessons learned | LinkedIn Engineering https://engineering.linkedin.com/blog/2020/lambda-to-lambda-less-architecture
- MOVの機械学習システムを支えるMLOps実践 https://www.slideshare.net/takashisuzuki503/movmlops
- beam/wordcount.py at master · apache/beam https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/wordcount.py#L80-L90
- Quotas & limits | Cloud Dataflow | Google Cloud https://cloud.google.com/dataflow/quotas#compute-engine-quotas