5. Local LLM — マウントしたローカル LLM でデータ解析する

Colab 上に Ollama をマウントし、データを外部 API に送らずローカルで空間解析する方法を学びます。

なぜローカル LLM を使うのか

クリティカルなデータほど「外部の AI API に送りたくない」という要望があります。行政・研究機関が持つデータを匿名化なしにクラウド AI へ渡すのは難しい。

Colab 上に**ローカル LLM(Ollama)**を構築すれば、モデルとデータが同じマシンにあり、外部へ送信されません。Google アカウントだけで、オープンモデルを使った解析が完結します。

Ollama とは

Ollama はローカルで LLM を実行するためのツールです。モデルをダウンロードし、ollama serve で API サーバーを立ち上げれば、curl や Python から呼び出せるようになります。

curl -fsSL https://ollama.com/install.sh | sh

セットアップ(Colab の場合)

1. Ollama のインストール

!curl -fsSL https://ollama.com/install.sh | sh

2. モデルストアを Google Drive へマウント

デフォルトではモデルはランタイム(一時領域)に入るため、セッション終了で消えてしまいます。モデルストアを Drive に指定すると、再起動後も再利用できます。

import os
os.environ['OLLAMA_MODELS'] = '/content/drive/MyDrive/ollama'
!mkdir -p /content/drive/MyDrive/ollama

3. サーバー起動とモデル取得

!nohup ollama serve > /tmp/ollama.log 2>&1 &
!sleep 5
!ollama pull qwen2.5:0.5b   # 約 500MB、初回のみ

本リポジトリの MCP ツール(検証済み)

demos/colab-mcp-server/ に用意したツールで、ローカル解析を実行できます。

ツール 機能
ollama_status(model) バイナリの有無・モデル保持状況の確認
pull_local_llm(model) モデルのダウンロード
ask_local_llm(question, model) ローカル LLM への直接質問
geo_analyze_local_llm(source, question, model) GeoParquet を読み、ローカル LLM で分析

実機での動作確認(2026-09-11、qwen2.5:0.5b):

> ollama_status('qwen2.5:0.5b')
model_present: true

> ask_local_llm('Name the CRS that uses meters for web maps.', 'qwen2.5:0.5b')
answer: "The system commonly used for web maps is UTM ..."

> geo_analyze_local_llm(PUBLIC/poi.parquet, 'What places are in this dataset?', 'qwen2.5:0.5b')
answer: "The dataset contains information about various locations ..."

データを「ローカル」で分析する流れ

GeoParquet(公開 URL または Drive)
   │  geopandas で読み込み(サンプル化)

ローカル LLM(Ollama)
   │  質問 + サンプルデータ

回答(外部 API へ送信されない)

geo_analyze_local_llm は、GeoParquet の先頭サンプルを JSON 化して LLM へ渡します。座標列 (geometry) は外して省トークン化しています。

モデル選択のヒント

モデル サイズ 用途
qwen2.5:0.5b 約 500MB 軽量・超高速(検証向け)
llama3.2:1b 約 1.3GB 軽量・汎用
qwen2.5:3b 約 2GB 日本語を含む中規模
llama3.2:3b 約 2GB 汎用

実行時メモリが不足する場合は、さらに小さなモデルか num_ctx を調整します。

セキュリティ上の注意

  • ローカル LLM でもプロンプトや出力はログに残り得る
  • Drive にデータを置く場合は、共有設定を再確認
  • モデル自体は公開されていることに留意(機密情報を学習させる用途には不向き)

次のステップ

ローカル LLM は Portolan と組み合わせると、データ主権を守りながら AI 解析できます。 次の関心ごとに応じて、特集記事「ケーススタディ — OGC Connect Helsinki」や「共通プロトコルの用例」をご覧ください。