Support independent authors and access the best of Medium.

FuguMT : 英語から日本語への翻訳を行う機械学習モデル

Kazuki Kyakuno
axinc
Published in
6 min readJun 19

ailia SDKで使用できる機械学習モデルである「FuguMT」のご紹介です。エッジ向け推論フレームワークであるailia SDKailia MODELSに公開されている機械学習モデルを使用することで、簡単にAIの機能をアプリケーションに実装することができます。

FuguMTの概要

FuguMTはMicrosoftの開発した機械翻訳向けフレームワークのMarianMTをベースに、日本語の翻訳に対応した言語モデルです。英語から日本語への翻訳が可能です。ライセンスはCC-BY-SA-4.0です。

FuguMT

FuguMTの学習データ

FuguMTの学習データは下記のBLOGに記載されています。使用したデータ量は約660万対訳ペア(日本語:690MB 英語:610MB、約1億words)で、 AWS p3.2xlarge 上で Marian-NMT + SentencePieceを用い約30時間の学習を行っています。

外部省のPress Releaseを使用したBLEUスコアは31.65と、GPT3.5の27.04、GPT4の29.66よりも高い性能を持っています。

FuguMTのアーキテクチャ

FuguMTはTransformerベースのSequence2Sequenceのモデルです。デコーダを繰り返し回すことで、1トークンずつ出力を得ることができます。

デコーダの入力は、input_ids、attention_mask、decoder_input_ids、past_key_values[25]となります。input_idsには入力トークン列、attention_maskは1のベクタ、decoder_input_idsは前回のトークンID(初回はpad=32000)、past_key_valuesは(beam_size, 8, 0, 64)の内部ステートです。past_key_valuesの0のところは推論ごとに増えていきます。

デコーダの出力は、logits、past_key_values[25]となります。logitsは32001次元で、各トークンの確率が入っています。logitsを元にビームサーチでテキストを決定します。

Python版では、beam_size=12がデフォルトになっています。

トークナイザにはMarianTokenizerを使用しており、SentencePieceです。入力用の英語のSourceモデルと、出力用の日本語のTargetモデルを使用しています。

ailia SDK (Python) から使用する

ailia SDKからFuguMTを使用するには下記のようにします。

$ python3 fugumt-en-ja.py --input "This is a cat."

出力は下記となります。英語を日本語に翻訳することができます。

translation_text: これは猫です。

ailia SDK (C++)から使用する

ailia Tokenizerを使用してC++からFuguMTを使用するサンプルも下記に公開しています。

ビルドは下記のように行います。

cd fugumt
export AILIA_LIBRARY_PATH=../ailia/library
export AILIA_TOKENIZER_PATH=../ailia_tokenizer/library
cmake .
make
./fugumt.sh

実行例です。

env_id : 0 type : 0 name : CPU
env_id : 1 type : 1 name : CPU-AppleAccelerate
env_id : 2 type : 2 name : MPSDNN-Apple M1 Max (Warning : FP16 backend is not worked this model)
you can select environment using -e option
selected env name : CPU-AppleAccelerate
Input : This is a cat.
Input Tokens :
183 30 15 11126 4 0
Output : これは猫です
Output Tokens :
517 6044 68 0
Program finished successfully.

ax株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。ax株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。

Kazuki Kyakuno
axinc
Editor for

CTO — ax Inc. , Managing Director — AXELL