🧙‍♀️

M1/M2 Macのローカルでgemmaを動かす(gemma.cpp版)

2024/02/25に公開

はじめに

この記事はGEMMAをとりあえずMacのローカル環境で動かしてみたい人向けのメモです。
話題のモデルがどんな感じかとりあえず試してみたい人向けです。

今回の方法では、googleが出しているgemma.cppを使用します。
https://github.com/google/gemma.cpp

環境構築

makeとcmakeのインストール

HomeBrewを使ってmakeとcmakeをインストールします。
HomeBrewのインストール方法はこちらを参照ください。

インストール後、以下のコマンドを実行します。

brew install cmake
brew install make

モデルファイルのダウンロード

kaggle gemmaのModel Variationsからモデルをダウンロードします。
※モデルのダウンロードにはKaggleのアカウントと規約の同意が必要です。

以降の手順は7b-it-sfpを前提にします。ダウンロードしたファイルは後ほど使用します。

ダウンロード用のリンク

gemma.cppの7b-it-sfp用のダウンロードURLは以下

https://www.kaggle.com/models/google/gemma/frameworks/gemmaCpp/variations/7b-it-sfp

モデルダウンロード時の設定

スクショの通り、タブをcpp用にして、モデルバージョンが7b-it-sfpになっていることを確認してください。

gemma.cppのダウンロードとビルド

ベースファイルのダウンロード

適当なディレクトリで以下を実行してください。
gitを使ってgemma.cppをダウンロードします。

git clone https://github.com/google/gemma.cpp.git

cmakeでビルド

以下のコマンドを実行してください。
gemma.cppディレクトリに移動し、gemma.cppのビルド環境を構築します。

cd gemma.cpp
cmake -B build 

gemmaをビルド

以下のコマンドを実行してください。
buildディレクトリに移動し、gemmaをビルドします。
この時、オプションに-j 4を指定するとスレッド数を変えることができますが、今回は動作を試すだけなので省略します。

cd build
make gemma

モデルファイルとトークナイザの設置

最初にダウンロードしたモデルファイルを解答し、buildディレクトリ内に設置します。
ファイル名は以下の通りそのままにしておいてください。

  • 7b-it-sfp.sbs
  • tokenizer.spm

実行

buildディレクトリ内で以下を実行します

 ./gemma  --tokenizer tokenizer.spm   --compressed_weights 7b-it-sfp.sbs   --model 7b-it

以下の画面が表示されれば起動成功です。

動作サンプル

インプット

シロクマとペンギンの物語は、動物の世界における興味深い例です。これらの動物は、それぞれ独自の特性と行動パターンを持っています。

アウトプット

日本語でも動きますが、たまに英語がまじりますね。
素のままではなく、チューニングが必要そうです。

**シロクマとペンギンの面白い話**

シロクマとペンギンの物語は、動物の世界における興味深い例です。これらの動物は、それぞれ独自の特性と行動パターンを持っています。

**シロクマ**

* **強力なパワー:** シロクマは、他の動物を圧倒するための強力なパワーを持っている。
* **冬眠:** シロクマは冬眠と呼ばれる長い睡眠を取る。この期間、彼らはエネルギーを節約し、 metastasesを減らし、体重を減らし、エネルギーを節約する。
* **狩り:** シロクマはいくつかの動物を狩り、そのエネルギーを必要とする。

**ペンギン**

* **高度な teratur:** ペンギンは非常に teraturした動物であり、毎日の行動を正確に記録しています。
* **ダンス:** ペンギンはダンスと呼ばれる独特な動きを取る。
* **コミュニケーション:** ペンギンは複雑なコミュニケーションシステムを使用し、グループ内で協力し、狩りを行う。

**シロクマとペンギンの関係**

シロクマとペンギンは、いくつかの共通点があります。

* **同じ環境:** シロクマとペンギンは、同じ北半球の極端な環境で暮らしています。
* **同じ食性:** シロクマとペンギンはどちらも肉を食べる。
* **同じ防御手段:** シロクマとペンギンは、それぞれ自分の防御手段を持っている。

これらの動物は、それぞれ独自の特性と行動パターンを持っているため、興味深く、愛らしい動物です。

まとめ

いかがだったでしょうか?

今回は話題のLLMのGemmaを使う方法をまとめました。
Macのスペック持て余している方は是非今回の手順で使ってみてください!

私のTwitterではLLMに限らず、AIを活用した業務改善情報の発信をしておりますのでご興味のある方は是非フォローをお願いします。
https://twitter.com/Linus_lab

Discussion