Views
No views yet
1from transformers import pipeline
2
3transliterator = pipeline('translation',model='billingsmoore/tibetan-phonetic-transliteration')
4
5transliterated_text = transliterator(<string of unicode Tibetan script>)
61from datasets import load_dataset
2from transformers import AutoTokenizer, DataCollatorForSeq2Seq, AutoModelForSeq2SeqLM, Seq2SeqTrainingArguments, Seq2SeqTrainer, Adafactor
3from accelerate import Accelerator
4
5dataset = load_dataset(<your dataset>)
6dataset = dataset['train'].train_test_split(.1)
7
8checkpoint = "billingsmoore/tibetan-phonetic-transliteration"
9tokenizer = AutoTokenizer.from_pretrained(checkpoint)
10model = AutoModelForSeq2SeqLM.from_pretrained(checkpoint, device_map="auto")
11data_collator = DataCollatorForSeq2Seq(tokenizer=tokenizer, model=checkpoint)
12
13source_lang = 'bo'
14target_lang = 'phon'
15
16def preprocess_function(examples):
17
18 inputs = [example for example in examples[source_lang]]
19 targets = [example for example in examples[target_lang]]
20
21 model_inputs = tokenizer(inputs, text_target=targets, max_length=256, truncation=True, padding="max_length")
22
23 return model_inputs
24
25tokenized_dataset = dataset.map(preprocess_function, batched=True)
26
27optimizer = Adafactor(
28 model.parameters(),
29 scale_parameter=True,
30 relative_step=False,
31 warmup_init=False,
32 lr=3e-4
33)
34
35accelerator = Accelerator()
36model, optimizer = accelerator.prepare(model, optimizer)
37
38training_args = Seq2SeqTrainingArguments(
39 output_dir=".",
40 auto_find_batch_size=True,
41 predict_with_generate=True,
42 fp16=False,
43 push_to_hub=False,
44 eval_strategy='epoch',
45 save_strategy='epoch',
46 load_best_model_at_end=True,
47 num_train_epochs=5
48)
49
50trainer = Seq2SeqTrainer(
51 model=model,
52 args=training_args,
53 train_dataset=tokenized_dataset['train'],
54 eval_dataset=tokenized_dataset['test'],
55 tokenizer=tokenizer,
56 optimizers=(optimizer, None),
57 data_collator=data_collator
58)
59
60trainer.train()