Xlm Roberta Large Qe V1
基於XLM-RoBERTa-large微調的機器翻譯質量評估模型,支持多語言文本質量評分
下載量 21
發布時間 : 1/15/2025
模型概述
該模型用於機器翻譯系統的無參考質量評估(QE),能夠自動預測翻譯文本的質量分數,無需人工參考譯文。
模型特點
多語言支持
支持26種語言的翻譯質量評估,包括低資源語言
無參考評估
無需人工參考譯文即可預測翻譯質量分數
高效微調
基於大規模預訓練模型XLM-RoBERTa進行針對性微調
模型能力
機器翻譯質量評分
多語言文本分析
迴歸預測
使用案例
機器翻譯系統
翻譯質量監控
自動評估翻譯系統的輸出質量
皮爾遜相關係數0.422
翻譯系統優化
識別翻譯質量差的片段進行針對性改進
語言服務
翻譯服務評估
自動化評估外包翻譯服務的質量
🚀 機器翻譯質量評估模型
本模型用於機器翻譯系統的無參考質量評估(QE),基於FacebookAI/xlm-roberta-large
模型在ymoslem/wmt-da-human-evaluation
數據集上微調得到,能有效評估機器翻譯的質量。
🚀 快速開始
安裝依賴庫
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
# Load the fine-tuned model and tokenizer
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)
# Move model to GPU if available
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
# Tokenization function
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
# Create a DataLoader for batching
test_dataloader = DataLoader(test_dataset,
batch_size=128, # Adjust batch size as needed
shuffle=False)
# List to store all predictions
predictions = []
with torch.no_grad():
for batch in tqdm(test_dataloader, desc="Inference Progress", unit="batch"):
tokens = process_batch(batch, tokenizer, device)
# Forward pass: Generate model's logits
outputs = model(**tokens)
# Get logits (predictions)
logits = outputs.logits
# Extract the regression predicted values
batch_predictions = logits.squeeze()
# Extend the list with the predictions
predictions.extend(batch_predictions.tolist())
✨ 主要特性
- 基於
FacebookAI/xlm-roberta-large
模型進行微調,適用於多語言場景,支持包括英語、中文、法語等在內的多種語言。 - 用於機器翻譯的無參考質量評估,可有效評估機器翻譯的質量。
📦 安裝指南
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 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 torch.utils.data import DataLoader
import torch
from tqdm.auto import tqdm
# Tokenization function
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
# Create a DataLoader for batching
test_dataloader = DataLoader(test_dataset,
batch_size=128, # Adjust batch size as needed
shuffle=False)
# List to store all predictions
predictions = []
with torch.no_grad():
for batch in tqdm(test_dataloader, desc="Inference Progress", unit="batch"):
tokens = process_batch(batch, tokenizer, device)
# Forward pass: Generate model's logits
outputs = model(**tokens)
# Get logits (predictions)
logits = outputs.logits
# Extract the regression predicted values
batch_predictions = logits.squeeze()
# Extend the list with the predictions
predictions.extend(batch_predictions.tolist())
📚 詳細文檔
模型描述
本模型是在FacebookAI/xlm-roberta-large
基礎上,針對ymoslem/wmt-da-human-evaluation
數據集進行微調的機器翻譯質量評估模型,用於無參考的機器翻譯質量評估。
訓練過程
訓練超參數
- 學習率(learning_rate):8e-05
- 訓練批次大小(train_batch_size):64
- 評估批次大小(eval_batch_size):64
- 隨機種子(seed):42
- 優化器(optimizer):使用
OptimizerNames.ADAMW_TORCH_FUSED
,betas=(0.9,0.999)
,epsilon=1e-08
- 學習率調度器類型(lr_scheduler_type):線性
- 訓練步數(training_steps):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
評估結果
本模型在評估集上取得了以下結果:
- 損失(Loss):0.0752 | 指標名稱 | 指標類型 | 值 | | :------: | :------: | :--: | | 皮爾遜相關係數(Pearson Correlation) | Pearson | 0.422 | | 平均絕對誤差(Mean Absolute Error) | MAE | 0.196 | | 均方根誤差(Root Mean Squared Error) | RMSE | 0.245 | | 決定係數(R-Squared) | R2 | 0.245 |
🔧 技術細節
本模型基於FacebookAI/xlm-roberta-large
進行微調,使用了ymoslem/wmt-da-human-evaluation
數據集。在訓練過程中,採用了特定的超參數和優化器,以提高模型的性能。在推理階段,使用了transformers
庫的pipeline
和AutoModelForSequenceClassification
等工具進行預測。
📄 許可證
本項目採用MIT許可證。
信息表格
屬性 | 詳情 |
---|---|
模型類型 | 用於機器翻譯質量評估的序列分類模型 |
訓練數據 | ymoslem/wmt-da-human-evaluation |
基礎模型 | FacebookAI/xlm-roberta-large |
支持語言 | 多語言(包括bn、cs、de、en等) |
評估指標 | 困惑度(perplexity)、平均絕對誤差(mae)、決定係數(r_squared) |
許可證 | MIT |
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98