🧩

Macで“ローカルLLM+マルチモーダル”――Ollama × Mistral-small 3.2 & 専用Web UI超速セットアップ

に公開

Ollamaとは何か

Ollamaは、Mac上で大規模言語モデル (LLM) をローカル実行するための強力なツールです。Apple Silicon (M1/M2/M3) 搭載Macの優れた性能を活かし、インターネット接続なしでも高度なAIモデルを手元で動かすことができます。ローカルでLLMを動かすことでデータのプライバシーを確保し、オフラインでも安定して利用できるという利点があります。例えばインターネットに接続できない環境でも、自分専用のAIアシスタントとして動かせるため、機密データを外部に送信せずに済みます。

今回の記事では、Apple Silicon搭載のMacに限定して、Ollamaの導入方法と、チャット形式でLLMを操作できるWeb UI(グラフィカルインターフェース)の設定・利用方法について解説します。特に、最新のオープンソース多目的LLMである Mistral Small 3.2 モデル(マルチモーダル対応)を例に、その導入から画像を含むチャット対話までを紹介します。

Ollamaのインストール方法(Apple Silicon Mac)

brew install ollama

モデルのダウンロードとOllamaの起動

Ollama自体のインストールが完了したら、次に使用したいLLMモデルを取得します。今回は例としてMistral Small 3.2モデルを使います。このモデルは約15GBと大きめで、最大128kトークンの文脈長を持ち、テキストと画像の両方を入力として扱える高性能モデルです。まずこのモデルのデータをダウンロードしましょう。

  • モデルのダウンロード: ターミナルで次のコマンドを実行します(初回のみ):
ollama pull mistral-small3.2

このollama pullコマンドにより、指定したモデルがOllamaのモデルライブラリからダウンロードされ、ローカルにインストールされます。初回はネットワーク経由でモデルファイル(約15GB)が落ちてくるので、回線速度によっては時間がかかります。ダウンロードが完了すると、ollama listコマンドでインストール済みモデル一覧にmistral-small3.2が表示されるはずです。

  • Ollamaサーバーの起動: 続いて、モデルを使用するためにOllamaをサーバーモードで起動します。ターミナルで次を実行してください:
ollama serve

このコマンドを実行すると、Ollamaがバックグラウンドでサーバーとして動作し始めます (デフォルトではローカルホストのポート11434で待ち受け)。以降は、このサーバーに対してリクエストを送ることでLLMに質問できるようになります。Ollama.app(GUIアプリ)を起動した場合も自動的にサーバーが動作しますが、手動でollama serveを実行しておけば確実です。

Web UIの導入 (App Store経由)

Ollamaには標準でブラウザUIは付属していませんが、コミュニティ製のチャット用GUIがいくつか存在します。ここでは手軽に導入できるApp Store提供の無料アプリ 「Enchanted LLM」を例に説明します。(他にも類似のフロントエンドとして、モバイル向けの「Reins」や開発者向けの「Ollama Chat」クライアントなどがあります。)

  1. App Storeから入手: MacのApp Storeアプリを開き、「Enchanted LLM」で検索します。開発者はAugustinas Malinauskasで、カテゴリーはDeveloper Toolsのアプリです 。入手ボタンをクリックしインストールしてください(無料)。
  2. 初回起動と設定: インストール後、Enchanted LLMアプリを起動します。メニューなどから 設定(Settings) 画面を開き、Ollamaサーバーのエンドポイント(接続先)を指定します 。通常はデフォルトのhttp://localhost:11434(ローカルホストのポート11434)が既に設定されているはずですが、空欄の場合は入力してください。これは先ほどollama serveで起動したローカルサーバーを指しています。
  3. モデルの選択: Enchanted LLMは接続先のOllamaサーバーから使用可能なモデル一覧を取得できます。画面上部のモデル選択ドロップダウンから、先ほどダウンロードした「mistral-small3.2」モデルを選びます。もし一覧に出ない場合は、一度アプリを再起動するか、ollama serveが動作中か確認してください。

