GLM 4.1V 9B Thinking にアクセスする方法(GPU不要)

GLM 4.1V 9B Thinking にアクセスする方法(GPU不要)

GLM 4.1V 9B Thinking は、画像を認識しながら推論のプロセスをステップごとに説明できる革新的なAIモデルです。これは思考連鎖(Chain-of-Thought, CoT)推論と呼ばれ、GLMは同サイズの他の視覚言語モデルよりも優れています。この記事では、高価なGPUがなくてもGLMがどのように大規模モデルと対抗し、実際に試す方法をご紹介します。

GLM 4.1V 9B Thinking がVLMモデルにもたらした変化とは?

世界初の思考連鎖(CoT)推論を搭載したVLMモデルとして、GLMはその強力な性能だけでなく、9Bと小規模でありながらQwen 2.5 72Bと同等の性能を達成した点で注目を集めています。それでは、GLMの詳細な仕様とベンチマーク結果を見ていきましょう。

GLM 4.1V 9B Thinking の属性

GLM 4.1V 9B の属性

Hugging Face で直接無料トライアルを開始できます!

Hugging Face で直接無料トライアルを開始できます! Hugging Face で直接無料トライアルを開始できます!

GLM 4.1V 9B Thinking はどのように改善を達成したのか?

  1. SFT の強化:
    トレーニングサンプルには明示的な 思考連鎖(CoT) アノテーションが含まれており、モデルは 「まず考えてから回答する」 ことを学習します。これは、推論のステップを示さずに回答のみを出力する従来のモデルとは異なります。
  2. RLCS による強化学習:
    モデルの報酬は正解率だけでなく、推論プロセスと説明の質 も評価され、より一貫性のある深い内部思考が促されます。
  3. アーキテクチャのサポート:
    ViT視覚エンコーダーが MLP プロジェクターを通じて LLM デコーダーに入力されることで、モデルは視覚入力から 明示的な推論経路をシームレスに生成 できます。これは単なる検索やパターンマッチングではありません。
  4. 強力な推論基盤:
    もう一つの重要な要素は、ベースモデルである GLM‑4‑9B 0414 が既に優れた推論能力を持っていることです。例えば:
    • 数学的推論と一般的なタスク性能に優れ、同規模のオープンソースモデルの中でトップクラスです。
    • アーキテクチャとトレーニング面では、GLM‑4‑9B は自己回帰型の空白補完事前学習と、論理的・多段階推論能力を強化する追加学習の恩恵を受けています。

詳細は論文をご参照ください: GLM-4.1V-Thinking: Towards Versatile Multimodal Reasoning with Scalable Reinforcement Learning

GLM 4.1V 9B Thinking VS Qwen 2.5 VL 72B

**ベンチマーク ** GLM 4.1V 9B Thinking Qwen 2.5 VL 72B ** 勝者**
MMMU (画像) 68.0 70.2 Qwen 2.5 VL
MMMU‑Pro 57.1 51.1 GLM
VideoMMMU 61.0 60.2 GLM
mvBench (動画) 70.4 64.6 GLM
AITZ_EM (エージェント) 83.2 35.3* GLM
エージェント (OSWorld) 14.9 8.8 GLM
エージェント (AndroidWorld) 41.7 35.0 GLM
エージェント (WebVoyageSom) 69.0 40.4 GLM
エージェント (Webquest‑SingleQA) 72.1 60.5 GLM
エージェント (Webquest‑MultiQA) 54.7 52.1 GLM
コーディング (Design2Code) 64.7 41.9 GLM
コーディング (Flame‑VLM‑Code) 72.5 46.3 GLM
OCRBench 84.2 85.1 Qwen 2.5 VL
VideoMME (テキストなし) 68.2 73.3 Qwen 2.5 VL
VideoMME (テキストあり) 73.6 79.1 Qwen 2.5 VL
MMVU 59.4 62.9 Qwen 2.5 VL

