【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の間に座っています。 質問: 各生徒の正しい席順を答えてください。
解答は非人工知能である筆者のものと異なりますが、ちゃんと条件を満たすので、合っていると思われます。
中国ポリコレを扱えるか
天安門事件に関して経緯と詳細を解説して
オリジナルは門前払いでしたが、日本語チューニングでかなり弱まっているようです。
まとめ
なにかと批判されがちな中国LLMですが、漢字文化が似通っている事もあり、Qwen系は英語LLMに比べると日本語に強いです。
※ ただしデメリットもあり、似ているがゆえに見分けにくい簡体字(中国語)を混ぜてしまうのですが。
日本語チューニングが行われたものは尚更日本語に強くなりますね。
確かにローカルで利用できるので、情報漏えいや政治的な問題を避けられるかもしれませんが、Deepseek-r1の性能はかなり良いので、日本市場が中国製LLMに圧倒されてしまうかもしれません。
以下、関連する記事の【PR】です。
コメント