【蒸留モデル】DeepSeek-R1ローカル実行時におすすめのモデル

大規模言語モデル（LLM）をローカル環境で実行することへの需要が高まっています。本記事では、2025年1月にリリースされたDeepSeek-R1モデルファミリーを、Ollamaを使用してローカル環境で実行する方法について解説します。

Roo Codeと使用するには下記も御覧ください

https://qiita.com/yonaka15/items/a890c30570401a3d4896

OllamaでMLXを活用するには

https://qiita.com/yonaka15/items/868133a878d17fd83d8f

## 環境要件

実行環境には以下が必要です：

- Ollamaがインストール済みであること
- GPUを使用する場合：NVIDIA GPUと対応するドライバー
- モデルに応じた十分なRAMとGPUメモリ（詳細は後述）

まだOllamaをインストールしていない場合は、[Ollama公式サイト](https://ollama.com)からインストーラーをダウンロードしてください。

## DeepSeek-R1の蒸留モデルとは

DeepSeek-R1-Distill (蒸留モデル)は、オープンソースのベースモデルをベースに開発された一連のモデルです。これらのモデルは、DeepSeek-R1で生成されたサンプルを用いてファインチューニングされており、Qwen 2.5とLlama 3という2つの異なるベースモデルファミリーに基づいています。ローカルで実行する際にはこれらの蒸留モデルが手軽でおすすめです。各モデルは独自の設定とトークナイザーで最適化されており、様々なユースケースに対応できるように設計されています。

### Qwen 2.5ベースモデル

Qwen 2.5ベースのモデルは、以下の4つのサイズで提供されています：

- Qwen2.5-Math-1.5B：基本的なタスク向けの軽量モデル
- Qwen2.5-Math-7B：数学的処理に特化した中規模モデル
- Qwen2.5-14B：一般用途に適した中規模モデル
- Qwen2.5-32B：高度なタスク向けの大規模モデル

各サイズには標準品質版（q8_0）と圧縮版（q4_K_M）が用意されています。圧縮版は若干の精度低下と引き換えに、必要なリソースを大幅に削減できます。

### Llama 3ベースモデル

Llamaベースのモデルは、以下の2つのバージョンで提供されています：

- Llama 3.1（8B）：効率的な中規模モデル
- Llama 3.3（70B Instruct）：高度なタスク向けの大規模モデル

これらのモデルは、特にコーディングや数学的推論タスクにおいて高い性能を発揮します。オリジナルのLlamaモデルの特徴を活かしつつ、DeepSeek独自の最適化が施されています。

## インストール方法

Ollamaを使用したDeepSeek-R1のインストールは簡単です。以下のコマンドで必要なモデルをダウンロードできます：

```bash
# Qwen2.5ベース 14B圧縮版のインストール
ollama pull deepseek-r1:14b-qwen-distill-q4_K_M

# Llama 3.1ベース 8Bモデルのインストール
ollama pull deepseek-r1:8b-llama-distill

# 最小サイズの1.5Bモデルのインストール
ollama pull deepseek-r1:1.5b-qwen-distill
```

利用可能なすべてのモデルタグは[公式タグ一覧](https://ollama.com/library/deepseek-r1/tags)で確認できます。

## システムリソースの要件

各モデルサイズに必要なシステムリソースは以下の通りです：

### 大規模モデル（Llama 70B / Qwen 32B）
- RAM：48GB以上
- GPU：32GB以上（Llama 70B）
- ディスク容量：約75GB（Llama 70B）/ 約35GB（Qwen 32B）

### 中規模モデル（8B-14B）
- RAM：16GB以上
- GPU：8GB以上
- ディスク容量：約8-16GB

### 軽量モデル（1.5B-7B）
- RAM：8GB以上
- GPU：4GB以上（推奨）
- ディスク容量：約1-8GB

### Apple Silicon環境での実例

私の環境（MacBook Pro, M2 Max, 32GB RAM）では、DeepSeek-R1の14B圧縮モデル（deepseek-r1:14b-qwen-distill-q4_K_M）が快適に動作しています。これは一例ですが、Apple Siliconでも十分つかえそうです。

<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">DeepSeekをMacBookProで動かしてみた <a href="https://t.co/qqXcFML9cf">pic.twitter.com/qqXcFML9cf</a></p>&mdash; よなか (@yonaka158) <a href="https://twitter.com/yonaka158/status/1883815915374129396?ref_src=twsrc%5Etfw">January 27, 2025</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## モデル選択のガイドライン

用途やリソースに応じて、以下の基準でモデルを選択することをお勧めします：

### 用途による選択

1. 多言語処理が必要な場合：
   - Qwen 2.5ベースのモデルを選択
   - 日本語を含むアジア言語の処理に強み
   - 14B以上のモデルで最高の性能を発揮

2. コーディング主体の利用：
   - Llama 3ベースのモデルを選択
   - 特に70Bモデルは高度なコーディングに適する
   - 数学的推論も得意

### リソースによる選択

各モデルのサイズに応じた推奨環境をご紹介します：

1. ハイエンド環境（32GB以上のGPU）：
   - 32B以上のモデルが使用可能（32b-qwen-distill-q4_K_M, 70b-llama-distill）
   - サイズ：32Bモデルは約35GB、70Bモデルは約75GB
   - 最高品質の出力が得られる

2. 標準的な環境：
   - 7B-14Bモデルが最適
   - 14b-qwen-distill-q4_K_M：約16GB
   - 7b-qwen-distill：約8.5GB
   - 実用的な性能とリソース使用のバランスが良い

3. 制限のある環境：
   - 1.5B-8Bモデルを使用
   - 1.5b-qwen-distill：約1.1GB
   - 8b-llama-distill：約8.1GB
   - 基本的なタスクに十分な性能

## 実運用時の注意点

### メモリ管理

効率的なメモリ使用のために、以下の点に注意してください：

```bash
# 不要なモデルの削除
ollama rm deepseek-r1:14b-qwen-distill-q4_K_M
```

- 使用していないモデルは積極的に削除
- 複数のモデルを同時に読み込まない
- 圧縮版モデルの活用を検討

### パフォーマンス最適化のコツ

1. GPUモードの活用：
   - 利用可能な場合は必ずGPUモードを使用
   - 推論速度が大幅に向上

2. 適切なバッチ処理：
   - 小さいバッチサイズから開始
   - システムの応答を見ながら調整

## トラブルシューティング

よくある問題と解決方法をまとめました：

1. メモリ不足エラー：
   - 不要なプロセスを終了
   - より小さいモデルサイズを検討
   - 圧縮版モデルへの切り替えを検討

2. GPU関連のエラー：
   - ドライバーの更新を確認
   - CUDAのバージョン互換性を確認
   - GPUメモリの使用状況を確認

## まとめ

DeepSeek-R1-Distillモデルは、様々な規模と用途に対応できる柔軟なモデルファミリーを提供しています。Ollamaを使用することで、これらのモデルを簡単にローカル環境で実行できます。実際の導入にあたっては、用途とリソースを慎重に検討し、適切なモデルを選択することが重要です。

本記事で解説した内容を参考に、皆さんの環境に最適なセットアップを見つけていただければ幸いです。

## 参考情報
- [DeepSeek公式サイト](https://www.deepseek.com/)
- [DeepSeek-R1 技術レポート](https://arxiv.org/abs/2501.12948)
- [Ollama公式ドキュメント](https://ollama.com/library/deepseek-r1)