CyberAgentの日本語LLM OpenCalmを使ってみた

1722
CyberAgentの日本語LLM OpenCalmを使ってみた

はじめに

先日、サイバーエージェントから、大規模日本語モデル(LLM)であるOpenCalmが公開されました。
https://www.cyberagent.co.jp/news/detail/id=28817

昨今、何かと話題のChatGPTがありますが、OpenCalmの最大の特徴は、学習データが日本語であること、そしてオープンソースだということです。

パラメータ数は68億で、GPT-3の1750億(GPT-4のパラメータ数は未公開)に比べてかなり少ないですが、日本語に特化しているということで、この差がどの程度埋められるのかが気になります。

今回は、まずは簡単に試してみた結果を紹介します。

実行環境

Google Colabolatory上で実行しました。
実行には

  • transformers
  • accelerate

が必要なため、事前にインストールしておきます。

pip install transformers accelerate

OpenCalmには下表の6つのサイズの異なるモデルがありますが、一番大きいopen-calm-7bは無料のGPU(T1)ではエラーになってしまったため、有料のGPU(A100)を使いました。

Model Params Layers Dim Heads Dev ppl
cyberagent/open-calm-small 160M 12 768 12 19.7
cyberagent/open-calm-medium 400M 24 1024 16 13.8
cyberagent/open-calm-large 830M 24 1536 16 11.3
cyberagent/open-calm-1b 1.4B 24 2048 16 10.3
cyberagent/open-calm-3b 2.7B 32 2560 32 9.7
cyberagent/open-calm-7b 6.8B 32 4096 32 8.2

結果

実行したプログラムは、Hugging Faceのopen-calmのページに書かれているものです(下記はopen-calm-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")

inputs = tokenizer("AIによって私達の暮らしは、", return_tensors="pt").to(model.device)
with torch.no_grad():
    tokens = model.generate(
        **inputs,
        max_new_tokens=64,
        do_sample=True,
        temperature=0.7,
        top_p=0.9,
        repetition_penalty=1.05,
        pad_token_id=tokenizer.pad_token_id,
    )

output = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(output)
  • open-calm-small

    AIによって私達の暮らしは、AIによって自動化され、私達の生活は、AIによって、私達の生活は、私達の生活は、AIによって、私達の生活は、私達のライフスタイルは、AIによって、私達は、私達の生活は、AIによって、私達の生活は、AIによって、私達のライフスタイルは、AIによって、私達の生活は、AI

  • open-calm-medium

    AIによって私達の暮らしは、現代に蘇りました。
    私達は、その昔、現代の技術でつくられた日用品や電化製品のような、目に見えないものを「日用品」と呼びました。
    私達は、新しい物を「技術」と呼びました。
    私達は、昔の物を「昔の技術」と呼びました。
    私達は、新しい物を「新しい技術」

  • open-calm-large

    AIによって私達の暮らしは、AIによって大きく変わろうとしています。AIは、私達の生活を根本的に変え、私達の未来を、より良く変えていきます。それは、決して夢物語ではありません。ただ、私達自身が、AIについて、まだ、よくわかっていなくて、それについて、よくわかっていないだけです。
    私達は、AIに、どのような仕事を、

  • open-calm-1b

    AIによって私達の暮らしは、AIが支配する世界へと変わりつつあります。
    AIが人間に取って代わることは、AIに支配されることではありません。
    AIは人間にとって代わるのではなく、共存するのです。
    AIが人類に取って代わるのではなく、AIと共存する時代、
    AIが人類に取って代わる時代へと、変わり始めています。
    AI

  • open-calm-3b

    AIによって私達の暮らしは、より便利で快適なものになってきています。これはAIによる自動化にも似た大きな変化であり、AIなしでは私たちは、仕事においても生活においても生きていくことが出来ないでしょう。
    人工知能(AI)やロボットといったテクノロジーによって、私たちの仕事や暮らしが奪われないか心配する人もいるでしょう。
    確かに、AIやロボットは、私達

  • open-calm-7b

    AIによって私達の暮らしは、大きく変化しました。そして、その進化は、更なる進化を遂げました。AIは、私達の生活を、どのような形で、どのように変えてくれるのでしょうか。
    【AI・人工知能EXPO】AI・人工知能EXPOレポート、第2回目、AI・人工知能の最先端の技術は、どのように私達の生活を変えてくれるのでしょうか。

参考までに、gpt-3.5-turboの場合はこのような結果になりました。

AIによって私たちの暮らしは、多くの面で影響を受けています。以下はいくつかの例です。

  1. 自動化:AI技術は、物流や製造業、サービス業など、さまざまな分野で自動化を実現しました。これにより、人間が行う必要のある繰り返し作業を削減し、生産性を向上させることができます。
  2. 医療:AIは医療分野での診断や治療の改善に役立ちます。例えば、AIを用いてレントゲン画像やMRI画像を分析することで、病気や損傷の早期発見や検出が可能になります。
  3. パーソナライズドな体験:AIは、音楽、映画、書籍など、エンターテインメント分野でも利用されています。AIツールを使って、個人の好みに応じた提案や予測を行い、よりパーソナライズされた体験を提供しています。
  4. 環境保護:AIは、環境保護分野でも活用されています。例えば、AIを使用して省エネルギーを実現し、エネルギーの使用効率を改善することができます。
    これらはAI技術の影響の一例ですが、AI技術自体も急速に進化しています。今後、より多くの分野でAI技術が活用されることが予想され、私たちの暮らしや社会に大きな影響を与えることになるでしょう。

最後に

ChatGPTに比べると結果は見劣りしますが、どうやらOpenCalmはBERTなどと同じように、ファインチューニングをして使うものという情報もあるので、もう少し調べてみたいと思います。