こんにちは、今日もLLMしてますか?
さて、私の最初の投稿として、以前から試してみたいと思っていた、大きいパラメータ数のLLMを手元のMacbook pro で動かしてみたことを記事にしてみました。
手元のmacのスペックは、右の写真の通り。
まさしく、LLMを動作させるために購入したスペックです。
ええ、購入にはだいぶ手が震えました。
詳しく検証したわけではないですが、mac の良いところはGPUが組み込まれていて、メモリーが共有できるところですね。
また、m3はメモリー効率が良いようです。
(なぜだかは、よくわかっていないですが)
さて、今回のターゲットですが、karakuri様が公開している70BのLLMです。
https://karakuri.ai/seminar/news/karakuri-lm/
おそらく現時点での最高パラメータと書いていたら、産総研様のGPT3.5ベースの175Bがあったので、びっくりです。LLMの開発競争は激しいですね。
今回のkarakuri様のLLMはllama2ベースです。
動かすといっても、そのまま動かすわけではなく、8bit量子化、ggufフォーマットのものを利用しました。
こちらも、mmnga様がhunggingfaceで公開しているものを利用させていただきました。 https://huggingface.co/mmnga/karakuri-lm-70b-chat-v0.1-ggufcd
本当にありがたく、楽しい時代になったものです。
コマンドは、上記サイトにある通りのコマンドを打っただけですので、本当に動かしただけになります。llama.cppのコンパイルでもmakeだけで、Metal:mシリーズのgpu 対応をしてくれています。こちらも驚きです。
# llama.cppの設定
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make -j
# Downloadしたfileを結合
cat ~/Downloads/karakuri-lm-70b-chat-v0.1-q8_0.gguf.* > models/karakuri-lm-70b-chat-v0.1-q8_0.gguf
# 実行
./main -m 'karakuri-lm-70b-chat-v0.1-q4_0.gguf' -p "<s>[INST] <<SYS>> <</SYS>> 週末に日帰りで東京に遊びに行こうと思っています。日帰りなので、短時間で回れるおすすめの観光プランを教えてください。 [ATTR] helpfulness: 4 correctness: 4 coherence: 4 complexity: 4 verbosity: 4 quality: 4 toxicity: 0 humor: 0 creativity: 0 [/ATTR] [/INST] " -n 128
さて、実行した結果ですが、無事動きました。
動いたは良いですが、どうしても速度は遅いですね。
メモリーは、なんとかなっています。
(無事処理は進められているようです。)
(loading '/Users/kazunari/llm_test/llama.cpp/ggml-metal.metal'metalを読んでいるようです)
(recommendedMaxWorkingSetSize = 103079.22 MB なのでギリギリかな)
modelのロードに92秒、回答までは27秒、ロードはあらかじめしておいたとしても27秒ではちょっとですね。実用には難しいです。
結論としては、動くのは動いたけど、ちょっとそのまま使うのは難しいといった感じです。
現状で、macでのlocalLLMは、例えばcodeに特化したものを、openinterpreterなどで使うのが良いかもしれません。
でも、近い将来なんとかなるかも。そんな時代です。
では、今回はここまでです。