Jetson Nanoで学習済みモデルを使って、いろいろやってみる(7)自然言語処理(GPT-2)


rinna株式会社さんが日本語版GPT-2をオープンソースで公開されています。

早速使ってみます。

学習済みモデルを使って文章生成してみましょう。

環境は、スッピンのJetson Nano + コンテナ です。

Jetpack は4.5 (L4T R32.5.0) を使って初期設定しておきます。

ドッカーイメージはnvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3 です。

Pytorch(1.7.0)、 torchvision(0.8.0)、 torchaudio (0.7.0)が実装されています。

 


まずは、イメージをダウンロード

作業用ディレクトリ作成

SWAPは6GBくらい取っておきます。

my_gpt2 という名前でコンテナ作成

sudo docker create -it --name my_gpt2 --gpus all --network host -v /home/jetson/work-gpt2:/work nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3

コンテナ起動

アップデート&アップグレードしてライブラリやパッケージをインストール

GPT-2用にライブラリをインストール

注:transformersのインストールでエラーが発生した場合、ここを参照してみてください。

 

日本語を使うのでコンテナを日本語化しておきます。

コンテナを終了

Ctrl + D


コンテナを再起動

作業フォルダへ移動

Pythonファイルを作成

学習済みモデルとしてjapanese-gpt2-mediumを使います。

以下のコードは初回実行時はいくつかファイルダウンロードが実行されるので少々時間を要します。

【gen_gpt2.py】

以下は例です。”吾輩は”というprompt/prefixに続く文章を予測して生成させてみます。

num_return_sequences に3を設定しているので、生成される文は3種類です。

top_kは40がいいらしいですが、0でやってみます。

生成文のtokenの数はmax_length で設定します。

このような設定で、Nanoの場合は生成に8分くらいかかります(tokenizer とmodel の準備に5分、文書生成に3分くらい)。

result.txt に、以下のような文章が生成されました(結果は毎回異なりますが、今回はなにやらシュールです^^)。

1.
吾輩は 二十世紀のはじまりを 彷徨っている われらなのだな・・・ この歌が歌われている頃の 僕は 小学1年生で 鹿児島にある 小学校に入学していたはずだ。 その10年後に 祖母が亡くなられた。 祖母は 当時は不穏なムードで 何が起こるかわからない、五感をフルに使って命の危険を感じる生活を強いられたそうだ。 天気予報士の 唯我独尊の癖に 非常事態の場合には

2.
吾輩は どちらでもない どちらでもない という言葉は使ったことがありません。 20年経ったら振り返らずにしまっておこうと思っているんですが・・・ ( 2ちゃんは想像するだけで大変なことになると本で読んでました。 ああいうのを見かけたときに思わず悲鳴をあげてしまうような人たちで 機会があれば是非お聞きしたいのですが、ハセツネの歴代の入賞者一覧は 開会式は13時30分に始まると聞いていま

3.
吾輩は 桃色小僧 殺気の歌(アングリング トラックス)は、1978年6月21日に発売された18禁ラノベ。「うしおととら」を原作とした一連の群像劇となる。アニメ化、一部実写化、舞台化など幅広いメディアミックス展開がされている。 内容についてはネット上でも特に批判的な意見もなく、もう発表されている通り完璧な完成形となっている。 評価に関しては前述した通りだが、その物足りない文章量の多さも強烈だ。文章

 


Appendix

gen_gpt2.pyJupyter Notebookを使ったほうが時間の節約になります。

使用したイメージにはNotebookは実装されていないのでインストールしてやります。

マウントしておいたworkフォルダーへ移動して、Jupyter Notebook を起動

token付きでURLが表示されますので、コピーして外部ブラウザーからNotebookを開きます。

output_sequencesの前と後でセルを分割して実行。

後のセルの先頭で以下を記述しておきます。

prompt_text = “XXXXX”

 


Appendix1

GPT-2 でIF文(仮定)でPromptを書いてみた場合です。

 

 

GPT-3を使って詩(エクフラシス)を生成し、様々なアーティストとコラボするプロジェクト(Aikphrasis Project)がHolly Grimm さんのサイトで紹介されています。

例えば…..

GPT-3 が生成したエクフラシスとコラボしてCarol Rose Brown さんが描かれたものです。

エクフラシス

13″x20″

HollyさんとAI Curator(GPT-3)が対話している部分も興味深いです

この先には人間(Human Being)+ GPT-3  +  GAN で描かれたものも出てきそうな…..。

参考までに、StyleGAN 、Image GPTDALL-ECLIP

毛色は違いますが…magentaAI Portraits Ars について

 


Next

GPT-3 を使ったPrompt Programming

GPT-3のAPIを使う場合は申請が必要です、どういうふうに使うか考えておきましょう。

 


Appendix

GPTー>Generative Pretrained Transformer

 

言語を抑制したトランスフォーマーは、非言語的なタスクにも役立つ!

 


Appendix 2

古いJetpackを使う場合の注意点

NVIDIAのArchiveページにある古いバージョンのJetpack(4.5.1 や 4.4.1)を使う場合、最近になって気になる症状が出るようになりました。

sudo apt upgrade や sudo apt install xxx を実行すると最後に以下のようなメッセージが表示されます。

NIVIDIAのフォーラムなどではだいぶ前から話題になっていたもののようです。

 Nvidiaフォーラム

で、nvidia-l4t-bootloaderなるものは、どいうやらカーネルイメージに関係したものらしいという以外、管理人には不明です。

エラーは出るもののアップグレードやインストールは完了しています。

様子を見るしかありませんが、気になる場合は削除してしまいます。

これによって再起動などをしても特段不具合が出ることもありません。

なんなんでしょう?謎です。

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*