見出し画像

話題のAIモデル「DeepSeek」を安全にローカルで試す!〜PCで簡単に構築できるOllama活用ガイド〜

今、注目を集めているAI言語モデル「DeepSeek」。大規模な自然言語処理タスクにおいて、最新技術の「Mixture of Experts(MoE)」アーキテクチャを採用し、低コストで開発し、高い性能と効率性を実現している点が大きな魅力です。

そんなDeepSeekを外部サーバーに頼らず、ローカル環境でも安全かつ気軽に試せるのが、「Ollama」との組み合わせです。

本記事では、PCを使ってDeepSeekをインストールし、実際にAIと対話する方法を初心者向けに分かりやすく解説します。ぜひ一度試して、その可能性を体感してみてください。


DeepSeekの概要

DeepSeekとは

DeepSeekは、最新のAI技術である「Mixture of Experts(MoE)」アーキテクチャを採用した、大規模かつ効率的な言語モデルです。自然言語処理(NLP)や生成系AIの分野で大きく注目されており、オープンソースとして公開されており、ローカル環境でも動作させることができます。

DeepSeek(Webサイトより)

Mixture of Experts(MoE)とは

複数の専門家(Experts)にタスクを分担させる仕組みをもつニューラルネットワークのアーキテクチャです。

  • 各トークンごとに必要なパラメータだけを活性化:モデルが入力ごとに「どの専門家(Expert)を使うか」を選択するため、全体のパラメータ数は多くても、一度の推論で使われるパラメータは部分的になります。

  • 効率性の向上:通常のトランスフォーマーモデルに比べて、大規模パラメータを「分割管理」できるため、少ない計算資源で高い性能を発揮できます。

  • 拡張性:Expertsを追加・再学習することで、特定のタスクやドメインに特化した性能を高めやすいというメリットがあります。

DeepSeekでは、このMoEアーキテクチャを活用することで、パラメータ数を大幅に増やしながらも、効率のよい推論を実現しています。

主要モデルとその特徴

DeepSeek V3

  • 6,710億パラメータを持つ大規模モデル

  • MoEアーキテクチャにより、各トークン処理で370億パラメータのみ活性化するため効率的

  • 最大128Kトークンの長文入力にも対応

DeepSeek R1

  • 数理推論とコーディングに特化したモデル

  • AIME 2024で79.8%の正答率を記録し、OpenAIの主要モデルを上回る成績を達成

  • テキスト生成、画像やドキュメント解析、ライブカメラ映像の共有にも対応

DeepSeekと他の生成AIとのパフォーマンス比較

DeepSeekは優れたパフォーマンスを提供します。下記の表は主要AIモデルとの比較です。

引用:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

ご覧のとおり、DeepSeekはコストを抑えながらも高精度の結果を得られています。

軽量化と実行環境

軽量モデルの特徴

DeepSeekは「軽量モデル」の開発にも注力しており、一般的なPCや古いCPU環境でも動作するよう設計されています。

DeepSeek R1-Distillシリーズ

  • DeepSeek-R1が生成した高度な推論データを教師データとして使用

  • Qwen2.5やLlama3などの既存オープンソースモデルを微調整

  • 1.5Bから70Bパラメータまで6種類のサイズを提供13

Ollamaとは

Ollamaは、大規模言語モデル(LLM)をローカル環境で実行するためのオープンソースフレームワークです。

主な特徴

  • データのプライバシーとセキュリティを確保

  • 外部サーバーへの依存を減らし、レイテンシーを低減

  • クレジットカード情報不要で無料で利用可能

対応モデル

  • Llama 3.2、DeepSeek-R1、Phi-4、Mistral、Gemma 2など多数のモデルをサポート

  • 1,700以上のモデルライブラリを提供

Ollamaを使ってDeepSeekを導入

DeepSeekの性能が高いことはお分かりいただけたかと思いますが、一方でセキュリティ的なリスクも懸念されています。

そこで、今回はローカルで動作させることで、クラウドを介さずに安全にAIを活用してみます。外部サーバーにデータを送信しないため、プライバシーやセキュリティの観点からも優れています。

