見出し画像

【ローカルVLM】Qwen2-VLをOpen WebUIで利用する【Visionモデル】

はじめに

この記事は視覚能力をもたせたLLMであるQwen2-VL(2B)をOllama Open WebUIで利用する方法の記録です。動作環境は、

  • Windows 11 + WSL2 + Open WebUI(docker版)

  • Qwen2-VLはWLS2上での動作です

  • システムメモリ64GB←Flux.1が辛いので、32GBから増やしました

  • RTX 3060 12GB

です。GPUメモリは12GBでも足りないぐらいですが、システムメモリは32GBでも問題ないと思います。

Qwen2-VLとは、中国Alibaba社が開発しているローカルで利用できる日本語対応のVLMで、商用クラウドサービスに匹敵する最高性能モデルのひとつです。ただし、現状はollamaでは利用できないので、OpenAI API互換で動作させます。

Open WebUIの詳細な導入方法は下記事で紹介しています

何ができるのか?

数式のある画像を読み込む

Open WebUIで動作させたものです。画面のスクリーンショットをQwen2-VLに読み込ませます。

画像
Wikipedia 「自由落下」より引用
画像
Qwen2-VLの読み取り(解析)結果

Latex形式の数式画像をほぼ完璧に読み取ります。

日本語グラフの読み込み

画像
政府統計データ集(生活総研)https://seikatsusoken.jp/family30/statistics/ より引用

※ 失敗したので3回再生成しています。
他のローカルVLMのllava-llama3やllava-phi3.5でもグラフは読み込めますが、Qwen2-VLほどの性能はありません。

導入方法

Anacondaのcondaコマンドを利用します。ただし、Windowsでは上手く動作しなかったため、WSL2上(Linux)での動作になります。

※ あらかじめWSL2上で、Linux版のAnacondaのインストールと、WSL用CUDA設定が必要になります。筆者の過去の記事ではWindowsのみで、WSL2(Linux)上での設定をまだ書けていません。

Python仮想環境の作成

condaコマンドで仮想環境を作ります。

conda create -n qwen2-vl python=3.11
conda activate qwen2-vl

Qwen2-VLの導入

公式レポジトリはこちら、公式ドキュメントに従って導入します。

公式ドキュメント「Deployment」そのまま実行します。

pip install git+https://github.com/huggingface/transformers@21fac7abba2a37fae86106f87fcf9974fd1e3830
pip install accelerate
pip install qwen-vl-utils
# Change to your CUDA version
CUDA_VERSION=cu121
pip install 'vllm==0.6.1' --extra-index-url https://download.pytorch.org/whl/${CUDA_VERSION}

正常に終了すれば、OpenAI APIサービスを起動します。ただし公式ドキュメントは7Bモデルの例になっていますが、2Bに変更し、エラーが出たので --max_model_len 6752を追記しています。

python -m vllm.entrypoints.openai.api_server --served-model-name Qwen2-VL-2B-Instruct --model Qwen/Qwen2-VL-2B-Instruct --max_model_len 6752

大きなモデルもダウンロードするため時間がかかります。エラー無く次の表示が出れば成功です。

INFO:     Started server process [450404]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

Open WebUI側の設定

Ollama Open WebUIの設定から、OpenAI APIとして登録します。APIキーは適当な数字を入力しています(何か入力しないと保存できないため)。

Open WebUIがDocker上で動作しているため、localhostではなく「host.docker.internal」になっています。

画像
接続設定

正常に通信できれば、設定を保存した後にQwen2-VL-2B-Instructモデルが利用できます。画像はコピー&ペーストまたは、ドラッグ&ドロップで入力できます。

画像
一般的なVLMは固有人物名をブロックするチューニングが入っているのですが、中国AIは気にしないといったところでしょうか

応用

Ollamaの制御下にないモデルを同時に利用すると、適切なメモリ管理ができないので(GPUメモリが足りず)実用的ではないのですが、手動でQwen2-vlを終了させたり、別マシンで別モデルを利用したりすると、次のような使い方ができます。

画像
画像を読み込んだ後に、@を利用して別LLMモデルで解説させる

まとめ

日本語対応ローカルLLMは実用的なモデルが出揃ってきたように思いますが、日本語VLMはまだまだ簡単に利用できません。

ChatGPT等のクラウドサービスでは既にVLMが当たり前になっていますが、ローカルでも充実してほしいものです。

以下、関連する記事の【PR】です。


この記事が気に入ったらサポートをしてみませんか?

ピックアップされています

ブログ

  • 102本

Linux の記事

  • 21本

コメント

ログイン または 会員登録 するとコメントできます。
【ローカルVLM】Qwen2-VLをOpen WebUIで利用する【Visionモデル】|Catapp-Art3D
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1