LM Studioのテスト 『LM Studioのテスト』では、LLM(大規模言語モデル (Large Language Model))をローカルネットワーク環境(PCなどで)で実行するアプリのテストです。macOS環境でテストしています。 アプリケーション LM Studio をテストしています。 概要 『LM Studioのテスト』関係の概要関係を記述しています。 概要 LM StudioのローカルLLM 一般的なLLM(大規模言語モデル)サービスは、インターネット経由で接続することでチャット生成やコード生成などの機能を提供しています。今回紹介する「LM Studio」はインターネットに接続しなくても(アプリのインストールとかAIモデルのダウンロードなどの動作環境構築には必要)ローカルのPC環境でローカルでLLMを実行するためのアプリケーションです。従って、セキュリティを気にしているとか、自社のノウハウなどを外部サーバーへデータを送信せずにLLMを利用したい用途などに便利です。また「LM Studio」は複数のモデルを切り替えながら使用できます。 この記事では「LM Studio」の導入の初歩として「LM Studio」の導入手順と基本的な使い方について解説します。 概要 (このぺージ) インストール 導入テスト API-テスト LM Lin k 外部サービス連携(MCP) ライセンス体系 「LM Studio」を使用する上での気になるライセンスはどうなっているのか? 最新のライセンスは「LM Studio」の サイト(https://lmstudio.ai/blog/free-for-work) をご確認ください。ここでは、簡単に説明します。 無料 個人・企業 当初は個人は無料でしたが企業も無料に変更されている。 有料(問い合わせ) 企業 TeamsとEnterpriseが有るようだが、詳しくは不明である。 運用コスト 「LM Studio」を運用する費用はアプリをローカル環境で使用する場合には発生しません。特別に有料ライセンスを購入すればもっと多くの情報へアクセス出来る様ですが、個人もしくは自社内で利用する事に関しての追加コストは発生しないようです。 運用コストとしては、非力なPCでは無理が有ります。例えば、8GBメモリで128GB SSDでは、小規模モデルであれば動作しますが、快適に利用するのは難しいでしょう。今回はMacBookPro 14インチ(M1-32GBRAM)でテストしました、使用するAIモデルによっては無理が有りそうです。macOSでは無く、Windows/Linux系だとGPUにも左右されるので何処まで「LM Studio」を使用するかによってPC/GPUのスペックを考慮する必要が有ります。 他のローカルLLM 「LM Studio」をテストした後に他のローカルLLMを調べました。以下以外にも沢山のローカルLLM対応が有ります。 名称 URL 概要 LM Studio https://lmstudio.ai Element Labs, Inc. Llama 4 https://www.llama.com/models/llama-4/ 2025年4月、Meta社、マルチモーダル機能と言うテキスト/画像/動画を処理 Mistral AI https://mistral.ai 2023年、オープンソース型、複数のAIモデルを組み合わせて処理 Qwen 3 https://qwen.ai/home 2025年、アリババクラウド、オープンソース Gemma 4 https://ai.google.dev/gemma/docs/core/model_card_4?hl=ja 2024年、Google DeepMind社、AIオープン化戦略の一環で提供 DeepSeek https://www.deepseek.com 2024年、DeepSeek社 GPT-OSS オープンモデル (gpt-oss) 2025年8月、OpenAI社、オープンソースGPT系 Phi-4 https://azure.microsoft.com/ja-jp/products/phi Microsoft社、小型言語モデル TinyLlama https://github.com/jzhang38/TinyLlama 2024年1月、オープンソース(Apache 2.0)、エッジデバイス活用 注意事項 「LM Studio」をインストールするには、予めSSDの空きを確保してください。PCのRAMも重要です。可能な限り多い方が良さそうです。 AIモデルは1つ当たり、数GBから50GBを越える物まで有ります。2-3個のモデルをダウンロードし、アプリと合わせて50GBのSSDを消費したとかなります。 インストール 「LM Studioのテスト」関係のインストール関係を記述しています。 インストール環境 テスト環境 今回は以下のバージョンと環境でテストしました。 LM Studio バージョン0.4.9+1 (0.4.9+1) 2026-04-12 からはUpdate: バージョン0.4.11+1 (0.4.11+1) MacBookPro 14 inch CPU: Apple Silicon M1 Max RAM: 32 GB SSD: 1 TB macOS: Tahoe 26.4 Xcode: 26.4 (APIテスト用) MacBookPro 16 inch CPU: Apple Silicon M2 Max RAM: 96 GB SSD: 8 TB macOS: Tahoe 26.4 Xcode: 26.4 (APIテスト用) Mac mini CPU: Apple Silicon M2 RAM: 24 GB SSD: 255 GB macOS: Sequoia 15.7.1(24G231) macOSの動作環境 「ML Studio」のmacSO版の動作環境は次の通りです。 2026年4月12日現在 (バージョン0.4.11+1 (0.4.11+1))   Webページより OS macOS 14.0(Sonoma)以降 Apple Silicon(M1 / M2 / M3 / M4)のみ。 (Intel Macには未対応 こちらWebの情報 を参照してくたせさい。) RAM 16GB以上(8GBでも起動するがモデルは最小モデルを推薦) GPU Apple Siliconでは、CPUとGPUのメモリを共有 Windowsの動作環境 テストは実施していません。単に 2026年4月12日現在 (バージョン0.4.11+1 (0.4.11+1))   Webページより の情報を翻訳/転記をしています。 OS x64およびARM(Snapdragon X Elite)ベースのシステム CPU: x64時はAVX2命令セットのサポートが必要 RAM 16GB以上のRAMを推奨 GPU 4GB以上の専用VRAMを推奨 Linuxの動作環境 テストは実施していません。単に 2026年4月12日現在 (バージョン0.4.11+1 (0.4.11+1))   Webページより の情報を翻訳/転記をしています。 OS x64およびARM64(aarch64)ベースのシステム Ubuntu 20.04以降が必要(Ubuntu 22より新しいバージョンについては、十分なテストが行われていません。) x64環境では、LM StudioはデフォルトでAVX2に対応 RAM 特に記述無し GPU 特に記述無し インストール 次の手順でmacOSへ「LM Studio」をインストールしました。 アプリケーションのダウンロード 次のURLへアクセスしmacOS版のアプリをダウンロードします。 https://lmstudio.ai Download LM Studio 「Download」ボタンには、最新版のアプリが表示されているのでダウンロードします。 圧縮状態のアプリサイズは約550MB、展開時のアプリは約1.6GB程度有ります。 インストール dmgファイルを開いて、「LM Studio」をApplicationsフォルダーへコピーします。 最初の起動 アプリを起動 コピーされた「LM Studio」アプリを起動します。 アプリの確認 macOSでダウンロードされたアプリを最初に起動したときの確認です。 最初の画面 「Get Started →」ボタンを押して開始します。 最初のAIモデルのダウンロード AIモデルを指定します。 とりあえずデフォルトで指定されている「Download gemini-3-4b」ボタンを押してダウンロード(約3GB)とします。後からAIモデルは追加ダウンロード出来ます。 AIモデルのダウンロードが完了したら「Continue →」ボタンを押して次の画面を表示します。 Advanced Setting画面 Advanced Setting画面はデフォルトのままで「Continue to LM Studio →」ボタンを押します。 最初の画面 最初の画面が表示されます。 ログイン時に開く macOS Tahoe 26.4では設定の「一般 > ログイン項目と機能拡張」に「LM Studio」がログイン時に開くに追加されます。不必要なら削除して下さい。 Introducingメッセージ 「LM Studio」の画面左下に次の様なメッセージが出ます。 簡単な紹介的な意味合いで特に気にすることは無いと思います。「LM Studio」はLM Linkは別のPCでLLMを処理し、他のPCからネットワーク経由で接続し通信は暗号化します。「LM Studio」をより強力なPCで運用し他のPCからリモートで使用する事可能です。 Introducing: LM Link Connect to remote instances of LM Studio. Load models on your other machines, and use them locally. End-to-end encrypted. 最初の設定 UIの言語設定 UIの言語を日本語に設定します。ベータと言うことで、あまり日本語化されていない感じです。 画面左下のアイコンをクリックして設定を開き「Genelal > User Interface」の「App Language」から「日本語(Bate)」を選択します。直ぐにSetting関係の表示の一部が日本語になりましたが、念のためにアプリを再起動します。 モデルの確認 現在、使用出来るモデルを確認します。インストール時にモデルをダウンロードしていない場合には、この画面でモデルをダウンロードしてしてください。 画面の左端にいくつかのアイコンがありますが「My Models」を選択して、モデルを確認してください。 モデルの追加 モデルを最初にダウンロードしなかったり、新しいモデルを追加する場合には、My modelsアイコン下の「Model Search」ボタンを押して、モデルを検索してダウンロードします。 現在、利用できるモデルの一覧が表示されるので、モデルを選択し「Download」します。 今回は、GPTで検索してモデルを確認します。120B(約63GB) と20B(約12GB)のの2つが見えますが、20B(約12GB)の方を選択して「Download」します。 120Bとか20Bは何? モデルの「パラメータ数(重みの数)」です、20Bは約 200億パラメータ、120Bは 約 1200億パラメータとなります。 ダウンロード完了 再び、My Modelsを確認するとGPTが追加されています。 導入テスト 「LM Studioのテスト」関係の導入時の簡単なテスト結果を記述しています。 最初のチャット 最初のチャット 画面中央の「New chat」をクリックして最初のチャットを始めます。 チャット枠が開くのでメッセージを入力します。 入力後、送信ボタン(上矢印)が有効になりません。 チャットの「Pick a model」をクリックして、モデルをロードしてください。モデルがロードされていなかったので送信ボタンが有効になりませんでした。 今回は「Gemma 3 4B」の軽量モデルを選択します。 モデルの読み込み用のダイアログが表示されるので「モデルを読み込む」ボタンで読み込んでください。 読み込みが完了したら送信ボタンでメッセージを送信してください。 返答が得られます。 この段階でのmacOSのメモリ使用量をみてみましょう。 推論強度の設定 Reasoning(推論強度)設定 チャット画面左下の「Reasoning」でモデルに対して推論(考える時間)の強度を指定出来ます。 Reasoningは3つの指定が出来ます。 Low Medium High Low指定 短時間で即答できる軽い推論(軽いQ&Aとかチャット)を想定しています。負荷は軽いです。 Medium指定 回答スピードと質問内容のバランスを取ったモードと言われてています。回答はLowに比べて遅くなります。 High指定 推論は一番深く時間が掛かります。複雑な内容を処理する事を目的にしています。 設定変更の結果サンブル 設定を3種類変更して得られるサンブルの回答の具体例を記述します。 使用したモデルは「GPT-OSS 20B」です。 また、質問内容は全て同一で「AIを実行する最適なmacの購入構成を出して下さい。」です。 Reasoning設定 応答までの時間 Low 約1-2秒 Medium 約4秒 High 約27秒 Low指定の結果 Medium指定の結果 High指定の結果 サンプルの評価 んーー、比較出来るする状態では無い感じでしたが、応答性は明確に違います。特に「High」指定時は時間が掛かります。他の質問では推論が明確に異なるのか。。。 API-テスト 「LM Studioのテスト」関係の「LM Studio」のAPI関係の記事を記述しています。 APIテスト APIの利用設定 APIを使用するために「LM Studio」のサーバー機能を次の様に有効化します。 画面右上の4つのアイコンから「Developer」を選択して設定を開始します。 一番上の「Local Server」を選択します。 「 + Load Model」ボタンを押して使用するモデルをロードします。 「Status Stoppend」スイッチを「ON」としてサーバーを起動します。 Developer Logsにログが出て来るので動作を確認してください。 テスト用のiOSアプリの制作 LLMサーバーと通信する簡単なチャットアプリを制作します。 アプリは、単純にメッセージを送信して結果を受け取るというシンプルな物です。 以下は今回制作したテストアプリのコードです。 iOS 26.0でビルドしてにiOS 26.4のシミュレータで動作確認しています。 全ソースコード // // ContentView.swift // ML ClientTest // // Created by Masahiko Tani on 2026/04/05. // import SwiftUI import Foundation struct ContentView: View { @State private var message = "" // 入力テキストを保持するステート変数 @State private var chatMessages: [ContentView.ChatMessage] = [] var body: some View { VStack { // テキストフィールド (入力欄) TextField("Enter message...", text: $message) .padding() // 送信ボタン Button("送信") { sendMessage() } .padding() // チャットメッセージの表示 ScrollView { // 縦にスクロールできるようにScrollViewを追加 LazyVStack { // 効率的な表示のためにLazyVStackを使用 ForEach(chatMessages) { message in // let markdown = message.text // Text(try! AttributedString(markdown: markdown)) Text(.init(message.text)) // markdown } } } } } func sendMessage() { guard !message.isEmpty else { return } // 空のメッセージは送信しない let url = URL(string: "http://127.0.0.1:1234/api/v1/chat")! // LM StudioのAPIエンドポイント var request = URLRequest(url: url) request.httpMethod = "POST" // POSTメソッドを使用 request.setValue("application/json", forHTTPHeaderField: "Content-Type") let chat = ChatRequest(input: message) do { request.httpBody = try JSONEncoder().encode(chat) } catch { // エンコード失敗時はここで処理 print("JSONエンコードに失敗しました: \(error)") } let task = URLSession.shared.dataTask(with: request) { (data, response, error) in do { handleServerResponse(data: data) // let json = try JSONDecoder().decode(String.self, from: data!) // サーバーからのJSON文字列をデコード // DispatchQueue.main.async { // let message = ContentView.ChatMessage(text: "You: \(json)", isUser: true) // self.chatMessages.append(message) // } } catch { DispatchQueue.main.async { let errorMsg = ContentView.ChatMessage( text: "Error: \(error.localizedDescription)", isUser: false // エラーは「Bot」側として扱う ) self.chatMessages.append(errorMsg) debugPrint(errorMsg.text) } } } task.resume() // 入力テキストをクリア message = "" } // data はサーバーから受け取った `Data`(URLSession などで取得) func handleServerResponse(data: Data?) { guard let data = data else { return } do { // ① JSON を `ChatResponse` にデコード let chatResp = try JSONDecoder().decode(ChatResponse.self, from: data) // ② type が "message" の要素を取得 if let messageOutput = chatResp.output.first(where: { $0.type == "message" }) { let serverMessage = messageOutput.content // ③ UI スレッドへ渡す DispatchQueue.main.async { let message = ContentView.ChatMessage(text: "You: \(serverMessage)", isUser: true) self.chatMessages.append(message) } } else { // "message" が見つからない場合のフォールバック let errorMsg = ContentView.ChatMessage( text: "⚠️ 返答に message がありませんでした", isUser: false // エラーは「Bot」側として扱う ) self.chatMessages.append(errorMsg) debugPrint(errorMsg.text) } } catch { DispatchQueue.main.async { let errorMsg = ContentView.ChatMessage( text: "Error: \(error.localizedDescription)", isUser: false // エラーは「Bot」側として扱う ) self.chatMessages.append(errorMsg) debugPrint(errorMsg.text) } } } struct ChatMessage: Identifiable { let id = UUID() let text: String let isUser: Bool // true なら「You」、false なら「Bot」 } // 2. JSON オブジェクトに包む struct ChatRequest: Codable { let input: String // let temperature: number // 任意(デフォルト 1.0) -生成のランダム性を調整 (0〜2) // let max_tokens: integer // 任意(デフォルト 512) -生成テキストの最大トークン数 var model: String = "openai/gpt-oss-20b" } /// 最外層 struct ChatResponse: Codable { let model_instance_id: String let output: [ChatOutput] let stats: ChatStats let response_id: String } /// output 配列の要素 struct ChatOutput: Codable { let type: String // "reasoning" / "message" let content: String } /// stats の情報(必要なら取り込めます) struct ChatStats: Codable { let input_tokens: Int let total_output_tokens: Int let reasoning_output_tokens: Int let tokens_per_second: Double let time_to_first_token_seconds: Double } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }   コードの簡単な説明 bodyでは大まかなUIを定義しています。 テキストフィールド (入力欄)/送信ボタン/チャットメッセージの表示などです。 var body: some View 送信ボタンが押されるとsendMessageが呼ばれ、入力されたメッセージをJSONエンコードしてhttpのPOSTで送ります。送信後はfunc handleServerResponse(data: Data?)で受信します。 func sendMessage() 「LM Studio」のサーバーログの例です。 クライアントからメッセージを受け取り推論してレスポンス生成し返しています。 2026-04-09 02:47:37 [DEBUG] Received request: POST to /api/v1/chat with body { "model": "openai/gpt-oss-20b", "input": "こんにちは" } 2026-04-09 02:47:37 [INFO] [openai/gpt-oss-20b] Running api/v1/chat on history with 1 message. 2026-04-09 02:47:38 [INFO] [openai/gpt-oss-20b] Prompt processing progress: 100.0% 2026-04-09 02:47:38 [INFO] [openai/gpt-oss-20b] Prompt processing progress: 100.0% 2026-04-09 02:47:38 [INFO] [openai/gpt-oss-20b] Generated response: { "model_instance_id": "openai/gpt-oss-20b", "output": [ { "type": "reasoning", "content": "Need greet in Japanese." }, { "type": "message", "content": "こんにちは!今日はどんなことに興味がありますか?お手伝いできることがあれば教えてくださいね。" } ], "stats": { "input_tokens": 68, "total_output_tokens": 42, "reasoning_output_tokens": 5, "tokens_per_second": 75.68517600625522, "time_to_first_token_seconds": 1.129 }, "response_id": "resp_850cca25c267606a71f269820dafb2bd6a99b2e5a6d8f81f" } コードの説明を追加 制作したアプリのプログラムに関して追加説明をします。 まず、JSONとかチャットの為にstructを複数定義しています。 ChatMessage : やり取りのメッセージ格納用 ChatRequest :LLMサーバーのAPIに対してJSONを組み立てるメッセージ格納用 ChatResponse :サーバーからのレスポンスの格納用JSONフォーマット ChatOutput :ChatResponseの出力用JSONフォーマット ChatStats : ChatResponseのstats の情報用のJSONフォーマット ChatMessageは、送信/受信/表示などに使用されています。 ChatRequestは「/api/v1」用のJSONを組み立てています。現在は、input/modelが必須のバラメータの様です ChatResponseは、サーバーからのレスポンスでChatOutputとChatStatsを含みます。推論したモデル名/ChatOutput/ChatStatsを含みます。 ChatOutputは、reasoning/messageの2つの内容を含みます。messageは実際の推論結果となります。 ChatStatsは、トークンの利用状態とか処理時間などです。 LM Link 「LM Studioのテスト」関係のLM Link機能に関して掲載しています。 LM Linkの概要 LM Linkとは? 「LM Studio」のLM Linkを使えば、LLMを実行しているPCをLLMを共有出来る様になります。この共有はローカルネットワークを越えてWANでの共有も可能となります。LM Linkで高性能なPCをLLM実行用として利用することが可能になるので、各利用端末は非力な性能でも、高性能PC上で動作するLLMを利用できます。また、社内(ローカルネットワーク)でLLM実行環境を共有しやすくなるため、コストパフォーマンスを高めながら、社内資料を活用した運用も可能になります。さらに、ローカルネットワーク内で運用することで、社内文書が外部に送信されるクラウド型LLMと比べて、情報の外部送信リスクを抑えやすい点も特徴です。 LM Linkは「LM Studio」のアカウントでデバイス同士をリンクする仕組みであり、ローカルネットワーク内だけでなく、離れた場所にあるPCやクラウド上のマシンにも接続して利用できる点が特徴です。デバイス間の接続にはTailscaleメッシュVPNが利用されており、エンドツーエンドで暗号化された安全な通信が行われます。 LM Link 2026年4月9日現在 LM Linkは現時点では、2ユーザーまで、各ユーザー5台ずつ、合計10台まで無料で利用できます。追加のユーザー数やデバイス数に対する有料プランはまだ導入されていませんが、LM LinkがPreview期間を終了した後に提供される予定のようです。 LM Linkの接続イメージ LM Linkの設定 LM Linkの設定-アカウント登録 「LM Studio」を使用したいPCにインストールします。 LLM Linkでは、LM Studio アカウントが必要となります。 LM Studio Hubにユーザー/デバイスを登録時にサーバーが失敗したりエラーを出したりと非常に不安定です。この文書は何度もトライしたり1日待ったりと時間がかかりました。安定動作になることを期待しています。2026年4月10日 「LM Studio」の画面左下のアイコンをクリックして設定画面を表示します。 「Login & Request Access」ボタンを押して、LM Studio アカウントなどを登録します。 「LM Studio」との登録ページが表示されるのでいずれかの方法で登録します。今回は「Email」で登録します。 電子メールアドレスを入力して「Send login link」ボタンを押します。 電子メールが届くので「Sign in to LM Studio Hub」のリンクをクリックするかリンク用のURLをコピーしてWebブラウザで開きます。 「Complete Login」ボタンを押して完了します。 usernameを登録する画面になります。 注意: アカウント登録時に以下の様なサーバーエラーが出るときが有ります。その場合には、しばらく待って再度最初から登録操作を行います。 ユーザー名を入力してチェックを入れて「Complate Signup」ボタンを押します。 更に「Cintinue」ボタンを押して、Projects管理画面を表示します。 Projects画面 Projects画面です。特に何もしません。 ここまでで、登録したメールアドレスににメッセージが届きます。 「LM Studio」アプリの画面 今回はLLM実行PCと利用PCの2台を同じアカウントで登録しています。 画面はローカルネットワークでの接続です。 画面左下には「This decice」として表示されます。 利用PCを登録するとLLM実行PC画面にに追加されます。 利用PC側の画面にはLLM実行PCが追加されます。 それぞれのPC側からは、相手のPCの状態が見えます。 Remote Deviceのモデル一覧と状態 マシンの環境 ローカルアクセス ローカルネットワークからの利用 ローカルネットワーク内にLLM実行PCが有ると利用PCからアクセスしてLM実行PC上でモデルを実行して答えを得られます。ここでは、LM Link設定で登録した同一アカウントでの利用方法を記載します。 接続イメージ 2026年4月10日現在 LM Linkは現時点では、2ユーザーまで、各ユーザー5台まで、合計で10台無料で利用できます。追加のユーザー数やデバイス数に対する有料プランはまだ導入されていませんが、LM LinkがPreview期間を終了した後に提供される予定のようです。 LM Link WebSite LM Link is free to use for up to 2 users, 5 devices each (10 devices total). We have not yet introduced a way to pay for additional users or devices, but expect to add that once LM Link moves out of Preview. LM Linkに登録確認 LM Studio Hubで登録されているデバイスを確認します。1ユーザー当たり最大5台なので画面からは2台登録されています。 LLM実行PCへアクセス 利用PCからアクセスしてみます。 「LM Studio」アプリの左上から「Chat」を選択します。 次にメッセージ入力枠から使用するモデルを選択します。この時、LLM実行PC上のモデルも見えていると思います。ここでは「GPT-OSS 120B」を選択します。 これでLLM実行PC上のモデルが利用できる様になります。試しにメッセージを送ってみましょう。 もう一つ、質問してみました。LM Linkは新しいサービスなので、選択したモデルでは無理と答えています。 インターネットアクセス インターネットアクセス LLM実行PCを社内のローカルネットワークに置き、利用PCは外からインターネット越しにLLM実行PCを利用することが出来ます。 接続イメージ 具体例 具体的に実際にiPhoneのデザリングを使用して、外からLLM実行PCをアクセスした例を記述します。以下の説明は、利用PCからの操作などです。 利用PCの「LM Studio」起動してLLM実行PCとの接続を確認します。 接続されているPCは有りません。 次にMacBookProをiPhoneとデザリングでインターネットに接続します。 「LM Studio」アプリは10秒間隔で接続を試みるようで、ネットワークに接続すると自動的にLLM実行PCに接続出来ました。 Chat画面に戻って、LLM実行PCのモデルを選択して質問をしてみましょう。 インターネット越しでもローカルネットでも特別な操作無しで「LM Studio」が使用できました。 モデルの状態 参考にLLM実行PCへ接続したときと未接続時のモデル一覧です。 モデルを非公開設定 非公開設定 「LM Studio」アプリがローカルで使用しているモデルはLM Linkを有効にすると、LM Link対象になっているPCですべて使用できるようになります。 「LM Studio」アプリが自身のローカルモデルを非公開にするには非公開にしたいPCかーの設定を変更します。「Settings > LM Link」の「 Allow loading models on this machine 」をOFFにします。 モデル一覧以外は非公開にはならないよ! 使用しているLM Linkはベータなので今後のアップデータを期待しましょう。 2026年4月11日 OFFにするとML Linに接続される「「LM Studio」アプリのモデル一覧から除かれます。 非公開/公開のモデル一覧 ON時のモデル一覧の例です。 OFF時のモデル一覧の例です。 モデルを非行にしても表示? モデルを非公開にしているのですが、何故か「Developer」画面とチャット画面では表示されます。 バグ? モデルは常に使用可能 非公開設定してもモデル一覧に出ないだけで、Developer画面とかチャット画面では使用できます。おそらくバグ?ですかね。現在ベータ版です。2026年4月11日 モデルのメモリ使用量 モデルのメモリ使用量 「LM Studio」関係のモデル用のタスク「node」のメモリ使用量です。 未だ短期間のテストなので詳しく分からないところが多々あります。 モデル「openai/gpt-oss-120b」をロードしているので60GB程度の実メモリを使用して。システム全体では92GBも使用しています。 モデルのロード状態 Developer画面のLocal Serverから現在のモデルのロード状態の詳細を確認出来ます。先のアクティビティモニタでは4つ有りますが、2つが自身が指定してロードしたモデルのプロセスです。他の2つは不明です(未調査)。 ここで「Server Settings」を確認します。 「未使用のJITロードモデルを自動的にアンロード」がONとなって、10分を指定してます。しかし、10分を経過してもアンロードされません。LM Link動作時にアンロードされるとプロセスが終了してメモリ使用が無くなると推測していたのですが。。。設定方法が間違っているのか?現在の所はモデルがアンロードされてメモリが実行されない原因は不明です。また、API使用時だけの機能なのかは未確認です。 「LM Studio」アプリを終了 モデル用のプロセス「node」はアプリが終了しても残ります。LM Link機能かの兼ね合いで残る必要が有るのかも。試しにLM LinkをOFFにしましたが特に変化は有りませんでした。 メモリを解放 自動的に解放されないので、マニュアルで解放します。「Eject」ボタンを押してモデルを解放します。今回は「openai/gpt-oss-120b」を解放してみました。他のユーザーが使用中でも他のるPC全てからモデルを解放出来るので「Eject」ボタンの使用は注意する必要が有ります。途中で「Eject」されると当然ですが、中途半端に止まります。 キャッシュ上には残っている様ですが、使用済みメモリは「92GBから32GB 」と大幅に少なくなりました。アプリの改良を待ちたいと思います。それまでは、手作業でモデルのメモリ使用量を管理しましょう。 外部サービス連携(MCP) 「LM Studioのテスト」関係のRemote MCPを導入する記事です。「LM Studio」に簡単に機能を追加出来ます。 MCPの設定 概要 MCP(Model Context Protocol )はAIツール(今回は「LM Studio」)が外部へアクセスするために作られた共通の接続方式をです。例えば、Webの検索、外部データを扱うなどです。 「LM Studio」では次の様な構造となります。他のAIツールでも同等な構成となると思います。 LM Studio : LLMアプリ <--> MCP : 外部との共通接続方式 <--> 外部サービス: 実際に処理する部分 このMCPは複数登録して使用することも可能です。 Exaの設定 Exaの概要 ExtはMCPをサポートとしてLLMアプリ(モデル)に次の様なサービスを主に提供してくれます。Extサービスは無料枠も有りますが基本有料サービスとなっています。今回は、テストなのでユーザー登録もしていない無料枠でテストしています。詳しくは次のExtサービスをご確認ください。 Extサービスの Webサイト Webを検索してAIが扱いやすい形の結果を返します。 Webページを読み取りMarkdown形式で返します。 「LM Stduio」はローカル処理なので、外部に接続し最新のWeb情報を取得する仕組みを持っていません。しかし、MCPを通して外部のWeb情報を取得出来る様になっています。 Extは主に次の2つの方法のMCPを提供しています。 リモートMCP ローカルMCP 2つの違いをざっくり説明すると、リモートMCPは必要最低限の通信処理が有るのみでExaサイトが大部分の処理を実行します。ローカルMCPではMITライセンス下で提供(ライセンスは Extサイト )されたプログラムで自由に利用できます。ローカルMCPサーバー(JavaScript)を起動し、MCP実装の確認とか動作のカスタマイズ、動作状態の把握などが出来る様になります。しかし、Web処理などの処理は実装されてはいないのでExaサイトを使用することになります。 Exaの設定方法 Developer 設定のLoacal Server設定から「mcp.json」アイコンをタップします。 最初の何も無い設定状態です。 mcpServersにExtサービスを追加します。 "exa": { "url": "https://mcp.exa.ai/mcp" } mcp.jsonにExtサービスを追加した後の全体です。 { "mcpServers": { "exa": { "url": "https://mcp.exa.ai/mcp" } } } 「Save」ボタンを押して保存します。 「LM Studio」の画面右下に次の様なダイアログが出るので、 閉じるまで待つか右上の「×」をクリックして閉じます 。 注意: ここで「Edit mac.json」もしくは「Configure」ボタンを押さないでください。「LM Stduio」アプリおよび設定が壊れてチャットウインドウからモデルの操作ができなくなります。単純な回復は未調査なので、今回は設定ファイル関係(この時点で全ての履歴とモデルは無くなり、新しく導入したと同等)の削除と「LM Stduio」アプリの再インストールがで対応しました。2026-04-13 バージョン0.4.11+1 (0.4.11+1)で発生しました。 他のバージョンでこの現象が発生するかは確認していません。 チャットウインドウの左が次の表示の様になり、モデルの切り替えなどが出来なくなります。 正しいチャットウインドウの例です。モデル名などが表示されています。 復旧方法の例(クリーンインストールに近い) 復旧方法の一例として記述しています。私の場合にはテストなので大きな支障は有りませんが、情報を損失したくない場合には別の方法を使用してください。MCPを今回の様に設定したい場合には MCPの設定前に 「~/.lmstudio」をバックアップして行う方法も有ります。 注意: この方法は殆ど全ての情報を無くします。 アプリと関連プロセスの終了 「LM Studio」アプリと関連プロセスを完全に終了します。「LM Studio」アプリを終了してもプロセス名「LM (半角スペース)」から始まるプロセスを確認して「LM Studio」を強制終了します。また、「node」という関連プロセス名が有ります。「node」といういプロセス名は他のアプリで同一のプロセス名を割り当てられている事が有るので注意してください。プロセスの上位プロセス名が「LM Studio」のみを終了してください。 通常「LM Studio」アプリを終了すると関連プロセスも自動的に終了(最初にモデルをアンロードするのがコツ)します。終了されない場合にはプロセス名「LM Studio」アプリを強制終了すると終了します。 今回、確認した「LM Studio」バージョンは「バージョン0.4.11+1 (0.4.11+1)」です。 設定ファイルなどの削除 次に不可視フォルダを内容込みで全て削除します。このファイルには履歴とかアプリの設定、モデルファイルなどのほぼ全ての情報が入っています。もし必要なら「.lmstudio.bk」の様に名前を変更して保存して下さい。 ~/.lmstudio アプリの再インストール 「LM Studio」アプリをサイトからダウンロードして、置き換えてください。 アプリを起動して、新しいアプリとして、再設定してください。 ここまでで、多くの「LM Studio」情報が初期化され、新しいアプリとして使用できるようになります。 次にEdit mcp.jsonウインドウの右上の「×」をクリックして閉じます。 Exaの動作確認 チャットにMCP機能を追加 チャットウインドウで設定したMCPを使用出来る様に変更します。Integrationsアイコンをクリックして一覧を表示します。一覧中に追加したMCPが「MCP/exa」として表示されています。チェックをONとします。 mcp/exaが有効になるとチャットウインドには次の様に「exa」表示が追加されます。 動作確認 簡単に動作を確認してみましょう。通常通り質問などしても使用しているモデルがWebへのアクセスが不必要と推論したらMCPは使用されません。次のように具体的にWebアクセスをする質問とします。 「Web検索を使って」今日のイランの情勢を要約し参照URL付きで教えて 一度推論して、次にWeb検索、そして、最終的にまとめてレスポンスしている感じの動作をしていました。 今日は「2026-04-13 」Webページは「2026-03-31」ですが、ま、こんなものでしょうか? MCPが起動して検索作業中に実行の有無を尋ねる場合有ります。 試しに、MCPをOFFにして同様な質問をしてみました。結果は次の通りです。レスポンスとして『「リアルタイムで今現在のウェブ検索」を実行し、今日の情勢を即座に要約する機能が搭載されておりません。』と明言しています。当然、MCPが動作していると思われる表示は有りませんでした。 iPhone版ML Link 概要 LM Studio の iOS 版に ML Link が追加されたの事で試しました。 ML Link の概要は次のページを参照してください。 LM Link の概要 https://book.a10-objects.jp/books/lm-studio/page/lm-link iOS 版の LMLink のイメージ図は次の用になります。 macOS 版と異なるのはスマートフォンという限られた環境なので、使用できるモデルサイズが PC 環境よりより小さなモデルに限られます。しかし、 ML Link は他のデバイス上のモデルを使用できるのでこの制約を大幅に緩和できます。 ローカルネットワーク上なら通信量とモデル使用を気にすることなく利用できます。 現時点(2026-06-08)では、2ユーザーまで、各ユーザー5台ずつ、合計10台まで無料で利用できます。 動作環境 動作機種 iPhone 16 Pro / 256GB (Apple A18 Pro / /メモリ-8GB) 動作OS iOS 25.5 アプリ LM Studio for iOS Version 1.57.0 インストール ML Linkのテストではありますが、iOS版のML Studioのインスカトールから説明します。 アプリのダウンロード App Strore から検索してダウンロードするか次のページの「 App Store 」ボタンを押してダウンロードします。 URL: https://lmstudio.ai/blog/locally-lm-link 「 Locally AI - Local AI Chat 」をインストールします。 設定 アプリを起動して設定します。 最初の画面 簡単な説明を確認して「 Continue 」ボタンを押して次の画面へ移動します。 デフォルトで選択されているモデルのままで「Continue」ボタンを押してモデルをダウンロードします。 「Apple Foundation Ready!」と表示されダウンロードが完了します。 これでローカルLLMが実行出来る環境が整いました。 「Get Started」ボタンを押して次の設定に進みましょう。 LM Link 設定 最初の画面が表示されます。 今回のバージョン「Version 1.57.0」から、新しくLM Link機能が追加されたのでトップ画面は次の用になっています。 LM Linkのテストを開始したいので「Try it」むボタンを押してLM Linkの設定を開始します。 画面左上のICONから「Settings > LM Link」設定からも確認出来ると思います。 (ここらの設定は実際には行っていないので憶測です) ML Linkを実行するには「Sign in」ボタンでサインインする必要が有ります。 PCのML Link設定も参照しください。 https://book.a10-objects.jp/books/lm-studio/page/lm-link-syt 今回はPC上のモデルを使用するので、PCと同じメールアカウントを使用します。 新しいデバイス(iPhone)を登録するためにメーアドレスを入力し「Send login link」をクリックしてリンクを送ります。 電子メールのメッセージの「Sign in to LM Studio Hib」をクリックして認証します。 モデルのダウンロード LM Linkのテストの前に比較のために他のモデルもダウンロードします。 画面左上の「Settings」ボタンを押して設定を開始します。 「Manage models」を選択します。 このページから現在ダウンロードされているモデル「Apple Foundation」が表示されています。 また、新しくダウンロードする「Gemma 4」を選択します。 「Download」します。 LM Linkの確認 Settings 画面から「LM Link」を選択します。 LM Linkのリモートで実行出来るLM Studioを検索します。 ネットワークをアクセスするためにiOSから確認するための表示が表示されます。 「許可」ボタンを押してアクセス出来る様にします。 ネットワークアクセスが許可されネットワーク上に接続出来るデバイスの一覧が表示されます。 捕捉: 予めPC側のLM StudioとLM Link機能を有効にしておきます。 これで、LM Linkをテスト出来る環境が整いました。 テスト テスト環境が整ったので次のテストを行います。 iPhone 上のローカルLLM「Apple Foundation」 iPhone 上のローカルLLM「Gemma 4」 リモートPC上のローカルLLM「GPT-OSS 120B」 画面上のモデル名をクリックして、モデルを選択します。 1.iPhone 上のローカルLLM「Apple Foundqtion」 選択出来るモデルの一覧が表示されるので「Apple Foundation」を選択してテストします。 「LM Studio」を問い合わせてみました。 意味不明な結果が返りました。Apple標準のAPIではちょっと使い物にならないと言う印象です。 どんな質問なら得意なのでしょうか? 2.iPhone 上のローカルLLM「Gemma 4」 モデルを「Gamma 4」に変更して同一の質問をしてみます。 結果もレスポンスもなかなかいい感じです。 3.リモートPC上のローカルLLM「GPT-OSS 120B」 モデルをLM Linkで表示されるPC上のモデル「GPT-OSS 120B」を選択します。 プロンプトを入力して結果を表示します。 数秒程度で、結果が出来ました。 流石にPC上のローカルLLM 120Bは詳細に説明してくれます。 iPhoneのLM Studioがリモートデバイス上のローカルLLMを使用する事がLM Link機能で出来ました。 当たり前ですが、PC上のローカルLLMのパワーがiPhone上のローカルLLMとして利用できる用になりました。 リモートのモデル 画面の上部のモデルをクリックすると、リモートデバイス上のモデルを「LM Link」メニューから切り替えることが出来ます。 PC時のLM Linkの使用時と同様です。