3行でいうと
- Ollamaは、公式FAQによるとモデルを標準で5分間メモリに置き、その後に解放します。keep_aliveで変えられます。
- LM Studioは、API経由で自動的に読み込まれたモデルを、標準で60分の無操作の後に解放します。
- macOSのデスクトップ機では、ディスプレイが消えても自動スリープしない設定が、システム設定にあります。
- 自動起動、メモリの保持時間、スリープは、別々の設定です。どれか一つだけでは、常駐になりません。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書や論文を読んでまとめたものです。
先に結論
家のAIを「いつでも答える」状態にするには、次の3つがそろう必要があります。
- 起動:パソコンを起動、ログインしたときに、AIのサーバーが自動で立ち上がる。
- モデルの保持:使う前にモデルを読み込む待ち時間を減らすなら、メモリに置く時間を長くする。逆にメモリを空けたいなら、短くする。
- スリープ対策:パソコンが眠ってしまうと、外からも届かない。
見立てです。常に最速で答えてほしいなら、保持を長くします。他の作業とメモリを分け合うなら、標準の5分や60分のまま、自動で解放される設定のほうが扱いやすいと思います。「常駐」と「メモリに置きっぱなし」は、同じではありません。
前提:言葉の整理
- 常駐:ずっと動いている状態です。ここでは、AIのサーバーが裏で待機していることを指します。
- ログイン項目:Macにログインしたときに、自動で開くアプリの一覧です。
- モデルを読み込む/解放する:AIの本体(モデル)のデータを、メモリに置く/メモリから外すことです。読み込みには数秒から時間がかかり、置いている間はメモリを使い続けます。
- keep_alive/TTL:モデルを、使われなくなってからどれだけメモリに置くかの設定です。Ollamaではkeep_alive、LM StudioではTTL(Time-To-Live、生存時間)と呼びます。
- launchd:macOSが、裏で動くプログラムを起動・管理する仕組みです。
- スリープ:パソコンが省電力の眠り状態に入ることです。
1. 自動起動
Ollama
公式FAQには、「WindowsとmacOS版のOllamaは、インストール時にログイン項目として登録される」とあります。つまり、標準で、ログインすると自動で立ち上がります。止めたいときは、Macなら「システム設定」で「ログイン項目」を検索し、「バックグラウンドで許可」の中のOllamaを切ります。更新をまたいでも、この設定は守られるとあります。
Linuxは、公式のインストール手順に「起動サービスとして追加する(推奨)」があります。systemdという仕組みのサービスファイルを作り、systemctl enable ollama で有効にします。ファイルには Restart=always(落ちたら再起動)が入っています。
LM Studio
公式文書では、使い方が2つあります。
- llmster(推奨):画面のない、サーバー向けのLM Studioです。
lms daemon upで起動します。Linuxで起動時に自動で立ち上げる手順も、公式にあります。 - デスクトップアプリ:アプリの設定(Cmd+,)で、ログイン時にLLMサーバーを実行するチェックを入れます。オンにすると、アプリを閉じてもトレイに小さくなり、サーバーは動き続けます。最後のサーバーの状態は保存され、次の起動で復元されます。
launchdは必要か
Appleの開発者文書(過去の資料として保存されているもの)は、macOSで裏で動くプログラムを起動するには、launchdが推奨だと説明しています。設定は、plistという形式のファイルで書き、ユーザーごとのものは ~/Library/LaunchAgents に置きます。KeepAlive というキーを真にすると、「いつも動いている状態を保つ」指定になります。
ただし、OllamaのmacOSアプリは標準でログイン項目に入るので、普通はlaunchdを自分で書く必要は薄いと見ています。これは見立てです。サーバーだけを画面なしで動かしたいときの選択肢です。その場合、OllamaのCLIの場所は、公式のmacOSの文書にある Ollama.app/Contents/Resources/ollama です。この記事は、実際に使って確かめた記録ではありません。
2. モデルをメモリに置く時間
3つの道具の「置く時間」を比べる
| 道具 | 標準 | 変え方(公式文書) |
|---|---|---|
| Ollama | 5分 | APIの keep_alive、または環境変数 OLLAMA_KEEP_ALIVE |
| LM Studio | APIで読み込まれたモデルは60分(Idle TTL) | リクエストの ttl(秒)、アプリの既定値、lms load --ttl |
| llama.cpp(llama-server) | 標準では解放しない(--sleep-idle-seconds の既定は-1で無効) |
--sleep-idle-seconds に秒数を指定 |
Ollamaの keep_alive に渡せる値は、公式FAQによると次のとおりです。
- "10m" や "24h" のような時間の文字列
- 秒数の数字(例:3600)
- 負の数(-1など):ずっと置いたままにする
- 0:答え終わったらすぐ解放する
APIの keep_alive は、環境変数 OLLAMA_KEEP_ALIVE より優先されると書かれています。
LM Studioは、lms load で自分で読み込んだモデルには、標準ではTTLがなく、手で解放するまでメモリに残ります。APIで自動的に読み込まれたモデル(JIT読み込み)のほうが、標準で60分で解放されます。さらに、Auto-Evictが標準でオンなので、JITで読み込まれたモデルは同時に最大1つまでです。
llama.cppは、--sleep-idle-seconds を指定すると、無操作の時間のあと、モデルとKVキャッシュ(会話の記憶の置き場所)をRAMから外します。次の依頼で自動的に読み込み直します。ただし、GET /health などの確認用の窓口は、無操作のタイマーをリセットしません。
Ollamaの操作
公式FAQとCLIの文書にある操作は、次のとおりです。
- 今メモリにあるモデルの確認:
ollama ps。表のUNTILの列に、あと何分で解放されるかが出ます。 - すぐ解放:
ollama stop モデル名 - 先に読み込んでおく:APIに空の依頼を送るか、
ollama run モデル名 ""を実行します。 - 置きっぱなしにする:
curl http://localhost:11434/api/generate -d '{"model": "llama3.2", "keep_alive": -1}'(公式文書の例です。この記事では、実行していません)
環境変数でサーバー全体の既定を変えるには、Macのアプリ版なら、公式のとおり launchctl setenv OLLAMA_KEEP_ALIVE "24h" のように設定してから、アプリを再起動します。Linuxはsystemdの Environment= 行、Windowsはユーザーの環境変数です。
3. スリープ対策
macOSのAppleサポートの文書(「Macのスリープとスリープ解除の設定」)に、次の項目があります。
- デスクトップ機:システム設定の「エネルギー」で、「Prevent automatic sleeping when the display is off」(ディスプレイがオフのとき、自動でスリープさせない)をオンにする。
- ノート機:システム設定の「バッテリー」の「オプション」で、「Prevent automatic sleeping on power adapter when the display is off」(電源アダプタ使用中は、ディスプレイがオフでも自動でスリープさせない)をオンにする。
- 「ネットワークアクセスによるスリープ解除」もあります。共有サービスのために、Macが一時的に起きる設定です。
同じ文書に、「スリープを遅らせたり防いだりすると、消費電力が増えることがある」という注意があります。
コマンドでは、caffeinate があります。マニュアルでは、「システムがスリープするのを防ぐ」コマンドです。-i はアイドル時のスリープ防止、-s はAC電源の使用中だけ有効、-t で秒数の指定ができます。マニュアルの例は caffeinate -i make で、コマンドの実行中だけスリープを防ぎます。なお、僕らが見た版のマニュアルの日付は2012年で、お使いのmacOSの内容は man caffeinate で確認してください。
見立てです。ネットワークアクセスによるスリープ解除で、Ollamaなどの依頼でMacが起きるかは、公式資料に書かれていませんでした。家のAIを外から使うなら、確実なのは、スリープしない設定にしておくことだと考えます。
組み合わせの例(見立て)
僕らの考えでは、次の2通りが分かりやすいと思います。実行はしていません。
| 使い方 | 起動 | 保持 | スリープ |
|---|---|---|---|
| 自分の家でときどき使う | ログイン項目(標準のまま) | 標準(5分/60分) | 普段どおり |
| 外出先から、いつでも使いたい | ログイン項目+サーバーを立てたままにする | keep_aliveを長く(例:24h)か、-1 | デスクトップ機は自動スリープをオフ |
keep_aliveを-1にすると、モデルがメモリに残り続けます。たとえば15GBのモデルなら、32GBのMacでは、常に15GBが埋まった状態です。他のアプリが使えるメモリが減るので、ほかの作業が重くなる場合があります。これは僕らの見立てで、実機での測定ではありません。
よくあるつまずき
- ログイン後でないと動かない:ログイン項目は、ログインしたあとに起動します。起動した直後、ログイン画面のままでは動かない可能性があります。Appleの開発者文書でも、ユーザー向けのlaunchd(user agent)は「ログイン中だけ実行される」と書かれています。
- 設定を変えたのに反映されない:環境変数は、アプリの再起動が必要です。FAQにも、
launchctl setenvのあとにOllamaを再起動するとあります。 - 最初の返事だけ遅い:モデルが解放されていて、読み込み直しになっています。keep_aliveを長くするか、先に読み込んでおきます。
- メモリを食い続ける:
ollama psやlms psで、読み込まれたままのモデルを探します。 - ネットワーク越しにつなぐとき:窓口を外に開けるときは、前の記事(Tailscale)のとおり、認証と公開範囲を先に考えてください。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。公式文書を読んでまとめた内容です。
- 標準の値(5分、60分)は、バージョンで変わることがあります。この記事は2026年10月8日に読んだ文書にもとづきます。
- Appleのlaunchdの文書は、過去の資料として保存されているものです。現在のmacOSで同じ手順が使えるかは、確認できていません。
caffeinateのマニュアルは、Apple自身のページではなく、公開されているコピーを読みました。日付が古いので、お使いの版のman caffeinateを優先してください。- ノートのMacを蓋を閉じたまま動かす使い方は、今回読んだ文書では確認できていません。熱の面もあります。電気代や熱の見積もりは、別の記事で扱います。
- 常時つけっぱなしにすると、電気代が増えます。Appleの文書にも、スリープを防ぐと消費電力が増えることがあるとあります。
出典
- FAQ(Ollama Docs、Ollama、2026年10月8日確認)
- CLI Reference(Ollama Docs、Ollama、2026年10月8日確認)
- Linux(Ollama Docs、Ollama、2026年10月8日確認)
- macOS(Ollama Docs、Ollama、2026年10月8日確認)
- Headless mode(LM Studio Docs、LM Studio、2026年10月8日確認)
- Linux Startup Task(LM Studio Docs、LM Studio、2026年10月8日確認)
- Idle TTL and Auto-Evict(LM Studio Docs、LM Studio、2026年10月8日確認)
- lms load(LM Studio Docs、LM Studio、2026年10月8日確認)
- LLaMA.cpp HTTP Server README(llama.cpp、ggml-org、2026年10月8日確認)
- Set sleep and wake settings for your Mac(Apple Support、Apple、2026年10月8日確認)
- Open items automatically when you log in on Mac(Apple Support、Apple、2026年10月8日確認)
- Creating Launch Daemons and Agents(Apple Developer Documentation Archive、Apple、2026年10月8日確認)
- caffeinate(8)(macOSのマニュアルの公開コピー、keith/xcode-man-pages、2026年10月8日確認)
更新履歴
- 2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
