メインコンテンツへスキップ
見出し画像

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. 関連



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