はじめに
直近で「Instruct、Thinking」のモデルがリリースされた、Qwen3-VLシリーズの「Qwen3-VL-8B」を使った、ローカルLLM のお試しに関する記事です。今回、LM Studio でサーバーをたてて、そのサーバーとのやりとりを OpenAI互換の API を使って行います(※ Node.js による実装)。
●QwenLM/Qwen3-VL: Qwen3-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.
https://github.com/QwenLM/Qwen3-VL
ちなみに、直近で Qwen3-VL-8B以外には、Qwen3-VL-2B・Qwen3-VL-4B・Qwen3-VL-32B もリリースされているようです。
なお、今回のローカルLLM を試す環境は、過去に使ってきた 3つ(M4 Mac mini、M4 MacBook Air、EVO-X2)の中の「M4 の MacBook Air」です。
●「ローカルLLM user:youtoy」の検索結果 - Qiita
https://qiita.com/search?q=%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%ABLLM%20user%3Ayoutoy&sort=created
さっそく試す
さっそく試していきます。
LM Studio関連の準備
今回使う Qwen3-VL-8B を LM Studio でダウンロードします。
LM Studio上で検索をして、以下のように MLX版のモデルを見つけることができました。このモデルのサイズは 5.78 GB になるようです。
以下は、モデルのダウンロードが完了した後の状態です。
VRAM
自分の M4 の MacBook Air は、デフォルト設定の状態で VRAM を「11.84 GB」使えるので、先ほどの 6 GB弱のサイズのモデルは利用可能です。
サーバーの機能を有効化する
モデルがダウンロードできたら、LM Studio のサーバーの機能を有効化します。以前書いた記事で、その手順を示しているので、よろしければご参照ください。
その手順を進めた後は、以下のように http://127.0.0.1:1234 でサーバーが立ち上がった状態になりました。
また、Qwen3-VL-8B のモデルをロードした状態だと、画面上にモデルを呼び出す時の名称を確認できます。具体的には、「qwen/qwen3-vl-8b」というモデル名になるようです。
サーバーの機能の動作確認
ここで、LM Studio のサーバーの動作確認を行います。GETメソッドで確認ができる(ブラウザからアクセスして確認できる)「 http://localhost:1234/v1/models 」という URL へのアクセスで確認をします。
その URL にアクセスして、ブラウザ上で JSON の情報が出てきていたら、動作確認は完了です。
curl で簡単な動作確認
まずは curl での動作確認を行ってみます。その際、以下の OpenAI互換の API のエンドポイントの「Responses」を使ってみます。
●Responses | LM Studio Docs
https://lmstudio.ai/docs/developer/openai-compat/responses
実行するコマンドは、以下の通りです。
curl http://localhost:1234/v1/responses \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3-vl-8b",
"input": "あなたは誰?",
"reasoning": { "effort": "low" }
}'
上記のコマンドを実行した結果、以下のようにレスポンスを得られました。
OpenAI互換の API を使ったやりとり
最後に OpenAI互換の API を使ったやりとりを試します。
パッケージのインストール
Node.js を使うのですが、その際に以下の OpenAI公式のパッケージを用います。
●openai - npm
https://www.npmjs.com/package/openai
パッケージを、以下のコマンドでインストールします。
npm i openai
コードと実行結果
あとはコードを書いて、処理を実行してみます。
今回のお試し用のコードは、以下のとおりです。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "lm-studio",
baseURL: "http://localhost:1234/v1",
});
const MODEL = "qwen/qwen3-vl-8b";
const res = await client.responses.create({
model: MODEL,
instructions: "日本語で簡潔に答えてください",
input: "あなたは誰?",
});
console.log(res.output_text);
上記を実行した結果、以下のレスポンスを得られました。
とりあえず、Node.js で API を使ったやりとりを行えました。
その他: モデル一覧の取得
今回、OpenAI互換の API でモデルの一覧の取得も試したので、コードを紹介してみます。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "lm-studio",
baseURL: "http://localhost:1234/v1",
});
const list = await client.models.list();
for (const m of list.data) console.log(m.id);








