Transformersモデルを採用したGiNZA v5のインストール

Transformersモデルを採用したGiNZA v5のインストール データ分析

GiNZAのバージョンが、5になりました。
GiNZA v5になって、解析モデルの精度が向上したようです。

その採用した技術から、GiNZA(Transformersモデル)と言えそうです。

本記事の内容

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

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

GiNZA(Transformersモデル)とは?

GiNZAについては、次の記事で解説しています。

GiNZA自体は、主に次の技術で成り立っています。

  • spaCy
  • SudachiPy(Python版Sudachi)

それぞれは、以下の役割を持ちます。

spaCy機械学習
SudachiPy形態素解析

spaCyは、テキストのトークン化が可能です。
その際に利用するモデルが、必要となります。

そのモデルを作る場合に、SudachiPyを利用しています。
日本語を形態素解析でバラバラにしないといけませんからね。

バラバラにした日本語をもとに、spaCyがモデル学習に利用します。
これが、GiNZA v4までの流れでした。

この流れの中に、Transformers事前学習モデルが導入されました。
具体的には、spaCyの処理パイプラインの最前段に導入されています。
ただし、spaCyがモデルを作成することに変わりはありません。

なお、TransformersモデルにはELECTRAが採用されています。
ELECTRAは、BERTよりも精度の高いモデルを構築できます。
この辺は、「最新の方法を取り入れていますよ」ぐらいの理解でよいでしょう。

以上、Transformersモデルを採用したGiNZAについて説明しました。
次は、GiNZA(Transformersモデル)のシステム要件を確認します。

GiNZA(Transformersモデル)のシステム要件

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

GiNZA(Transformersモデル)のシステム要件として、以下のポイントを取り上げます

  • OS
  • Python
  • PyTorch

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

OS

サポートOSに関しては、以下を含むクロスプラットフォーム対応のはず。
GiNZA v4も同じようにOSについては、特に記載がありません。

  • Windows
  • macOS
  • Linux

実際には、WindowsとLinux(Ubuntu)で動作確認済です。
Linuxで動けば、macOSも問題ないはずでしょう。

Python

サポート対象となるPythonのバージョンは、3.6以降となります。

そうは言っても、もうPython 3.6の利用はそろそろ考えるべきでしょうね。
以下は、Pythonの公式開発サイクルとなります。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月

これを機に、Pythonのアップグレードを考えてみるのもよいでしょう。
Pythonのアップグレードは、以下の記事で説明しています。

PyTorch

Transformersモデルは、GiNZA v5から利用可能です。
そして、ja-ginza-electraはTransformersモデルをもとに作成した解析モデルとなります。

また、ja-ginza-electraのインストールにはPyTorchが必要です。
ja-ginza-electraをpipでインストールすると、自動的にPyTorchもインストールされます。

そのため、本来であればわざわざ取り上げる必要はありません。
しかし、自動でインストールされるのがCPU版のPyTorchなのです。

現時点(2021年8月末)であれば、次のパッケージがインストールされることになります。

torch              1.9.0

CPU版のPyTorchが気に入らない場合は、事前にGPU版PyTorchのインストールがしておきます。
PyTorchのインストールは、次の記事で解説しています。

まとめ

Transformersモデルを採用したGiNZAを利用するには、PyTorchが必要です。
利用する必要がないなら、PyTorchは不要となります。

ただし、それだとGiNZA v4とはそれほど変わりません。
spaCy 3系が利用できるなどのメリットは、あるでしょうけどね。

以上、GiNZA v5のシステム要件の説明でした。
次は、GiNZA(Transformersモデル)のインストールを行います。

GiNZA(Transformersモデル)のインストール

Transformersモデル採用のGiNZAを前提にインストールを行います。
正確に言うと、解析モデルにja-ginza-electraをインストールします。

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

>pip list  
Package           Version  
----------------- ------------  
numpy             1.21.1  
Pillow            8.3.1  
pip               21.2.4  
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

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

pip install ginza

そして、解析モデルは次のコマンドでインストールします。

pip install ja-ginza-electra

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

>pip list 
Package            Version 
------------------ ------------ 
blis               0.7.4 
catalogue          2.0.6 
certifi            2021.5.30 
charset-normalizer 2.0.4 
click              7.1.2 
colorama           0.4.4 
cymem              2.0.5 
Cython             0.29.24 
dartsclone         0.9.0 
filelock           3.0.12 
ginza              5.0.1 
ginza-transformers 0.3.1 
huggingface-hub    0.0.12 
idna               3.2 
ja-ginza-electra   5.0.0 
Jinja2             3.0.1 
joblib             1.0.1 
MarkupSafe         2.0.1 
murmurhash         1.0.5 
numpy              1.21.2 
packaging          21.0 
pathy              0.6.0 
Pillow             8.3.1 
pip                21.2.4 
plac               1.3.3 
preshed            3.0.5 
pydantic           1.8.2 
pyparsing          2.4.7 
PyYAML             5.4.1 
regex              2021.8.21 
requests           2.26.0 
sacremoses         0.0.45 
setuptools         57.4.0 
six                1.16.0 
smart-open         5.2.0 
sortedcontainers   2.1.0 
spacy              3.1.2 
spacy-alignments   0.8.3 
spacy-legacy       3.0.8 
spacy-transformers 1.0.5 
srsly              2.4.1 
SudachiDict-core   20210802 
SudachiPy          0.5.2 
SudachiTra         0.1.5 
thinc              8.0.8 
tokenizers         0.10.3 
torch              1.9.0+cu111 
torchaudio         0.9.0 
torchvision        0.10.0+cu111 
tqdm               4.62.2 
transformers       4.9.2 
typer              0.3.2 
typing-extensions  3.10.0.0 
urllib3            1.26.6 
wasabi             0.8.2

多くのパッケージが、インストールされました。
やはり、GiNZAは仮想環境にインストールした方がよいでしょうね。

Windowsなら、IDEにPyCharmを使えば簡単に仮想環境を利用できます。

また、以下のようにコマンドでも簡単に仮想環境を利用できます。

以上、GiNZA(Transformersモデル)のインストールを説明しました。
最後は、GiNZA(Transformersモデル)の動作確認を行います。

GiNZA(Transformersモデル)の動作確認

公式に載っているサンプルコードです。
「ja_ginza_electra」を解析モデルに読み込んでいます。

import spacy 
nlp = spacy.load('ja_ginza_electra') 
doc = nlp('銀座でランチをご一緒しましょう。') 
for sent in doc.sents: 
    for token in sent: 
        print(token.i, token.orth_, token.lemma_, token.pos_, token.tag_, token.dep_, token.head.i) 
    print('EOS')

上記を実行します。
以下のような形態素解析した結果が出れば、動作は問題ありません。

0 銀座 銀座 PROPN 名詞-固有名詞-地名-一般 obl 5 
1 で で ADP 助詞-格助詞 case 0 
2 ランチ ランチ NOUN 名詞-普通名詞-一般 obj 5 
3 を を ADP 助詞-格助詞 case 2 
4 ご ご NOUN 接頭辞 compound 5 
5 一緒 一緒 VERB 名詞-普通名詞-サ変可能 ROOT 5 
6 し する AUX 動詞-非自立可能 aux 5 
7 ましょう ます AUX 助動詞 aux 5 
8 。 。 PUNCT 補助記号-句点 punct 5 
EOS

以上、GiNZA(Transformersモデル)の動作確認の説明でした。

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