DeepSeek系LLMはOSSだけでMacBookローカル環境でも快適に動く

# はじめに

ニューラルネットのブーム再燃 → Googleインターン生によるAttention機構の発明 → OpenAI社のChatGPT-4登場による衝撃 → LLMブーム → DeepSeekを筆頭としたOSS系LLMの台頭 → ...... という激動の1年間を経て、大規模言語モデル（LLM）の技術分野はほぼ確立されました。現在、世界中で取り組まれているのは「軽量化」と「高性能化」です。

特に、LLMをOSS化する流れと、「量子化（Quantization）」や「蒸留モデル（Distilled Model）」といった技術の進展により、高性能かつ軽量で技術的透明性の高いモデルが無料で公開されています

https://ascii.jp/elem/000/004/250/4250447/


この流れを受け、OllamaやAnythingLLMといったOSSツールが登場し、個人でも高度な大規模言語モデルをローカル環境に簡単に導入できるようになっています。ローカル環境でLLMを動かすメリットはたくさんありますね。

- **無料で使い放題**
- **機密情報を安心して入力可能**
- **自分好みにカスタマイズできる**

というわけで今回は、M2 Macbook Proを用いて環境を構築しました。OSSツールのみを使用して、具体的にはOllamaとAnythingLLMで以下のような環境を実現しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/f6e63342-6894-42a5-ae89-3c3a2cbb5fc1.png)

作業時間は半日くらいですが、大部分はモデルのダウンロード（数GB単位）にかかる時間です。ネット環境が高速な場合は、より短時間で完了できると思います。

### 環境要件

ターミナルで以下のコマンドを実行し、`arm64` が出力されればOKです。

```bash
% uname -m
arm64       # → ARM (Apple Silicon) なのでOK
```

**ダメな例**

```bash
% uname -m
x86_64      # → Intel（従来のMac）なのでダメ
```

筆者は、2022年モデルの **M2 MacBook Pro（8コアCPU / 16GBメモリ）** を使用しています。ノートPCでLLMが動作するなんてすごい時代ですね。


# 本編

## Ollama のインストール

以下のページからOllamaをダウンロードし、インストールします。

https://ollama.com/

インストール後、チュートリアルに沿ってテストを実行します。最初のチュートリアルでは、Meta社の軽量モデル **Llama 3.2** を試すよう案内されるはずです。

ターミナルで以下を実行します。

```bash
% ollama run llama3.2
```

初回実行時には、約3.2GBのモデルがダウンロードされます。その後、プロンプト入力待ちの状態になれば成功です。

```bash
% ollama run llama3.2
pulling manifest
pulling dde5aa3fc5ff... 100% ▕██████████████████████████████████████████▏ 2.0 GB
...
success

>>> Send a message (/? for help)
```

適当な質問（例：「こんにちは、あなたについて教えて」）を入力し、応答が返ってくればOllamaの動作確認は完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/8915ee8e-4ddc-4182-a167-8ed31c42ebb6.png)

軽量なのでちょっとアホの子ですが、動作はいい感じです。
終了するには `Ctrl + D` を押すか、`/bye` と入力します。



## AnythingLLM のインストール

以下のページからAnythingLLMのデスクトップアプリをダウンロードし、インストールします。

https://anythingllm.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/dda03655-678b-4663-9cd8-0fdf290ed60c.png)

Apple Silicon版を選択してください。
インストール後、起動するとセットアップ画面が表示されます。「LLM Preference」を設定する画面で Ollama を選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/3b599668-c9c8-4e29-b9c8-bef6c867672f.png)

「ローカル環境だから情報はどこにも送信されませんよ〜」だそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/4effaa50-18c5-4276-8801-b34f9b56192c.png)

さらに進んで、アンケートに答えたり答えなかったりして、ようやくLLM環境の準備が完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/f6e63342-6894-42a5-ae89-3c3a2cbb5fc1.png)

Chat GPTライクで馴染みやすいUIですね。



## モデルのインストール

Ollamaを使って、どんどんモデルを追加していきましょう。DeepSeek社やMeta社といった有名どころが提供するモデルについては、[Ollama公式ライブラリ](https://ollama.com/library) に掲載されており、比較的簡単に導入可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/d40aa53f-fd6d-4b23-a7b4-a250b378b484.png)


ここでは、公式ライブラリにはない **CyberAgent社が日本語向けにファインチューニングしたモデル** の導入方法も紹介します。

:::note info
LLM には `.safetensors` や `.gguf` といった種類があり、Ollamaは `.safetensors` 形式には直接対応していません (2025年2月現在)。一方で、huggingFace を介したモデル配布で一般的なのは `.safetensors` 形式となっています。そこで、ここでは有志の方が `.gguf` 形式に変換してくださったものを引っ張ってくる (pull) ことになります。
:::

### 本家 DeepSeek モデルの導入

DeepSeek（ディープシーク）は、中国・杭州市に拠点を置くAIスタートアップです。2023年に設立され、オープンソースの大規模言語モデル（LLM）の開発を行っています。2025年1月にリリースされた「DeepSeek-R1」は、約8～9億円という低コストで開発されながら、OpenAIのChatGPTと同等の性能を持つとされています。

https://www.linkedin.com/pulse/deepseek-r1-best-open-source-reasoning-llm-openais-o1-yanguema-0sxlc


本家Deep Seek社が提供するモデルは、Ollama公式サイトにあるため、比較的かんたんに導入できます。

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

Llama3.2のときと同じ要領で、ターミナルから以下のコマンドを実行すればOKです。

```bash
% ollama run deepseek-r1:14b
```

M2 MacBook Pro（8コアCPU / 16GBメモリ）では、**「deepseek-r1:32b（19GB）」は動作が重すぎ (2秒かけて1文字くらい)** でしたが、**「deepseek-r1:14b（9GB）」ならサクサク動作** しました。

AnythingLLM側の設定を行います。
画面左上の `+ New Workspace` から新しいワークスペース (≒チャットルーム) を作成し、歯車アイコンを押して設定を開きます。
`Chat Settings` タブから

- `Workspace LLM Provider` を Ollama に、
- `Workspace Chat model` を先程インストールした deepseek-r1 に

それぞれ変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/0c0d7478-f483-4c73-817b-8624c7fa154d.png)

