DAIaryX

DeepSeek-R1-Distill-Qwen-32B-Japaneseをローカルで試してみる

しん

DeepSeek-R1-Distill-Qwen-32B-Japaneseをローカルで試してみる

DeepSeek-R1

DeepSeek-R1のリリースで、半導体関連の株価が大きく下がりました。
他大手AI企業と比較すると、わずかなマシンパワーでOpenAI o1と同等の性能を実現できたことが原因です。

アメリカは輸出規制を発動していますが、輸出規制前と規制後でDeepSeekはNvidiaのGPUを5万枚確保することができていたそうです。
大手AI企業はNvidiaのGPU50万枚以上で運用していますが、規制のある中でこれだけの結果を出せたことで、半導体の需要が下がるのではないかという不安から株価へ大きな影響があったのでしょう。


この記事で実際に動かしてみますが、NvidiaのGPUは必要なので、そこまで気にすることでもないような・・・

必要数は1/10になりましたが、大手AI企業はいくらでも欲しいですし、逆にローカルでの開発ハードルが下がったことで、新たな参入も増えてくるのではないかと思います。

DeepSeek-R1の性能や特徴を確認して、実際に動かしてみましょう。


LLM性能比較

DeepSeek公式のDistillモデル性能比較表です。
DeepSeek-R1-Distill-Llama-70Bが全体的に性能高そうです。

Model

AIME 2024 pass@1

AIME 2024 cons@64

MATH-500 pass@1

GPQA Diamond pass@1

LiveCodeBench pass@1

CodeForces rating

GPT-4o-0513

9.3

13.4

74.6

49.9

32.9

759

Claude-3.5-Sonnet-1022

16.0

26.7

78.3

65.0

38.9

717

o1-mini

63.6

80.0

90.0

60.0

53.8

1820

QwQ-32B-Preview

44.0

60.0

90.6

54.5

41.9

1316

DeepSeek-R1-Distill-Qwen-1.5B

28.9

52.7

83.9

33.8

16.9

954

DeepSeek-R1-Distill-Qwen-7B

55.5

83.3

92.8

49.1

37.6

1189

DeepSeek-R1-Distill-Qwen-14B

69.7

80.0

93.9

59.1

53.1

1481

DeepSeek-R1-Distill-Qwen-32B

72.6

83.3

94.3

62.1

57.2

1691

DeepSeek-R1-Distill-Llama-8B

50.4

80.0

89.1

49.0

39.6

1205

DeepSeek-R1-Distill-Llama-70B

70.0

86.7

94.5

65.2

57.5

1633

  • MATH-500
    • 数学
  • AIME2024
    • 上級数学テスト
  • GPQA
  • LiveCodeBench
    • 最新のコーディング問題への対応力
  • CodeForces rating
    • 競技プログラミングのレーティング


deep seekの種類

DeepSeek-R1-Zero

前モデルDeepSeek-V3をベースに強化学習のみで作られたオリジナルモデル。
高度な推論能力を獲得したが、無限ループや言語の混在など、多くの課題を抱える。


DeepSeek-R1

強化学習の前に高品質のコールドスタートデータを使い、DeepSeek-R1-Zeroの課題を克服して作られたモデル。


DeepSeek-R1-Distilモデル

DeepSeek-R1は671Bあるモデルで、相当なVRAMがないと動作させることはできないですが、知識蒸留(knowledge distillation)という機械学習アプローチで、他の小規模なモデルを使用することができます。
事前に準備されているモデルは以下の通りです。

モデル

ベースモデル

DeepSeek-R1-Distill-Qwen-1.5B

Qwen2.5-Math-1.5B

DeepSeek-R1-Distill-Qwen-7B

Qwen2.5-Math-7B

DeepSeek-R1-Distill-Llama-8B

Llama-3.1-8B

DeepSeek-R1-Distill-Qwen-14B

Qwen2.5-14B

DeepSeek-R1-Distill-Qwen-32B

Qwen2.5-32B

DeepSeek-R1-Distill-Llama-70B

Llama-3.3-70B-Instruct

環境構築

前回構築した環境でDeepSeek-R1-Distill-Qwen-32Bを動かしていきます。


llama.cpp

llama.cppを使って量子化したモデルを動かしてみます。
次のページからllama.cppをcloneして、buildしていきます。


DeepSeek-R1-Distill-Qwen-32Bを動かすには通常、パラメーター数の2倍VRAMが必要です。
パラメータ数とは、モデルの内部で調整される変数の数で、このモデルだと32Bなので、320億パラメータのモデルとなります。
VRAMが64G(32の2倍)必要ですが、モデルを量子化することで、サイズが小さくなり、必要なVRAMを下げることができます。

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

ビルド

まずはcmakeをインストールします。

apt install cmake

環境にあったビルドをする必要があります。
完了したらbuildディレクトリ内にコマンドが作成されます。

Nvidia GPU

今回はNvidia GPUを使っているので、DGGML_CUDAをONにしてビルドします。

cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

Mac

Macの場合は以下のコマンドでビルドできます。

cmake -B build -GGML_METAL=ON
cmake --build build --config Release

量子化

量子化する場合の手順

GGUF形式に変換

python convert_hf_to_gguf.py ./models/DeepSeek-R1-Distill-Qwen-32B/

GGUF形式を量子化

./llama-quantize ./models/DeepSeek-R1-Distill-Qwen-32B/ggml-model-f16.gguf Q4_K_M

詳しくはこちら


llama.cppで量子化することができますが、数時間かかるので公開されているモデルをありがたく使わせてもらいます。
CyberAgentさんが公開している日本語学習済みモデルの量子化モデルを以下のページからmodelsディレクトリにダウンロードします。


modelsにダウンロードしておきます。

実行

build内に作られたllama-cliコマンドを実行します。
--n-gpu-layersを指定してGPUを使うよう設定します。

./build/bin/llama-cli --n-gpu-layers 81 -m models/cyberagent-DeepSeek-R1-Distill-Qwen-32B-Japanese-Q4_K_M.gguf -p "色の異なる5つの玉に紐を通し、ネックレスを作る場合、何種類できますか?"

<think></think>に回答するための根拠を出力し、返答します。
思考の過程で、玉が3個の場合の検証や、間違いや矛盾を考えてくれています。
思考の過程が見えるのはありがたいですね!
一度考えて結果を出力することで、驚異的な性能を実現できているのでしょう。

まとめ

思考の過程がわかり、日本語でまともな回答を出力することができるオープンソースのDeepSeek-R1の登場は、AI業界に新たな可能性をもたらしました。
知識蒸留と量子化技術により、ローカル環境での大規模モデルの実行が容易になり、新たなAI開発者や企業の参入も加速していくことになりそうです。
次回も、DeepSeek-R1について書いていきます。

19

記事数

しん

Rails歴は10年以上で、バックエンド・フロントエンド・インフラ・ネットワーク全てやります。