見出し画像

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は、お使いの環境に合わせて変更してください。

ここから先は

5,597字 / 2画像 / 2ファイル

この記事が気に入ったらサポートをしてみませんか?