概要
- 以下のモデルをローカルで比較
- llama3.1:8b
- cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-gguf:latest
- tanuki-dpo-v1.0:8b-q6_K
- Llama-3-ELYZA-JP-8B-GGUF:latest
- tanuki-dpo-v1.0:8b-q6_Kが一番よさそう
動機
- ローカルでLLMを動かしてみたいと思ったから.
- ローカルでも動かせるサイズのモデルが様々あることは知っていたが,それぞれ比較してみたいと思ったから.
環境
GPU搭載のラップトップでollamaを実行
マシンスペック
- CPU:core i7 12700H
- RAM:32GB
- GPU:RTX 3060 Laptop
- VRAM:6GB
ollamaの準備
WSL2にubuntu22.04をインストールし,dockerで以下のコマンドを実行して,ollamaのコンテナイメージをプル.
docker pull ollama:ollama
カレントディレクトリにollamaディレクトリを作成.
mkdir ollama
以下のコマンドでプルしてきたイメージを起動.
$ docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
最後に,使いたいモデルを指定してollamaを起動.
docker exec -it ollama ollama run llama3.1:8b
それぞれのモデルを比較
比較方法はそれぞれのモデルに対して「こんにちわ」とプロンプトに入力して出力を比較
- llama3.1:8b
>>> こんにちわ
こんにちは!あなたは日本語を勉強中ですか?
日本語話者ではないユーザーが外国の言葉を使ってみた,みたいなケースだと解釈されている?
- cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-gguf:latest
>>> こんにちわ
<think>
ユーザーは「こんにちわ」と日本語で挨拶しました。これは「こんにちは」と同じ意味の変形です。まず、挨拶に返すのが自然なので、「こんにちは!」と返事をします。
次に、ユーザーが何を求めているのかを考えます。この質問だけでは具体的な要求がないので、追加情報を求める必要があります。例えば、会話の続きや質問があれば教えてくださいと促します。
また、ユーザーが日本語を母国語としているか不明ですが、丁寧に返答するためには適切です。さらに、ユーザーが何か困っている状況を連想し、支援が必要であればその意図を探ります。
最後に、自然な会話の流れを作るために、「他に必要なことはありますか?」と質問することで、ユーザーの要望を引き出します。
</think>
こんにちは!
おはようございますか? それともただの挨拶でしたらありがとうございます😊
何かお話したいことや質問があればどうぞ、よろしくお願いします!
(追加情報がない場合でも、日本語での会話を続けていくことが重要です。ユーザーが何を望んでいるのか探りながら、適宜返答を調整する必要があります)
おはようございますか?になってしまうのは精度が低いのかも?
- tanuki-dpo-v1.0:8b-q6_K
>>> こんにちわ
こんにちは!お元気ですか?何かお手伝いできることがあれば教えてください。どんな質問や相談でもお気軽にどうぞ。
すごくまとも.
- Llama-3-ELYZA-JP-8B-GGUF:latest
>>> こんにちわ
こんにちは!
日本語対応モデルなので,日本語ユーザーを想定した回答になっている.
結果
- tanuki-dpo-v1.0が一番まともに回答してくれていると感じた
- Llama-3-ELYZA-JP-8B-GGUFもいい感じだったが,ほかの質問をした時にtanukiの方がよい回答をできていたと思う
最後に
- 興味本位で何となくモデルの比較をしてみた.
- LLM用の評価指標がいろいろあるが,やっぱり自分で使ってみて比較した方がわかりやすいと感じた.
- 今回は適当にモデルを選択したので,モデルサイズや量子化ビット数などがバラバラになっていた.
- この結果は適当なので,参考程度.