AI素人が日英のAI翻訳モデルをGoogle Colaboratoryで作成・評価してみた。


あんまり知られてないみたいですが、ヨーロッパでは評判がよいオープンソースの ModernMT(Fairseq Transformer Model)ツールを利用してGoogle Colaboratoryで下記の手順で学習して翻訳を試してみた。

ModernMTは下記の特徴や翻訳APIが実装されているのですごく便利で開発中の英語学習アプリに使えそうだ。

・各文に対してより良い翻訳を予測するため、文書全体のコンテキストを使用。
・モデルは翻訳者による各修正からリアルタイムで学習。

GitHubのModernMTコード

1.学習する対訳コーパスを事前に準備する。

今回無料と有料コーパス合わせて100万文近くのデータを使って学習した。
無料コーパス
GlobalVoice (news)
日英基本対訳コーパス

日本語基本文データの著作権は京都大学黒橋・河原研究室にあり、英語中国語基本文データの著作権はNICTマスタープロジェクト多言語翻訳研究室にある。両者は、Creative Commons Attribution 3.0 Unportedで利用可能である。

日英法令対訳コーパス
田中コーパス

有料対訳コーパス
 マジックスープAI翻訳
 対訳コーパス購入

2.学習するコーパスを自分アカウントのGoogle Driveにアップしておく。
3.Google Colaboratoryでノートブックを新規作成。
4.Google Driveをマウントする。
from google.colab import drive
drive.mount('/content/drive')
5.JAVAやPythonをインストール
!apt install -y openjdk-8-jdk python3 python3-pip
!update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
!java -version
6.GitHubからModernMTをダウンロード・インストール
!wget https://github.com/modernmt/modernmt/releases/download/v4.5.4/mmt-4.5.4-ubuntu.tar.gz
!tar xvfz mmt-4.5.4-ubuntu.tar.gz
!cd mmt; pip3 install -r requirements.txt
7.Googleドライブから対訳コーパスをコピーする。

8.日英モデルを学習する。Defaultコマンドで学習回数のみ設定

エンジン名:mmt45_base_ja-en
言語方向:ja en

!mmt/mmt create ja en -e mmt45_base_ja-en mmt/corpus/ --train-steps 1000


1から4までのStepで翻訳モデルをModernMTで使える形にパッケージングしてくれる。
止めても --resume オプションで続けて学習できるのですごく便利。

!mmt/mmt create ja en -e mmt45_base_ja-en mmt/corpus/ --train-steps 30000 --resume

ModernMTのCLIドキュメント

9.翻訳エンジンを起動
!mmt/mmt start -e mmt45_base_ja-en &
10.翻訳
!mmt/mmt translate -e base0_ja-en "強盗殺人ではなく、殺人と窃盗の罪にあたる」などとして、無期懲役が妥当だと主張していました。"

ModernMTのREST APIドキュメント

11.機械評価

Defaultの値で3万回学習して、評価コマンドでGoogleとの比較(BLEU)
BLEUの機械評価ではModernMTの方がかなりの差で勝ちました。

感想

機械翻訳やAIに関して何もわからない素人でも対訳コーパスがあれば自分アプリにAI翻訳APIを利用することができるかと思います。