Slide 1

Slide 1 text

Pycon mini 東海(15:00~15:25) 高橋 かずひと Google Colaboratory で試すVLM

Slide 2

Slide 2 text

Name: Who am I ? 高橋かずひと Work :画像処理系プログラマ 元組み込み屋、元IoT屋 Other:インディーゲーム 開発のお手伝いなど @Kazuhito00 @KzhtTkhs

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

AGENDA Who am I ? 【済】自己紹介 Prerequisites 前提、実行環境や 取り扱うモデルについて What is VLM? VLMとは? Introducing some VLM models いくつかのVLMモデルの 紹介と動作例 Summary まとめ 01 02 04 05 03

Slide 5

Slide 5 text

02 Prerequisites 前提、実行環境や取り扱うモデルについて

Slide 6

Slide 6 text

Prerequisites 前提、実行環境や取り扱うモデルについて トーク対象者:初級者~ 実行環境 :Google Colaboratory ランタイム :CPU or T4 GPU 注意点 :この分野も日進月歩なので……

Slide 7

Slide 7 text

Prerequisites 前提、実行環境や取り扱うモデルについて トーク対象者:初級者~ 実行環境 :Google Colaboratory ランタイム :CPU or T4 GPU 注意点 :この分野も日進月歩なので…… ・サンプルは基本的(と思ってる)な構文のみを使用 ・上から順に実行すれば動かせるノートブックを公開 ・VLMの詳しい動作原理などは説明対象外 ・VLMを試してみたいけど、あまりお金かけずにとりあえず触ってみたい方 https://github.com/Kazuhito00/Pycon-mini-Tokai-2024-VLM-Colaboratory-Sample

Slide 8

Slide 8 text

Prerequisites 前提、実行環境や取り扱うモデルについて トーク対象者:初級者~ 実行環境 :Google Colaboratory ランタイム :CPU or T4 GPU 注意点 :この分野も日進月歩なので…… ・Googleが提供するクラウドベースのJupyter Notebook環境 ※要Googleアカウント ・無料でも、ある程度のGPU実行が可能

Slide 9

Slide 9 text

Prerequisites 前提、実行環境や取り扱うモデルについて トーク対象者:初級者~ 実行環境 :Google Colaboratory ランタイム :CPU or T4 GPU 注意点 :この分野も日進月歩なので…… ・無償(Pay As You Go)プランで使用できるランタイム ※もしサンプルがミスってて、無償プランで動作しなかったらコッソリ教えてください ・上記ランタイムで動作可能なVLMをご紹介

Slide 10

Slide 10 text

Prerequisites 前提、実行環境や取り扱うモデルについて トーク対象者:初級者~ 実行環境 :Google Colaboratory ランタイム :CPU or T4 GPU 注意点(言い訳など) :この分野も日進月歩なので…… ・Colaboratoryで動作するモデルを網羅した資料ではないです ・昨日動いていたものが色々な理由で動かなくなってるかも ※もし動かなかったらコッソリ教えてください…… ・「もっと良いモデルあるよ!」知っている方は皆に教えてください

Slide 11

Slide 11 text

03 What is VLM? VLMとは?

Slide 12

Slide 12 text

What is VLM? VLMとは? VLM(Vision Language Model)は、 ・テキスト情報(言語) ・視覚情報(画像や映像) を複合的に処理できるモデル もの凄くざっくり言うと LLM(Large Language Model)に 画像を入力できるようにしたり、 出力できるようにしたもの

Slide 13

Slide 13 text

What is VLM? VLMとは? VLMをイメージした 画像を生成して VLMの概念がカバーする範囲は幅広く… ・テキスト → 画像(画像生成) ※今回は扱いません 追記(口頭補足等):資料作成時に失念していました。画像生成も広義の意味でのVLMですが、 本トークでは、意向に説明するキャプションやVQAをメインに取り扱います。

Slide 14

Slide 14 text

What is VLM? VLMとは? 画像では、筋肉が非常に発達した男性 が登場しており、特に腹筋が際立って います。彼のポージングと豪華な椅子、 王冠とマントの組み合わせが、力強さ と威厳を同時に演出しています。しか し、その一方で手に持っているシェイ カーや背景のアートが全体に少しユー モラスな雰囲気を加えており、シリア スさと軽妙さが絶妙に融合したシーン になっています。 画像:マッチョのフリー写真素材(マッスルプラス)傲慢な王様マッチョ https://freephotomuscle.com/archives/photo/6527 VLMの概念がカバーする範囲は幅広く… ・テキスト → 画像(画像生成) ※今回は扱いません ・画像キャプション生成

