クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

30分でさくっと日本語LLM(OpenCALM)を立ち上げてChatGPTと比較する

こんにちは。エンジニアチームのマネージャー、桃原です。

前回の投稿が2022年11月ですので、約半年ぶりの投稿です。 その半年の間は、LLM(Large Language Models、大規模言語モデル)を利用したサービスが世の中のあちこちで発表され、ChatGPTが盛り上がりました。

そんな中、2023年5月に株式会社サイバーエージェント様が日本語LLMを一般公開しました。 www.cyberagent.co.jp

ChatGPTを利用していて、オフラインで利用してみたい、自分が持つデータを学習させてみたいと思っていた方は多かったはずです。 今回はOpenCALMの環境をサクッと立ち上げて、ChatGPTとの出力の比較を試してみます。

huggingface.co モデルは計6種類公開されています

お伝えすること

お伝えしないこと

  • レーニングやチューニングの方法
  • rinna のモデルについて(次に触りたい) prtimes.jp

手順

  • Pythonと必要なパッケージの導入
  • コードの生成
  • 出力結果比較

1の手順

Python と必要なパッケージの導入

利用環境は、WSL2 Ubuntu 22.04 LTS で構築。

$ sudo apt install python3 python3-pip
$ pip install torch transformers accelerate

2の手順

コードの生成

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")

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,
        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)

出力結果比較

初回はファイルのダウンロードに15分ほど時間がかかります。2回目からは1分以内で出力されます。

OpenCALM-7B

Q:ハシビロコウを近くで見られる動物園は?そして、その距離はどれくらいか?
A:横浜・八景島シーパラダイスです。ただ...園内にいるのはオスだけなので、迫力を求める方は、やはり名古屋港水族館がいいかもしれません。また「世界一受けたい授業」(日本テレビ)で爬虫類ハンターが解説したこともありますので、そちらもぜひご覧くださ い。

ChatGPT3.5

Q:ハシビロコウを近くで見られる動物園は?そして、その距離はどれくらいか?
ハシビロコウはエキゾチックな鳥類であり、一般的には特定の地域に生息しています。ただし、ハシビロコウを近くで見られる動物園はいくつか存在します。以下にいくつかの動物園を挙げますが、注意してください。情報は2021年9月までのものであり、現在の情報と異なる場合がありますので、最新の情報をご確認ください。
ミズーリ州セントルイス動物園(アメリカ合衆国):ハシビロコウを展示しています。距離はセントルイス市内から車で約10〜15分程度です。
ワシントンD.C.国立動物園(アメリカ合衆国):ハシビロコウを飼育しています。距離はワシントンD.C.市内から車で約10〜15分程度です。
ロンドン動物園(イギリス):ハシビロコウを展示しています。距離はロンドン市内から車や公共交通機関で約30分〜1時間程度です。
東京ズーネット園(日本):ハシビロコウを飼育しています。距離は東京都内から車や公共交通機関で約30分〜1時間程度です。
これらは一部の例であり、他にも世界中にハシビロコウを展示している動物園が存在するかもしれません。ハシビロコウを見るためには、最寄りの動物園のウェブサイトや連絡先を確認し、最新の情報を入手することをお勧めします。

ChatGPT4

Q:ハシビロコウを近くで見られる動物園は?そして、その距離はどれくらいか?
ハシビロコウを見ることができる動物園はいくつか存在しますが、日本にいると仮定すると、次のような場所が考えられます:
上野動物園(東京): ハシビロコウの飼育を行っている日本で最も有名な動物園の一つです。
旭山動物園(北海道): 日本で最も人気のある動物園の一つであり、ハシビロコウを見ることができます。
しかし、これらの動物園への距離はあなたの現在地によります。あなたが具体的にどの地点からの距離を尋
ねているのかをもう少し具体的に教えていただけますか?
なお、ハシビロコウは非常に希少な動物であるため、全ての動物園で見ることができるわけではありません。訪れる前には、該当の動物園のウェブサイトをチェックし、ハシビロコウが見られるかどうか確認してください。

まとめ

OpenCALM-7Bの出力は基礎モデルとは言え、ある程度”それっぽい”出力があった事には驚きました。 もう少しカタコトな文章が出力されると思っていました。

「そして、その距離は」という質問に対して、ChatGPTでは、まったく異なる回答がある事がわかります。 機転を利かせた回答と、更に不明な点を埋めに行く質問は、対話を学習しているChatGPT4の強さと感じる結果となりました。

さいごに

ChatGPT4の精度が高い。というのはその通りです。それは、ChatGPTが日々のトレーニングによって、精度を高めているからです。 OpenCALM-7Bについては、基礎モデルと呼ばれ、チューニングやトレーニングが実施されていない状態です。 この状態からモデルを育てていく事が行える意味は大きく、今後のLLM内製化時代の幕開けを感じます。
特化したLLMがサービスを通して日常に溶け込む事が増え、私たちの生活がどう変わっていくのか、わくわくしますね!!!


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

おまけ

ハシビロコウの画像
DALL-Eを利用して生成した目元がかっこいいハシビロコウ


  1. ハシビロコウを激推しする理由は、丸いフォルムのクチバシが好きで私の社内ツールのアイコンがすべてハシビロコウだからです。