Closed4

Rinna japanese-gpt-neox-3.6bをためしてみた

kun432kun432

こちらもnpaka先生の記事を写経してみる

https://note.com/npaka/n/ne4a38239f420

環境

  • 自宅サーバ
    • 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
kun432kun432

またもやnpaka先生。神!

https://note.com/npaka/n/nc387b639e50e

こちらも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("まどか☆マギカで一番かわいいのは?")
マミさんは、まどかの親友であり、親友のまどかにほむらの魔女退治を手伝わせ、その報酬として自分の願いを叶えてもらうという契約を結ばせた。  その契約がまどかを魔女から守るための盾として機能するのか、それともまどかを守る盾となるのかはわからない。
kun432kun432

https://prtimes.jp/main/html/rd/p/000000043.000070041.html

ということでやってみる。

そしてまたもや・・・

https://note.com/npaka/n/ne4a38239f420

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>

うお、かなりいい感じじゃないか、これ。

kun432kun432

ファインチューニングに手が回らないのでクローズ

このスクラップは2023/10/13にクローズされました