macOS上でローカルLLMをHTTP経由で実行する

お疲れ様です。macOS上でローカルLLMをHTTP経由で実行する方法を調べて、実行してみました。私が動作確認した記録を残します。

前提

  • 実行環境は、MacBookAir M2 24GBです。
    • 普段使っているマシンがこのスペックです。
  • Ollamaを使って、モデルは qwen3:14B を使ってみました。
    • 以前、Ollamaとこのモデルを入れて動作確認したものをそのまま使います

実行

curlで実行しました。

curl http://localhost:11434/api/chat -d '{
  "model": "qwen3:14b",
  "messages": [
    {"role": "user", "content": "こんにちは!聞こえますか!"}
  ],
  "think": false,
  "stream": false
}'
Code language: PHP (php)
{"model":"qwen3:14b","created_at":"2026-06-12T09:17:00.959324Z","message":{"role":"assistant","content":"こんにちは!聞こえていますよ!お元気ですか?"},"done":true,"done_reason":"stop","total_duration":8838921208,"load_duration":6903632958,"prompt_eval_count":24,"prompt_eval_duration":426332625,"eval_count":14,"eval_duration":1458145040}
Code language: JSON / JSON with Comments (json)

time コマンドで実行速度を測ったところ、以下でした。およそ2秒くらいですね。

________________________________________________________
Executed in    2.11 secs      fish           external
   usr time    6.95 millis    0.23 millis    6.72 millis
   sys time   15.36 millis    1.29 millis   14.07 millis
Code language: CSS (css)

解説・余談

今回、ローカルLLMには、Obisidan上のノートへのタグ付けを任せようとしており、その前段の検証をしています。で、thinkingモードはいらないのですが、Qwen3はデフォルトでthinkingが有効になっているようです。このままだとthinkingに時間がかかりますが、私のケースでは不要なので、これを削ります。で、そのために think: false を指定しています。

また、stream: false を付けていますが、これをやらないとトークンごとに1行ずつJSONが流れてきます。curlで試すときは付けたほうが見やすいです。

curl http://localhost:11434/api/chat -d '{
  "model": "qwen3:14b",
  "messages": [
    {"role": "user", "content": "こんにちは!聞こえますか!"}
  ],
  "think": false
}'
Code language: PHP (php)

類似投稿