GLM 4.1V 9B Thinking を選ぶべき場合: マルチモーダル推論、エージェント機能、STEM問題解決、コーディングが優先事項の場合。

Qwen 2.5 VL 72B を選ぶべき場合: ドキュメント/画像/動画の理解、特にOCR、構造化抽出、視覚認識に重点を置く場合。

詳細を確認したい方はこちらの記事をご覧ください: GLM 4.1V 9B Thinking vs Qwen2.5 VL 72B: どちらがどのシナリオに適しているか?

他の主要モデルとの比較も提供しています。

他の主要モデルとの比較も提供しています。 出典: THUDM

GLM 4.1V 9B Thinking にアクセスする方法

1. ローカルでアクセスする

さらに注目すべき点は、GLM 4.1V 9B Thinking のパラメータ数がわずか90億であるため、RTX 4090 や RTX 3090 などのGPUで実行できることです。数倍のパラメータを持つ他のモデルと比較して、GLMははるかに小さいサイズで優れた性能を達成しており、これは強化学習の力を示しています。

強化学習の力を示す成果 出典: THUDM

インストールガイド

インストール:

pip install git+https://github.com/huggingface/transformers.git

基本的な使い方:

from transformers import AutoProcessor, Glm4vForConditionalGeneration
import torch

MODEL_PATH = "THUDM/GLM-4.1V-9B-Thinking"

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "url": "https://upload.wikimedia.org/wikipedia/commons/f/fa/Grayscale_8bits_palette_sample_image.png"
            },
            {
                "type": "text",
                "text": "describe this image"
            }
        ],
    }
]

processor = AutoProcessor.from_pretrained(MODEL_PATH, use_fast=True)
model = Glm4vForConditionalGeneration.from_pretrained(
    pretrained_model_name_or_path=MODEL_PATH,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt"
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=8192)
output_text = processor.decode(generated_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False)
print(output_text)

GPUの購入が高額に感じられる場合は、Novita AIのコスト効率が高く信頼性のあるクラウドGPUを利用できます。例えば、RTX 4090 は1時間わずか $0.69RTX 3090 は1時間わずか $0.21 です!

Novita AIの高性能GPUを試す

2. 直接API統合

ステップ1: ログインしてモデルライブラリにアクセス

アカウントにログインし、モデルライブラリ ボタンをクリックします。

モデルライブラリにログインしてアクセス

GLM 4.1V 9B を今すぐ試す!

ステップ2: モデルを選択

利用可能なオプションから、ニーズに合ったモデルを選択します。

モデルを選択

ステップ3: 無料トライアルを開始

無料トライアルを開始して、選択したモデルの機能を試してみてください。

無料トライアルを開始

ステップ4: APIキーを取得

APIで認証するために、新しいAPIキーを提供します。「設定」ページに移動し、画像のようにAPIキーをコピーしてください。

APIキーを取得

ステップ5: APIをインストール

使用するプログラミング言語に適したパッケージマネージャーを使用してAPIをインストールします。

インストール後、必要なライブラリを開発環境にインポートします。APIキーを使ってAPIを初期化し、Novita AI LLMとの対話を開始します。以下はPythonユーザー向けのチャット補完APIの例です。

from openai import OpenAI
  
client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    api_key="session_kgNdXtDPt2zYc95i-nDWPaW4Zl_e7nf4VDpukuIVBKpko1-LE8xCasG4YK7c-3c1xnPzGYRuocFk_DhkPUUQyQ==",
)

model = "thudm/glm-4.1v-9b-thinking"
stream = True # or False
max_tokens = 4000
system_content = ""Be a helpful assistant""
temperature = 1
top_p = 1
min_p = 0
top_k = 50
presence_penalty = 0
frequency_penalty = 0
repetition_penalty = 1
response_format = { "type": "text" }

