CUBE SUGAR CONTAINER

技術系のこと書きます。

Mac: LM Studio に Hugging Face Hub からダウンロードしたモデルを CLI で読み込む

LM Studio は、ローカル LLM を動かすためのソフトウェアのひとつ。

lmstudio.ai

基本的に 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 の画面でモデルが確認できるようになるはず。

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"
}

問題ないようだ。