【imp-v1-3b】わずか3Bの超小型MLLMでCAPTCHAを破れるのか検証してみた
WEELメディア事業部LLMリサーチャーの中田です。
画像とテキストを入力するだけで簡単に、AIに画像認識をさせることができるマルチモーダルモデル「imp-v1-3b」が公開されました。
このマルチモーダルモデルAIは小規模でありながら、高性能なんです、、、!
Xでのいいね数は、すでに650を超えており、かなり注目されています。
この記事ではimp-v1-3bの使い方や、有効性の検証まで行います。本記事を熟読することで、imp-v1-3bの凄さを実感し、GPT-4Vよりもimp-v1-3bを使いたくなるかもしれません。
ぜひ、最後までご覧ください。
imp-v1-3bの概要
imp-v1-3bは、テキストと画像の情報を一緒に扱える、小型のマルチモーダルモデルです。
このモデルを用いることで、以下のように、「入力画像に対してチャット形式での質問」ができるのです。
また、imp-v1-3bの主な特徴として、「わずか3Bのパラメータでありながら、強力な性能を持つ」という点。
小型でありながら強力なSLM Phi-2(2.7B)と、強力な画像エンコーダSigLIP(0.4B)をベースに構築され、LLaVA-v1.5学習セットで学習されています。
下表に示すように、imp-v1-3bは性能面で、「類似のモデルサイズを持つ同等モデル」を大幅に上回っています。
なお、Microsoftの最強小型テキスト生成モデルについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【Phi-2】パラメーター数が25倍のLlama-2-70Bと同等の性能を持つ、Microsoftの最強小型LLM
imp-v1-3bのライセンス
imp-v1-3bのライセンスは、Apache-2.0 licenseです。そのため、商用利用のみならず、ほぼすべての用途で利用可能です。
利用用途 | 可否 |
---|---|
商用利用 | ⭕️ |
改変 | ⭕️ |
配布 | ⭕️ |
特許使用 | ⭕️ |
私的使用 | ⭕️ |
imp-v1-3bの使い方
今回は、公式のHuggingFaceのモデルカードにあるコードを実行していきます。
まずは、以下のコードを実行して、ライブラリをインストールしましょう。
!pip install -U transformers
!pip install -q pillow accelerate einops
次に、モデルやトークナイザーのロード。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image
torch.set_default_device("cuda")
# モデルとトークナイザー
model = AutoModelForCausalLM.from_pretrained(
"MILVLG/imp-v1-3b",
torch_dtype=torch.float16,
device_map="auto",
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(
"MILVLG/imp-v1-3b",
trust_remote_code=True
)
次に、カレントディレクトリに、入力したい画像を置いてください。
そして、以下のコードを実行して、プロンプトと入力画像の準備をしましょう。
# プロンプトと画像
text = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: <image>\nDescribe the person in the image. ASSISTANT:"
image = Image.open("image.jpg")
そして、以下のコードを実行して、推論を実行。
# 推論
input_ids = tokenizer(text, return_tensors="pt").input_ids
image_tensor = model.image_preprocess(image)
output_ids = model.generate(
input_ids,
max_new_tokens=100,
images=image_tensor,
use_cache=True)[0]
print(tokenizer.decode(output_ids[input_ids.shape[1]:], skip_special_tokens=True).strip())
これで、チャットの返信がimp-v1-3bから返ってくるはずです。
ちなみに、「Imp Chat」という公式のデモページでは、ブラウザ上で簡単にimp-v1-3bとのチャットが可能です。
imp-v1-3bを動かすのに必要なPCのスペック
■Pythonのバージョン
Python 3.8以上
■必要な容量
公式のドキュメントには、必要なメモリ容量等に関する情報は、記載されていませんでした。ただ、少なくとも10GBのストレージを、確保しておけば十分でしょう。また、最低でも10GBのVRAM、16GB以上のRAMを持つGPUも必要だと思われます。
なお、GPT-4Vに匹敵する性能を持つマルチモーダルモデルについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【LLaVA 1.5】オープンソース版GPT4-Vの使い方~比較レビューまで
imp-v1-3bを実際に使ってみた
先ほどの例の場合、
「A chat between a curious user and an artificial intelligence assistant.
The assistant gives helpful, detailed, and polite answers to the user's questions.
USER: \nDescribe the person in the image. ASSISTANT:」
(好奇心旺盛なユーザーと人工知能アシスタントとのチャット。アシスタントはユーザーの質問に親切、詳しく、丁寧に答えてくれる。
ユーザー:「画像に写っている人物を教えてください。」アシスタント:)
というテキストプロンプトと、image.jpgファイルを入力しました。
この時、image.jpgを以下の画像にした場合の、imp-v1-3bのふるまいを見ていきましょう。
結果は以下の通りです。
The person in the image is a young man, possibly a boy, who is standing in front of a door.
He is holding a brown box in his hands, and he appears to be bending over to get into the room.
日本語訳:
画像の人物は若い男性(おそらく少年)で、ドアの前に立っている。手には茶色の箱を持っており、部屋の中に入ろうと腰をかがめているように見える。
出力された文章を見ると、「若い男性」という人物の特徴や、その男性の行動を細かくとらえられていると思います。ただ、「部屋の中に入ろうと腰をかがめているように見える」という記述に関しては、少しズレている気がします。というのも、この男性の行動を正しく認識するなら「足でドアを開けている」というような記述が適切かもしれません。
ちなみに、「この男は何をしていますか?」と日本語で質問したところ、「この男は何を財いません。ねらについてです。」と返ってきました。どうやら、日本語には対応していないようです。
imp-v1-3bの推しポイントである小規模ながら高性能なMLLMというのは本当なのか?
2~3日以内に、更新します!
ブックマークをしてお待ちください。
なお、画像認識能力がとても高いGPT-4Vの画像認識能力を、さらに高める方法について詳しく知りたい方は、下記の記事を合わせてご確認ください。
→【Set-of-Mark Visual Prompting for GPT-4V (SoM)】高度な情報解析ができるGPTツールを使ってみた
まとめ
imp-v1-3bは、テキストと画像に関する小型マルチモーダルモデルです。Microsoftが開発したPhi-2に基づいて構築されており、学習データセットはLLaVA-v1.5のものが使われています。
Xでは、CAPTCHAを破ることはないだろうとの意見がありました。実際にやってみないとわからないですが、今のところはimp-v1-3bを悪用したボットなどは、生まれないのかもしれません。
今後、更新する検証ではCAPTCHAを本当に破れないのかどうかも検証してみようと思います!
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。