ローカルで動かすAIってセキュリティに敏感な人がやるのかなあ、くらいに思っていたのだが、お試しでAI の API を使ったアプリを作ってもらって実際に動かしてみてわかった。たぶん、API を使いたくても無料版ではすぐに無料枠を使い切ってほとんどなにもできないし、有料版だとお試しで動かすにしてもお金がかかりすぎるからじゃないだろうか。
違うかもしれないけど、ローカルで動かすやつを試してみる。
LM-Studio-0.4.6-1-x64.exe をダウンロードしてインストール。空き容量は2GB くらいいるのだと。ちなみにうちには専用 GPU が載っている PC はない。
それでも何か推奨してきたのでそのまま使ってみよう。3.4GB くらいいるそうだ。
そのままはいはいと進めるとウィンドウが開いた。左下になにか表示されている。
リモートのインスタンスと接続というのは、あれか、家の外でも Bitcoin フルノードは自分が立てたのを参照したいというあれと同じようなものか。多分違うな。。。
たぶんダウンロードが終わるまでは何もできないだろうと放置。
終わったら Load するかどうか聞いていたのでそうする。
さて、何を打ち込んだものだか・・・。
今まで自分で調べたことがなさそうなことが良かろうと適当に打ち込んだ。チャットのタイトルが「Long野市」・・・。インターフェースを英語のままにしているからだろうか? ちなみに私は長野市には行ったことがないと思う。
昨年のことなので、適当に検索して調べてくれたらうれしいと思ったがそういうことはなかった。
さて、いったいLM Studioは何ができるんだろうかとGemini氏に聞いてみた。
「私のような」ではなく「ChatGPTのような」と回答するのが控えめだ。
質問していったが、LM Studioさん(あるいはそのモデルさん)が自己強化されたり学習されたりということはなく、モデルはもうダウンロードしたものがすべてで、あとは RAG というしくみでデータを読み込ませたり?ができるくらいだそうだ。LM Studioさんに聞いても同じような回答だった。こちらは RAG ではなく拡張機能という言葉を使っていたが、たぶん似たようなもんじゃないかな。
- 使用しているLLMに大きく依存し、それを超えることはない
- ユーザーがプロンプトに打ち込む内容が判断材料のすべてだが、同じチャット内ではその内容も考慮される
- 拡張機能やRAGはプロンプトを補助するようなもので、ダウンロードしたLLMが学習したり強化されたりはしない
この辺の工夫次第なところが、やりこみ感があるというか、熱心になるところなんだろう。
ちなみにインストールしたノートPC(ThinkPad T14s)はこんなスペックだ。GPUって専用GPUを指しているのかと思ったけどオンチップのも数に入れるんだね。
RAG
長野市の気温データを LLM が持っていないから答えられなかった。気象庁のホームページから各地域の気象データをダウンロードできるようになっていたので、長野市のここ5年くらいの気温情報をCSVファイルでダウンロード(2.7KB)し、それを与えた。
英語になったが 2025年は7月が一番高かったのでこれであってる。まあ30秒もかかっているから自分でやったほうが早いといえば早いのだが、そういうことではないのだ。
添付したデータが小さければそのまま読み込み、大きければ RAGとして扱うんだとか。
Chat with Documents | LM Studio Docs
アップロードできるファイルサイズは 1MBくらいとチャットの回答で返ってきた。が「ユーザーの間で」っていうのは google/gemma-3-4b が作られた時点の情報ってことだからさすがに違うのかな。
> LM Studio のチャット欄にファイルを添付できるサイズの上限については、公式な情報が公開されているわけではありません。しかし、ユーザーの間で共有されている情報や経験則から、おおよその目安を以下のように挙げることができます。
WSL2からアクセスできない
せっかくなのでAPIをたたくくらいはやっておこうかと、Windows上でLM Studioを起動し、サーバーをRunningにしてWSLからアクセス・・・失敗。
Windowsのコマンドプロンプトから curl すると成功。
IPアドレスが 172.29.128.1 になってて、これは HyperV の vEthernet?
設定も LANからアクセスするかどうかしかなくて、こんなアドレスじゃうちの LANからもアクセスできないよ!!
こちらを見てみたが、既に 0.0.0.0 だった。ならば Windows に割り当てている IP アドレスにしてしまえ、とやってみると反映はされた。されたのだが、よく考えると Nat モードなのでホスト側から WSL2 にアクセスできるが逆はできないのか・・・?
Mirrored にするとあっさりアクセスできた。
$ curl http://localhost:1234/v1/models
{
"data": [
{
"id": "google/gemma-3-4b",
"object": "model",
"owned_by": "organization_owner"
},
{
"id": "text-embedding-nomic-embed-text-v1.5",
"object": "model",
"owned_by": "organization_owner"
}
],
"object": "list"
}
サンプルにあったこれだけのコードの実行に 1m21.066s もかかるのだ。漠然としすぎた質問のせいかもしれんが、まあスペックに依存するということだ。
import lmstudio as lms
with lms.Client() as client:
model = client.llm.model()
result = model.respond("特定のトピックについて詳しくなるための、おすすめの学習順序を教えて。")
print(result.content)