chat_completion_res = client.chat.completions.create(
    model=model,
    messages=[
        {
            "role": "system",
            "content": system_content,
        },
        {
            "role": "user",
            "content": "Hi there!",
        }
    ],
    stream=stream,
    max_tokens=max_tokens,
    temperature=temperature,
    top_p=top_p,
    presence_penalty=presence_penalty,
    frequency_penalty=frequency_penalty,
    response_format=response_format,
    extra_body={
      "top_k": top_k,
      "repetition_penalty": repetition_penalty,
      "min_p": min_p
    }
  )

if stream:
    for chunk in chat_completion_res:
        print(chunk.choices[0].delta.content or "", end="")
else:
    print(chat_completion_res.choices[0].message.content)
  
  

MCPとGLMを使った簡単な画像認識ツールの構築

GLMの機能(視覚認識と推論を統合した簡単な画像認識ツールなど)を活用したい場合は、Novita AIがサポートするMCP機能を使用できます。以下はサンプルコードです:

import os
import sys
from mcp.server.fastmcp import FastMCP
import requests
import uvicorn
from starlette.applications import Starlette
from starlette.routing import Mount

base_url = "https://api.novita.ai/v3"
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}"
}

mcp = FastMCP("Novita_API")

@mcp.tool()
def list_models() -> str:
    """
    List all available models from the Novita API.
    """
    url = base_url + "/openai/models"
    response = requests.request("GET", url, headers=headers)
    data = response.json()["data"]

    text = ""
    for i, model in enumerate(data, start=1):
        text += f"Model id: {model['id']}\
"
        text += f"Model description: {model['description']}\
"
        text += f"Model type: {model['model_type']}\
\
"

    return text

@mcp.tool()
def get_model(model_id: str, message) -> str:
    """
    Provide a model ID and a message to get a response from the Novita API.
    """
    url = base_url + "/openai/chat/completions"
    payload = {
        "model": model_id,
        "messages": [
            {
                "content": message,
                "role": "user",
            }
        ],
        "max_tokens": 200,
        "response_format": {
            "type": "text",
        },
    }
    response = requests.request("POST", url, json=payload, headers=headers)
    content = response.json()["choices"][0]["message"]["content"]
    return content

@mcp.tool()
def vision_chat(model_id: str, image_url: str, question: str) -> str:
    """
    Use GLM-4.1V-9B-Thinking to answer a question about an image.
    """
    url = base_url + "/openai/chat/completions"
    payload = {
        "model": model_id,
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": image_url,
                        }
                    },
                    {
                        "type": "text",
                        "text": question,
                    }
                ]
            }
        ],
        "max_tokens": 500
    }
    response = requests.post(url, json=payload, headers=headers)
    return response.json()["choices"][0]["message"]["content"]

if __name__ == "__main__":
   # Run using stdio transport
   mcp.run(transport="stdio")

詳細についてはこちらの記事をご参照ください: Novita AIで最初のMCPサーバーを構築する方法!

GLM 4.1V 9B Thinking は使いやすく、非常に賢く、高性能なハードウェアを必要としません。数行のコードで、自分のマシン上でもクラウドでも、その画像認識と推論能力をテストできます。マルチモーダルAIがどこまで進化したかを実感したいなら、ぜひGLMを試してみてください!

GLM 4.1V 9B Thinking の特別な点は何ですか?

画像を「認識」し、その推論のステップを表示できる最初のモデルであり、単に答えを出すだけではありません。

高性能なGPUがなくてもGLM 4.1V 9B を試せますか?

はい!手頃な価格のクラウドGPUを利用するか、Novita AI Playground で無料で試すことができます。

GLM 4.1V 9B Thinking を自分のプロジェクトに統合するにはどうすればよいですか?

PythonとHugging Faceを使ってローカルで実行するか、Novita AI のAPI経由でアクセスするか、提供されているコードサンプルのようにMCPを使って独自の画像認識ツールを構築することもできます。

Novita AI は、AIの野望を実現するオールインワンのクラウドプラットフォームです。統合API、サーバーレス、GPUインスタンス — コスト効率の高いツールを提供します。インフラストラクチャの手間を省き、無料で始めて、あなたのAIビジョンを現実にしましょう。

おすすめの記事