2024-11-12 機械学習勉強会
今週のTOPIC[slide] [IBIS2024 ビジネスと機械学習] 近年のData-Centricな 自動運転AI開発[slide] 精度を無視しない推薦多様化の評価指標[repository] Next.js AI chatbot template 3.0[repository]Surya: OCR, layout analysis, reading order, table recognition in 90+ language[slide] RAGのためのビジネス文書解析技術[論文] ADOPT: Modified Adam Can Converge with Any β2 with the Optimal Rate[blog] Slurm vs Kubernetes: Which to choose for your ML workloads | by Panu Koskela | Nebius | MediumメインTOPICPP-StructureV2: A Stronger Document Analysis System概要IntroductionImprovement StrategiesImage Direction Correction ModuleLayout AnalysisTable RecognitionExperimentsデータセット実験結果感想
今週のTOPIC
@Naoto Shimakoshi
[slide] [IBIS2024 ビジネスと機械学習] 近年のData-Centricな 自動運転AI開発
- TuringのIBIS2024における発表資料
- E2Eの自動運転モデルの先行研究などもまとまっていて、概観が分かる。
- 基本的に、Multiカメラの情報からBEV (Bird’s Eye View) 特徴に変更 → 物体検出、マップ予測、運動予測、行動計画、などを様々なQuery, Key, Valueで行うという流れっぽい。
- 実際に上記のようなモデルを学習するために必要なハードウェアや泥臭さなども紹介。
- データを収集し、DataValidationなども行っている。分析やデータ収集のための可視化ツールなども開発。
- 実際にデータを集めて、データを増やしていくと定性的にも定量的にも改善している。
- 今後の課題として、アノテーションコストが高いことからオートラベリングや能動学習の必要性などを挙げている。
@Yuya Matsumura
[slide] 精度を無視しない推薦多様化の評価指標
- レコメンドにおいて重要な「多様性」の評価方法の問題を指摘し、新しい評価指標を提案している論文
- 従来の多様性の評価指標は、多様性と正確性を両立できていない。トレードオフがある。
- レコメンド結果全体(左側)で評価した際に多様性が高くとも、効果的なアイテム群(実際に消費されたアイテム、正解データ、右側)での多様性が高くない。
- 正確性を上げる、つまり正解データをレコメンドするにしてもその中でも多様性を上げたいというイメージ。
- ユーザーが興味を持たないところで多様性上げまくっても意味ないよねというイメージ
- 正確性が著しく低いランダム推薦でも多様性が高くなる。
- 既存の多様性を重視したレコメンド手法は多様性観点の工夫が特にない(正確性重視の)手法と比べて、全体で見ると多様性が向上しているが、効果的なアイテム群に限定するとむしろ多様性が悪化している。
- 感想
- 効果的なアイテム群に限定した場合、精度100%なレコメンドができた際に多様性指標も最大値を取ることになるため、正確性重視な手法のほうが多様性で見ても勝るのはそりゃそうな気もしなくもない?
- ただ、完璧なレコメンドができないという前提で多様性ガン無視して正確性を上げるというアプローチもできるので、シンプルにLightGCNがえらいのか。
- 正確性重視の通常の推薦結果にランダムにアイテムを混ぜ込んだら、正確性も多様性も勝利してしまった。
- 効果的でない推薦の寄与を減らす多様性指標を提案(3パターン)
- シンプルに、効果的でない推薦の多様性に割引係数かける感じ
- 前提、正解以外の多様性に意味がないとは言っていない。そっちが重視されすぎているのでバランシングしたいというお気持ち。
- 推薦結果全体での評価に適応してみたところ、効果的でない推薦で(不当に)稼いでいた多様性向上分の抑制を確認
- 精度と多様性のトレードオフをある程度抑えた評価ができていそう。
@Tomoaki Kitaoka
[repository]Surya: OCR, layout analysis, reading order, table recognition in 90+ language
- 現在のオープンソース最先端モデルであるTable Transformerを上回る性能を実現するTable Recognitionツール
- 表の行、列、セルを認識
- 複雑なレイアウトや回転した表にも対応
- 多言語をサポート
- ローカルで動作
ベンチマーク
OCR
- tesseract
Model | Time per page (s) | Avg similarity (⬆) |
surya | .62 | 0.97 |
tesseract | .45 | 0.88 |
- Google Cloud Vision
Text line detection
Model | Time (s) | Time per page (s) | precision | recall |
surya | 50.2099 | 0.196133 | 0.821061 | 0.956556 |
tesseract | 74.4546 | 0.290838 | 0.631498 | 0.997694 |
Layout analysis
Layout Type | precision | recall |
Image | 0.97 | 0.96 |
Table | 0.99 | 0.99 |
Text | 0.9 | 0.97 |
Title | 0.94 | 0.88 |
- 精度:
- 画像: 適合率0.97、再現率0.96
- 表: 適合率0.99、再現率0.99
- テキスト: 適合率0.90、再現率0.97
- タイトル: 適合率0.94、再現率0.88
- 速度: 画像あたり約0.4秒(GPU使用)で処理。
Reading Order
- 平均精度: 75%を達成。
- 速度: 画像あたり約0.14秒(A6000 GPU使用)で処理。
Table Recognition
Model | Row Intersection | Col Intersection | Time Per Image |
Surya | 0.97 | 0.93 | 0.03 |
Table transformer | 0.72 | 0.84 | 0.02 |
tabled
VikParuchuri • Updated Nov 18, 2024
- tabledではsuryaで検知したテーブルデータをcsvに書き起こすことが可能
Characteristic | Population | Change from 2016 to 2060 | ||||||
2016 | 2020 | 2030 | 2040 | 2050 | 2060 | Number | Percent | |
Total population | 323.1 | 332.6 | 355.1 | 373.5 | 388.9 | 404.5 | 81.4 | 25.2 |
Under 18 years | 73.6 | 74.0 | 75.7 | 77.1 | 78.2 | 80.1 | 6.5 | 8.8 |
18 to 44 years | 116.0 | 119.2 | 125.0 | 126.4 | 129.6 | 132.7 | 16.7 | 14.4 |
45 to 64 years | 84.3 | 83.4 | 81.3 | 89.1 | 95.4 | 97.0 | 12.7 | 15.1 |
65 years and over | 49.2 | 56.1 | 73.1 | 80.8 | 85.7 | 94.7 | 45.4 | 92.3 |
85 years and over | 6.4 | 6.7 | 9.1 | 14.4 | 18.6 | 19.0 | 12.6 | 198.1 |
100 years and over | 0.1 | 0.1 | 0.1 | 0.2 | 0.4 | 0.6 | 0.5 | 618.3 |
@Yuta Kamikawa
[slide] RAGのためのビジネス文書解析技術
- ビジネス文書ドメインに特化したRAGの精度向上についてのスライド
- RAGの精度は情報検索と生成の2つの変数を持つが、正しく検索できればおそらく生成可能
- 「うまく検索」するために、PDFやスライドなど様々なドキュメントを適切にパース・構造化することが重要
- ドキュメントのパース・構造化の手順のうちレイアウト解析にフォーカス
- ストックマーク社では、このレイアウト解析を内製しており、日本語ビジネス文書に特化したモデルを利用している
- 内製する場合のポイント
- 大量の文書画像を用いた事前学習
- 上記の事前学習に加え、合成データによる事前学習(DocLayout-YOLO)
- 日本語ビジネス文書に特化したデータセットで学習
- 汎用APIだとRAGの検索に重要な「意味のまとまり」に弱い
@Shun Ito
[論文] ADOPT: Modified Adam Can Converge with Any β2 with the Optimal Rate
- NeurIPS2024
- Adamの実装部分を置き換えるだけで使える ‣
- (既存)Adaptive gradient methods: 2次モーメントによる正規化
- (既存)Adam [Kingma and Ba, 2014]: モメンタムの導入
- (提案)ADOPT: 2次モーメントの推定量が同時刻のモメンタムと相関してしまう問題を緩和
- 2次モーメントの推定量から現在の勾配情報を取り除く
- before: 時刻 t の2次モーメントの推定量で更新
- after: 時刻 t-1 の2次モーメントの推定量で更新
- 勾配のスケーリングとモメンタムの計算順序を入れ替える
- before: モメンタム更新 → 2次モーメントで正規化
- after: 2次モーメントで正規化 → モメンタム更新
- 実験
- toy problem
- MNIST
- ablation study
- GPT-2
@Ryosuke Fukazawa
[blog] Slurm vs Kubernetes: Which to choose for your ML workloads | by Panu Koskela | Nebius | Medium
※ 記事に書いてある内容に加えて、別途調査した内容を少し添えて書いています。
- Slurm
- 特徴を一言で: 固定スケール向けでリソース利用の効率を最大化することに長けている
- アーキテクチャ: 比較的シンプル。シェルスクリプトをリソースコントロールされたジョブキューを通じて実行するというのが基本の設計であり、Slurm 自体が行うことがシンプルであるが故のこと。
- その他特徴:
- Slurm は OSS の HPC job scheduler で、世界のトップ500のスパコンのうち半数以上で使われている
- 紹介者補足: ユーザがジョブごとに必要なリソース(CPU、メモリ、GPU、実行時間など)を細かく指定できる。Linux cgroupsを用いてそれぞれのリソースコントロールを行うプラグインなんかもある https://superorbital.io/blog/managing-slurm-at-scale/
- 様々なプラグインが用意されており、ワークロードに合わせて適切なプラグインを入れると良い
- Kubernetes
- 特徴を一言で: クラウドでの自動スケーリングと自己修復が強み
- アーキテクチャ: Slurmに比べアーキテクチャはやや複雑。Webアプリケーションをワークロードとして実行するような設計になっており、オートスケール・自己修復といった高可用性を優先するから。その目的に照らし合わせてワーカーノードの管理・ネットワークの管理がSlurmに比べ複雑化していると解釈すると良い。
- その他特徴:
- Kubernetes の上に Kubeflow や Ray を展開し、MLパイプラインを構築することもできる
- キューシステムは存在していないが、追加のライブラリによってキューイング・スケジューリングする方法も存在している
メインTOPIC
PP-StructureV2: A Stronger Document Analysis System
Chenxia Li, Ruoyu Guo, Jun Zhou, Mengtao An, Yuning Du, Lingfeng Zhu, Yi Liu, Xiaoguang Hu, Dianhai Yu
2022年のBaiduの論文
Paddle-OCRに組み込まれているPP-StructureV2の論文
概要
大量の文書データは、テキスト情報のない生画像のような非構造化形式で存在する。実用的な文書画像解析システムを設計することは、有意義であるが困難な課題である。以前の研究で、我々はインテリジェント文書解析システムPP-Structureを提案した。PP-Structureの機能と性能をさらに向上させるため、本研究では2つのサブシステムを含むPP-StructureV2を提案する: レイアウト情報抽出とキー情報抽出である。第一に、画像方向補正モジュールとレイアウト復元モジュールを統合し、システムの機能を強化する。第二に、PP-StructureV2では8つの実用的なストラテジーを利用することで、より優れた性能を実現しています。レイアウト解析モデルでは、超軽量検出器PP-PicoDetと知識蒸留アルゴリズムFGDを導入し、モデルの軽量化を実現。表認識モデルでは、PP-LCNet、CSP-PAN、SLAHeadを用いて、それぞれバックボーンモジュール、特徴融合モジュール、デコーディングモジュールを最適化し、同等の推論速度で表構造の精度を6%向上させた。キー情報抽出モデルでは、視覚的特徴に依存しないLayoutXLMアーキテクチャであるVI-LayoutXLM、TB-YXソートアルゴリズム、U-DML知識抽出アルゴリズムを導入し、意味的実体認識と関係抽出タスクのHmeanをそれぞれ2.8%、9.1%改善した。
Introduction
- Document Intelligneceは近年盛んな研究テーマである。しかし、レイアウトやフォーマットの多様性、低画質なスキャン文書画像、テンプレート構造の複雑さから非常に困難なタスクである。
- Document Intelligenceの代表的なタスクは以下の3つである。
- Layout Analysis
- 本質的に文書のタイトル、段落、表、イラストといった物体を検出する物体検出タスクとみなせる。
- PP-StructureではPP-YOLOv2を用いて、GPUデバイス上でリアルタイムに動作するレイアウト解析タスクを完了させるが、CPUフレンドリーではない。
- Table Recognition
- テーブル画像を編集可能なExcel形式のファイルに変換する。
- テーブルはrowspanやcolspan、テキストタイプが様々なので難しいタスクである。
- ヒューリスティックルールに基づく手法や、Deep Learningに基づく手法がある。
- E2Eの手法は、HTML形式でテーブルを表現したPP-StructureのTableRec-RAREのように、Seq2Seqを採用している。
- その他にもTableMasterではDecorderで変換器を用いており、高い精度を実現しているが膨大な計算コストがかかっている。
- Key Information Extraction
- Semantic Entity Recognition (SER)と、Relation Extraction (RE)が二つのメインタスク
- LayoutLM、LayoutLMv2、LayoutXLM、XY-LayoutLMなどがあるが、これらのマルチモーダルモデルは、推論時間をあまり気にしていない。
- PP-Structureは、Layout AnaylsisやTable Recognitionなどをサポートする初めての文書解析システムだが、効率性などは考慮されておらず、改善の余地が大きい。
- そこで、PP-Structure V2を提案。
- 入力文書の画像方向を画像方向補正モジュールで補正。
- 二つのサブシステム
- レイアウト解析により、テキスト、テーブル、画像などの異なる領域に分割し、それぞれこれらの領域を認識する。例えば、テーブル領域は構造認識のためにテーブル認識モジュールに送られ、テキスト領域はテキスト認識のためにOCRエンジンに送られる。最後に、レイアウト復元モジュールを使用して、元の画像レイアウトと一致する編集可能なWordファイルに画像を復元する。
- OCRエンジンを用いてテキストコンテンツを抽出し、SERとREモジュールを用いて必要なキー情報を収集する。
Improvement Strategies
Image Direction Correction Module
- 学習データでは0度回転なことが多いため、回転した画像の精度が下がることが多かった。
- PP-StructureV2では、PaddleClasで提供されているPULC (Practical Ultra Lightweight image Classification)テキスト画像方向モデルで入力画像方向を補正する。Text Lineを用いて分類するより高い精度を達成した。
- 裏ではPP-LCNetが動いている。
- CPU環境で463 FPSで99%の精度
Layout Analysis
- 元々はPP-YOLOV2を使っていたが、より軽量なPP-PicoDetを使用し、モバイルデバイスでも優れた性能を達成。
- 画像スケールを調整することで、FGDというKnowledge Distilationを用いてモデル精度をさらに向上させた。
- PP-PicoDet
- PaddleDetectionで提供されているモジュール
- Backbone: PP-LCNet (NASで自動で見つけた構造)
- Neck: CSP-PAN
- ラベルアサイン:SimOTA (昔の勉強会参照)
- 画像サイズを640 * 640 → 800 * 608に修正。
- 精度はPP-YOLOv2に匹敵し、推論速度は11倍高速
- FGD: Focal and Global Knowledge Distillation (Yang et al. 2022)
- local feature mapとglobal feature mapに分割し、タスクもfocal distillationとglobal distillationに分割されている。
- Focal distillationは画像の前景と背景を分離し、生徒が重要なピクセルとチャンネルに集中することを強制。
- Global distillationは異なるピクセル間の関係を再構築 (?)。Focal Distillationのグローバル情報の欠如を補う。
- 最終的にLCNet2.5x based PP-PicoDet → LCNet1.0x based PP-PicoDetへの蒸留で、0.5%の精度向上が見られた。教師より0.2%だけしか精度が低くないのに、100倍速いモデルとなった。
Table Recognition
PP-StructureではRARE(shi et al, 2016)に基づくTableRec-RARE (Du et al. 2021b)を提案。モデル出力はテーブル構造のHTML表現。PP-StructureV2ではSLANet (Structure Location Alignment Network)を提案。
- PP-LCNet: CPU-friendly Lightweight Backbone
- PP-LCNet (Cui et al. 2021a)は軽量なCPUネットワーク。
- SSLDという手法で、ImageNet上で事前に訓練
- CSP-PAN: Lightweight Multi-level Feature Fusion Module
- CSP-PAN (Yu et al. 2021)の出力チャンネルを128 → 96に減らしたものを利用
- SLAHead: Structure and Location Alignment Module
- 各ステップの出力をSDM (Structure Decode Module)とCLDM (Cell Location Decode Module)に入力し、現在のステップのトークンと座標を連結し、全セルのHTMLテーブル表現と座標を取得。
- Image-based table recognition: data, model, and evaluation (Xu et al, 2021)より引用
どのようなTokenをDecodeするかのイメージ
- Merge Token
- TableRec-RAREでは、<td> と </td>の二つのトークンを使って、セルが被っていないことを表現していたが、セルを多く持つ表に対してはtoken長が長くなる問題があった。
- Table Master (Ye et al. 2021)に触発され、<td></td>を一つのtokenとして扱うようにした。
Layout Recovery
- 編集可能なWordファイルに画像を復元する
Key Information Extraction
- PP-StructureV2では視覚特徴に依存しないLayoutXLM構造を設計。
- TB-YX sortアルゴリズムとU-DMLの知識蒸留を用いた
- VI-LayoutXLM: Visual-feature Independent LayoutXLM
- LaytoutXLM、LayoutLMv2がベース
- Visual BackboneはResNet_x101_64x4dを用いており、この部分が時間がかかるとして削除
- LayoutXLMはSERとREの精度は下がらず、LayoutLMv2の場合はSERはわずか2.1%だけ減少し、モデルサイズは340MB小さくなった。
- TB-YX
- 閾値ベースのソートアルゴリズム。
- KIEタスクではテキストの読み順が重要。
- 従来のモデルでは、異なるOCRエンジンから異なる読み順でデータが与えられることが考慮されていなかった。
- 一般的には、OCRの結果を上から下へ、そして検出されたBBoxの絶対座標 (YX)に従って左から右へソートする。これだと不安定になってしまい、以下に示すように読み順と一致しないことがある。(YX)
- これに対応するために、オフセットの閾値を導入して、その閾値より下の範囲にある文字列はXを優先してソートを行う。(TB-YX)
- U-DML:Unified-Deep Mutual Learning
- これはPP-OCRv2 (Du et al. 2021a)で提案された蒸留法で、モデルサイズを大きくすることなく効果的に精度を向上させることができる。
- これを使うことで、SERとREタスクのHmeanをそれぞれ0.6%と5.1%向上させた。
Experiments
データセット
Layout Analysis
- PubLayNet:335,703枚の学習画像、11,245枚の検証画像、11,405枚のテスト画像を含む。テキスト、タイトル、リスト、表、図などのドキュメントレイアウト要素がカバー
- CDLA:中国のデータセット。5,000枚の検証画像、1,000枚のテスト画像。広告テキスト、タイトル、図、図キャプション、表、表キャプション、ヘッダー、フッター、参考文献、方程式などの文書要素をカバー。
- 評価指標はMAP
Table Recognition
- PubTabNet:科学論文のXML表現とPDF表現をマッチングして生成された、500,777枚のトレーニング画像、9,115枚の検証画像、9,138枚のテスト画像。
- 評価指標として、新しいTree-Edit-Distance-based Similarity (TEDS)を提案。テーブル構造認識とOCRのミスの両方を考慮することができる。OCRの違いによる誤差を考慮するために、OCRエラーを無視したTEDS-Structも見る。
- Tableは<thead>と<tbody>を親ノードとみなす木構造として捉えられる。
- はTree-Edit-Distanceで、は木のノードの数。
Key Information Extraction
- XFUND:7言語(中国語、日本語、スペイン語、フランス語、イタリア語、ドイツ語、ポルトガル語)のキーバリューペアを持つ人間がラベル付けしたフォームを含む多言語フォーム理解ベンチマークデータセット。今回は中国語の149枚の学習画像と50枚の検証画像のみを使用。
- FUNSD:ノイズの多いスキャン文書の形式理解に使用されるデータセット。149枚の学習画像と50枚の検証画像。
- 評価指標としてHmeanを用いる。
全体的に、最大で8*32GB V100 GPUくらいの規模での実験。
実験結果
Layout Analysis
- モデルサイズを大幅に減らして、精度向上することに成功
- 入力画像の変更でも結構精度が変わる。
- LCNet2.5xよりは精度が若干下がるが、推論速度は2倍に向上
- OSSのlayoutparserよりも精度、速度両面で圧勝
Table Recognition
- PP-Structureで提案されているTableRec-RAREからの変更を加えたAblation Study。
- backbone:MobileNetV3ベース → PPLCNetで、推論時間を増加させることなく、精度を71.73%から74.71%に向上
- neck: CSP-PANで、精度を75.68%まで向上し、headに入る特徴マップが小さくなるため推論時間が70ms短縮。
- head: SLAHeadで75.68%から77.7%に向上
- Merge Token: Tokenを圧縮することで、TEDSの精度が向上。精度が低下しているが、これは元々のAccが500 tokenまでしか精度計算に含まれていなかったことによる。
- モデルサイズを大幅に減少させながら、最先端の手法に精度が匹敵、もしくは超えている。
- TableMasterはICDAR2021のコンペで2位を取った手法
Key Information Extraction
- VI-LayoutXLMとVI-LayoutLMv2の精度をFUNSDデータセットで実験
- 蒸留なども含めた実験
- 読み順を考慮することで大幅に精度が向上
- VIにすることで推論速度がGPUでは半分くらい。CPUでも1sec以内に返せている
- FUNSDとXFUND-zhで実験
- 全体的に精度が向上。StrucTexTはlargeモデルなので、仕方ない気もする。
感想
- システムとしてのレイテンシを上げるために、蒸留なども愚直に取り組んでいたり、画像を思い切って外してみたりと、参考になる部分が多かった。
- PaddlePaddleはOSSで色々な実装を持っていて、使い回せるところも多そうなので、使いこなしたい。