LMStudio/サーバー自動起動 の履歴(No.1)

更新


公開メモ

LMStudio サーバーを自動起動したい (WinSW + llmster)

Windows11 マシンにユーザーログインしなくても勝手にサーバーが立ち上がるようにしたい。

WinSW + llmster を使う

  • WinSW は普通のプログラムを Windows のサービスとして登録するためのフリーのツール
  • llmster は LMStudio のサーバー機能のみが分離されたソフトウェア

WinSW

普通のプログラムを Windows のサービスとして登録するためのフリーのツール

  • https://github.com/winsw/winsw/releases から直接ダウンロードする
  • ここでは WinSW v2 系統を使った(v3 系統は alpha だったので)
  • WinSW-x64.exe がそのまま単体で動く実行ファイル

この WinSW-x64.exe をサービスごと(LMStudio用とOllama用みたいな)にコピー・リネームして使う。

ここでは、

C:\WinSW\LMStudio\WinSW_LMStudio.exe

という名前で保存した。

これに合わせて同盟の .xml というファイルを作ると、それが設定として読み取れる。

C:\WinSW\LMStudio\WinSW_LMStudio.xml

設定内容は後程。

LM Studio (llmster)

1. llmster単体版をインストール

管理者 PowerShell にて、インストールスクリプトを即実行:

irm https://lmstudio.ai/install.ps1 | iex

GUIアプリ同梱の lms.exe ではなく、この単体版(llmster.exe)を使うのがポイント。

GUI版はSYSTEM権限だとGUI本体のインストール場所を見失ってエラーになる。

2. インストール先を確認

C:\Users\ユーザー名\.lmstudio\llmster\バージョン番号\llmster.exe

同時に、 C:\Users\ユーザー名\.lmstudio\llmster\バージョン番号\.bundle には クライアントである lms.exe も入る。

3. SYSTEM権限用に設定共有先を教える

ユーザーの LM Studio の設定と、サーバーの設定を同期させたいのだけれど、 サービス自体はシステムアカウントで動くので、どのユーザーの LM Studio 設定を 使えばいいのかを教えてやる必要がある。

notepad C:\Windows\System32\config\systemprofile\.lmstudio-home-pointer

中身を次のように書き換える:

C:\Users\ユーザー名\.lmstudio

これがないと、SYSTEM権限では中身が空の別の.lmstudioを見てしまい、モデル・設定が一切見えない。

4. WinSW_LMStudio.xml

<service>
  <id>LMStudioDaemon</id>
  <name>LM Studio Daemon</name>
  <executable>C:\Users\ユーザー名\.lmstudio\llmster\バージョン番号\llmster.exe</executable>
  <workingdirectory>C:\Users\ユーザー名\.lmstudio\llmster\バージョン番号</workingdirectory>
  <startmode>Automatic</startmode>
  <onfailure action="restart" delay="10 sec"/>
  <logpath>C:\WinSW\LMStudio\logs</logpath>
  <log mode="roll-by-size">
    <sizeThreshold>10240</sizeThreshold>
    <keepFiles>4</keepFiles>
  </log>
</service>

startmode: Automatic これが Windows 起動時に自動実行することを指定している。

ポイント: llmster.exeは引数なしで直接実行する。
これ自体がフォアグラウンドでブロッキングするサーバー本体なので、lms.exeの daemon up/server start のようなトリガー系コマンドは不要。

5. インストール・起動

WinSW_LMStudio.exe install
WinSW_LMStudio.exe start
WinSW_LMStudio.exe status

ここで Started となってれば OK

lms list

で、インストール済みのモデルが表示されれば完璧。

6. GUIアプリの「Enable Local LLM Service」はオフにしておく

重複起動・混乱を避けるため。

7. 注意点

LM Studio アプリと llmster とは同時起動できないみたい。

仕方ないので CLI でできる設定等は CLI を使い、そうでなければ一旦サーバーを止め、 LM Studio アプリでいじってから、アプリ終了後にもう一度

WinSW_LMStudio.exe start

でサーバーを起動する。

Ollama

ちょっとオフトピだけど、同様にして Ollama もサーバーを動かせる。

1. Ollama もサービス専用の単体版を使う

GUIインストーラー(OllamaSetup.exe)ではなく、 GitHub Releasesから ollama-windows-amd64.zip (NVIDIA用ライブラリ同梱)をダウンロードし、 専用フォルダに展開。

C:\WinSW\Ollama\ollama.exe
C:\WinSW\Ollama\lib\ollama\*

2. 通常インストール版のスタートアップ登録は削除

%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

にある Ollama.lnk を削除(Ollama本体に自動起動を切る設定項目が無いため)。

3. WinSW_Ollama.xml

<service>
  <id>OllamaService</id>
  <name>Ollama Service</name>
  <executable>C:\WinSW\Ollama\ollama.exe</executable>
  <arguments>serve</arguments>
  <workingdirectory>C:\WinSW\Ollama</workingdirectory>
  <startmode>Automatic</startmode>
  <onfailure action="restart" delay="10 sec"/>
  <env name="OLLAMA_MODELS" value="C:\Users\ユーザー名\.ollama\models"/>
  <env name="OLLAMA_KEEP_ALIVE" value="5m"/>
  <env name="OLLAMA_HOST" value="0.0.0.0:11434"/>
  <logpath>C:\WinSW\Ollama\logs</logpath>
  <log mode="roll-by-size"/>
</service>

`ollama serve` はそのままブロッキングするサーバー本体なので、llmsterと同じ考え方でそのまま指定すればよい。

設定は上記のように env で指定する。

4. インストール・起動

WinSW_Ollama.exe install
WinSW_Ollama.exe start
WinSW_Ollama.exe status

5. LAN公開する場合はファイアウォール許可も

New-NetFirewallRule -DisplayName "Ollama" -Direction Inbound -Protocol TCP -LocalPort 11434 -Action Allow -Profile Private

Ollama自体に認証機構は無いので、公開範囲は信頼できるネットワークに限定すること。

動作確認共通

lms daemon status
ollama list

普段GUIで見えているモデル一覧と一致していれば成功。

モデルごとの設定(Ollama, context lengthなど)

GUIの設定は全モデル共通のデフォルト値。モデル個別に変えたい場合はModelfileで専用バリアントを作る。

ollama show 元モデル名 --modelfile > Modelfile
(Modelfileに PARAMETER num_ctx 8192 などを追記)
ollama create モデル名-8k -f Modelfile

Counter: 70 (from 2010/06/03), today: 1, yesterday: 0