LM Studio は、ローカル LLM を動かすためのソフトウェアのひとつ。
基本的に LM Studio では、モデルをダウンロードする際には Discover タブから GUI で検索してダウンロードできる。 しかし、Hugging Face Hub 1 などから手動でダウンロードしたモデルをインポートする方法も用意されている。 今回はそのやり方について書く。
使った環境は次のとおり。
$ sw_vers ProductName: macOS ProductVersion: 15.5 BuildVersion: 24F74 $ uname -srm Darwin 24.5.0 arm64 $ sysctl machdep.cpu.brand_string machdep.cpu.brand_string: Apple M2 Pro $ huggingface-cli version huggingface_hub version: 0.33.0 $ lms version __ __ ___ ______ ___ _______ ____ / / / |/ / / __/ /___ _____/ (_)__ / ___/ / / _/ / /__/ /|_/ / _\ \/ __/ // / _ / / _ \ / /__/ /___/ / /____/_/ /_/ /___/\__/\_,_/\_,_/_/\___/ \___/____/___/ lms - LM Studio CLI - v0.0.41 GitHub: https://github.com/lmstudio-ai/lmstudio-cli
もくじ
下準備
まずは Homebrew から LM Studio をインストールする。
$ brew install --cask lm-studio
インストールすると $HOME/.lmstudio
以下にディレクトリができる。
この中の bin
ディレクトリには LM Studio を CLI で操作するためのバイナリが入っている。
そこで、ここにパスを通す。
$ export PATH="$PATH:$HOME/.lmstudio/bin"
必要に応じてシェルの設定ファイルなどに永続化すると良い。
パスを通すと lms
コマンドが使えるようになる。
$ lms version __ __ ___ ______ ___ _______ ____ / / / |/ / / __/ /___ _____/ (_)__ / ___/ / / _/ / /__/ /|_/ / _\ \/ __/ // / _ / / _ \ / /__/ /___/ / /____/_/ /_/ /___/\__/\_,_/\_,_/_/\___/ \___/____/___/ lms - LM Studio CLI - v0.0.41 GitHub: https://github.com/lmstudio-ai/lmstudio-cli
続いて、Hugging Face Hub を操作するためのパッケージをPyPI からダウンロードする。
$ pip install "huggingface_hub[cli]"
これで huggingface-cli
コマンドが使えるようになる。
$ huggingface-cli version huggingface_hub version: 0.33.0
モデルをダウンロードする
次に Hugging Face Hub からモデルをダウンロードする。 LM Studio はデフォルトの実行ランタイムとして llama.cpp を使用する。 そのため、GGUF のモデルをダウンロードする。
$ huggingface-cli download "lmstudio-community/gemma-3-1B-it-qat-GGUF" --local-dir .
モデルをインポートする
ダウンロードしたファイルを lms import
コマンドでインポートする。
このときインポートのやり方を対話的に確認される。
$ lms import gemma-3-1B-it-QAT-Q4_0.gguf
無事にインポートできると LM Studio の画面でモデルが確認できるようになるはず。
モデルの動作を確認する
サーバを起動するとモデルが WebAPI 経由で使えるようになる。
試しにモデル一覧を curl(1) で確認してみよう。
$ curl http://localhost:1234/v1/models { "data": [ { "id": "gemma-3-1b-it-qat", "object": "model", "owned_by": "organization_owner" }, { "id": "text-embedding-nomic-embed-text-v1.5", "object": "model", "owned_by": "organization_owner" } ], "object": "list" }
インポートした gemma-3-1b-it-qat
が確認できる。
同様に completions の API も使ってみよう。
$ curl -X POST -s http://localhost:1234/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "gemma-3-1b-it-qat", "messages": [ { "role": "user", "content": "こんにちは!" } ] }' { "id": "chatcmpl-kfep0etrq6dz9fbcth25uh", "object": "chat.completion", "created": 1749874667, "model": "gemma-3-1b-it-qat", "choices": [ { "index": 0, "logprobs": null, "finish_reason": "stop", "message": { "role": "assistant", "content": "こんにちは!何かお手伝いできることはありますか? 😊 どんなことでもお気軽にご質問ください。" } } ], "usage": { "prompt_tokens": 11, "completion_tokens": 22, "total_tokens": 33 }, "stats": {}, "system_fingerprint": "gemma-3-1b-it-qat" }
問題ないようだ。