Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21089

Google AutoML Translationの使い方

$
0
0

はじめに

GCPのGoogle AutoMLTranslationを使う機会があったので記録としてメモしていこうと思います!
学習にかかるお値段すごいのでなかなか手が出せなかったのですが、機会に恵まれて良かったです:sunny:

GCP

GCPとはGoogle Cloud Platformの略でGoogleさんが運営しているクラウドサービスになります。
できることはいろいろあるのですが、今回はその中のGoogle AutoMLTranslationを使用します!

AutoML

AutoMLとは機械学習の知識がなくてもモデルの構築を可能にするシステムのことです。
データの前処理から、訓練用、テスト用にデータを分けて、モデルを作って、パラメータを調整して、、、などの処理がすでにでいるようになっていて、データさえそろっていればモデルのトレーニングがすぐにできてしまう優れもの!
しかも今回使用するGoogleのAutoMLはモデルができたら作成したモデルをすぐにAPIにできるし、GoogleCloud上に直接デプロイが可能なのだそうです!

使い方

AutoMLTranslationの使い方を紹介していきます!
詳しく載っているのはもちろんドキュメントなので詳しくはこちらを参照して下さい。
Google AutoMLTranslationのドキュメント

学習を始める前に

こちらのドキュメントを参考にしてAutoMLが使えるようにして下さい。
始める前に
(サービスアカウントはAPIとして使用するときに必要だっただけな気がするので多分APIを使用しないならいらない)

データセット作成

左端のナビゲーションメニューを開いて「翻訳」を見つけ出して、翻訳のダッシュボードを開きます。
スクリーンショット 2020-03-03 17.12.37.png

今回は左のAutoMLTranslationを使用します。
スクリーンショット 2020-03-03 17.17.43.png
開始をクリックするとデータセット画面に移行します。

スクリーンショット 2020-03-03 18.14.47.png
「データセットを作成」をクリックするとデータセット作成画面が現れます。

スクリーンショット 2020-03-03 17.24.41.png

やることは、
・データセット名を決める
・ソース言語(翻訳したい言語)を決める
・ターゲット言語(翻訳結果として出して欲しい言語)を決める
例)日本語から英語に翻訳して欲しいとき
  ソース言語→日本語
  ターゲット言語→英語

全部決めたら「作成」ボタンを押す。

これでデータセットが作成されました!

しかしこのデータセットの中にはまだ何もデータが入っていません。
ここからデータを入れていこうと思います。

データ作成

データはソース言語とターゲット言語の文章の対訳になります。
例) 日本語を英語に訳すモデルを作りたいとき

日本語英語
こんにちはHello
初めましてNice to meet you
ねこが可愛いCat is cute

このような対訳を自分のカスタマイズしたい分野に合わせて作っていきます。
ソース言語は左、ターゲット言語は右にして対訳を作成します。
データの形式は.tsvにして下さい。
データセットを何処かから引っ張ってきてもこの形に準じていれば大丈夫です!
わたしはデータがなかったので作ることになりましたが、、、

また、データのファイルはtrain,val,testの3つに予め分けておくことをお勧めします。

注意
test,valにそれぞれ100以上の例文が入っていないと学習ができません

データを用意できたら、先ほど作成したデータセットにインポートしていきます。
作成したデータセットを選択し、インポートタブを開きます。

Cloud Strageにデータのファイルを入れておくと便利なのでそちらをお勧めしますが、パソコンからもファイルのアップロードが可能です。
その際もCloud Strageに保存することになるのでバケットは作っておくといいと思います。
また、バケットを作成するときはリージョンをus-centralにして下さい。

スクリーンショット 2020-03-03 17.56.41.png

そしておすすめはトレーニング、検証、テストに別のファイルを使用します(上級者向け)にチェックを入れて、それぞれファイルをインポートすることです。
よくわからない仕様ですが、それをしない場合testの内容が書き換えられてしまうことがあります。

またすごく困ったのは、test,valにそれぞれ100以上の例文が入っていないと学習ができないことです。
これでいつものtrain:80%, val:10%, test:10% を守るとなると、全部で1000文必要になります、、
ただ勉強でやるには自分で作るとなると過酷ですね、、

ファイルを指定できたら、「続行」ボタンをクリック。
インポートに少し時間がかかります。

学習

インポートができたらトレーニングタブに移動します。

スクリーンショット 2020-03-03 18.45.21.png

インポートしたファイル名と正常にインポートされた例文数が表示されます。
トレーニングを開始ボタンを押すと、「新しいモデルのトレーニング」という画面が出てきます。
スクリーンショット 2020-03-03 18.48.38.png

やることは、
1.モデル名を決定する
2.ベースモデルの決定
です。
2.について、最初はGoogle NMTモデルのみが選択できます。
一つでも、あるソース言語とターゲット言語の組み合わせでモデルを作成すれば、その作成したモデルをベースに追学習させることができるようになります。
精度をどうしてもあげたいときは作成したモデルにどんどん追学習していく方がお勧めです。(過学習かも。。?)
わたしの場合、一回の学習ではほとんどNMTと変わらない結果でした。
わたしのデータに同音異義語が多かったせいかもしれませんが、、

1、2、ができたら「トレーニングを開始」ボタンを押すと学習が始まります。
ここからが長い、、もし1000文入れていたら2時間はかかります。
そして大体2時間で1万円程度のお金が吹っ飛びます!!お気をつけ下さい。

予測

学習が終わったら、予測のタブに移動して例文を入力してみると、新しくできたモデルとGoogleNMTモデルの出力結果を比較することができます。

また、モデルIDや、APIの使いかたなども表示されています!
ぜひ使ってみて下さい!

終わりに

今回、初めてAutoMLという技術に触れさせていただき、とても勉強になりました。
実際に使ってみた感想としては、評価関数にBLEUを使っていたり、そもそもデータを集める時点で機械学習の知識が一切いらないとは思えないな、というのが正直なところです!
でも、自分でモデルを作成しないでいいというのは確かに楽だし、すぐにAPIとして利用できるのも便利だなと思いました!
データ突っ込むだけって楽ですねぇ〜!
でも工夫できるとこがデータしかないので精度あげなきゃってなると大変でした、、
勉強として触れるのはなかなか大変なことだとは思いますが、興味があったら是非やってみて下さい:hugging:

参考文献

Google AutoML Translationドキュメント


Viewing all articles
Browse latest Browse all 21089

Trending Articles