💬

opt-iml-30b を動かすメモ

2023/02/04に公開

https://github.com/facebookresearch/metaseq/tree/main/projects/OPT-IML

opt-iml-30b が huggingface に来ていましたので動かしてみました.

https://huggingface.co/facebook/opt-iml-30b

https://huggingface.co/facebook/opt-iml-max-30b もあります.

GPU だとぺろっと動かすには 80 GB VRAM いりそうっぽ

モデルサイズは 60 GB くらいあります(fp16?).

gpt-neox-20b を 3090 x 2 で動かすメモ(3090 x 1 でもギリ動く!)
https://qiita.com/syoyo/items/ba2c25a573ab8e338cd5

を参考に 3090 x 2 で動かそうとしましたが...

  • int8(bitsandbytes): エラー
  • 3090 x 2 でモデル分割: 分割できずエラー
    • 分割しないレイヤーが分かれば, そこを分割しないようにすれば分割いけるかもはしれません.

となりうまくいきませんでした.

面倒なので CPU で実行しました.

https://twitter.com/syoyo/status/1621630890140119040?s=20&t=csRUBh2Zq-AIRb_hl5ixoA

メモリは 128 GB くらいでなんとか動く感じでした.

日本語直はうまくいきませんでした.
OPT そのものが日本語なかったような気も...?

考察

ggml(CPU) で, GPT-J 6B になりますが, CPU(M1 chip であるが)でそこそこの速度で動きます.

https://github.com/ggerganov/ggml

これを当てはめれば opt-iml-30b は規模 5~10 倍なので, 0.6 ~ 1.25 sec/token が想定されます.

あんまり速度にこだわりがなければ, 推論だけであれば GPU で頑張って動かすよりも,
もはやメモリ積んだ CPU で実行でいいのやも.
Intel だと最近のは VNNI があるので, int8 計算が意外と早くできるかもしれません.

昨今の Intel, AMD など民生マザーボードでは 128 GB(32GB x 4), Threadripper だと 256 GB いけます.

最近はメモリ価格下落していて

https://eetimes.itmedia.co.jp/ee/articles/2211/21/news045_4.html

DDR4 ですが 2023/02 時点だと 32 GB x 2 が 2 万円切りくらいであるので, 128 GB でも 4 万円ちょっとでいけます!

Discussion