ニューラル機械翻訳(NMT)の基礎を「JoeyNMT」で学んでみよう(準備編)「Python+PyTorch」と「JoeyNMT」で学ぶニューラル機械翻訳(1)

精度向上により、近年利用が広まっている「ニューラル機械翻訳」。その仕組みを、自分で動かしながら学んでみましょう。第1回は海外の大学で教材として使われている「JoeyNMT」のインストール方法やモデルの訓練方法を紹介します。

» 2022年06月29日 05時00分 公開
[太田 麻裕美八楽]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 ハイデルベルク大学の博士課程に在籍しながら、八楽という会社で「ヤラクゼン」の開発に携わっている太田です。ヤラクゼンは、AI翻訳から翻訳文の編集、ドキュメントの共有、翻訳会社への発注までを1つにする翻訳プラットフォームです。

本連載の目的、前提知識、構成

 機械翻訳のフレームワークはよく知られたものが幾つか存在しますが、高機能であるが故にコードベース自体が巨大です。そのため機械翻訳の学習に行き着く前に、フレームワーク特有の仕様などを調べる段階で挫折してしまうことが少なからずあると感じています。

 本連載は、機械翻訳モデル開発の経験がほとんどない初心者でも「モデルを実行してみる」ことができるようになるのを目的としています。フレームワークには、小規模で初学者にも扱いやすい「JoeyNMT」を使用します。

 なお読み進めてもらうに当たって、以下3点の前提知識があることを想定しています。

  1. Pythonの基本的なプログラミングができる
  2. 機械学習、特にニューラルネットワークの基礎が分かる(損失関数、バックプロパゲーション、ドロップアウトなどを学んだことがある)
  3. 自然言語処理の基礎が分かる(トランスフォーマー、エンコーダー、デコーダー、サブワードトークン、単語埋め込み、ビームサーチなどを聞いたことがある)

 機械翻訳の理論的な部分は割愛し「プログラムを実行する」という実践部分に焦点を当てました。実践という意味では2点目、3点目は必須ではないかもしれませんが、解説なしで扱いますので適宜補っていただければと思います。

 本連載は、全3回を予定しています。第1回で、英日翻訳を題材にフレームワークの基本的な使い方を学びます。第2回では、フレームワークをカスタマイズする方法を具体例とともに紹介します。第3回では、発展編として、音声データを扱えるようにフレームワークを拡張し、自動音声認識、音声翻訳に挑戦してみましょう。

 第1回の今回は、前半でフレームワークのインストールと学習済みモデルからの翻訳文生成を試します。後半でモデルを訓練する方法、訓練したモデルを評価する方法を概観します。

「JoeyNMT」とは

 JoeyNMTは、教育目的に開発されたコンパクトな機械翻訳フレームワークです。海外の大学では入門レベルの授業で採用されている他、論文などで見たアイデアを軽く再現実装してみるといった場面で多く活用されています(※1)。PyTorchで書かれている点も、初心者にはうれしいポイントではないでしょうか。

※1:MutNMTAIMS SenegalMasakhaneなど。本記事のFAQはハイデルベルク大学機械翻訳ゼミや卒業論文などでJoeyNMTを使用する大学生からの質問に基づいています。

 機械翻訳モデル開発の基本的な部分をサクッと学びたい、新しいアイデアを簡単に試したい、という要望に応えてくれるのがJoeyNMTです。大規模な汎用(はんよう)フレームワークを使って一度機械翻訳に手を出してみたものの、そのフレームワークのどの部分がどのように機械翻訳に使われているのか見つけられなかった、コードを読み始めたけれど、どの部分を書き換えれば自分のアイデアを実装できるのか分からなかったという人にもJoeyNMTはぴったりです。逆に言えば、プロダクションに耐え得る機能や性能を持つフレームワークを探している人には物足りないかもしれません。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。