模型概述
模型特點
模型能力
使用案例
🚀 藏英翻譯模型
本模型是一個用於將藏文文學作品翻譯成英文的神經機器翻譯模型。它能夠有效解決藏文到英文的翻譯難題,為藏文文獻的傳播和交流提供了有力支持。
🚀 快速開始
本模型旨在作為大型 MLotsawa 軟件中的翻譯模型使用,但也可以在 Jupyter 筆記本或 Python 腳本中使用。
直接使用
若要使用此模型進行翻譯,可使用以下代碼:
from transformers import pipeline
translator = pipeline('translation', 'billingsmoore/tibetan-to-english-translation')
input_text = <your transliterated Tibetan text>
translation = translator(input_text)
print(translation)
下游使用
可以使用以下代碼對模型進行進一步微調:
from datasets import load_dataset
from transformers import (
AutoTokenizer, DataCollatorForSeq2Seq,
AutoModelForSeq2SeqLM, Seq2SeqTrainingArguments,
Seq2SeqTrainer, EarlyStoppingCallback, Adafactor
)
import evaluate
import numpy as np
from accelerate import Accelerator
data = load_dataset(<path_to_your_dataset>)
checkpoint = "billingsmoore/tibetan-to-english-translation"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer, model=checkpoint)
source_lang = 'bo'
target_lang = 'en'
prefix = "translate Tibetan to English: "
def preprocess_function(examples):
inputs = [prefix + example[source_lang] for example in examples['translation']]
targets = [example[target_lang] for example in examples['translation']]
model_inputs = tokenizer(inputs, text_target=targets, max_length=128, truncation=True)
return model_inputs
tokenized_dataset = dataset.map(preprocess_function, batched=True)
metric = evaluate.load("sacrebleu")
def postprocess_text(preds, labels):
preds = [pred.strip() for pred in preds]
labels = [[label.strip()] for label in labels]
return preds, labels
def compute_metrics(eval_preds):
preds, labels = eval_preds
if isinstance(preds, tuple):
preds = preds[0]
decoded_preds = tokenizer.batch_decode(preds, skip_special_tokens=True)
labels = np.where(labels != -100, labels, tokenizer.pad_token_id)
decoded_labels = tokenizer.batch_decode(labels, skip_special_tokens=True)
decoded_preds, decoded_labels = postprocess_text(decoded_preds, decoded_labels)
result = metric.compute(predictions=decoded_preds, references=decoded_labels)
result = {"bleu": result["score"]}
prediction_lens = [np.count_nonzero(pred != tokenizer.pad_token_id) for pred in preds]
result["gen_len"] = np.mean(prediction_lens)
result = {k: round(v, 4) for k, v in result.items()}
return result
early_stop = EarlyStoppingCallback()
model = AutoModelForSeq2SeqLM.from_pretrained(checkpoint, device_map="auto")
optimizer = Adafactor(
model.parameters(),
scale_parameter=True,
relative_step=False,
warmup_init=False,
lr=3e-4
)
training_args = Seq2SeqTrainingArguments(
output_dir=".",
auto_find_batch_size=True,
predict_with_generate=True,
fp16=False, #check this
push_to_hub=False,
eval_strategy='epoch',
save_strategy='epoch',
load_best_model_at_end=True
)
trainer = Seq2SeqTrainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset['train'],
eval_dataset=tokenized_dataset['test'],
tokenizer=tokenizer,
optimizers=(optimizer, None),
data_collator=data_collator,
compute_metrics=compute_metrics,
callbacks=[early_stop]
)
trainer.train()
✨ 主要特性
- 支持將藏文文本(無論是藏文腳本還是根據 THL 簡化語音音譯的轉寫文本)作為輸入,並輸出英文翻譯。
- 可作為 MLotsawa 軟件中的翻譯模型,也能在 Jupyter 筆記本或 Python 腳本中獨立使用。
📦 安裝指南
文檔未提及安裝步驟,暫不展示。
📚 詳細文檔
模型詳情
模型描述
本模型是一個經過微調的 T5 模型,擁有 7.7 億個參數。
屬性 | 詳情 |
---|---|
開發者 | billingsmoore |
支持語言 | 藏語、英語 |
許可證 | 署名 - 非商業性使用 4.0 國際許可協議 |
微調基礎模型 | 'google - t5/t5 - large' |
模型來源
- 倉庫地址:GitHub 上的 MLotsawa
訓練詳情
訓練數據
本項目的訓練數據可在此處獲取。 該數據集包含 100,000 對句子或短語。每對中的第一個成員是古典藏語的句子或短語,第二個成員是其英文翻譯。這些句子對來自 Lotsawa House(lotsawahouse.org)的文本,並遵循與原始文本相同的許可協議。此數據是通過編程方式抓取、清理和格式化的。
訓練過程
t5 分詞器的更新方式與 ['billingsmoore/tibetan - phonetic - transliteration'](https://huggingface.co/billingsmoore/tibetan - phonetic - transliteration) 相同,具體步驟可在該模型的文檔中找到。除了 ['billingsmoore/phonetic - tibetan - to - english - translation'](https://huggingface.co/billingsmoore/phonetic - tibetan - to - english - translation) 的訓練(其完整訓練過程在該模型的文檔中有描述)之外,本模型在數據集 ['billingsmoore/tibetan - to - english - translation - dataset'](https://huggingface.co/datasets/billingsmoore/tibetan - to - english - translation - dataset) 上進行了 9 個輪次的訓練。
訓練超參數
- 本模型使用 Adafactor 優化器進行訓練,學習率為 2e - 5。
評估
本模型的評估指標是由 sacreBLEU 實現的 BLEU 分數。BLEU(雙語評估替補)分數通過將機器生成的翻譯與人工提供的參考翻譯進行比較來衡量翻譯質量。分數範圍從 0 到 100,其中 100 表示與參考翻譯完全匹配。它評估生成文本中 n - 元組(單詞序列)的精確性,分數越高表示與參考翻譯的匹配度越高。同時會應用簡短懲罰以避免生成過短的翻譯。
🔧 技術細節
文檔未提及詳細技術實現細節,暫不展示。
📄 許可證
本作品採用 知識共享署名 - 非商業性使用 4.0 國際許可協議 進行許可。



