🚀 機械翻訳の品質推定
このモデルは、ymoslem/wmt-da-human-evaluation データセットで FacebookAI/xlm-roberta-large をファインチューニングしたバージョンです。評価セットでは以下の結果を達成しています。
✨ 主な機能
このモデルは、機械翻訳(MT)システムの参照不要品質推定(QE)に使用されます。
📦 インストール
必要なライブラリをインストールします。
pip3 install --upgrade datasets accelerate transformers
pip3 install --upgrade flash_attn triton
💻 使用例
基本的な使用法
from datasets import load_dataset
test_dataset = load_dataset("ymoslem/wmt-da-human-evaluation",
split="test",
trust_remote_code=True
)
print(test_dataset)
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch
model_name = "ymoslem/ModernBERT-large-qe-v1"
model = AutoModelForSequenceClassification.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.bfloat16,
attn_implementation="flash_attention_2",
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
model.eval()
sep_token = tokenizer.sep_token
input_test_texts = [f"{src} {sep_token} {tgt}" for src, tgt in zip(test_dataset["src"], test_dataset["mt"])]
from transformers import pipeline
classifier = pipeline("text-classification",
model=model_name,
tokenizer=tokenizer,
device=0,
)
predictions = classifier(input_test_texts,
batch_size=128,
truncation=True,
padding="max_length",
max_length=tokenizer.model_max_length,
)
predictions = [prediction["score"] for prediction in predictions]
高度な使用法
from torch.utils.data import DataLoader
import torch
from tqdm.auto import tqdm
def process_batch(batch, tokenizer, device):
sep_token = tokenizer.sep_token
input_texts = [f"{src} {sep_token} {tgt}" for src, tgt in zip(batch["src"], batch["mt"])]
tokens = tokenizer(input_texts,
truncation=True,
padding="max_length",
max_length=tokenizer.model_max_length,
return_tensors="pt",
).to(device)
return tokens
test_dataloader = DataLoader(test_dataset,
batch_size=128,
shuffle=False)
predictions = []
with torch.no_grad():
for batch in tqdm(test_dataloader, desc="Inference Progress", unit="batch"):
tokens = process_batch(batch, tokenizer, device)
outputs = model(**tokens)
logits = outputs.logits
batch_predictions = logits.squeeze()
predictions.extend(batch_predictions.tolist())
📚 ドキュメント
モデルの説明
このモデルは、機械翻訳(MT)システムの参照不要品質推定(QE)に使用されます。
学習手順
学習ハイパーパラメータ
学習時には以下のハイパーパラメータが使用されました。
- 学習率: 8e-05
- 学習バッチサイズ: 64
- 評価バッチサイズ: 64
- シード: 42
- オプティマイザー: OptimizerNames.ADAMW_TORCH_FUSEDを使用し、ベータ=(0.9,0.999)、イプシロン=1e-08、追加のオプティマイザー引数はありません
- 学習率スケジューラーの種類: 線形
- 学習ステップ数: 20000
学習結果
学習損失 |
エポック |
ステップ |
検証損失 |
0.0743 |
0.0502 |
1000 |
0.0598 |
0.0853 |
0.1004 |
2000 |
0.0745 |
0.0829 |
0.1506 |
3000 |
0.0726 |
0.0814 |
0.2008 |
4000 |
0.0872 |
0.0805 |
0.2509 |
5000 |
0.0715 |
0.0782 |
0.3011 |
6000 |
0.0819 |
0.0789 |
0.3513 |
7000 |
0.0733 |
0.0791 |
0.4015 |
8000 |
0.0748 |
0.0787 |
0.4517 |
9000 |
0.0759 |
0.0761 |
0.5019 |
10000 |
0.0725 |
0.0746 |
0.5521 |
11000 |
0.0745 |
0.0762 |
0.6023 |
12000 |
0.0750 |
0.077 |
0.6524 |
13000 |
0.0725 |
0.0777 |
0.7026 |
14000 |
0.0737 |
0.0764 |
0.7528 |
15000 |
0.0745 |
0.0781 |
0.8030 |
16000 |
0.0750 |
0.0748 |
0.8532 |
17000 |
0.0765 |
0.0768 |
0.9034 |
18000 |
0.0750 |
0.0737 |
0.9536 |
19000 |
0.0759 |
0.0769 |
1.0038 |
20000 |
0.0752 |
フレームワークのバージョン
- Transformers 4.48.0
- Pytorch 2.4.1+cu124
- Datasets 3.2.0
- Tokenizers 0.21.0
🔧 技術詳細
このモデルは、FacebookAI/xlm-roberta-large を ymoslem/wmt-da-human-evaluation データセットでファインチューニングしたものです。評価セットでは以下のメトリクスが得られています。
メトリクス |
値 |
ピアソン相関係数 |
0.422 |
平均絶対誤差 |
0.196 |
平均二乗誤差平方根 |
0.245 |
決定係数 |
0.245 |
📄 ライセンス
このモデルは MIT ライセンスの下で提供されています。
📊 モデル情報
属性 |
詳情 |
ライブラリ名 |
transformers |
言語 |
多言語、ベンガル語、チェコ語、ドイツ語、英語、エストニア語、フィンランド語、フランス語、グジャラート語、ハウサ語、ヒンディー語、アイスランド語、日本語、カザフ語、クメール語、リトアニア語、ラトビア語、ポーランド語、パシュトゥー語、ロシア語、タミル語、トルコ語、ウクライナ語、コーサ語、中国語、ズールー語 |
ライセンス |
MIT |
ベースモデル |
FacebookAI/xlm-roberta-large |
タグ |
品質推定、回帰、Trainerから生成 |
データセット |
ymoslem/wmt-da-human-evaluation |
モデル名 |
Quality Estimation for Machine Translation |
メトリクス |
パープレキシティ、平均絶対誤差、決定係数 |