見出し画像

【Cyberagent日本語版】DeepSeek-R1-Japanese-14Bを使ってみた話④【ローカルLLM】

はじめに

huggingfaceのCyberagentページにDeepSeek-r1の日本語チューニングモデルが公開されています。早速利用してみました。14B版を利用します。

※ 動作確認は (ollama) OpenWebUIを利用します。

GGUFフォーマットに変換

軽量化されていないhuggingfaceフォーマットのままなので、ollamaで利用するにはggufフォーマットに変換する必要があります。

しばらくすれば有志の方がggufフォーマット版を公開すると思われますが、自分で量子化+ggufする場合は、以下の手順を利用します。

(推論等いろいろできるユーティリティです)gguf変換にllama.cppを利用します。

llama.cppのコマンド群をビルドした後に、以下のコマンドを利用します。

# CyberAgent huggingfaceのデータを取得
git clone https://huggingface.co/cyberagent/DeepSeek-R1-Distill-Qwen-14B-Japanese

# bf16のggufフォーマットに変換
python convert_hf_to_gguf.py --outfile DeepSeek-R1-Distill-Qwen-14B-Japanese-bf16.gguf --outtype bf16 ./DeepSeek-R1-Distill-Qwen-14B-Japanese/

# Q4_K_M量子化
./build/bin/llama-quantize DeepSeek-R1-Distill-Qwen-14B-Japanese-bf16.gguf DeepSeek-R1-Distill-Qwen-14B-Japanese-Q4_K_M.gguf Q4_K_M

問題なく終了すれば、「DeepSeek-R1-Distill-Qwen-14B-Japanese-Q4_K_M.gguf」が作成されます。

※ 作業にディスク容量を70GB程度利用します。GPUは必要ありません。

※ llama.cppのビルドを含めた詳細(LinuxもしくはWSL2)は下記事です。少し古くなっていたので、修正しました。

Ollamaモデルファイルの作成

ollamaで配布されている「deepseek-r1:14b」のモデルファイルをテンプレートとして利用します。

ollama show deepseek-r1:14b --modelfile > deepseek-r1-ja-14b.modelfile

「deepseek-r1-ja-14b.modelfile」内の「FROM」指定を「DeepSeek-R1-Distill-Qwen-14B-Japanese-Q4_K_M.gguf」に変更します。

ollama create コマンドでollamaで利用可能なモデルにします。

ollama create deepseek-r1-ja-14b -f deepseek-r1-ja-14b.modelfile

動作確認

次の問題を解かせます。

問題: 教室には5人の生徒(A, B, C, D, E)がいます。以下の情報に基づいて、それぞれの生徒の席順を決めてください。

AはCの隣に座っています。 BはEの右隣に座っています。 DはAとBの間に座っています。 質問: 各生徒の正しい席順を答えてください。

答えは(たぶん):E B D A C by 非人工知能を持つ筆者
日本語で思考がはじまりました

解答は非人工知能である筆者のものと異なりますが、ちゃんと条件を満たすので、合っていると思われます。

中国ポリコレを扱えるか

天安門事件に関して経緯と詳細を解説して

質問 by 筆者

オリジナルは門前払いでしたが、日本語チューニングでかなり弱まっているようです。

まとめ

なにかと批判されがちな中国LLMですが、漢字文化が似通っている事もあり、Qwen系は英語LLMに比べると日本語に強いです。

※ ただしデメリットもあり、似ているがゆえに見分けにくい簡体字(中国語)を混ぜてしまうのですが。

日本語チューニングが行われたものは尚更日本語に強くなりますね。

確かにローカルで利用できるので、情報漏えいや政治的な問題を避けられるかもしれませんが、Deepseek-r1の性能はかなり良いので、日本市場が中国製LLMに圧倒されてしまうかもしれません。

以下、関連する記事の【PR】です。


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