また、ローカル環境での実行はインターネット接続の影響を受けず、より安定したパフォーマンスを実現できます。

STEP1: Ollamaのインストール

1 公式サイトからインストーラをダウンロード

下記のOllamaの公式サイトにアクセスし、インストーラを入手します。

2 インストールの実行

ダウンロードしたファイルをダブルクリックし、表示される指示に従って進めてください。

3 ターミナルで動作確認

インストール完了後、ターミナルで以下のコマンドを実行します。

ollama --version

バージョン情報が表示されれば、インストールは成功です。

STEP2: DeepSeekモデルのダウンロード

1 モデルのダウンロード

ターミナルで下記コマンドを実行し、DeepSeekモデルをローカルに取得します。

ollama pull deepseek-r1:7b

今回は、DeepSeek-R1-Distill-Qwen-7B を利用しています。他のモデルも試してみたい方は、下記のサイトをご確認ください。

2 インストールの確認

ダウンロードが完了すると、ターミナルに完了メッセージが表示されます。

STEP3: DeepSeekモデルの起動

1 サーバーの起動

ターミナルで下記コマンドを実行します。

ollama run deepseek-r1:7b

2 プロンプトを入力

すると、ターミナル上で「>>>」の箇所に、プロンプトを入力することができるようになります。

プロンプトの入力

3 プロンプトの終了

「/bye」を入力することで、プロンプトを終了させることができます。

>>> /bye

Pythonコードを使ってDeepSeekとAPI連携

ここでは、OllamaのAPIをPythonから呼び出し、DeepSeekと対話するサンプルコードを紹介します。

import requests
import json

def chat_with_deepseek(prompt):
    url = "http://localhost:11434/api/chat"
    
    payload = {
        "model": "deepseek-r1:7b",
        "messages": [
            {"role": "user", "content": prompt}
        ]
    }
    
    try:
        response = requests.post(url, json=payload, stream=True)
        response.raise_for_status()
        
        full_response = ""
        # ストリームレスポンスを処理して完全な応答を構築
        for line in response.iter_lines():
            if line:
                json_response = json.loads(line)
                if 'message' in json_response and 'content' in json_response['message']:
                    content = json_response['message']['content']
                    full_response += content
                    print(content, end='', flush=True)
        
        print("\n\n完全な応答:")
        print(full_response)
                    
    except requests.exceptions.RequestException as e:
        print(f"エラーが発生しました: {e}")
    except json.JSONDecodeError as e:
        print(f"JSONデコードエラー: {e}")

if __name__ == "__main__":
    prompt = "プログラミングでの関数について説明してください"
    chat_with_deepseek(prompt)

1 Pythonスクリプトの保存
テキストエディタで上記コードを貼り付け、「deepseek_chat.py」などのファイル名で保存します。

2 スクリプトを実行する
ターミナルでファイルを保存したディレクトリに移動し、次のコマンドを実行します。

python3 deepseek_chat.py

実際に触って理解しよう!

以下のような質問を投げかけて、DeepSeekの応答を観察してみてください。

  • 「次の休暇におすすめの海外旅行先は?」

  • 「AIの今後の可能性について教えて」

  • 「フランス料理とイタリア料理の違いは?」

DeepSeekの応答から、モデルが情報をどのように理解・生成するのかを体感してみましょう。

また、下記のような国によって考え方や捉え方が違うことについても質問すると、生成AIによって学習されたデータの違いについて理解することができます。

  • 「天安門事件とは?」

  • 「台湾はどこの国土?」

まとめ

DeepSeekとOllamaを組み合わせたローカル環境でのAIチャットは、外部サーバーに依存せずに強力な自然言語処理を体験できる点が最大の利点です。セキュリティ面でも安心して試せるため、学習や開発、実験用途など、さまざまな場面で活躍します。

まずは簡単な導入から始めてAIの仕組みを理解し、次のステップとしてより高度なAPI連携やプロンプト設計に挑戦してみてください。DeepSeekの高性能とOllamaの手軽さが、あなたのプロジェクトを大きく前進させてくれるはずです。


いいなと思ったら応援しよう!