🚀 mBART-large-50
mBART-large-50は、OPUS100とopusbookのデータセットを使用して、ポルトガル語から英語への翻訳タスクに対してfine-tuningされたモデルです。このモデルは、多言語の機械翻訳に特化しており、高い性能を発揮します。
🚀 クイックスタート
以下のコマンドを実行して、必要なライブラリをインストールします。
git clone https://github.com/huggingface/transformers.git
pip install -q ./transformers
from transformers import MBart50TokenizerFast, MBartForConditionalGeneration
ckpt = 'Narrativa/mbart-large-50-finetuned-opus-pt-en-translation'
tokenizer = MBart50TokenizerFast.from_pretrained(ckpt)
model = MBartForConditionalGeneration.from_pretrained(ckpt).to("cuda")
tokenizer.src_lang = 'pt_XX'
def translate(text):
inputs = tokenizer(text, return_tensors='pt')
input_ids = inputs.input_ids.to('cuda')
attention_mask = inputs.attention_mask.to('cuda')
output = model.generate(input_ids, attention_mask=attention_mask, forced_bos_token_id=tokenizer.lang_code_to_id['en_XX'])
return tokenizer.decode(output[0], skip_special_tokens=True)
translate('here your Portuguese text to be translated to English...')
✨ 主な機能
- 多言語対応:50言語の機械翻訳をサポートします。
- 高性能:OPUS100とopusbookのデータセットでfine-tuningされており、高い翻訳精度を実現します。
📦 インストール
以下のコマンドを実行して、必要なライブラリをインストールします。
git clone https://github.com/huggingface/transformers.git
pip install -q ./transformers
💻 使用例
基本的な使用法
from transformers import MBart50TokenizerFast, MBartForConditionalGeneration
ckpt = 'Narrativa/mbart-large-50-finetuned-opus-pt-en-translation'
tokenizer = MBart50TokenizerFast.from_pretrained(ckpt)
model = MBartForConditionalGeneration.from_pretrained(ckpt).to("cuda")
tokenizer.src_lang = 'pt_XX'
def translate(text):
inputs = tokenizer(text, return_tensors='pt')
input_ids = inputs.input_ids.to('cuda')
attention_mask = inputs.attention_mask.to('cuda')
output = model.generate(input_ids, attention_mask=attention_mask, forced_bos_token_id=tokenizer.lang_code_to_id['en_XX'])
return tokenizer.decode(output[0], skip_special_tokens=True)
translate('here your Portuguese text to be translated to English...')
📚 ドキュメント
mBART-50の詳細 🧠
mBART-50は、"Multilingual Denoising Pretraining"の目的で事前学習された多言語Sequence-to-Sequenceモデルです。このモデルは、Multilingual Translation with Extensible Multilingual Pretraining and Finetuningの論文で紹介されました。
mBART-50は、多言語の機械翻訳モデルを作成するために開発されました。元のmBARTモデルを拡張して、50言語の多言語機械翻訳をサポートするようになっています。事前学習の目的は、以下の通りです。
Multilingual Denoising Pretraining:モデルは、N言語のデータを連結することで組み込まれます。D = {D1, ..., DN }
ここで、各Diは言語 i
の単言語文書のコレクションです。ソース文書は、2つのスキームを使用してノイズが加えられます。1つ目は、元の文の順序をランダムにシャッフルすること、2つ目は、新しいin-fillingスキームで、テキストのスパンが単一のマスクトークンに置き換えられます。モデルは、元のテキストを再構築するようにタスクされます。各インスタンスの単語の35%は、ポアソン分布 (λ = 3.5)
に従ってスパンの長さをランダムにサンプリングすることでマスクされます。デコーダの入力は、1つの位置オフセットを持つ元のテキストです。言語IDシンボル LID
は、文を予測するための初期トークンとして使用されます。
下流タスク(NMT)の詳細 - データセット 📚
データセットの概要
OPUS-100は英語中心のデータセットで、すべての学習ペアには、ソースまたはターゲットのいずれかに英語が含まれています。このコーパスは100言語(英語を含む)をカバーしています。言語は、OPUSで利用可能な並列データの量に基づいて選択されました。
言語
OPUS-100には、約5500万の文ペアが含まれています。99の言語ペアのうち、44の言語ペアには100万の学習データの文ペアがあり、73の言語ペアには少なくとも10万の文ペアがあり、95の言語ペアには少なくとも1万の文ペアがあります。
データセットの構造
データフィールド
src_tag
: string
ソース言語のテキスト
tgt_tag
: string
ソース言語のターゲット言語への翻訳
データ分割
データセットは、学習、開発、テストの部分に分割されています。データは、各言語ペアについて最大100万の文ペアを学習用に、最大2000の文ペアを開発用とテスト用にランダムにサンプリングすることで準備されました。学習データと開発/テストデータの間に重複がないことを確認するために、サンプリング中にフィルターが適用され、すでにサンプリングされた文は除外されました。これは、クロス言語的に行われたため、たとえば、学習データのポルトガル語-英語の部分にある英語の文は、ヒンディー語-英語のテストセットには含まれないようになっています。
テストセットの評価指標 🧾
テストセットでのBLEUスコアは 26.12 です。
🔧 技術詳細
- モデルタイプ:mBART-large-50
- 学習データ:OPUS100とopusbook
属性 |
詳情 |
モデルタイプ |
mBART-large-50 |
学習データ |
OPUS100とopusbook |
Created by: Narrativa
About Narrativa: Natural Language Generation (NLG) | Gabriele, our machine learning-based platform, builds and deploys natural language solutions. #NLG #AI