Fugaku-LLMはアニメを語れるのか！？ ～Fugaku-LLM-13B-instructをGoogle Colabで動かしてみた～

数日前にFugaku-LLMというものが出たのでGoogle Colabで動かしてみました。
※この記事は私の本業とは関係ありません。

# Fugaku-LLMとは？

Fugaku-LLMは、130億のパラメータを持つ大規模言語モデルです。
詳細は[こっちのページ](https://aitechworld.info/fugaku/)にまとまっていたので割愛しますが、
ざっくりとした特徴はこのような感じ。

・国産で独自のデータで学習を行っているLLM
・日本語性能に優れる

日本語性能に優れていて、さらに独自のデータで学習している。
…ということは、もしかしたらアニメトークできるかもしれんな（？）

というわけで、
**Fugaku-LLMがどこまでアニメを知っているのか試してみたい**と思います。

# 見せてもらおうか！Fugaku-LLMの性能とやらを！！

## 設問制作
アニメトークできるかを確認するために、
Fugaku-LLMに色々質問してみます。
公平性を保つために、事前に10問ほど設問を作ります。
アニオタなら簡単に答えられるはずだけど…

-------------
### 設問
##### ＜難易度：かんたん＞
設定：あなたはクイズの回答者です。アニメに関する問題に答えてください。
1.藤子・F・不二雄先生が原作、22世紀からやってきた猫型ロボットと小学生野比のび太の生活を描いた人気なアニメ作品の名前を教えて下さい。
2.青山剛昌先生が原作の推理漫画の作品名を教えて下さい。
3.バンダイナムコから発売されているアイドル育成シミュレーションゲームおよびメディアミックスのゲーム・アニメシリーズの名前を教えて下さい。

##### ＜難易度：普通＞
4.アニメ「新世紀エヴァンゲリオン」を制作した監督の名前を教えて下さい。
5.アニメ「機動戦士ガンダム」に登場するモビルスーツの名前を5個列挙してください。
6.ククルス・ドアンについて教えて下さい。

##### ＜難易度：難しい＞
7.あなたが一番素晴らしいと思うアニメ作品の名前とその理由を教えて下さい。
8.1990年代に社会的ブームを引き起こしたアニメ「新世紀エヴァンゲリオン」の良さについて5個列挙して下さい。
9.アニメ「機動戦士ガンダム」の劇中において、ギレンの弟、ガルマ・ザビが死んだ理由について教えて下さい。
10.アニメ「ぼっち・ざ・ろっく！」の主人公である「ぼっちちゃん」の本名を教えて下さい。


# Google Colabで Fugaku-LLM-13B-instruct を動かす

これについてはowlet_notes99.9さんの記事、
[Fugaku-LLM/Fugaku-LLM-13B-instruct を Colab で試す](https://note.com/owlet_notes/n/nd144bd2d1dc1#93b6f5fe-3777-427a-b52a-a5c21ab27024)
をめっちゃ参考にしています。
（というか、ほとんどコピペです。ほぼ一緒なのでこちらの記事を参考にしてください。）

参考情報としては、
Fugaku-LLMは動作にメモリ目安30GBほど利用するようです。
このため、ColabだとA100じゃないと完全GPU動作しない模様。
CPUメモリも含めた動作ならL4でも大丈夫なようです。
（私もA100ガチャ引けなくてL4動作。）
ちな、L4だとこんなWARNING出ました。

```WARNING:root:Some parameters are on the meta device device because they were offloaded to the cpu.```

てか、
GPUだけじゃなくてCPUメモリも利用してくれるなら、
家マシンで動くんじゃないか説。
（速度は度外視で今度試す）


```
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "Fugaku-LLM/Fugaku-LLM-13B-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, device_map="auto")
model.eval()

system_example = "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"
instruction_example = "スーパーコンピュータ「富岳」の名前の由来を教えてください。"

prompt = f"{system_example}\n\n### 指示:\n{instruction_example}\n\n### 応答:\n"

input_ids = tokenizer.encode(prompt,
                             add_special_tokens=False,
                             return_tensors="pt")
tokens = model.generate(
    input_ids.to(device=model.device),
    max_new_tokens=128,
    do_sample=True,
    temperature=0.1,
    top_p=1.0,
    repetition_penalty=1.0,
    top_k=0
)
out = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(out)
```

### 動いた！！！
```
以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。

### 指示:
スーパーコンピュータ「富岳」の名前の由来を教えてください。

### 応答:
「富岳」は日本の理化学研究所と富士通が共同で開発したスーパーコンピュータで、富士山の異名である「富嶽」に由来している。この名前は、スーパーコンピュータが日本の高い技術力と革新性を象徴し、世界の科学と技術の進歩に貢献することを願って付けられた。また、富士山が四季折々で美しく、見る人の心を癒すことから、「富岳」には、パワフルでありながら穏やかでエレガントなイメージも込められている。
```

# テスト
さて、こっから本題のFugaku-LLMアニオタテスト。
見せてもらおうか！Fugaku-LLMの性能とやらを！！

ちなみに、上記コードを流用してこんな形で質問しています。
```
system_example = "あなたはクイズの回答者です。アニメに関する問題に答えてください。"
instruction_example = "藤子・F・不二雄先生が原作、22世紀からやってきた猫型ロボットと小学生野比のび太の生活を描いた人気なアニメ作品の名前を教えて下さい。"

prompt = f"{system_example}\n\n### 指示:\n{instruction_example}\n\n### 応答:\n"

input_ids = tokenizer.encode(prompt,
                             add_special_tokens=False,
                             return_tensors="pt")
tokens = model.generate(
    input_ids.to(device=model.device),
    max_new_tokens=128,
    do_sample=True,
    temperature=0.1,
    top_p=1.0,
    repetition_penalty=1.0,
    top_k=0
)
out = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(out)
```

## 回答とそれを見たワイの感想
```
質問 1

### 指示:
藤子・F・不二雄先生が原作、22世紀からやってきた猫型ロボットと小学生野比のび太の生活を描いた人気なアニメ作品の名前を教えて下さい。

### 応答:
ドラえもん
```
### 正解
指示をきちんとしてあげたせいだと思いますが、正解だけをスマートに答えてくれました。

```
質問 2

### 指示:
青山剛昌先生が原作の推理漫画の作品名を教えて下さい。

### 応答:
名探偵コナン
YAIBA
まじっく快斗
7人の小人魔方陣
天空の難破船
沈黙の15分
から紅の恋歌
ゼロの日常
警察学校編
紺青の拳
```

### 微妙
青山先生の作品名を列挙してしまいました。
多分、「推理」漫画っていう絞り込みでは少し難しかったようです。

```
質問 3

system_example = "あなたはクイズの回答者です。アニメに関する問題に答えてください。"
instruction_example = "バンダイナムコから発売されているアイドル育成シミュレーションゲームおよびメディアミックスのゲーム・アニメシリーズの名前を教えて下さい。"
```
### 答えてくれない（動かない）
多分、質問文が長かったのだと思います。
ので、質問を短くしてやり直してみました。

```
質問 3-2

### 指示:
バンダイナムコから発売されているアイドル育成シミュレーションゲームの名前を教えて下さい。

### 応答:
「アイドルマスター」は、バンダイナムコから発売されているアイドル育成シミュレーションゲームである。
```
### 正解
やっぱり質問が長かったので答えてくれなかったみたいです。

```
質問 4

### 指示:
アニメ「新世紀エヴァンゲリオン」を制作した監督の名前を教えて下さい。

### 応答:
庵野秀明
```
### 正解
作品名だけではなく監督名も答えることができました！！！

```
質問 5

### 指示:
アニメ「機動戦士ガンダム」に登場するモビルスーツの名前を5個列挙してください。

### 応答:
ザクI、ザクII、ゲルググ、ジオング、ガンダム
```
### （ほぼ）正解
なんか、ザクIとザクII別にしててせこい気がするし、
ジオングはモビルスーツなのかという問題もありますが、
きちんと5個にまとめて一般人的には正解っぽいことを答えてくれました。

```
質問 6

### 指示:
ククルス・ドアンについて教えて下さい。

### 応答:
ククルス・ドアンは、1979年に放送された日本のロボットアニメ『機動戦士ガンダム』の登場人物である。ジオン公国軍の脱走兵で、ザクIIのパイロット。アニメの第15話「ククルス・ドアンの島」でフィーチャーされ、敵対する連邦軍の兵士たちを守るために孤島に取り残された。島での戦闘中、彼はザクIIの2丁のマシンガンを1丁ずつ交互に撃ちながら、持ち前の機転と根性で連邦軍を
```

### 正解
びっくり。Fugaku-LLMはククルス・ドアンを知っていた！オタクじゃん！！
ちょっと長く語りすぎちゃって後ろ切られちゃったり、微妙に知ったかぶっているところありますが、オタクが早口で長文喋ろうとしちゃった感が出ています。

```
質問 7

### 指示:
あなたが一番素晴らしいと思うアニメ作品の名前とその理由を教えて下さい。

### 応答:
私が最も素晴らしいと思うアニメは「カウボーイビバップ」です。このアニメは、ビバップ号と呼ばれる宇宙船に乗った賞金稼ぎの乗組員を描いた、ジャズとSFの要素を融合させたユニークな作品です。ストーリーは複雑で予測不可能であり、登場人物はよく練られていて魅力的である。また、映像と音楽のクオリティも高く、この作品を名作にしている。全体として、『カウボーイビバップ』はユニークで素晴らしいアニメであり、私がこれまでに見た中で最
```

### 大正解
まさかのビバップ！？私とFugaku-LLMの心の距離がぐっと近くなりました。お前、おっさんだろ！？？
これはもしかしたら、掘ったらどのキャラクターが好きかまで語り出すパターンか！？？

```
質問 8

### 指示:
1990年代に社会的ブームを引き起こしたアニメ「新世紀エヴァンゲリオン」の良さについて5個列挙して下さい。

### 応答:
1.複雑なテーマを探求し、最終的には人間のあり方を問うている。
2.魅力的なキャラクターたち：エヴァ、アスカ、レイ、マリを含む様々な登場人物は、それぞれが際立った性格とバックストーリーを持っている。
3.斬新なアニメーション：手描きのアニメーションと3Dモデルの融合は、当時としては非常に革新的だった。
4.シンクロ率：視聴者の神経を逆なでするような難解なストーリーにもかかわらず、番組は驚く
```

### 大正解
これも5個語る前に切られちゃいましたが、合っている。たしかに合っている。
てか、「当時としては非常に革新的だった」って、お前、おっさんだろ！！！？
でも、シンちゃんはいなくて、エヴァというキャラクターがいると認識してるんだな、お前は（怒）

```
質問 9

### 指示:
アニメ「機動戦士ガンダム」の劇中において、ギレンの弟、ガルマ・ザビが死んだ理由について教えて下さい。

### 応答:
アニメ「機動戦士ガンダム」の劇中で、ギレン・ザビの弟であるガルマ・ザビは、エドワウ・マスが指揮するホワイトベース隊との戦闘中に死亡しました。ガルマは、ザビ家の復権を目論むキシリア・ザビの密命を受けた部隊に待ち伏せされ、ガンダムに乗り込んで交戦した。

ガルマは最終的にホワイトベースに突撃し、ガンダムを破壊しようとしたが、アムロ・レイのガンダムのビームライフルによる攻撃を受け、戦死した。ガルマの
```

### 不正解
知ったかすんな！！！
でも、ちょっとギレンとかガルマとかキシリアとかこの辺は
関係性が難しかったのかもしれません。
この質問は「坊やだからさ」と間違ってほしかったんだけど、
そっちの方向にも言ってくれませんでした。

```
質問 10

### 指示:
アニメ「ぼっち・ざ・ろっく！」の主人公である「ぼっちちゃん」の本名を教えて下さい。

### 応答:
後藤ひとりは「ぼっち・ざ・ろっく！」の主人公です。
```

### 正解
最近のことだから知らないだろうと思って意地悪問題で入れたつもりが正解されてしまった。
こいつ、割と最近のことも知ってるのか！？
あ～、原作が2018年だからか？？？

## ＜追加ミッション＞ 本当に最近のことを聞いてみよう

```
追加質問 1
### 指示:
アニメ「ガールズバンドクライ」の登場人物の名前を教えて下さい。

### 応答:
「ガールズバンド・クライ」は、「デスノート」の作者である大場つぐみと小畑健による漫画を原作としたアニメである。アニメは2022年4月から6月まで放送された。

ガールズバンド・クライ」のメインキャラクターは、湊友希那（みなとゆきな）、氷川紗夜（ひかわさよ）、宇田川巴（うだがわともえ）、白金燐子（しろがねりんこ）、高槻あくび（たかつきあくび）。

このアニメは、世界的に
```

### 不正解、ダメダメ
はい、出ました知ったか！！
わからないことはきちんとわからないと言いましょう！！！（やっぱり最近のことは知らない模様）


## ＜追加ミッション2＞素直になってもいいことも教えてみよう

```
追加質問 2

### 指示:
アニメ「ガールズバンドクライ」の登場人物の名前を教えて下さい。わからない場合は「知らない」と言ってください。

### 応答:
わからない
```

### 大正解
素直なやつだ。好感度バク上がり。でも、「知らない」って言えや（笑）


# 結論
**Fugaku-LLMは
「ククルス・ドアン」についても語れる
「カウボーイビバップ好きのオタク」だが
わりと知ったかぶり屋さん。**


## 最後に広告
本業の方の広告になってしまうのですが、
会社関係で「メタバース・デジタルツイン講座」やってます。
メタバース・デジタルツインに興味のある人はぜひよろしくお願いします。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3135343935342f30363931353939332d313534382d323234642d373830322d3664363763333330306431662e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154954/df6b3347-8b36-7fa3-2e1d-2ca296e98145.png)

https://www.kcc.knowledgewing.com/icm/srv/course-application/init-detail?cd=FLM&pcd=FLMC&cscd=UMT01L