2023年3月15日水曜日

GPTを動かす

 なんか最近GPTが流行っているようです。

おじさんも自分のマシンでGPTを動かしたくなってきました。



ということで、C++で動くGPUがいらないGPTを探してみました。

https://github.com/ggerganov/ggml/tree/master/examples/gpt-j

GPTってソースとってくれば10分くらいでマシンが作れるんですね。

これ本当に動くの?

スクラッチで書かれていて、*.cのファイル3個しかないし。

フル版だと72Gバイトのメモリと学習済みデータがいるらしい。

スモール版だと12Gバイトで動くらしい。

学習済みデータも置いてあるし。なんと親切な。

ちょーお手軽じゃん。


とりあえずAndroid版とM1-Mac版とIntel-Mac版とVisualC++版がビルドできた。


-----------------------

yomeinoMac-mini:jni yomei$ 

yomeinoMac-mini:jni yomei$ ./test -m ggml-model-gpt-j-6B.bin -p "Who are you ?"

main: seed = 1678930370

gptj_model_load: loading model from 'ggml-model-gpt-j-6B.bin' - please wait ...

gptj_model_load: n_vocab = 50400

gptj_model_load: n_ctx   = 2048

gptj_model_load: n_embd  = 4096

gptj_model_load: n_head  = 16

gptj_model_load: n_layer = 28

gptj_model_load: n_rot   = 64

gptj_model_load: f16     = 1

gptj_model_load: ggml ctx size = 13334.86 MB

gptj_model_load: memory_size =  1792.00 MB, n_mem = 57344

gptj_model_load: ................................... done

gptj_model_load: model size = 11542.79 MB / num tensors = 285

main: number of tokens in prompt = 4


Who are you ?

I am a professional web developer who lives on the north of England. I have an affinity for Linux, Open Source Software, and general geekery. I am currently learning Ruby


....

-----------------------

Intel Macで動かしたら、すげー動く!。

僕のマシンだと解答が出始めるのに10分くらいかかります。

あんた、Rubyを勉強しているね。偉いねー。


行列の掛け算を数十回するだけでなぜか会話ができてしまう。

これ手軽にデバッグできるから、AttentionとかTransformerの動きを勉強するのに最適だね。