赤枠で囲ったところです。
最後に一番下の `Update workspace` を忘れず押して (一敗)、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/950b4e5f-4893-40fd-bb59-170872bcb747.png)

セットアップは完了です。
日本語で「こんにちは、あなたについて教えて」と聞いてみると…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/7208e539-6bd9-45ce-be71-006c6e03d615.png)

英語で推論しているようです。一行の挨拶の裏側ですごい考えていますね、なんだか親近感が湧いてきます。

ただ、このモデルにはいくつか問題があり、端的に言うと「天安門事件」とか「台湾独立がNvidiaの株価に与える影響」といったことに回答できないと言われています。

https://news.yahoo.co.jp/articles/af16c856a55fe4eced541bf476480fb6db64d641

やってみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/dc2c35a9-9e7f-4a49-9281-3b53bcf5acdb.png)

......あれ？普通に答えてくれちゃった。ローカルだから、フィルタリングが甘いんでしょうか。




### CyberAgent版 DeepSeek モデルの導入

CyberAgent社がDeepSeek-R1をベースに蒸留＋日本語追加学習を施した日本向けのモデルを導入します。

https://www.itmedia.co.jp/aiplus/spv/2501/29/news182.html

https://huggingface.co/cyberagent/DeepSeek-R1-Distill-Qwen-32B-Japanese

このモデルはOllama公式には掲載されていませんが、有志の方が `.gguf` 形式に変換してくださったものがあるので、そちらを利用します。

https://huggingface.co/mmnga/cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-gguf

最近のOllamaは `run` コマンドでhuggingFaceから直接インストールできるようになっています。便利ですね。

```bash
% ollama run hf.co/mmnga/cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-gguf

pulling manifest
pulling daf92c0e1436... 100% ▕███████████████████████████████████████████████████████████████████████████▏ 9.0 GB
...
success
```

モデルのダウンロード後、AnythingLLMの方の設定も行います。

画面左上の `+ New Workspace` から新しいワークスペース (≒チャットルーム) を作成し、歯車アイコンの設定メニューから、`Chat Settings` タブの

- `Workspace LLM Provider` を Ollama に、
- `Workspace Chat model` を先程インストールしたモデルに

それぞれ変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/4677097e-bb6b-4e2c-8647-fc6687a0c3d9.png)

日本語で「こんにちは、あなたについて教えて」と聞いてみると......

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/f0a7b584-2b49-4182-8a54-a8ec03c53189.png)

こちらは日本語で推論しているようです。表に出てくる言動が事務的でクールですね。メガネっ子でしょうか。天安門事件について聞いてみると、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684531/b1de1cfd-4e62-408f-9c1e-35f448b71464.png)

さっきよりやや詳細、というか事務的に事実を回答してくれました。



# おわりに

この記事の内容について、誤りや補足があればぜひコメントで教えてください。私の勉強にもなるし、周りで聞いてる人(=この記事を読む人)の助けにもなるし、教えてくれるあなたの理解も整理されて一石三鳥！というのが、私の研究室時代の指導教官の教えです。私の試行錯誤が皆様のヒントになれば幸いです。


### 参考資料

この記事の根幹

- [M1MacでOllamaを試したら爆速で驚いた - Zenn](https://zenn.dev/yasuna/articles/284aa6bbf6124e)

- [AnythingLLMとOllamaでwebから情報を取得してRAGを実行する - Qiita](https://qiita.com/orca13/items/d84a2c398aff2334c69c)


UI選定

- [What UI is best for Ollama?](https://www.reddit.com/r/ollama/comments/1gywyih/what_ui_is_best_for_ollama/?rdt=59958)
    
    上の Reddit で名前を挙げられたやつを色々試してみたんですが、その中ではたぶん AnythingLLM が「正解」だと思います。

    - misty → 動作に違和感。同じプロンプトを入れても、Ollama を直接叩くときと返答の雰囲気がだいぶ違う。あと日本語入力が変。
    - Open WebUI → Dockerが必要。Mac 上での Docker はただでさえ遅い上に、Linux VM が Apple Silicon Metal を活用できないせいで Ollama の動作がハチャメチャに重くて M1 Mac の意味がない。(ある海外エンジニアの悲痛な叫び → [Apple Silicon GPUs, Docker and Ollama: Pick two.](https://chariotsolutions.com/blog/post/apple-silicon-gpus-docker-and-ollama-pick-two/))
    
    - AnythingLLM ← この記事
    - pyGPT → インストール中にエラーが発生した。


Ollama 公式ページに載っていないモデルをインストールする話
- [ローカルのggufモデルをollamaで利用する - Zenn](https://zenn.dev/morioka/scraps/284346ef7f04d3)

---

以上です。ありがとうございました。