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