機械学習を活用した災害対応:afetharita プロジェクト
2023年2月6日にトルコ南東部を襲った地震を受けて、ボランティアのグループが afetharita(災害マップ)を開発しました。このアプリケーションは、構造化されていないソーシャルメディアの投稿を実用的なデータに変換することで、捜索救助チームが生存者を特定できるよう支援することを目的としています。この取り組みは、極めて限られた時間の中で、プロトタイピング、協働、そして命を救う機械学習ツールのデプロイを行うために Hugging Face エコシステムを活用しました。
ソーシャルメディアからの生存者情報抽出
ボランティアは、スクリーンショットやツイートを構造化データ(名前、電話番号、住所など)に変換するパイプラインを構築し、これらの情報を当局に提供しました。
OCR と情報抽出
テキストメッセージやツイートのスクリーンショットを処理するために、チームは光学文字認識(OCR)に easyocr、ユーザーインターフェースに Gradio を使用したアプリケーションを実装しました。抽出されたテキストは、微調整されたトランスフォーマーベースの固有表現抽出(NER)モデルで解析され、重要な個人情報が特定されました。
住所抽出とジオコーディング
テキストベースの救助要請に対して、チームはトークン分類のベースモデルとして bert-base-turkish-cased を使用した住所抽出モデルを開発しました。ワークフローは以下のように機能しました:
- Extraction: NER モデルが生のツイートから住所を抽出しました。
- Geocoding: 抽出された住所はジオコーディング API に送られ、経度と緯度が取得されました。
- Visualization: 位置情報データがフロントエンドの地図に表示され、救助チームの指針となりました。
DevOps の負荷を最小限に抑えるため、チームはモデル提供に Hugging Face Inference API を使用し、手動での Docker イメージ作成やクラウドインスタンスのデプロイが不要となりました。
生存者のニーズに対するインテント分類
具体的なニーズ(シェルター、食料、物流など)を特定するために、チームは複数のアプローチを試みました:
- Zero-Shot and Few-Shot Learning: 初期テストでは
xlm-roberta-large-xnliやconvbert-base-turkish-mc4-cased-allnli_trといったオープンソースの NLI モデルを使用しました。NLI モデルは生成モデルに比べて候補ラベルの推論が可能で、モデルがラベルを「作り出す」リスクを回避できるため、当初は優先されました。 - Fine-Tuning: 最終的にチームは BERT モデルを微調整し、
bert-base-turkish-uncasedとbert-base-turkish-128k-casedがbert-base-turkish-casedよりも性能が優れていることを確認しました。 - Optimization: クラス不均衡のため、チームは偽陰性の削減を優先し、リコールと F1 スコアに注力しました。
deprem-clf-v1という特定のメタデータタグを用いてモデルをベンチマークする Hugging Face Space を作成し、性能をランク付けし、ラベルごとの最適な閾値を決定しました。
アクティブラーニングと LLM
NER モデルを洗練させるために、チームは Argilla と Gradio を使用して、ユーザーが出力を正しい、間違っている、または曖昧とフラグ付けできるクラウドソーシングラベリングインターフェースを作成しました。さらに、別のチームはプロンプトエンジニアリングを通じて生成モデルを活用し、自由テキストとして細分化されたニーズを抽出しました。LLM を用いた少数ショットプロンプトは、新たなラベル付きデータを必要とせずに急速なデータドリフトに適応するのに非常に効果的であることが指摘されました。
被害評価のためのリモートセンシング
電力や安定したモバイルネットワークが不足している状況を克服するため、ボランティアは衛星画像を用いて建物やインフラの被害を評価しました。
衛星データの収集と処理
画像は Planet Labs、Maxar、Copernicus Open Access Hub から取得されました。トレーニングを容易にするため、1080x1080 の衛星画像は 640x640 のチャンクに切り取られました。
モデルのデプロイ
チームは建物検出とセマンティックセグメンテーションのために複数のモデルを微調整しました:
- Object Detection: 建物検出には YOLOv5、YOLOv8、EfficientNet が使用されました。
- Semantic Segmentation: 建物のセマンティックセグメンテーションには
SegFormerモデルが使用されました。
これらのアプリケーションは Hugging Face Spaces としてデプロイされました。Co-One などの企業と協力し、no damage、destroyed、damaged、damaged facility、undamaged facility といったラベルを含む詳細なアノテーション作業を行い、将来のグローバル災害対応のために大規模なオープンソースデータセットを公開することを目指しました。
MLOps と協働インフラストラクチャ
デプロイの迅速さは Hugging Face Hub とその統合エコシステムによって実現されました:
- Collaboration: 組織アカウントにより、ボランティアはプルリクエストを通じて協働できました。
- CI/CD: CI ボットが一時的な環境を提供し、プルリクエストの変更を Hugging Face Spaces でプレビューできました。
- Infrastructure: Hugging Face は GPU の助成金と追加の Inference API レプリカを提供し、アプリケーションが高トラフィック下でも堅牢に動作し、ダウンタイムを回避できるようにしました。