🐡

Mac StudioでOllamaを使ったローカルLLMのやり方

に公開

概要

Mac Studio環境でローカルLLMをやってみました。どのくらいのパフォーマンスで動くのか確認することが目的です。

  • モデル: 2023
  • CPU: Apple M2 Max
  • メモリ: 64GB
  • OS: Sequoia 15.3.2

llama-3だと70bモデル(かつQ4)は流石に実用的ではなく、モデル自体はメモリに乗って動いたとしてもプロンプト(回答速度)が遅かったです。8bモデルだと想像以上に問題なく動いたのでちょっとびっくりでした。

それとdeepseek-r1-70b(-q4)を動かしてみましたが、llama3.3-70bよりも全体的に優れていてプロンプトは速くはないけど個人で使うならまあギリギリ許容範囲かなという感想です。

全体的に個人が使うそこそこのローカルLLMなら、Mac (Apple Silicon)でもいいかもしれない。ただし、RTXのグラボと比較すると速度は期待出来ないので、個人用途でそこそこのものを動かす分にはコスパは良いけど、実用的に使うならMacではなさそうというという印象でした。

ローカルLLMをやるための環境

ローカルLLMをやる場合の実行環境はいくつもある様子です。よく使われている様子のOllamaに関しては、内部ではllama.cppが使われているみたいです。

用途 環境
簡単に試したい LM Studio, GPT4All
コマンドで使いたい Ollama, llama.cpp
軽量推論がしたい llama.cpp, GGUF, Ollama
Pythonから利用 Transformers, llama-cpp-python
GPUで本格運用 vLLM, PyTorch, TensorRT
Web UIで試したい Oobabooga, LM Studio
大規模モデルを動かしたい CUDA + PyTorch/TensorRT

LM Studio vs Ollama

  • GUIで簡単に試したいならLM Studio、スクリプトや開発用途ならOllama
  • CLIベースで自動化や開発に使いたいならOllama

という感じです。

項目 LM Studio Ollama
UI GUIあり CLIのみ
モデル管理 Hugging Faceから直接DL可能 ollama pull で簡単管理
カスタム性 低い Modelfileで設定変更可能
ファインチューニング 不可 一部可能(限定的)
対応OS Windows, macOS Windows, macOS, Linux

Ollamaのセットアップ

https://ollama.com/

上記からクリックしてダウンロード&インストールも可能ですが、brewでもインストール可能なのでそちらで対応します。

brew install ollama

インストール後は以下のコマンドを実行してサービスを起動させます。このコマンド(サービス)はOllama利用時は常に起動させておく必要があるため、必要に応じてバックグラウンドで起動させて下さい。

ollama serve

モデルを探す

サポートしているモデルは以下から探すことが出来ます。全ては見ていませんが、llama3の場合は基本的にQ4の量子化して軽量化したものが使われているみたいです。そのため、通常FP16のモデルよりも必要になるメモリサイズが小さくて済みます。

https://ollama.com/search

llama3.1-8bモデルを動かしてみる

https://ollama.com/library/llama3.1

まずはllama3-8bモデルを動かしてみます。

ollama run llama3.1:8b
>>> ここに質問を入力する(日本語もOK)

8bかつQ4であればで64GBメモリでも余裕で動かすことが出来ます。4GB前後くらいのメモリで済みそうです。ちょっと調べ物する程度であれば、これで普通に使える精度と速度な気がします。

llama3.3-70bモデルを動かしてみる

https://ollama.com/library/llama3.3:70b

70b規模になるとQ4とはいえモデルサイズ(コンテナ)が42GBもあります。

ollama run llama3.3:70b

70bになるとQ4でも34GB程度のメモリを利用し、かつ回答速度も遅くてこのスペックのPCでは実用的ではない感じでした。

deepseek-r1-14bモデルを動かしてみる

https://ollama.com/library/deepseek-r1:14b

約11GBのメモリ消費でそれなりの回答速度で動きました。llama3.1-8bと比較すると入力した質問に対する回答の精度はあまり良くない気がしました。

ollama run deepseek-r1:14b

deepseek-r1-70bモデルを動かしてみる

https://ollama.com/library/deepseek-r1:70b

メモリは約37GB消費し、プロンプトはllama3.3-70bよりもかなり速い感じがします。ちょっと触っただけでも、llama3.3-70bよりもdeepseek-r1-70bの方が優れている感じがしました。

ollama run deepseek-r1:70b

ダウンロードしたモデルを削除

ダウンロードしたモデルはGB単位のファイルでディスクを圧迫するので、不要になったものは都度削除しておきます。

$ ollama list
NAME               ID              SIZE      MODIFIED       
llama3.1:latest    46e0c10c039e    4.9 GB    14 minutes ago    
$ ollama rm llama3.1:latest
deleted 'llama3.1:latest'

Discussion