File size: 2,972 Bytes
86a4938
 
 
 
 
 
 
 
 
 
 
 
 
 
83b8780
 
86a4938
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83b8780
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
---
library_name: transformers
language:
- th
- ipa
license: apache-2.0
base_model: google/byt5-small
tags:
- generated_from_trainer
metrics:
- bleu
model-index:
- name: thai-g2p-byt5-finetuned-final
  results: []
datasets:
- Gregniuki/g2p_thai_ipa
---

<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

# thai-g2p-byt5-finetuned-final

This model is a fine-tuned version of [google/byt5-small](https://huggingface.co/google/byt5-small) on an unknown dataset.
It achieves the following results on the evaluation set:
- Loss: 0.0385
- Bleu: 91.9589
- Gen Len: 31.241

## Model description

More information needed

## Intended uses & limitations

More information needed

## Training and evaluation data

More information needed

## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 5e-05
- train_batch_size: 16
- eval_batch_size: 16
- seed: 42
- optimizer: Use OptimizerNames.ADAMW_TORCH with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
- lr_scheduler_type: linear
- lr_scheduler_warmup_steps: 500
- num_epochs: 5.0

### Training results



### Framework versions

- Transformers 4.52.0.dev0
- Pytorch 2.6.0+cu118
- Datasets 3.5.0
- Tokenizers 0.21.1

### How to use

from transformers import T5ForConditionalGeneration, ByT5Tokenizer

# --- Make sure this path points to the LATEST training output ---
# (The one corresponding to the metrics above)
model_path = r"C:\thai-g2p-v2\thai-g2p-byt5-finetuned" # Or whatever you named it

print(f"Loading model from: {model_path}")
tokenizer = ByT5Tokenizer.from_pretrained(model_path)
model = T5ForConditionalGeneration.from_pretrained(model_path)
# model.to("cuda") # If using GPU

def thai_to_ipa(text):
  # ... (rest of your function is fine) ...
  input_ids = tokenizer(text, return_tensors="pt").input_ids # .to(model.device)
  # Increase max_length slightly just in case IPA is longer
  outputs = model.generate(input_ids, max_length=192)
  ipa_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
  return ipa_output

# --- Test with examples NOT in your train/val data ---
test_word1 = "สวัสดี"
test_word2 = "ภาษาไทย"
test_word3 = "สำนักงานคณะกรรมการส่งเสริมและประสานงานเยาวชนแห่งชาติ"
test_word4 = "สมเด็จพระเจ้าพี่นางเธอ เจ้าฟ้ากัลยาณิวัฒนา กรมหลวงนราธิวาสราชนครินทร์"

print(f"'{test_word1}' -> {thai_to_ipa(test_word1)}")
print(f"'{test_word2}' -> {thai_to_ipa(test_word2)}")
print(f"'{test_word3}' -> {thai_to_ipa(test_word3)}")
print(f"'{test_word4}' -> {thai_to_ipa(test_word4)}")