2024-09-05 機械学習勉強会
今週のTOPIC[model] TB-OCR: an end-to-end OCR model handling text, math latex, and markdown formats all at once[blog] NewsPicksに推薦システムを本番導入する上で一番優先すべきだったこと[OSS] kotaemon: An open-source clean & customizable RAG UI for chatting with your documents. Built with both end users and developers in mind.[demo] Introducing Claude for EnterpriseNeovimでCodebase Answers![blog] Multimodal Large Language Modelを画像認識タスクへの適用[blog] 8年間の進化!CARTA MARKETING FIRMが機械学習基盤を刷新した理由とその成果[slide] LLMに日本語テキストを学習させる意義[blog] Run your AI inference applications on Cloud Run with NVIDIA GPUsRTMDet: An Empirical Study of Designing Real-Time Object Detectors0. 概要1. イントロ2. 関連研究効果的なアーキテクチャラベル割り当てInstance SegmentationRotated Object Detection3. 手法モデル(3.1, 3.2)トレーニング戦略 (3.3)4. 実験結果訓練結果5. 結論
今週のTOPIC
※ [論文] [blog] など何に関するTOPICなのかパッと見で分かるようにしましょう。
出典を埋め込みURLにしましょう。
@Naoto Shimakoshi
[model] TB-OCR: an end-to-end OCR model handling text, math latex, and markdown formats all at once
- テキストブロックを入力とし、MarkDownを出力するモデル。(MITライセンス)
- 4bitで実行すると、ロードに~2.8GBのVRAMしか必要とせず、ほとんど劣化がない。
- モデルはPhi-3.5-visionを用いて実装されている。
- 実際にはフルページに対して実行することは期待されていないので、同じ作者のTFT-IDを使って図表やテキストブロックを見つけ、それに対して実行するような設計になっている。
@Yuya Matsumura
[blog] NewsPicksに推薦システムを本番導入する上で一番優先すべきだったこと
- NewsPicks記事推薦機能における事例
- CF(協調フィルタリング)ベースをCB(内容ベースフィルタリング)に置き換えたらCTR改善できたよーという話とそこで学んだことについて紹介。
- 賞味期限が短いかつ質の高い構造化されたアイテム情報が得られるニュース推薦においてはCBが強いというのはよく言われる話。実際の事例が多いわけでないので面白い。
- オフライン評価が難しいので、人力での定性評価をもとにオンラインに出す意思決定をしたというのは素敵だと思った。
@Tomoaki Kitaoka
[OSS] kotaemon: An open-source clean & customizable RAG UI for chatting with your documents. Built with both end users and developers in mind.
@Yuta Kamikawa
[demo] Introducing Claude for Enterprise
- Claude Enterpriseの発表
- SSO、アクセス制御、監査ログなど企業向けプランとして必要な機能は一通り揃っている
- コンテキスト長500KでGithubと連携が可能
- CursorのCodebase Answersみたいなことができるようになるっぽいので、Cursor使ってない勢としてはめちゃくちゃ使いたい…
NeovimでCodebase Answers!
- ‣
- リポジトリの内容をLLMが解釈しやすい形でテキストとして出力できる
- ‣
- NeovimでCopilot Chatが使えるプラグイン
gpt-repository-loaderとCopilotChatプラグインを組み合わせて、NeovimでCursorのCodebase AnswersライクなQ&Aをやってみた
@Shun Ito
[blog] Multimodal Large Language Modelを画像認識タスクへの適用
- Caddiさんのテックブログ
- Multimodal Large Language Model (MLLM)を図面の判定に使ってみる
- 画像+テキスト → テキストが出力される
- 例
- MLLMを使うことで、データ収集〜学習までの工数をスキップできてシュッと検証できるのが嬉しい
@Ryosuke Fukazawa
[blog] 8年間の進化!CARTA MARKETING FIRMが機械学習基盤を刷新した理由とその成果
CARTA MARKETING FIRMのデータサイエンスチームは、8年間にわたり機械学習基盤を進化させてきました。Luigi、AWS SageMaker、Prefectと変遷する中で、「データサイエンティストが最も付加価値を生み出す部分に集中し、時間を費やすことができる基盤」という目標に着実に近づいています。
- Luigiでは開発環境構築や運用負荷が高く、柔軟性に欠けていました。
- SageMakerではインフラ構築の複雑さやStep Functionsの制約が課題でした。
- Prefectの導入により、Pythonのみでインフラからバッチ処理まで記述可能になり、A/Bテストの実施が容易になりました。また、ログ監視の一元化により運用効率が大幅に向上しました。
この進化を通じて、データサイエンティストの生産性と施策の実験サイクルが大幅に改善されました。
8年間の利用技術遷移が伺えます。
特に直近でのPrefect導入の背景や導入後の結果考察は似たような悩みを抱えうる状況のチームにとっては参考になりそうです。「全てをPythonのエコシステム内で統一して記述できる」だけ取れば他の選択肢もありえたような気がするので、他選択肢のPros/Consをどう評価したかは少し気になりました。
Prefectを選定した理由ワークフロー管理ツールには多くの選択肢がありますが、私たちが最終的に選んだのはPrefectです。その理由は、すべてをPythonのエコシステム内で統一して記述できる点にあります。これにより、異なる技術スタックを扱う必要がなく、インフラからバッチ処理に至るまで、全工程をPythonで一貫して記述可能です。また、既存のPython関数にデコレータを追加するだけで簡単にタスクを定義でき、タスク間のパラメータ設定や複雑なワークフローの構築も直感的に行えます。さらに、データサイエンティストがフルサイクルで開発を進め、そのコードに完全なオーナーシップを持つことができる点も重要です。ゆえに、機械学習エンジニアとデータサイエンティストの役割分担が厳密でない私たちのチームにとって、Prefectは最適なツールであると判断しました。
[slide] LLMに日本語テキストを学習させる意義
4パターン35種類のLLMの日本語特有の問題に対する性能評価を通じて、日本語テキストを学習させることの効果と意義について分析したレポート
@Yosuke Yoshida
[blog] Run your AI inference applications on Cloud Run with NVIDIA GPUs
- Cloud RunのGPUサポートのプレビュー
- 利用できるGPUはNVIDIA L4のみ
- 24GB VRAM
- 現在利用できるリージョンはus-central1 のみ
- インスタンスの起動は約5秒 (その後モデルのロードに更に時間を要する)
- 料金について
- GPU 機能を使用するには を使用する必要があります。そのため、最小インスタンスはアイドル状態の場合でも全額請求されます。
- 最低でも 4 CPU と 16 GiB のメモリを使用する必要があります。
- GPU は、インスタンスのライフサイクル全体に対して課金されます。
RTMDet: An Empirical Study of Designing Real-Time Object Detectors
0. 概要
- YOLOのリアルタイム性を向上 → 高速化、軽量化
- NVIDIA3090で300FPS以上、COCOで52.8%AP
- Single-stateの物体検出モデル
- 仕組み
- グリッドに分割
- それぞれのグリッドで5つの要素を予測(中心(x, y)と幅(w)と高さ(h )と信頼度(F) を予測
- ‣
- ‣
YOLOとは
- 動的ラベル割り当て時にSoftラベル(後述)
- YOLOが対応していなかったタスクに対応
- Instance segmentation
- Rotated object detection
Ch. 9 - Object detection and segmentation. (n.d.). https://manipulation.csail.mit.edu/segmentation.html
Zhang, L., Wang, H., Wang, L., Pan, C., Liu, Q., & Wang, X. (2021). Constraint loss for rotated object detection in remote sensing images. Remote Sensing, 13(21), 4291. https://doi.org/10.3390/rs13214291
Abstract
In this paper, we aim to design an efficient real-time object detector that exceeds the YOLO series and is easily extensible for many object recognition tasks such as instance segmentation and rotated object detection. To obtain a more efficient model architecture, we explore an architecture that has compatible capacities in the backbone and neck, constructed by a basic building block that consists of large-kernel depth-wise convolutions. We further introduce soft labels when calculating matching costs in the dynamic label assignment to improve accuracy. Together with better training techniques, the resulting object detector, named RTMDet, achieves 52.8% AP on COCO with 300+ FPS on an NVIDIA 3090 GPU, outperforming the current mainstream industrial detectors. RTMDet achieves the best parameter-accuracy trade-off with tiny/small/medium/large/extra-large model sizes for various application scenarios, and obtains new state-ofthe-art performance on real-time instance segmentation and rotated object detection. We hope the experimental results can provide new insights into designing versatile real-time object detectors for many object recognition tasks. Code and models are released at https://github.com/open-mmlab/mmdetection/tree/3.x/configs/rtmdet
Abstract(翻訳)
本論文では、YOLOシリーズを超える効率的なリアルタイム物体検出器を設計することを目的とし、インスタンス分割や回転物体検出などの多くの物体認識タスクに対して容易に拡張可能である。より効率的なモデルアーキテクチャを得るために、大カーネルの深さ方向の畳み込みからなる基本構成ブロックによって構築される、バックボーンとネックに互換性のある能力を持つアーキテクチャを探索する。さらに、動的ラベル割り当てにおいてマッチングコストを計算する際にソフトラベルを導入し、精度を向上させる。RTMDetと名付けられたこの物体検出器は、より優れた学習技術とともに、NVIDIA 3090 GPU上で、COCOにおいて52.8%のAPを300以上のFPSで達成し、現在主流の産業用検出器を凌駕している。RTMDetは、様々なアプリケーションシナリオにおいて、極小/小/中/大/超大のモデルサイズで最良のパラメータと精度のトレードオフを達成し、リアルタイムのインスタンス分割と回転物体検出で新たな最先端性能を得る。この実験結果が、多くの物体認識タスクに対応する汎用的なリアルタイム物体検出器の設計に新たな知見を与えることを期待している。コードとモデルは https://github.com/open-mmlab/mmdetection/tree/3.x/configs/rtmdet で公開されている。
1. イントロ
- YOLOの精度を向上させ、高速化する手法として、RTMDetというモデルを提案
- Instance segmentationとRotated object detectionの2つのタスクに対応可能に
- large-kernel depth-wise convolutionsというレイヤーに変更
- Softラベルによる動的ラベル割り当て
- 高精度を保ちつつ高速化した方法
- large-kernel depth-wise convolution
- → Backbone and Neck
- ‣
- CNNsと、ViTsやSwin Transformerの精度のギャップは、受容野の大きさによって生まれる(ViTsやSwin Transformer は大きいので精度が良い)のではないかという仮説から生まれた、CNNの計算量(FLOPs)を抑えたまま、大きなカーネルを実現するための手法を提案する論文
- better optimization with soft labels in the dynamic label assignment
そのほかにやったこと
- Data augmentations
- Optimization
- Training schedules
- Dynamic label assignment strategies
- 結果
- モデルサイズと精度のトレードオフで優れている
- Instance segmentation: 10%ほどの追加パラメーターで実装
- Rotated object detection: Box regression 層の次元を4から5にするだけ(角度予測を追加)
2. 関連研究
効果的なアーキテクチャ
- アンカーベース vs アンカーフリー
- アンカーベース: グリッドごとに物体を含むか予測
- アンカーフリー: グリッドなどを使わず予測。シンプルで早くなることが多い
- ワンステージ vs ツーステージ
- ワンステージ: スピードで勝ることが多い
- ツーステージ: 大雑把に検出してから、きれいで正確な値をもう1度予測する
- モデル訓練後の Re-Parameterization
- 複数の並列で並んでいる層を統合して1つに
- ‣
ラベル割り当て
- BinaryラベルからSoftラベルに
- 先駆的研究として、IoUを使ってマッチしているか検証する方法がある
- その後、Hungarian Assignment にインスパイアを受けた動的ラベル割り当て
- 参考:
- ‣
- ‣
- 損失関数をマッチングに使うこれまでの方法と異なり、Softラベルをマッチングに使う。
- マッチング結果の良い結果と悪い結果の差を増やし、訓練の安定さを増し、収縮性を速くするため
- (1) Classification コスト、Regressionコスト、Soft center regionコストを全ての総和をコストとして扱う
- (2) Softラベルを用いてコストを計算する。
- (3) GIoUではなく、IoUの対数をコストとして用いる。
- (4) fixed centerではなくsoft center regionコストを用いる。
Instance Segmentation
- 手法
- Mask分類: マスクを直接予測
- Top-Down Approach
- 従来
- 同じクラスに属する複数のオブジェクトを区別することは難しかった。
- 活用(論文外も参考)
- 自動運転
- 医療画像
- 監視
- 人数の検出
- 渋滞の検出
- リテール分析
Rotated Object Detection
- 活用(論文外も参考)
- 航空画像認識
- 人を写す写真の場合、人の向きは大体一緒
- しかし、航空画像だと、建物や車の向きのバリエーションも多い。また、細長いオブジェクトだと、bbox内のオブジェクトがない領域が大きくなり過ぎてしまうことがある。
- 製造業
- 工場のコンベヤーベルト上を流れる製品の向き
Howe, J. (2022, August 21). Detecting rotated objects using the NVIDIA Object Detection Toolkit | NVIDIA Technical Blog. NVIDIA Technical Blog. https://developer.nvidia.com/blog/detecting-rotated-objects-using-the-odtk/
3. 手法
モデル(3.1, 3.2)
- アーキテクチャ
- 大きな受容野 → CNNカーネルサイズを大きく
- ブロック数を減少させ、ブロックの幅は増やす。
- 共有検出ヘッド
- 各スケールでヘッドを共有することで、全体のパラメーター数を減少
- そのために異なるバッチ正規化層を追加
トレーニング戦略 (3.3)
- Soft labels in the dynamic label assignment
- Binaryラベルではなく、Softラベルを使うことで、ノイズを回避できた。
The soft classification cost in assignment not only reweights the matching costs with different regression qualities but also avoids the noisy and unstable matching caused by binary labels.
- 2段階のdata augmentation
- 違い
- 2に がない
- 1の は (1280, 1280) だが2は (640, 640)
- 2に がない
mmdetでconfigから指定できる。
1段階目:
2段階目:
‣
‣
training stage 1から2に切り替え
4. 実験結果
訓練
- Object detection と Instance segmentation
- COCO dataset [48]
- train: 118K images in the train2017
- val: 5k images in the val2017
- Input size: 640 x 640
- 8 NVIDIA A100 GPUs
- Rotated object detection
- DOTA dataset
- 2.8Kの航空画像(aerial images)
- 188K instances obtained from different sensors with multiple resolutions.
- Input size: 1024 x 1024
- GPU
- Large Model: 2 NVIDIA V100 GPUs
- それ以外: 1 NVIDIA V100 GPU
結果
Object detection
Table 2. Comparison of RTMDet with previous practices on the number of parameters, FLOPS, latency, and accuracy on COCO val2017 set. For a fair comparison, all models are trained for 300 epochs without using extra detection data or knowledge distillation. The inference speeds of all models are measured in the same environment. (LB) means LetterBox resize proposed in [25]. The results of the proposed RTMDet are marked in gray. The best results are in bold
- TRMDet-tiny: 同様のサイズのモデルより5ポイント AP が高い
Instance segmentation
- RTMDet-Ins-x: 44.6% mask AP
- YOLOv5-seg-x を 3.2 ポイント上回る。
Rotated object detection
- RTMDet-R-l: 81.33% mAP (Multi-scale training)
- DOTA-v1.0の新記録
それぞれの手法がどれだけ精度を上げたか
YOLOX-sを元に検証
5. 結論
- RTMDetとは、YOLOをベースに精度を維持したまま高速化を実現したモデル。
- Instance SegmentationとRotated object detection
- とくに効果があった手法として
- 新しいアーキテクチャ (+1.2)
- large-kernel depth-wise convolution
- ラベル割り当てと損失関数を変更 (+1.1)
- Softラベル
- 動的ラベル割り当て
- Data augmentationsの改善 (+1.3)
- CachedMosaic
- CachedMixUp