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

Google Colab で OpenCALM-7B を試す

    「Google Colab」で「OpenCALM-7B」を試したので、まとめました。

     【注意】Google Colab Pro/Pro+ の A100で動作確認しています。VRAMは14.7GB必要でした。

    1. OpenCALM-7B

    「OpenCALM-7B」は、「サイバーエージェント」が開発した、日本語LLMです。商用利用可能なライセンスで公開されており、このモデルをベースにチューニングすることで、対話型AI等の開発が可能です。

    2. OpenCALMのモデル

    「OpenCALM」では、サイズ別に6つの汎用言語モデルが公開されています。

    ・cyberagent/open-calm-7b : 6.8Bの汎用言語モデル
    ・
    cyberagent/open-calm-3b : 2.7Bの汎用言語モデル
    ・
    cyberagent/open-calm-1b : 1.4Bの汎用言語モデル
    ・
    cyberagent/open-calm-large : 830Mの汎用言語モデル
    ・
    cyberagent/open-calm-medium : 400Mの汎用言語モデル
    ・
    cyberagent/open-calm-small : 160Mの汎用言語モデル

    3. Colabでの実行

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

    (1) メニュー「編集→ノートブックの設定」で、「ハードウェアアクセラレータ」で「GPU」で「A100」を選択。
    A100でなくてもVRAM 16GBあれば問題ないかと思う。

    (2) パッケージのインストール。

    # パッケージのインストール
    !pip install transformers accelerate

    (3) トークナイザーとモデルの準備。
    今回は、7Bを指定しています。

    import torch
    from transformers import AutoModelForCausalLM, AutoTokenizer
    
    # モデルとトークナイザーの準備
    model = AutoModelForCausalLM.from_pretrained(
        "cyberagent/open-calm-7b", 
        device_map="auto", 
        torch_dtype=torch.float16
    )
    tokenizer = AutoTokenizer.from_pretrained("cyberagent/open-calm-7b")

    (4) 推論の実行。
    ベースモデルなので、QAプロンプトの書式で動作確認してみました。

    # プロンプトの準備
    prompt = "Q:まどか☆マギカでは誰が一番かわいい?\nA:"
    
    # 推論の実行
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    with torch.no_grad():
        tokens = model.generate(
            **inputs,
            max_new_tokens=64,
            do_sample=True,
            temperature=0.7,
            pad_token_id=tokenizer.pad_token_id,
        )
        
    output = tokenizer.decode(tokens[0], skip_special_tokens=True)
    print(output)
    Q:まどか☆マギカでは誰が一番かわいい?
    A:マミさん。魔法少女の中では一番好きです。



     
     
     

    npaka

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

    あなたへのおすすめ