高橋かずひとのプログラミング、その他、備忘録。

日々調べてたことや、作ってみたものをメモしているブログ。 お決まりの断り文句ですが、このブログに書かれている内容は個人の見解であり、所属する組織の公式見解ではありません。チラ裏。

Florence 2 を Colaboratory でお試し🔍

Microsoft が 公開している軽量VLMのFlorence 2をColaboratoryで味見しています。

Florence 2 は以下のようなタスクが実行できるモデルです。
一般的にVLMで言う、フリーワードでのプロンプトではなく、タスクに応じたプロンプトの指定が必要です。

  • CAPTION:キャプション
  • DETAILED_CAPTION:詳細なキャプション
  • MORE_DETAILED_CAPTION:より詳細なキャプション
  • OD:物体検出
  • DENSE_REGION_CAPTION:高密度領域キャプション
  • REGION_PROPOSAL:領域提案
  • CAPTION_TO_PHRASE_GROUNDING:キャプションからフレーズへの接地
  • OPEN_VOCABULARY_DETECTION:オープンボキャブラリー物体検出
  • REFERRING_EXPRESSION_SEGMENTATION:参照セグメンテーション
  • REGION_TO_SEGMENTATION:領域指定セグメンテーション
  • REGION_TO_CATEGORY:領域→カテゴリー
  • REGION_TO_DESCRIPTION:領域→説明
  • OCR:単純OCR
  • OCR_WITH_REGION:領域検出OCR

タスクにもよりますが、T4 GPUで数百ms~数秒程度で推論が完了します。
精度はどのタスクも結構頑張っている感じがします。
用途によっては全然使えるレベルです。

あくまで個人的な感想ですが、、、以下みたいな印象です。

  • 物体検出系(物体検出も詳細キャプション付き物体検出も)は結構使えそう
  • セグメンテーション系は精度が今ひとつだけど、結果が座標列で返ってくるのはありがたい
    • 領域指定セグメンテーションのほうが精度期待できるので、他の仕組みと組み合わせる?
  • キャプション系は速いけど、フォーマット指定できないから、今どきの他のLLMを考えると使い勝手が今ひとつ
  • OCRは別のOSSとかサービス使うかな

 

処理時間はタスクによってマチマチです。

 

今回試したノートブックは以下にコミットしています。
上記で上げたタスクが一通り実行できます。
また、T4 GPUでの処理時間目安をREADMEにまとめています👻

github.com