🚀 最终幻想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是史克威尔艾尼克斯控股有限公司的注册商标。