概要
- この記事では、ディープラーニングの知識や実装経験はあるが、チュートリアルレベルから抜け出せない人に向けて、より実践的な内容にステップアップするための知見を紹介します
- 具体的には、Pythonによる機械翻訳モデルの構築を通して、下記の理解を深めます
- 自然言語処理モデル
- 実装コード(TensorFlow2)
- GPU・TPUなどハードウェアの使い方
- 使用するコードはこちらにまとめています
- 実行環境はGoogle Colaboratoryを使うのがおすすめです
機械翻訳とは
- 機械翻訳とはある自然言語を別の自然言語に、コンピュータなどを用いて自動的に翻訳することを言います
- 機械翻訳には様々な手法がありますが、今回はニューラルネットワークを用いた翻訳を行います
- 実際には、英語と日本語など翻訳元の文と翻訳後の文が対になったパラレルコーパスをニューラルネットワークに入力することで、翻訳結果を予測するモデルを作成します
Transformerとは
- 2017年にGoogleが論文を発表 「 Attention Is All You Need 」
- 機械翻訳タスクにおいて、公開当時最先端であったSeq2seqやGNMTよりも高いスコアをマークした
- 内部にAttentionメカニズムを持つ
- RNNに比べて構造が単純で学習速度が速い
- BERTやGPT-2のベースとなっている技術
使用データ
- データはこちらを使用します
- 下記のようにデータを読み込むと、「英文 日文 帰属情報」が確認できます
1 2 3 4 5 |
with open('./jpn.txt', encoding='utf-8') as f: d = [i for i in f] print(d[0]) >>> Go. 行け。 CC-BY 2.0 (France) Attribution: tatoeba.org #2877272 (CM) & #7421985 (Ninja) |
機械翻訳のイメージをつかむ
- 実際に学習済みモデルで予測することで、機械翻訳のイメージをつかみます
- ダウンロードしたソースコードを以下のようにGドライブにアップしてください
- Predict_on_GPU.ipynbを開いてください
- 「ランタイム」→「ランタイムのタイプを変更」→「ハードウェア アクセラレータ」でGPUを選択してください
- GPUの設定ができたら「ランタイム」→「すべてのセルを実行」としてください
- すると、以下のように翻訳結果が表示されるはずです
- 次回は実行したプログラムについて、内容を説明していきます
リンク
- https://github.com/kawasaki-kento/Transformer
- https://arxiv.org/abs/1706.03762
- https://www.tensorflow.org/tutorials/text/transformer
K.K