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のセットアップ
上記からクリックしてダウンロード&インストールも可能ですが、brewでもインストール可能なのでそちらで対応します。
brew install ollama
インストール後は以下のコマンドを実行してサービスを起動させます。このコマンド(サービス)はOllama利用時は常に起動させておく必要があるため、必要に応じてバックグラウンドで起動させて下さい。
ollama serve
モデルを探す
サポートしているモデルは以下から探すことが出来ます。全ては見ていませんが、llama3の場合は基本的にQ4の量子化して軽量化したものが使われているみたいです。そのため、通常FP16のモデルよりも必要になるメモリサイズが小さくて済みます。
llama3.1-8bモデルを動かしてみる
まずはllama3-8bモデルを動かしてみます。
ollama run llama3.1:8b
>>> ここに質問を入力する(日本語もOK)
8bかつQ4であればで64GBメモリでも余裕で動かすことが出来ます。4GB前後くらいのメモリで済みそうです。ちょっと調べ物する程度であれば、これで普通に使える精度と速度な気がします。
llama3.3-70bモデルを動かしてみる
70b規模になるとQ4とはいえモデルサイズ(コンテナ)が42GBもあります。
ollama run llama3.3:70b
70bになるとQ4でも34GB程度のメモリを利用し、かつ回答速度も遅くてこのスペックのPCでは実用的ではない感じでした。
deepseek-r1-14bモデルを動かしてみる
約11GBのメモリ消費でそれなりの回答速度で動きました。llama3.1-8bと比較すると入力した質問に対する回答の精度はあまり良くない気がしました。
ollama run deepseek-r1:14b
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