HuggingfaceのTransformersをインストールする

HuggingfaceのTransformersをインストールする プログラミング

「最先端の自然言語処理」

これに触れたければ、Transformersをインストールしましょう。
常時、新しいアルゴリズムやモデルが追加されています。

本記事の内容

  • Transformersとは?
  • Transformersのシステム要件
  • Transformersのインストール
  • Transformersの動作確認

それでは、上記に沿って解説していきます。

Transformersとは?

Transformersとは、最先端の自然言語処理を行うためのライブラリです。
米国のHugging Face社が、Transformersを開発して公開しています。

Transformersで実行できる主なことは、以下。

  • 分類
  • 情報抽出
  • 質問応答
  • 要約
  • 翻訳
  • テキスト生成

これらは、自然言語処理の代表的な処理と言えます。
具体的には、以下のアーキテクチャ(アルゴリズム)を利用します。

  • BERT
  • GPT-2
  • RoBERTa
  • XLM
  • DistilBert
  • XLNet.

現時点では、60以上のアーキテクチャに対応しています。
上記は、その一部に過ぎません。

そして、100以上の言語で32個以上の事前学習済みモデルが用意されています。
すぐにそのモデルを利用すれば、自然言語処理をすぐに実践できます。

また、技術的には機械学習(ディープラーニング)がベースにあります。
機械学習を行う際は、以下のフレームワークが利用可能です。

  • Jax
  • PyTorch
  • TensorFlow

ただし、フレームワーク毎に対応可能なアーキテクチャ・モデルが存在します。
個人的には、PyTorchの利用をおススメします。

PyTorchであれば、すべてのアーキテクチャ・モデルに対応しています。
Transformersの旧名が、PyTorch-Transformersであったぐらいですからね。

以上、Transformersについての説明でした。
次は、Transformersのシステム要件を確認します。

Transformersのシステム要件

現時点(2021年8月)でのTransformersの最新バージョンは、4.9.2となります。
この最新バージョンは、2021年8月9日にリリースされています。

Transformersのシステム要件として、以下がポイントとなります。

  • OS
  • Python
  • 機械学習フレームワーク

それぞれを下記で説明します。

OS

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

OSに関しては、Pythonが動けばどこでもOKなのでしょう。
というよりは、機械学習フレームワーク次第と言えるかもしれませんね。

Python

サポート対象となるバージョンは、Python 3.6以降です。
ただし、setup.pyには次のように記述されています。

おそらく、setup.pyの更新漏れだと思います。
次のバージョンでも、Transformersが問題なくインストールできます。

  • Python 3.8
  • Python 3.9

なお、私は次のバージョンで検証しています。

 >python -V 
Python 3.9.6

機械学習フレームワーク

  • Jax
  • PyTorch
  • TensorFlow

上記に関するパッケージの情報をsetup.pyから抜き出しました。

"jax>=0.2.8"
"tensorflow-cpu>=2.3"
"tensorflow>=2.3"
"torch>=1.0"

それぞれ、上記のバージョン以上であればOKでしょう。

PyTorchのインストールに関しては、次の記事で解説しています。

TensorFlowのインストールに関しては、次の記事にまとめています。

以上、Transformersのシステム要件について説明しました。
次は、Transformersをインストールします。

Transformersのインストール

Transformers公式サイトでは、次のような記載があります。

「TransformersはPythonの仮想環境にインストールするべし」
簡単に言うと、このように言っています。

このように言うのにも理由が、あります。
Transformersは、かなり多くのパッケージに依存しているのです。
パッケージが多いと、なんだかんだでトラブルの元になります。

インストールを始める前に、現状のインストール済みパッケージを確認しておきます。
PyTorchをインストールしただけの状況です。

>pip list 
Package           Version 
----------------- ------------ 
numpy             1.21.1 
Pillow            8.3.1 
pip               21.2.3 
setuptools        57.4.0 
torch             1.9.0+cu111 
torchaudio        0.9.0 
torchvision       0.10.0+cu111 
typing-extensions 3.10.0.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Transformersのインストールです。
Transformersのインストールは、以下のコマンドとなります。

pip install transformers

インストールには、少しだけ時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list 
Package            Version 
------------------ ------------ 
certifi            2021.5.30 
charset-normalizer 2.0.4 
click              8.0.1 
colorama           0.4.4 
filelock           3.0.12 
huggingface-hub    0.0.12 
idna               3.2 
joblib             1.0.1 
numpy              1.21.1 
packaging          21.0 
Pillow             8.3.1 
pip                21.2.3 
pyparsing          2.4.7 
PyYAML             5.4.1 
regex              2021.8.3 
requests           2.26.0 
sacremoses         0.0.45 
setuptools         57.4.0 
six                1.16.0 
tokenizers         0.10.3 
torch              1.9.0+cu111 
torchaudio         0.9.0 
torchvision        0.10.0+cu111 
tqdm               4.62.0 
transformers       4.9.2 
typing-extensions  3.10.0.0 
urllib3            1.26.6

多くのパッケージが、インストールされました。
やはり、Transformersは仮想環境にインストールすべきですね。

以上、Transformersのインストールを説明しました。
最後に、Transformersの動作確認を行います。

Transformersの動作確認

公式サイトにあるサンプルコードです。
処理としては、感情分析を行います。

from transformers import pipeline 
classifier = pipeline('sentiment-analysis') 
results = classifier(["We are very happy to show you the 🤗 Transformers library.", 
           "We hope you don't hate it."]) 
for result in results: 
    print(f"label: {result['label']}, with score: {round(result['score'], 4)}")

上記を実行して、以下のように表示されればOKです。
※警告は無視しても問題ありません

label: POSITIVE, with score: 0.9998 
label: NEGATIVE, with score: 0.5309

2行を分析した結果です。
scoreは、その分析結果の信頼度を表しているのでしょう。

なお、日本語の学習済みモデルが存在します。
そのモデルを利用すれば、日本語でも感情分析ができるようです。

以上、Transformersの動作確認についての説明でした。

タイトルとURLをコピーしました