top of page

m3 MacBook proで 70B modelを動かす

こんにちは、今日も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などで使うのが良いかもしれません。


でも、近い将来なんとかなるかも。そんな時代です。

では、今回はここまでです。

bottom of page