rinnaの対話GPT言語モデルをGoogle Colabで触ってみた

Google Colab(PRO)でrinna/Japanese GPT-NeoX  (Hugging face)を使ってみました。

推論 on Google Colab

Python3にて以下を順次実行します。

#機械学習ライブラリ
!pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

#Hugging Faceのモデルをしようするため
!pip install transformers sentencepiece
import time
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# トークナイザーとモデルを取得
tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b-instruction-sft", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt-neox-3.6b-instruction-sft").to("cpu")
--colabでは ここで分割--
# 質問
question = "初夏の季語を5つ教えて"

prompt = f"ユーザー: {question}<NL>システム: "

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),
        do_sample=True,
        max_new_tokens=128,
        temperature=0.7,
        repetition_penalty=1.1,
        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):])
output = output.replace("<NL>", "\n")

print(output)

output:

初夏とは、6月から7月初めまでの数ヶ月間です。この時期に俳句や歌、詩などの詩的な作品でよく使われる季語には、「梅雨」、「立葵」、「紫陽花」、「夏至」、「半夏生」があります。

質問を投げてから回答までに20~30秒程度かかります。

パラメータ比較

rinnaのパラメータはGPT2の2倍強

モデルパラメータ数 [個]
rinna/Japanese GPT-NeoX 36憶
GPT215億
GPT31750億
GPT4非公開

vsGPT3

GPT3とrinnaではどちらが日本語に優れているのでしょうか。

Language Models are Few-Shot Learnersでは、Common Crawl(大規模Webクロールテキスト)の重みが60%です。また、論文のsubmit時点である2020年のインターネット上での日本語の割合は2.2%(参考)です。

上記論文(Language Models are Few-Shot Learners)より.Datasets used to train GPT-3

これらを単純に乗算すると「410B(billion) * 0.6 * 0.022 = 5.412B」となり、rinnaの3.6Bよりも大きいです。したがって、GPT3の方が優れていると言えるのではないでしょうか。GPT3時点でこの差が付いているので、GPT4ではもっと大きな差が付いているんじゃないかなあと思います。

おわり

比較しておいてアレですが、rinnaはトークンが少ないので少々良いPCであればローカル環境で実行できる点がすごいです。(小並感)

Open AIのAPIとは異なり、プロンプトを外部へ渡しているわけではないので、このモデルを独自にファインチューニングすれば、機密情報もある程度学習させれて便利になるのかなあ…

Leave a Reply

Your email address will not be published. Required fields are marked *