Closed4
Rinna japanese-gpt-neox-3.6bをためしてみた
こちらもnpaka先生の記事を写経してみる
環境
- 自宅サーバ
- Intel Core i9-13900F
- メモリ 32GB
- NVIDIA GeForce RTX 4090 24GB
- Ubuntu 22.04
- Python-3.10.11 (pyenv-virtualenv)
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
やってみた
以下、pyenv-virtualenv環境での作業
jupyter-labで
$ pip install jupyterlab ipywidgets
$ jupyter-lab --ip='0.0.0.0'
ここからはnpaka先生の記事通りに。
まず汎用モデルから。
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=64,
min_new_tokens=64,
do_sample=True,
temperature=0.8,
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])
print(output)
結果
諦めたらそこで試合終了ですよ? 頑張ったことは絶対に無駄にはなりません。それと、あなたが悩んでいることは、そんなに小さなことには思えません。そんなに悩むくらいなら、もう一度学校に来て、担任の先生に相談してみてください。 あなたのことを応援してくれる先生
対話っぽく書き換える。
prompt = "Q: マンガ「スラムダンク」で最も強い学校は?\nA:"
Q: マンガ「スラムダンク」で最も強い学校は? A: 山王工業 B: 府立第一高校 以上、3択でしたがスラムダンクのどのシーンなのか分からない人は多かったことでしょう。 ちなみに私は山王工業が答えでした。 なぜそうなったのかというと、私が中学校のときバスケットボール部に所属していたからです。バスケ部の顧問
temperature=0.1だとこんな感じ。few-shotにするか、対話モデルあるのでそっちを使うほうがいいかも。
Q: マンガ「スラムダンク」で最も強い学校は? A: 山王工業 B: 海南大附属高校 C: 陵南高校 D: 翔陽高校 答え:山王工業 山王工業は、神奈川県の強豪校で、インターハイ優勝2回、ウインターカップ優勝2回、国体優勝2回、全日本高校選抜優勝2回、アジアジュニア
VRAM使用状況
14735MiB / 24564MiB
次に対話モデル。
prompt = "ユーザー: マンガ「スラムダンク」で最も強い学校は?<NL>システム: "
「スラムダンク」でもっとも強いのは、高校バスケットボールにおいて、アメリカの学校であるジョーダン・ベルフォートです。彼はバスケットボールの神様と呼ばれています。</s>
回答は間違ってるけど自然な感じではある。プロンプトがよくなかったかもしれない。
VRAM使用状況。あまり変わらない。
14735MiB / 24564MiB
またもやnpaka先生。神!
こちらもOpen-CALMのときと同じくscipyが足りないので最初のpip installのところで追加しておくと良い。
学習はこんな感じ。
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02 Driver Version: 530.30.02 CUDA Version: 12.1 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4090 On | 00000000:01:00.0 Off | Off |
| 60% 75C P2 396W / 450W| 13899MiB / 24564MiB | 97% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1338 G /usr/lib/xorg/Xorg 9MiB |
| 0 N/A N/A 1429 G /usr/bin/gnome-shell 10MiB |
| 0 N/A N/A 256370 C ...inna-3.6b-finetuning/bin/python3.10 13874MiB |
+---------------------------------------------------------------------------------------+
大体1.5時間で終わり。
では推論。
generate("自然言語処理とは?")
機械学習は、人工知能の一分野です。 機械が学習し、その学習結果を使って新しいタスクを実行する。
generate("日本の首都は?")
東京は、日本の首都であり、アジアの最も人口の多い都市のひとつです。東京の人口は約1,370万人で、世界で2番目に人口が多い都市です。2020年東京オリンピックの開催地でもある。
generate("まどか☆マギカで一番かわいいのは?")
マミさんは、まどかの親友であり、親友のまどかにほむらの魔女退治を手伝わせ、その報酬として自分の願いを叶えてもらうという契約を結ばせた。 その契約がまどかを魔女から守るための盾として機能するのか、それともまどかを守る盾となるのかはわからない。
ということでやってみる。
そしてまたもや・・・
pyenv-virtualenvで一から環境作ってみたけど、うちの環境だとtorchが足りなかったのでそれだけpip installしておけばそのままいけました。ただモデルのダウンロードがめちゃめちゃ遅い・・・
モデル読み込んで推論動かした感じだとこれぐらい。
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02 Driver Version: 530.30.02 CUDA Version: 12.1 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4090 On | 00000000:01:00.0 Off | Off |
| 0% 49C P8 11W / 450W| 14735MiB / 24564MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1180 G /usr/lib/xorg/Xorg 9MiB |
| 0 N/A N/A 1414 G /usr/bin/gnome-shell 10MiB |
| 0 N/A N/A 309501 C ...envs/rinna-3.6b-rlhf/bin/python3.10 14710MiB |
+---------------------------------------------------------------------------------------+
推論の実行例(抜粋)
prompt = "ユーザー: まどか☆マギカでは誰が一番かわいい?<NL>システム: "
私は、ほむらちゃんと杏子が一番かわいいと思います。二人ともとても素敵です!特に、杏子はとても魅力的な女の子で、彼女の周りの世界を素晴らしいものにしていると思います。彼女はとても優しく、思いやりがあり、強い心を持っています。一方、ほむらはとても賢く、控えめな印象を受けます。彼女には強い意志があり、自分の目標に向かって努力し続けることができます。彼女は強い正義感を持ち、他人の利益を考えています。二人ともとても魅力的で、一緒にいると楽しいです。</s>
うお、かなりいい感じじゃないか、これ。
ファインチューニングに手が回らないのでクローズ
このスクラップは2023/10/13にクローズされました