Slide 1

Slide 1 text

kaerururu @ CADDi 実例で示すKaggleコンペと開発実務の差

Slide 2

Slide 2 text

Who are you? ● kaerururu ● 仕事: MLOps 修行中の MLE ● 専攻: 経済史 ● 趣味: Kaggle, 釣り ● Kaggle ○ あと金一枚で GM (誰か力貸してください) ○ 画像やテキスト系のコンペを好んで参加 会社・ロール ドメイン × データ キャリアチェンジ前 金融系の営業とか SE とか ストックマーク  MLE DMM.com  MLE CADDi  MLE  MLOps ビジネスニュース × NLP エンタメ × テーブル, 検索改善 製造業 × 画像

Slide 3

Slide 3 text

Who are you? ● kaerururu ● 仕事: MLOps 修行中の MLE ● 専攻: 経済史 ● 趣味: Kaggle, 釣り ● Kaggle ○ あと金一枚で GM (誰か力貸してください) ○ 画像やテキスト系のコンペを好んで参加 会社・ロール ドメイン × データ キャリアチェンジ前 金融系の営業とか SE とか ストックマーク  MLE DMM.com  MLE CADDi  MLE  MLOps ビジネスニュース × NLP エンタメ × テーブル, 検索改善 製造業 × 画像 製造業ドメインないです

Slide 4

Slide 4 text

Contents ● 図面について ● Kaggle とCADDi での機械学習モデル開発の比較 ● まとめ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

What is 図⾯

Slide 7

Slide 7 text

What is 図面

Slide 8

Slide 8 text

図面には読み取るべき情報が多い 角を切り 落とす 穴 溶接 長さ 注意書き 製図者、材質、加 工の内容 etc

Slide 9

Slide 9 text

例) 溶接記号 (一部抜粋) 記号 旧記号 記号 旧記号 ● 図面内で使われる記号 ● 日本の国家規格 (JIS) で定められている ○ 規格の新旧で違う記号が存在 ● ここにあげたものだけでも 17クラス ● 組み合わせで登場することも

Slide 10

Slide 10 text

(MLE からみた) 図面の特徴 ● いわゆる公開データセットやモデルみたいなものがない ○ 設計図 = 競争力 なので公開するインセンティブがない ● デカい ○ 現場ではテーブルに広げたりする ○ よくある大きさ (表) ● 自由度が高い ○ 共通プロトコルはあるが ... ○ 手書き、取消線、社内ルール ○ AI ってやつでなんとかして 画像サイズ (px) A0 11,589 × 16,384 A1 8,185 × 11,589 A3 4,093 × 5,787 A4 2,894 × 4,093

Slide 11

Slide 11 text

図面ドメインでの機械学習タスク 結構シンプル! 類似図面検索の精度向上 図面OCR 図面特有の記号認識 ● 画像ベクトル ● Object Detection ● Text Recognition ● Object Detection ● Classification

Slide 12

Slide 12 text

Kaggle と CADDi での ML モデル開発の取り組み⽅の⽐較

Slide 13

Slide 13 text

CADDi での ML モデル開発の流れ タスク設計 データセット 作成 モデリング 評価 推論コード 作成 デプロイ 運用

Slide 14

Slide 14 text

データセット作成 ● どういうアノテーションのコンペは良コンペ だった ? ● 何枚くらいアノテーションすればいい ? Kaggleの 知見 アノテーションデータを作成する ● 定義 ● 対象データ収集 ● アノテーション実施 実務の 課題 Kaggle でアノテーションのやり方は身につかないが … 多数のコンペに参加して得た勘所が活きる

Slide 15

Slide 15 text

● 推論結果 = 顧客価値につながるため、ユースケースを考えて定義 ○ PdM や社内の製造業ドメインエキスパートと相談 ● 溶接記号検出のユースケース ○ 溶接する必要があるか否か ○ どこを溶接するか ■ ハイライトしたい etc… アノテーションの定義をする A B 記号部分のみ ピンポイント 周囲の数字とか 文字とかまで シングル ラベル マルチ ラベル

Slide 16

Slide 16 text

アノテーション対象のデータを集める ● 同一ホスト過去コンペのデータに擬似ラベルをつけて学習データを増やす (Pseudo Labeling) ● ベースラインモデルをサクッと作り、高速に検証を回す Kaggleの 知見 ● CADDi で預かっているたくさんの図面から学習に必要な図面のみを集めたい ● アノテーションの工数削減のためプレアノテーションを実施したい ● 一度のアノテーションで欲しいラベルが全て集まるとは限らない 実務の 課題 Pseudo Labeling の経験やモデル作成の速さは アノテーションプロセスの効率化にも活きる

Slide 17

Slide 17 text

モデリング・評価 Kaggle 実務 評価データ 評価指標 モデル 再現性 固定 精度 アンサンブルし てでも精度 自分のために 重要 変動あり 精度 速度 シンプルさも重 要 チームの運用 のために重要 変動する事業状況に追従し、チーム全体でプロダクトとしての性能要求 (精度+α)を満たすこと、運用まで見据えたモデリングが重要

Slide 18

Slide 18 text

推論コード作成 ● local で学習して、kaggle notebook で推論 ● 学習と推論で前処理を揃える (CV 通りのスコアがでるよう過不足なく ) ● 環境差分への配慮 (Kaggle Docker の利用) Kaggleの 知見 ● 未知データに対して検証時と同様の精度を担保したい ● 運用を見据えたコード品質 ○ 単体テスト、型ヒント、静的解析 ○ ロギング、例外処理 ● コンテナ化 実務の 課題 Code Competition の普及、学習と推論を別環境でやる経験値は身に付く

Slide 19

Slide 19 text

運用 CADDi の ML チームで実際に見ているダッシュボード (抜粋) 他にも、レイテンシ, レプリカ数, レスポンス数 なども追っている デプロイしてからが本番 安定して顧客価値を届けるために日々挙動を確認 もしもの時は迅速に対応する

Slide 20

Slide 20 text

● データを集める工夫が面白い ○ データセントリックなアプローチ ○ プレアノテーション ● 精度だけじゃないモデル評価 ○ 精度はもちろん、コストやレイテンシとのバランスも大事 ○ どの関数で何秒かかっているのかとかも計測 ● 運用が大事 ○ デプロイしてからが価値提供の本番 ○ バグを産みにくくするためコード品質向上の徹底 ○ 迅速な不具合対応のためのモニタリング CADDi の ML チームでの学び

Slide 21

Slide 21 text

まとめ

Slide 22

Slide 22 text

● 図面ドメインは解くべき課題、取れるアプローチが多い ● CADDi での ML モデル開発タスクの取り組み方を例に、どのように Kaggle で培っ た経験が活きるかをお話しした ● Kaggle と異なる視点での機械学習モデルの開発運用は楽しい まとめ