Slide 15

Slide 15 text

What is VLM? VLMとは? 画像のナースが持ってい るボードには「手術室」 と書かれています。 そのため、彼女は手術室 へ向かいたいと考えてい るようです。 ナースの行きたい場所は? 画像:看護師のフリー写真素材(スキマナース)ヒッチハイクする看護師 https://nurse-web.jp/photo/archives/338 VLMの概念がカバーする範囲は幅広く… ・テキスト → 画像(画像生成) ※今回は扱いません ・画像キャプション生成 ・視覚質問応答(VQA) ・etc

Slide 16

Slide 16 text

追記(口頭補足等):個人的な印象ですが、VQAが一般の方にも使えるようになったのは、 OpenAIのChatGPT 4V(2023年9月頃)の功績が大きいと思っています。

Slide 17

Slide 17 text

画像:ぱくたそ トゲトゲのサボテンとハリネズミ https://www.pakutaso.com/20190257050 post-19488.html 追記(口頭補足等):この後の発表をひっくり返すような発言ですが、そもそも「APIにお金を 払えるよ」と言う方は、認識精度とか日本語の扱いやすさ的に、ChatGPTとかClaudeとかの APIを使用したほうが良いと思います。

Slide 18

Slide 18 text

What is VLM? VLMとは? 画像:ぱくたそ 人のいない雪道と車の痕 https://www.pakutaso.com/20200513149post-27770.html ■事例(GPT-4o-mini) 道路を撮影し、VLMで天気や道路状況を監視し、Slackへ通知 ※イメージです

Slide 19

Slide 19 text

04 Introducing some VLM models いくつかのVLMモデルの紹介と動作例

Slide 20

Slide 20 text

Introducing some VLM models いくつかのVLMモデルの紹介と動作例 ■ 軽量で高速なVLM(MobileVLM-V2) ■ 動画の認識も可能なVLM(MiniCPM-V2.6) ■ マルチタスクを扱えるVLM (Florence-2) ■ 日本語も使用可能なVLM (Qwen2-VL)

Slide 21

Slide 21 text

軽量で高速なVLM (MobileVLM-V2) ・モバイルデバイス向けVLM ・非常に高速に動作 ・モデルによってはT4 GPU でも1秒未満の処理速度 1.7B(v2):約0.7s 3B(v2) :約1s 7B(v2) :約17s ※プロンプトや画像サイズ、出力文字数によって変わるため、ご参考程度に 参考:https://github.com/Meituan-AutoML/MobileVLM

Slide 22

Slide 22 text

軽量で高速なVLM (MobileVLM-V2) 追記(口頭補足等):英語で「この画像には何が写っている?」とプロンプトを入れました 回答に「colorful hedgehogs」とあるように、もしかしたらサボテンもハリネズミと誤認 しているかも? 精度は流石にあと一歩ですが、高速に動作します。

Slide 23

Slide 23 text

動画の認識も可能なVLM (MiniCPM-V2.6) ・単一画像、複数画像、ビデオ などの画像理解が可能 ・単一画像理解では GPT-4o mini Gemini 1.5 Pro、Claude 3.5 Sonnet よりも優れる(自称) ・iPad などのエンドサイドデバイス 上での動作も想定 参考:https://github.com/OpenBMB/MiniCPM-V

Slide 24

Slide 24 text

動画の認識も可能なVLM (MiniCPM-V2.6) ・単一画像、複数画像、ビデオ などの画像理解が可能 ・単一画像理解では GPT-4o mini Gemini 1.5 Pro、Claude 3.5 Sonnet よりも優れる(自称) ・iPad などのエンドサイドデバイス 上での動作も想定 参考:https://github.com/OpenBMB/MiniCPM-V 画像:ぱくたそ テレビゲームで遊ぶ子どもたち https://www.pakutaso.com/20190310081post-20065.html 追記(口頭補足等):コントローラが上下逆なのは、わざとそのような画像を選んでいます 「もしかしたら、上下逆なことまで解説できるかも?」と思いましたが、そこまでの精度は 出ませんでした。後述しますが「細かいディティールの認識が苦手」かもしれません。

