DeepSeek-R1をローカルでデプロイする:プライベートで高性能なChatGPTの代替案

AI tutorial - IT technology blog
AI tutorial - IT technology blog

午前2時14分の事件:なぜローカルAIが不可欠になったのか

深夜2時14分、ナイトスタンドに置いていた私のスマートフォンが振動しました。サーバーのクラッシュやデータベースのデッドロックではありません。パニックに陥ったリード開発者からのメッセージでした。新人チームメイトが、構文エラーのデバッグを助けてもらうために、150行にも及ぶ独自の暗号化ロジックを公開LLMに貼り付けてしまったというのです。私たちがそれに気づいたときには、その機密コードはすでにサードパーティのサーバー上にあり、おそらく次のモデルの学習データとして利用される運命にありました。

この事件は、現代のエンジニアリングチームにおける重大なセキュリティ上の脆弱性を浮き彫りにしています。私たちはスピードのためにAIに依存していますが、プライバシーとのトレードオフは企業セキュリティにとって巨大なリスクです。その夜、私はより良い方法が必要だと確信しました。DeepSeek-R1のようなモデルの推論能力が必要ですが、それを完全に自社の境界内でホストする必要があったのです。それ以来、私はコアワークフローをこのローカルスタックに移行しましたが、その安定性は目を見張るものがあります。

SaaS vs. ローカルLLM:真のコストを算出する

SaaSの利便性とローカルの制御のどちらを選ぶかは、単なるプライバシー以上の問題です。実際の数字で見ると、この2つの選択肢は以下のように比較できます。

SaaS(ChatGPT、Claude、Gemini)

  • メリット: セットアップ時間がゼロで、1.5兆以上のパラメータを持つモデルにアクセスできる。
  • デメリット: データプライバシーのリスクと、利用規模に応じて急増するサブスクリプションコスト。50人の開発者チームの場合、毎月およそ1,000ドルのコストがかかります。

ローカルホスティング(Ollama経由のDeepSeek-R1)

  • メリット: 完全なデータ主権と、クエリごとの料金がゼロ。インターネット接続なしで動作し、カスタムハードウェアの最適化が可能です。
  • デメリット: 初期段階でのハードウェア投資が必要。少なくとも1枚のハイエンドなコンシューマー向けGPU、または専用サーバーが必要です。

DeepSeek-R1は「蒸留(Distilled)」モデルを提供することで、この状況を一変させました。これらのモデルにより、以前は巨大なサーバークラスターに限定されていた高度な推論を、中価格帯のハードウェアで実行できるようになりました。これは、ホビイストの実験とプロダクション環境で使えるツールの間の溝を埋めるものです。

DeepSeek-R1 + Ollamaスタックの評価

Dockerイメージを取得し始める前に、このセットアップの実用的なトレードオフを理解しておく必要があります。

メリット

  • プライバシー: データがローカルネットワークから外に出ることはありません。これは規制の厳しい業界では譲れない条件です。
  • スピード: ローカルのレイテンシは、多くの場合SaaSのAPIよりも低くなります。調整されたシステムでは、毎秒50トークンを超えるレスポンス速度を実現できます。
  • 長期的な節約: 1,500ドル〜2,500ドルの初期ハードウェアコストの後は、APIの請求額はゼロになります。

課題

  • VRAMの制約: 巨大な671Bモデルを単一のマシンで実行することは不可能です。メモリに収まる蒸留モデルを選択する必要があります。
  • 自己管理: あなたがシステム管理者になります。サービスがハングアップした場合、コンテナログをデバッグする責任はあなたにあります。

ハードウェア要件:最適な構成を見つける

DeepSeek-R1にはいくつかのサイズがあります。選択はGPUのビデオRAM(VRAM)に完全に依存します。プロフェッショナルな使用には、以下の構成をお勧めします。

  • 7B/8Bモデル: 8GBのVRAMが必要(例:RTX 3060/4060)。基本的なコード補完やドキュメントの要約に最適です。
  • 14B/32Bモデル: 16GB〜24GBのVRAMが必要(例:RTX 3090/4090)。これは「ゴルディロックス・ゾーン(ちょうど良い領域)」であり、高速で洗練された推論を提供します。
  • 70B以上のモデル: 64GB以上のユニファイドメモリ、またはデュアルA6000 GPUが必要。複雑なアーキテクチャ設計に適しています。

