Hugging FaceのTransformersライブラリをNVIDIA Jetson AGX Orin Developer KitでGPUを使用して動作させる方法(2023年10月時点)
最終更新日:2023年10月23日
Hugging FaceのTransformersライブラリをNVIDIA Jetson AGX Orin Developer Kit (以降Jetson Orin)で動作確認できたので方法を記事に残します。本記事では、Jetson Orin + JetPack5.1.1の組合せで動作確認をしていますが、JetPackに合わせたDockerイメージを使用すればこの組合せ(Jetson Orin + JetPack5.1.1)である必要はありません。
本記事では、Hugging FaceのTransformersによる感情分析の実装方法について説明します。
また、Transformersの学習済みモデルはローカルに保存し、次回実行以降はローカルにダウンロードした学習済みモデルを使用する方法を説明します。
Transformersとは
Transformersは、自然言語処理(NLP)タスクにおいて最先端の成果を達成している深層学習モデルの一つです。具体的には、文章や単語の意味をベクトルとして捉え、それを基に文章の理解や生成、翻訳などのタスクを行います。特徴的なのは、前後の文脈を広範囲にわたって考慮しながら情報を処理する能力が非常に高い点です。
Transformersという言葉は、この技術を基盤として開発されている「Hugging Face社のTransformersライブラリ」としても知られています。このライブラリは、多くのNLPモデルや前処理ツールを簡単に利用できるように設計されており、多くの研究者や開発者に支持されています。
Transformersは現代のNLP技術の中心とも言える技術であり、それを手軽に使えるツールとしてのTransformersライブラリが存在しています。
環境
本記事を参考に、Hugging FaceのTransformersライブラリを動作させるには以下のものが必要です。
NVIDIA Jetson AGX Orin Developer Kit (64GB)
JetPack5.1.1 (※ NVIDIA Jetson AGX Orin Developer KitはJetPack5.1.1以上を推奨)
15Gbyteの空きスペース (※ ターミナルでdf -hを入力してAvailが15G以上であることを確認してください)
ディスプレイ(※)
USBマウス(※)
USBキーボード(※)
インターネット接続
※ SSH等でJetson Orinへリモートログインする場合はディスプレイ、USBマウスやUSBキーボードは必須ではありません。
JetPackのバージョン確認
NVIDIAではJetPackのバージョン毎にDockerイメージを提供しているため、使用するJetson OrinのJetPackのバージョンを確認します。
ターミナルで以下のコマンドを入力することでJetPackバージョンを確認することできます。
cat /etc/nv_tegra_release
私の環境だと以下のように出力されます。
note@ubuntu:~/Desktop$ cat /etc/nv_tegra_release
# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023
先頭のR35 (release), REVISION: 3.1に注目して、R35.3.1と解釈します。
以上でJetPackのバージョン確認の説明は終了です。
Dockerイメージの入手
NVIDIAからJetPack(R35.3.1)向けのDockerイメージを入手します。目的はHugging FaceのTransformersライブラリを利用することなので、それに適したDockerイメージを選びます。
以下のWebページでDockerイメージを探します。
Webページを開き、以下スクリーンショットのtransformersをクリックします。
以下のDockerイメージの中から、dustynv/transformers:r35.3.1を使用します。
もし、JetPack5.1.2の場合は、dustynv/transformers:r35.4.1を使用してください。
以下のコマンドを入力してDockerイメージをダウンロードします。
sudo docker pull dustynv/transformers:r35.3.1
ダウンロードしたDockerイメージの確認のため、以下のコマンドを入力します。
sudo docker images
私の環境では以下のようになりました。
note@ubuntu:~/Desktop/$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dustynv/transformers r35.3.1 9a2aa4ed35a1 4 weeks ago 13.2GB
以上でDockerイメージの入手の説明は終了です。
このDockerイメージを使用してコンテナを作成し、pip3 listを実行しました。
root@ubuntu:/# pip3 list
Package Version
------------------- --------------------
accelerate 0.22.0
aiohttp 3.8.5
aiosignal 1.3.1
async-timeout 4.0.3
attrs 23.1.0
auto-gptq 0.4.2+cu114
bitsandbytes 0.39.1
certifi 2019.11.28
chardet 3.0.4
charset-normalizer 3.2.0
cmake 3.27.0
coloredlogs 15.0.1
Cython 0.29.36
dataclasses 0.6
datasets 2.14.5
dbus-python 1.2.16
dill 0.3.7
distro 1.8.0
filelock 3.12.2
frozenlist 1.4.0
fsspec 2023.6.0
graphsurgeon 0.4.6
huggingface-hub 0.16.4
humanfriendly 10.0
idna 2.8
inquirerpy 0.3.4
Jinja2 3.1.2
MarkupSafe 2.1.3
mpmath 1.3.0
multidict 6.0.4
multiprocess 0.70.15
networkx 3.1
ninja 1.11.1
numpy 1.24.4
onnx 1.15.0
onnx-graphsurgeon 0.3.12
optimum 1.13.1
packaging 23.1
pandas 2.0.3
peft 0.5.0
pfzy 0.3.4
Pillow 10.0.0
pip 23.2.1
prompt-toolkit 3.0.39
protobuf 4.23.4
psutil 5.9.5
pyarrow 13.0.0
PyGObject 3.36.0
python-apt 2.0.1+ubuntu0.20.4.1
python-dateutil 2.8.2
pytz 2023.3.post1
PyYAML 6.0.1
regex 2023.8.8
requests 2.22.0
requests-unixsocket 0.2.0
rouge 1.0.1
safetensors 0.3.3
scikit-build 0.17.6
scipy 1.10.1
semantic-version 2.10.0
sentencepiece 0.1.99
setuptools 68.0.0
setuptools-rust 1.7.0
six 1.14.0
sympy 1.12
tensorrt 8.5.2.2
tokenizers 0.13.3
tomli 2.0.1
torch 2.0.0+nv23.5
torchvision 0.15.1a0+42759b1
tqdm 4.65.0
transformers 4.33.2
typing_extensions 4.7.1
tzdata 2023.3
uff 0.6.9
urllib3 1.25.8
wcwidth 0.2.6
wget 3.2
wheel 0.41.0
xxhash 3.3.0
yarl 1.9.2
作業フォルダの作成
Jetson Orinのデスクトップにhuggingという名前のフォルダを作成してください。このhuggingフォルダをコンテナにマウントします。
コンテナの作成
以下のコマンドを入力してコンテナを作成します。コマンド中のUSERは、お使いの環境に合わせて変更してください。
ここから先は
この記事が気に入ったらサポートをしてみませんか?