見出し画像

Google AIの新しい言語モデル Flan-T5 を試す

Google AIの新しい言語モデル Flan-T5 を試したので、まとめました。

「Colab 無料版」ではVRAMが足りなかったため、「Colab Pro」の「プレミアム」を使いました。A100 (40GB)で試しています。

1. Flan-T5

「Flan-T5」は、Google AI の新しいオープンソース言語モデルです。1,800 以上の言語タスクでファインチューニングされており、プロンプトとマルチステップの推論能力が劇的に向上しています。

以下のモデルが提供されています。

・Flan-T5 small (80M)
・Flan-T5 base (250M)
・Flan-T5 large (780M)
・Flan-T5 XL (3B)
・Flan-T5 XXL (11B)

以下のスペースで、「Flan-T5」のデモを試すことができます。

会話例は、次のとおりです。

Give reasons before answering.
Can you speak to John Lennon of The Beatles?
答える前に理由を答えてください。
ビートルズのジョン・レノンと話せますか?
 ↓
John Lennon is dead. The Beatles are dead. So the answer is no.
ジョン・レノンは亡くなった。ビートルズは死んだ。
したがって、答えはノーです。

2. Colabでの実行

Colabでの実行手順は、次のとおりです。

(1) Colabで新規ノートブックを作成し、メニュー「編集 → ノートブックの設定で「GPU」の「プレミアム」を選択。

(2) GPUの確認。
A100 (40GB)で試しました。

# GPUの確認
!nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  A100-SXM4-40GB      Off  | 00000000:00:04.0 Off |                    0 |
| N/A   32C    P0    46W / 400W |      0MiB / 40536MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

(3) パッケージのインポート。

# パッケージのインポート
!pip install transformers
!pip install sentencepiece
!pip install accelerate

(4) トークナイザーとモデルの準備。
モデルのダウンロードに、20分程度かかりました。

from transformers import T5Tokenizer, T5ForConditionalGeneration

# トークナイザーとモデルの準備
tokenizer = T5Tokenizer.from_pretrained("google/flan-t5-xxl")
model = T5ForConditionalGeneration.from_pretrained("google/flan-t5-xxl", device_map="auto")

(5) 推論の実行。

# 入力テキスト
input_text = "Who is Naruto Uzumaki's friend?"

# 推論
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda")
outputs = model.generate(input_ids, max_length=200, bos_token_id=0)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(result)
sasuke

3. 関連



この記事が気に入ったらサポートをしてみませんか?