ステップバイステップの導入ガイド

推論エンジンとしてOllamaを、インターフェースとしてOpen WebUIを使用します。この組み合わせにより、ChatGPTに近いユーザー体験を提供しながら、コントロールを維持できます。

1. Ollamaのインストール

Linuxでは、インストールはシンプルな一行のコマンドで済みます。WindowsとMacのユーザーは、公式サイトから標準のインストーラーをダウンロードできます。自動化が容易なため、プロダクション環境ではLinuxのアプローチが好まれるため、Ollamaの導入は非常にスムーズです。

curl -fsSL https://ollama.com/install.sh | sh

ステータスを確認して、サービスがアクティブであることを確認します。

systemctl status ollama

2. DeepSeek-R1モデルのダウンロード

DeepSeek-R1はモデルファミリーです。ほとんどのローカルワークステーションでは、14Bまたは32Bバージョン(QwenまたはLlamaから蒸留されたもの)が最適なバランスを提供します。私は通常、高速なレスポンス時間を確保するために、社内チーム向けに14Bバージョンをデプロイしています。

ollama run deepseek-r1:14b

このコマンドは重みをダウンロードし、コマンドラインインターフェースを開きます。推論エンジンがアクティブであることを確認するために、論理パズルなどでテストしてください。終了したら /exit と入力します。

3. DockerでOpen WebUIをデプロイする

コマンドラインでも動作しますが、チームは使い慣れたWebインターフェースを求めるでしょう。ここではOpen WebUIが標準的な選択肢です。これをDockerコンテナで実行し、Ollamaサービスにリンクさせます。

まず、アップデート後もチャット履歴が保持されるようにディレクトリを作成します。

mkdir -p ~/open-webui/data

次に、コンテナを起動します。--network=host フラグにより、コンテナが localhost:11434 で直接Ollamaと通信できるようになります。

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v ~/open-webui/data:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

4. 最終設定

http://your-server-ip:3000 でインターフェースにアクセスします。最初にサインアップした人に、自動的に管理者権限が付与されます。

  1. Settings(設定) > Connections(接続) に移動します。
  2. OllamaのAPI URLが http://host.docker.internal:11434 であることを確認します。
  3. 接続をリフレッシュします。モデル選択メニューに deepseek-r1:14b が表示されるはずです。

マルチユーザー環境向けの最適化

自分一人でモデルを実行するのは簡単ですが、チームをサポートするにはいくつかの追加調整が必要です。これらの設定により、負荷がかかってもシステムが重くなるのを防ぐことができます。

GPUアクセラレーションの確認

モデルがレスポンスを生成している間に nvidia-smi を実行して、GPUの使用状況を確認してください。GPUの使用率が0%の場合、OllamaはCPUを使用しています。これではパフォーマンスが非常に遅くなります。このボトルネックを避けるために、ドライバーが最新であることを確認してください。

永続性と並行性の設定

デフォルトでは、Ollamaは一定期間操作がないとモデルをアンロードします。その日の最初のユーザーに対する30秒の「コールドスタート」遅延を防ぐために、OLLAMA_KEEP_ALIVE 変数を 24h に設定します。

# サービス設定を編集
sudo systemctl edit ollama.service

# 以下の環境変数を追加
[Service]
Environment="OLLAMA_KEEP_ALIVE=24h"
Environment="OLLAMA_NUM_PARALLEL=4"

OLLAMA_NUM_PARALLEL 設定は非常に重要です。これにより、モデルが最大4つのリクエストを同時に処理できるようになり、共同作業を行うオフィス環境では不可欠です。

最後に

セキュリティの危機から、安定したセルフホストAI環境へ移行したことで、私たちのチームの働き方は変わりました。データがどこへ行くのかを心配する必要はもうありません。DeepSeek-R1、Ollama、Open WebUIを組み合わせることで、大手SaaSプロバイダーのパフォーマンスに匹敵するシステムを構築できました。これから始める方は、まずはノートPCで7Bモデルを試してみてください。その可能性を実感したら、専用の機材へ移行しましょう。データの安全性を守ることは、その労力に見合う価値があります。

Share: