Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LPIXEL×CADDi_kaerururu
Search
kaerururu
March 14, 2024
Programming
3
480
LPIXEL×CADDi_kaerururu
kaerururu
March 14, 2024
Tweet
Share
More Decks by kaerururu
See All by kaerururu
kaggler なら知っておきたい GPU の話
kaerururu
0
1.8k
Other Decks in Programming
See All in Programming
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
470
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
330
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
180
HTTP compression in PHP and Symfony apps
dunglas
2
1.7k
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
930
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
100
ドメインイベント増えすぎ問題
h0r15h0
2
300
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
910
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
130
Featured
See All Featured
Done Done
chrislema
181
16k
Building Adaptive Systems
keathley
38
2.3k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
The Cult of Friendly URLs
andyhume
78
6.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
GitHub's CSS Performance
jonrohan
1030
460k
Transcript
kaerururu @ CADDi 実例で示すKaggleコンペと開発実務の差
Who are you? • kaerururu • 仕事: MLOps 修行中の MLE
• 専攻: 経済史 • 趣味: Kaggle, 釣り • Kaggle ◦ あと金一枚で GM (誰か力貸してください) ◦ 画像やテキスト系のコンペを好んで参加 会社・ロール ドメイン × データ キャリアチェンジ前 金融系の営業とか SE とか ストックマーク MLE DMM.com MLE CADDi MLE MLOps ビジネスニュース × NLP エンタメ × テーブル, 検索改善 製造業 × 画像
Who are you? • kaerururu • 仕事: MLOps 修行中の MLE
• 専攻: 経済史 • 趣味: Kaggle, 釣り • Kaggle ◦ あと金一枚で GM (誰か力貸してください) ◦ 画像やテキスト系のコンペを好んで参加 会社・ロール ドメイン × データ キャリアチェンジ前 金融系の営業とか SE とか ストックマーク MLE DMM.com MLE CADDi MLE MLOps ビジネスニュース × NLP エンタメ × テーブル, 検索改善 製造業 × 画像 製造業ドメインないです
Contents • 図面について • Kaggle とCADDi での機械学習モデル開発の比較 • まとめ
None
What is 図⾯
What is 図面
図面には読み取るべき情報が多い 角を切り 落とす 穴 溶接 長さ 注意書き 製図者、材質、加 工の内容 etc
例) 溶接記号 (一部抜粋) 記号 旧記号 記号 旧記号 • 図面内で使われる記号 •
日本の国家規格 (JIS) で定められている ◦ 規格の新旧で違う記号が存在 • ここにあげたものだけでも 17クラス • 組み合わせで登場することも
(MLE からみた) 図面の特徴 • いわゆる公開データセットやモデルみたいなものがない ◦ 設計図 = 競争力 なので公開するインセンティブがない
• デカい ◦ 現場ではテーブルに広げたりする ◦ よくある大きさ (表) • 自由度が高い ◦ 共通プロトコルはあるが ... ◦ 手書き、取消線、社内ルール ◦ AI ってやつでなんとかして 画像サイズ (px) A0 11,589 × 16,384 A1 8,185 × 11,589 A3 4,093 × 5,787 A4 2,894 × 4,093
図面ドメインでの機械学習タスク 結構シンプル! 類似図面検索の精度向上 図面OCR 図面特有の記号認識 • 画像ベクトル • Object Detection
• Text Recognition • Object Detection • Classification
Kaggle と CADDi での ML モデル開発の取り組み⽅の⽐較
CADDi での ML モデル開発の流れ タスク設計 データセット 作成 モデリング 評価 推論コード
作成 デプロイ 運用
データセット作成 • どういうアノテーションのコンペは良コンペ だった ? • 何枚くらいアノテーションすればいい ? Kaggleの 知見
アノテーションデータを作成する • 定義 • 対象データ収集 • アノテーション実施 実務の 課題 Kaggle でアノテーションのやり方は身につかないが … 多数のコンペに参加して得た勘所が活きる
• 推論結果 = 顧客価値につながるため、ユースケースを考えて定義 ◦ PdM や社内の製造業ドメインエキスパートと相談 • 溶接記号検出のユースケース ◦
溶接する必要があるか否か ◦ どこを溶接するか ▪ ハイライトしたい etc… アノテーションの定義をする A B 記号部分のみ ピンポイント 周囲の数字とか 文字とかまで シングル ラベル マルチ ラベル
アノテーション対象のデータを集める • 同一ホスト過去コンペのデータに擬似ラベルをつけて学習データを増やす (Pseudo Labeling) • ベースラインモデルをサクッと作り、高速に検証を回す Kaggleの 知見 •
CADDi で預かっているたくさんの図面から学習に必要な図面のみを集めたい • アノテーションの工数削減のためプレアノテーションを実施したい • 一度のアノテーションで欲しいラベルが全て集まるとは限らない 実務の 課題 Pseudo Labeling の経験やモデル作成の速さは アノテーションプロセスの効率化にも活きる
モデリング・評価 Kaggle 実務 評価データ 評価指標 モデル 再現性 固定 精度 アンサンブルし
てでも精度 自分のために 重要 変動あり 精度 速度 シンプルさも重 要 チームの運用 のために重要 変動する事業状況に追従し、チーム全体でプロダクトとしての性能要求 (精度+α)を満たすこと、運用まで見据えたモデリングが重要
推論コード作成 • local で学習して、kaggle notebook で推論 • 学習と推論で前処理を揃える (CV 通りのスコアがでるよう過不足なく
) • 環境差分への配慮 (Kaggle Docker の利用) Kaggleの 知見 • 未知データに対して検証時と同様の精度を担保したい • 運用を見据えたコード品質 ◦ 単体テスト、型ヒント、静的解析 ◦ ロギング、例外処理 • コンテナ化 実務の 課題 Code Competition の普及、学習と推論を別環境でやる経験値は身に付く
運用 CADDi の ML チームで実際に見ているダッシュボード (抜粋) 他にも、レイテンシ, レプリカ数, レスポンス数 なども追っている
デプロイしてからが本番 安定して顧客価値を届けるために日々挙動を確認 もしもの時は迅速に対応する
• データを集める工夫が面白い ◦ データセントリックなアプローチ ◦ プレアノテーション • 精度だけじゃないモデル評価 ◦ 精度はもちろん、コストやレイテンシとのバランスも大事
◦ どの関数で何秒かかっているのかとかも計測 • 運用が大事 ◦ デプロイしてからが価値提供の本番 ◦ バグを産みにくくするためコード品質向上の徹底 ◦ 迅速な不具合対応のためのモニタリング CADDi の ML チームでの学び
まとめ
• 図面ドメインは解くべき課題、取れるアプローチが多い • CADDi での ML モデル開発タスクの取り組み方を例に、どのように Kaggle で培っ た経験が活きるかをお話しした
• Kaggle と異なる視点での機械学習モデルの開発運用は楽しい まとめ