FlexGenの魅力と使い方:GPT-3やOPT-30Bを手軽に試せるエンジン
FlexGenは、大規模言語モデルをシングルGPUで高速に生成できるエンジンです。FlexGenを使えば、GPT-3やOPT-30Bなどの最先端の言語モデルを手軽に試すことができます。
このブログでは、FlexGenの特徴やメリット、そして使い方について紹介します。
FlexGenの特徴
FlexGenは、以下のような特徴を持っています。
大規模言語モデル(LLM: Large Language Model)をシングルGPU(例えば、16GBのT4や24GBのRTX3090)で高スループットな生成エンジンです。
LLMのパラメーターを圧縮してオフロードすることで、GPUメモリ使用量を削減し、レイテンシーとスループットを最適化します。
GPT-3やOPT-30Bなどの様々なLLMに対応しており、簡単に切り替えることができます。
Google Colaboratoryやなどのプラットフォームにも対応しており、幅広く利用できます。
FlexGenのメリット
FlexGenは、他のLLM生成エンジンと比較して以下のようなメリットがあります。
シングルGPUでもLLMを動かせるため、コストやインフラストラクチャーの制約が少なくなります。
圧縮オフロード技術により、レイテンシーとスループットが向上し、高品質なテキスト生成が可能になります。
LLM間で容易に切り替えられるため、目的やニーズに応じて最適なモデルを選択できます。
プラットフォーム間で互換性があるため、様々な環境やデバイスで利用できます。
FlexGenの使い方
無料のGoogle Colaboratoryで実行しようとしましたが、途中でメモリの性能の関係で止まってしまったため、Google Colaboratory Proを有料契約して実行しました。
# FlexGenのインストール
!git clone https://github.com/FMInference/FlexGen.git
%cd FlexGen
!pip install -e .
# チャットデモの実行
!python apps/chatbot.py --model facebook/opt-6.7b
このプログラムは、FlexGenをインストールして、チャットデモを実行するものです。😊
具体的には、以下のような処理を行っています。
FlexGenのインストール
!git clone https://github.com/FMInference/FlexGen.git で、FlexGenのリポジトリ をローカルにコピーします。
%cd FlexGen で、FlexGenのディレクトリ に移動します。
!pip install -e . で、FlexGenを編集可能モードでインストールします。
チャットデモの実行
!python apps/chatbot.py --model facebook/opt-6.7b で、チャットデモスクリプト を実行します。–model オプションで、使用するLLMを指定します。ここではfacebook/opt-6.7bというモデルを選択しています。
これらの処理が終わると、チャットデモが開始されます。画面に表示される指示に従って、LLMと会話することができます。
今回は、opt-6.7bを使用しましたが、opt-30b、opt-175bまで出ているようです。気が向いたらopt-175bを試してみたいと思います。
と、書いたけれど、opt-175bはモデルのサイズが1.5TBほどと書かれていたので環境のハードルが少しあるなと思いました。ただ、個人で実現できるレベルにはなっている感じがします。