🐳

【llama.cpp】MacのローカルでDeepSeek-R1を試す

2025/01/22に公開4

はじめに

Macのローカル環境で話題のDeepSeek-R1を動かしてみたい人向けの手順解説です。
llama.cppを使ってGhatGPTライクな環境構築を行います。

動作確認環境

M1-Pro 32GB環境

環境構築

モデルダウンロード

huggingFaceからmmngaさんがgguf化してくれたモデルをダウンロードします。

https://huggingface.co/mmnga/DeepSeek-R1-Distill-Qwen-14B-gguf/tree/main/Q4_K_M

メモリが少ないPCをご利用の場合は以下のもう少し小さいモデルをおすすめします。
https://huggingface.co/mmnga/DeepSeek-R1-Distill-Qwen-7B-gguf/tree/main

llama.cppのビルド

llama.cppはソースコードが公開されているので、ソースコードをダウンロード後自分の環境に合わせてコンパイルすることで利用できるようになります。
以下の手順で動作環境を整えていきましょう。

llama.cppのダウンロード

gitを使ってソースコードをgithubからダウンロードします。

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

ダウンロード後、llama.cppディレクトリに移動します。

cd llama.cpp

モデルファイルの設置

事前にダウンロードしておいたモデルファイルをllama.cpp内のモデルファイルに移動します。
modelsファイル内に予め移動させておいてください。

llama.cppのコンパイル

以下のコマンドでllama.cppをmac用にコンパイルします。

cmake -B build
cmake --build build --config Release

少し時間がかかりますが、[100%] Built target llama-q8dotと出てきたら完了です。

これで環境構築は完了です!

使ってみる

llama.cppサーバの起動

llama.cppディレクトリ内で以下を実行します。
〜.ggufの部分はダウンロードしたモデルに合わせて適宜修正して下さい。

./build/bin/llama-server -m models/DeepSeek-R1-Distill-Qwen-14B-Q4_K_M-00001-of-00001.gguf --port 8080

以下のようなメッセージが出たら起動完了です。

サーバへアクセス

起動した際のメッセージに従い、http://127.0.0.1:8080にブラウザでアクセスしてください。

設定メニューを開き、temperatureの設定だけ推奨の0.5 - 0.7 のいずれかに設定すれば完了です。

temperatureの値について

公式のアナウンスで蒸留モデル利用時の値の推奨値が0.5 - 0.7で指定されています。
llama.cppのデフォルト値は0.8ですが、temperatureを下げることで事前の考察フェーズが深くなり、アウトプットの品質が向上するように見えます(私の体感

https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B#deepseek-r1-distill-models-1

アウトプットを見てみる

プロンプト

snowparkを使ってpythonでsnowflake接続するコードを書いて。内容は日本語で解説して。

アウトプット

実行速度は少し遅い時のChatGPT-4oといったレベルでした。
日本語も問題なく扱えており、ローカルでこのレベルの応答が得られるのは感動的ですね。

※<think>タグで囲まれた部分は事前の思考フェーズです。

余談:Distillとは?

モデル名に付いている”Distill-Qwen”というものがわからなかったので、LLMに聞きながら調べてみました。(解釈違ってましたら詳しい方ご指摘ください!)

Distillは「蒸留」を指し、あるLLMの知識を別の小さなLLMに移し替えることで、
DeepSeek-R1-Distill-Qwen-14Bとは「DeepSeek-R1の知識をQwen-14Bに移し替えもの」を指しているようです。

単にDeepSeek-R1の応答を使ってファインチューニングしているというわけではなく、内部状態なども含めて引き継いでいるとのことでした。このあたりから理解についていけず脱落しました。。

まとめ

いかがだったでしょうか?今回は話題のDeepSeek-R1をMacのローカル環境で動かす方法を解説しました。
DeepSeek-R1はローカル環境でのLLM品質に大革新を起こしていますね!まだ私も使い始めたばかりなので色々試してみたいと思います!

私のXではLLMに限らず、AIを活用した業務改善情報の発信をしております。Nvidiaが使えず置いていかれがちなMac環境の実装を中心に解説・発信していますので。ご興味のある方は是非フォローをお願いします。
https://twitter.com/Linus_lab

Discussion

higumachanhigumachan

わかりやすい情報ありがとうございます!


1点気になったのが

cmake -B build
cmake --build build --config Release

についてなのですが

cmake -B build
cmake --build build --config Release --parallel 8

とかの方が早くなって良いと思いました。(8は想定するCPU Coreの数で変えるべきですが)

higumachanhigumachan

いえ、ビルド時です。
付けておくとビルドが並列で動くので待ち時間が減ります。(待てば良いだけなのですが、少しでも早く使いたいと言う気持ちです。)