見出し画像

Google Colab で Rinna-4B を試す

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


1. Rinna-4B

Rinna-4B」は、「Rinna」が開発した日英バイリンガルなLLMです。商用利用可能なライセンスで公開されており、このモデルをベースにチューニングすることで、対話型AI等の開発が可能です。

2. Rinna-4Bのモデル

「Rinna-4B」では、次の5種類のモデルが提供されています。

rinna/bilingual-gpt-neox-4b : ベースモデル
rinna/bilingual-gpt-neox-4b-8k : 8Kコンテキストモデル
rinna/bilingual-gpt-neox-4b-instruction-sft : 指示チューニングモデル
rinna/bilingual-gpt-neox-4b-instruction-ppo : 強化学習モデル
rinna/bilingual-gpt-neox-4b-minigpt4 : マルチモーダル会話モデル

マルチモーダル会話モデルは、以下で紹介しています。

3. Colabでの実行

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

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

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

(2) トークナイザーとモデルの準備。
今回は、「rinna/bilingual-gpt-neox-4b-instruction-ppo」を8bit量子化で指定しています。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
    "rinna/bilingual-gpt-neox-4b-instruction-ppo",
    use_fast=False
)
model = AutoModelForCausalLM.from_pretrained(
    "rinna/bilingual-gpt-neox-4b-instruction-ppo",
    load_in_8bit=True,
    torch_dtype=torch.float16,
    device_map="auto",
)

(3) 推論の実行。
入力プロンプトの書式は、次のとおりです。

ユーザー: Hello, you are an assistant that helps me learn Japanese.
システム: Sure, what can I do for you?
ユーザー: VRはなんですか。
システム:

# プロンプトの準備
prompt = """ユーザー: まどか☆マギカでは誰が一番かわいい?その理由も説明して。
システム: """

# 推論の実行
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
    output_ids = model.generate(
        token_ids.to(model.device),
        max_new_tokens=512,
        do_sample=True,
        temperature=1.0,
        top_p=0.85,
        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.tolist()[0][token_ids.size(1):])
print(output)
私は鹿目まどかです。彼女は、かわいいし、知的で、心優しく、とても勇敢です。彼女はまた、非常に美しく、神秘的なキャラクターでもあります。</s>



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