Slide 25

Slide 25 text

動画の認識も可能なVLM (MiniCPM-V2.6)

Slide 26

Slide 26 text

動画の認識も可能なVLM (MiniCPM-V2.6) 画像:ぱくたそ 急な展開で思わず反応してしまう男女 https://www.pakutaso.com/20240245033post-50463.html

Slide 27

Slide 27 text

動画の認識も可能なVLM (MiniCPM-V2.6) 画像:NHKクリエイティブ・ライブラリー コアラ初来日 https://www2.nhk.or.jp/archives/movies/?id=D0002080144_00000 追記(口頭補足等):動画認識と謳ってはいますが、正確には動画を一定フレーム毎に取り出して 画像リストにしたものを入力しています 複数画像認識の一種だと思います

Slide 28

Slide 28 text

日本語も使用可能なVLM (Qwen2-VL) ・様々な解像度と比率の画像理解 ・ビデオ理解 ※MiniCPM-V2.6よりメモリ使用量が多いため、FPS調整やサイズ調整が必要 ・携帯電話やロボットでの動作も想定 ・多言語サポート - 英語 - 中国語 - ヨーロッパ系の言語 - 日本語 - 韓国語 - アラビア語 - ベトナム語 など 参考:https://github.com/QwenLM/Qwen2-VL

Slide 29

Slide 29 text

・様々な解像度と比率の画像理解 ・ビデオ理解 ・携帯電話やロボットでの動作も想定 ・多言語サポート - 英語 - 中国語 - ヨーロッパ系の言語 - 日本語 - 韓国語 - アラビア語 - ベトナム語 など 参考:https://github.com/QwenLM/Qwen2-VL 日本語も使用可能なVLM (Qwen2-VL) 画像:ぱくたそ 成子天神下交差点前 https://www.pakutaso.com/20240848233post-52002.html

Slide 30

Slide 30 text

日本語も使用可能なVLM (Qwen2-VL) 追記(口頭補足等):回答中に日本語ではなく、中国語っぽい文字が混ざったりしていますが、 回答内容自体は良いと思います。あくまで個人的な印象ですが、日本語中国語を含む多言語を サポートするLLMやVLMは、このような事故が起きることがちょいちょいある気がします。

Slide 31

Slide 31 text

マルチタスクを扱えるVLM (Florence-2) ・様々な視覚タスクを同一モデルで 実行 - キャプション - 物体検出 - セグメンテーション - OCR など(以降のページではいくつか抜粋して紹介) ・タスクによって処理速度は異なるが T4 GPUで動作可能 ・プロンプトは特定のフォーマット のため、汎用性が少し低い 参考:https://github.com/QwenLM/Qwen2-VL

Slide 32

Slide 32 text

マルチタスクを扱えるVLM (Florence-2) 画像:ぱくたそ 雨の都市風景、 横断歩道と歩行者 https://www.pakutaso.com/20230815222post-48102.html

Slide 33

Slide 33 text

マルチタスクを扱えるVLM (Florence-2)

Slide 34

Slide 34 text

マルチタスクを扱えるVLM (Florence-2)

Slide 35

Slide 35 text

マルチタスクを扱えるVLM (Florence-2)

Slide 36

Slide 36 text

マルチタスクを扱えるVLM (Florence-2) 追記(口頭補足等):更に詳細な説明をつけた物体検出も可能

Slide 37

Slide 37 text

マルチタスクを扱えるVLM (Florence-2)

Slide 38

Slide 38 text

マルチタスクを扱えるVLM (Florence-2) 追記(口頭補足等):正直、セグメンテーションや後述のOCRは、別のOSSを使用したほうが 良いとは思います。セグメンテーションならSAM、OCRであればPaddleOCRやSuryaOCRなど。

Slide 39

Slide 39 text

マルチタスクを扱えるVLM (Florence-2) 画像:ぱくたそ パイクプレイスマーケットのエントランス https://www.pakutaso.com/20240617157medicleanse.html

Slide 40

Slide 40 text

マルチタスクを扱えるVLM (Florence-2)

Slide 41

Slide 41 text

Tips (今後の技術進歩で解消されると思いますが) VLMが苦手な認識対象や内容……

Slide 42

Slide 42 text

Tips (今後の技術進歩で解消されると思いますが) VLMが苦手な認識対象や内容…… https://zenn.dev/karaage0703/articles/5a02a0822fba8a