以上で、Enchanted LLM上でMistral Small 3.2モデルとのチャット準備が整いました。以降はテキストベースでChatGPTのような対話が可能です。メッセージ欄にプロンプト(質問や指示)を入力し、送信するだけでモデルからの回答がストリーミング表示されます。Markdown形式の出力にも対応しており、表やコードブロックが整形されて表示されます。

マルチモーダル(画像入力)の利用方法

Mistral Small 3.2はマルチモーダル対応モデルです。つまりテキストだけでなく画像を入力として与えることができます。Enchanted LLMなどのUIでは、チャットの入力欄に画像ファイルをドラッグ&ドロップするか、画像添付ボタン(クリップのアイコン📎など)を使って画像を送信できます。送信された画像はOllamaサーバーにBASE64エンコード等で転送され、モデルがその内容を解析します。

例えば、風景写真をチャットに添付して「この画像に写っている建物は何ですか?」と質問すれば、Mistral Small 3.2モデルが画像を読み取って回答します。実際、モデルのシステムプロンプトには「あなたは画像を読む能力があります」と明記されており、画像の内容を説明したり質問に答えたりすることが可能です。ただし画像生成はできないため、ユーザからの画像に基づいてテキスト回答する形になります。

画像の認識

入力画像は下記の画像です。

画像と共に「この画像には何が写っていますか?」と質問をしたところ下記の返事がありました。

この画像には、木製の椅子に座っている猫が写っています。猫は白と黒の毛色で、前足を組んで座っています。背景には青いクッションが見え、猫がリラックスしている様子が伝わってきます。猫の表情は穏やかで、少し前を向いています。この画像は、猫がくつろいでいる様子を優しく表現しています。
スクリーンショット

少し複雑な図表の入った画像の認識

入力画像は下記の画像です。

この画像と共に「この図には何が書いてあるでしょうか?」と質問をしたところ下記の返事がありました。

この画像は、日本の国の一般会計の歳入(収入)と歳出(支出)の比較を、平成2年度(1990年度)の当初予算と令和6年度(2024年度)の予算予定で示したものです。以下に詳細を説明します。

平成2年度(1990年度)当初予算
* 歳入(収入):66.2兆円
    * 税収:58.0兆円
    * 税外収入:6.0兆円
    * 特例公債:2.6兆円
    * その他:-4.4兆円
* 歳出(支出):66.2兆円
    * 国債費:6.2兆円
    * 防衛:9.6兆円
    * 社会保障:11.6兆円(17.5%)
    * 地方交付税交付金:15.3兆円
    * その他:13.5兆円

令和6年度(2024年度)予算予定
* 歳入(収入):112.1兆円
    * 税収:69.6兆円
    * 税外収入:7.5兆円
    * 特例公債:28.4兆円
    * その他:-3.4兆円
* 歳出(支出):112.1兆円
    * 国債費:6.1兆円
    * 防衛:9.1兆円
    * 社会保障:37.7兆円(33.7%)
    * 地方交付税交付金:17.8兆円
    * その他:15.1兆円

主な変化
* 歳入の増加:平成2年度から令和6年度までに、歳入は45.9兆円増加しています。
* 社会保障費の増加:社会保障費は、平成2年度の11.6兆円から令和6年度の37.7兆円に大幅に増加しています。
* 特例公債の増加:特例公債は、平成2年度の2.6兆円から令和6年度の28.4兆円に増加しています。

この比較から、社会保障費の増加と特例公債の増加が目立ち、予算の構造に大きな変化が見られます。
スクリーンショット

画像付きチャット機能により、テキストだけでは伝えにくい内容もモデルに理解させることができます。会話の中で画像とテキストを組み合わせることで、よりリッチな対話が可能になります。たとえば「この図の内容を要約して」と図表を添付すれば、その視覚情報を解析した要約を得ることもできます。

Discussion