見出し画像

Google Colab で Nekomata-14B を試す

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

【注意】Google Colab Pro/Pro+のA100で動作確認しています。


1. Nekomata

Nekomata」は、「rinna」が開発した「Qwen」ベースの日本語継続事前学習モデルです。

2. Nekomata のモデル

「Nekomata」は、現在4つのモデルが提供されています。

rinna/nekomata-14b : ベースモデル
rinna/nekomata-14b-instruction : 指示モデル
rinna/nekomata-7b : ベースモデル
rinna/nekomata-7b-instruction : 指示モデル

3. Colabでの実行

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

(1) Colabのノートブックを開き、メニュー「編集 → ノートブックの設定」で「GPU」の「A100」を選択。

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

# パッケージのインストール
!pip install -U transformers sentencepiece accelerate bitsandbytes
!pip install -U tiktoken einops transformers_stream_generator

(2) トークナイザーとモデルの準備。
今回は、「rinna/nekomata-14b-instruction」を読み込みました。

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
    "rinna/nekomata-14b-instruction",
    trust_remote_code=True
)
model = AutoModelForCausalLM.from_pretrained(
    "rinna/nekomata-14b-instruction", 
    device_map="auto", 
    trust_remote_code=True, 
    bf16=True
)

(3) 推論の実行。

# プロンプトの準備
prompt = '''
以下は、タスクを説明する指示と、文脈のある入力の組み合わせです。要求を適切に満たす応答を書きなさい。

### 指示:
あなたはQAアシスタントです。ユーザーの質問に対して回答とその理由を返答してください。

### 入力:
まどか☆マギカでは誰が一番かわいい?

### 応答:
'''

# 推論の実行
with torch.no_grad():
    token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
    output_ids = model.generate(
        token_ids.to(model.device),
        max_new_tokens=200,
        do_sample=True,
        temperature=0.5,
        repetition_penalty=1.0,
        pad_token_id=tokenizer.pad_token_id,
        bos_token_id=tokenizer.bos_token_id,
        eos_token_id=tokenizer.eos_token_id
    )
output = tokenizer.decode(output_ids[0][token_ids.size(1) :])
print(output)

まどかが一番かわいいです。理由は、まどかは、物静かで、優しく、純粋で、心が広く、そして何よりも、魔法少女としての能力が高く、キュゥべえを倒すことができるからです。<|endoftext|>



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