Slide 43

Slide 43 text

Tips (今後の技術進歩で解消されると思いますが) VLMが苦手な認識対象や内容…… 多くのチャレンジャーが他モデル(※)を試したり プロンプトチューニングを試みるも死屍累々…… ※試行されたモデルの例 ・GPT-4o ・GPT-4o-mini ・Claude 3.5 Sonnet ・Gemini 1.5 Flash ・MobileVLM v2 ・Qwen2-VL ・heron-blip-v1 ・Molmo etc

Slide 44

Slide 44 text

Tips (今後の技術進歩で解消されると思いますが) VLMが苦手な認識対象や内容…… ■ オブジェクトの絶対位置の認識 ■ 複数オブジェクト間の関係理解 ■ 細かい視覚的ディテールの認識 ※サイゼリヤの間違い探しをクリアできない とか ■ 抽象的または暗示的な概念の理解 ※美しい箇所はどこ? 画家が心情を表した箇所はどこ? とか ■ 文化的・社会的バイアス などなど

Slide 45

Slide 45 text

Tips以下の例 ・オブジェクトの絶対位置の認識 ・複数オブジェクト間の関係理解

Slide 46

Slide 46 text

Tips 位置苦手問題については、Visual promptingなどの改善案も研究 されている ■画像に対して、セマンティックセグメンテーションを行い 番号を割り当てて描画したものを入力画像にする Set-of-Mark Prompting Unleashes Extraordinary Visual Grounding in GPT-4V ■画像に対して、等間隔のグリッドとグリッド座標を 描画したものを入力画像にする Scaffolding Coordinates to Promote Vision-Language Coordination in Large Multi-Modal Models ■注視して欲しい箇所がある場合、その箇所を丸や四角で 囲んだり、矢印を描画したものを入力画像にする 追記(口頭補足等):ちなみに上記を試してもマリオを救うことは出来ませんでした

Slide 47

Slide 47 text

05 Summary まとめ

Slide 48

Slide 48 text

Summary まとめ まとめと言うほど大層な内容ではありませんが、、、 ・一般人も利用可能なVMLが登場し、1年以上が経過し Google Colaboratoryで動かせるモデルも増えてきた ・その中のいくつかを本トークでご紹介した ・物凄い勢いで発展してきているが、まだまだ苦手な 認識も結構ある → 上手くいくかどうかは、動かしてみないと分からないことも あるため、興味がある方は、今回紹介したノートブックなど 試してみると良いかも。

Slide 49

Slide 49 text

追記:当日のQ&A Q.そのスライドは何で作ったのですか? A.パワーポイントです。 Q.Colabの無償プランで動くとのことですが、ローカルのPCでも動きますか? A.今回使用しているのはT4 GPUのため、ある程度のGPUを積んだマシンであれば動くと思います。 T4 GPUのGPU RAMが16GBのため、それくらいが目安のライン? ※今回公開しているノートブックは、Colaboratoryにプリインストールされているパッケージを前提にしているため、 ノートブックはそのまま動かすことは出来ず、追加の環境構築が必要です Q.マリオの一番の死因は? A.統計を取ったわけじゃないので個人的な印象ですが、VLMの苦手内容で説明した原因が多いと思います。 相対的な位置関係が上手く把握できていないことによるクリボーへの接触や、落とし穴への落下など。 ステージの構成的にクリボーへの接触が一番かも? Q.どうやって技術を追いかけていますか? A.自分はXなどのSNSで有名な人が紹介しているものを片っ端から試している感じ。 (うまく動かなかったりしたものは即諦めて次へ) 一番イイね付いているの試すのも良いかも? 高橋が味見した後の結果でも良ければ、高橋が試した感想(良かったかも、イマイチだったかも)添えて載せてるXの投稿とか、 その試した結果は基本的にはGitHubに公開しているので、そちらを見ていただくのも良いかも。 → https://github.com/Kazuhito00/Kazuhito00/blob/master/WORKS.md#VLM Q.色々調べた結果をどこかに使うと思うのですが、調べる動機と利用先を教えてもらえますか? A.動機は趣味? 動かして凄い性能だと単純に楽しい。 本業は監視カメラとかを利用しているので、うまくハマリそうな調査結果があれば、そちらへフィードバックすることも。

Slide 50

Slide 50 text

ご清聴ありがとう ございました