🚀 最終幻想XIV日語到韓語翻譯器
本項目是一個用於最終幻想XIV的日語到韓語的翻譯器,藉助Transformer架構實現高效準確的翻譯,為玩家提供更好的遊戲體驗。
🚀 快速開始
本項目的詳細信息可在 Github倉庫 中查看。
演示
💻 使用示例
基礎用法
推理(PyTorch)
from transformers import(
EncoderDecoderModel,
PreTrainedTokenizerFast,
BertJapaneseTokenizer,
)
import torch
encoder_model_name = "cl-tohoku/bert-base-japanese-v2"
decoder_model_name = "skt/kogpt2-base-v2"
src_tokenizer = BertJapaneseTokenizer.from_pretrained(encoder_model_name)
trg_tokenizer = PreTrainedTokenizerFast.from_pretrained(decoder_model_name)
model = EncoderDecoderModel.from_pretrained("./best_model")
text = "ギルガメッシュ討伐戦"
def translate(text_src):
embeddings = src_tokenizer(text_src, return_attention_mask=False, return_token_type_ids=False, return_tensors='pt')
embeddings = {k: v for k, v in embeddings.items()}
output = model.generate(**embeddings, max_length=500)[0, 1:-1]
text_trg = trg_tokenizer.decode(output.cpu())
return text_trg
print(translate(text))
高級用法
推理(Optimum.OnnxRuntime)
注意,當前的Optimum.OnnxRuntime仍然需要PyTorch作為後端。[問題]
你可以使用 [ONNX] 或 [量化ONNX] 模型。
from transformers import BertJapaneseTokenizer,PreTrainedTokenizerFast
from optimum.onnxruntime import ORTModelForSeq2SeqLM
from onnxruntime import SessionOptions
import torch
encoder_model_name = "cl-tohoku/bert-base-japanese-v2"
decoder_model_name = "skt/kogpt2-base-v2"
src_tokenizer = BertJapaneseTokenizer.from_pretrained(encoder_model_name)
trg_tokenizer = PreTrainedTokenizerFast.from_pretrained(decoder_model_name)
sess_options = SessionOptions()
sess_options.log_severity_level = 3
model = ORTModelForSeq2SeqLM.from_pretrained("sappho192/ffxiv-ja-ko-translator",
sess_options=sess_options, subfolder="onnx")
texts = [
"逃げろ!",
"初めまして.",
"よろしくお願いします.",
"ギルガメッシュ討伐戦",
"ギルガメッシュ討伐戦に行ってきます。一緒に行きましょうか?",
"夜になりました",
"ご飯を食べましょう."
]
def translate(text_src):
embeddings = src_tokenizer(text_src, return_attention_mask=False, return_token_type_ids=False, return_tensors='pt')
print(f'Src tokens: {embeddings.data["input_ids"]}')
embeddings = {k: v for k, v in embeddings.items()}
output = model.generate(**embeddings, max_length=500)[0, 1:-1]
print(f'Trg tokens: {output}')
text_trg = trg_tokenizer.decode(output.cpu())
return text_trg
for text in texts:
print(translate(text))
print()
訓練
查看 training.ipynb。
📄 許可證
本項目採用MIT許可證。
📦 數據集
- Helsinki-NLP/tatoeba_mt
- sappho192/Tatoeba-Challenge-jpn-kor
🔖 標籤
- python
- transformer
- pytorch
⚠️ 重要提示
FINAL FANTASY是史克威爾艾尼克斯控股有限公司的註冊商標。