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


rinnaさんご提供の事前学習モデルがアップデートされました。rinnakk/japanese-pretrained-models

ここではJetson Nano + Docker の環境で、BERTの改良版 RoBERTa(Robustly optimized BERT approach)の例をやってみます。

Jetson Nanoは4GB版を使ってみました。OSイメージは、Jetpack 4.6

DockerイメージはNVIDIAご提供のnvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3、pytorch1.7.0が実装されています。

コンテナ作成

sudo docker create -it --name my_bert --gpus all --network host nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3

コンテナを起動

アップデート&アップグレード、パッケージなどをインストール

HuggingFaceのPytorch版 transformerをインストールします。バージョンは4.9.2になります。

ここでエラーが発生した場合


error: can’t find Rust compiler


ERROR: Could not build wheels for tokenizers which use PEP 517 and cannot be installed directly

ここを参照

 

SentencePieceをインストール

 

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

 


Pythonコンソールを開いてモデルを使ってみます。

初回はデータがダウンロードされます。

モデルを使って例を実行してみます。

こんな感じ。

いったい何をしているのかというと、

元文「4年に1度オリンピックは開かれる。」の先頭に[CLS]を付加し、tokenに分割した後、5番目のtokenを[MASK]に置き換えます。

「4年に1度、[MASK]は開催される。」の[MASK]部分を予測した結果の上位10ワードを提示してくれているそうです。

 

 


エラーが発生した場合の対処



error: can’t find Rust compiler



ERROR: Could not build wheels for tokenizers which use PEP 517 and cannot be installed directly

 

 

再実行

 

戻る

 


Appendix

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

 


Appendix 2

BERT日本語Pretrainedモデルはこいうとこでも公開されています。

気が向いたら使ってみましょう。

京都大学

 


Appendix 3

GPT-3 はMicrosoftの制約(?)もあってかクラウドサービスとして申請者のみが利用できる状況です。

ただOSSでEleutherAIが、Pileでトレーニングされた60億のパラメーターモデルであるGPT-J-6Bを公開しています。ほぼほぼGPT-3に匹敵する性能だそうです。

興味のある方、デモ版もあるので試してみましょう。

 


 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*