Views
No views yet
| Attribute | Value |
|---|---|
| Base architecture | RoBERTa (custom configuration) |
| Vocabulary size | 42,042 syllabic tokens |
| Hidden size | 768 |
| Number of layers | 12 |
| Attention heads | 12 |
| Intermediate size | 3,072 |
| Max sequence length | 514 |
| Pretraining objective | Masked Language Modeling (MLM) |
| Optimizer | AdamW |
| Loss function | CrossEntropy with 15% token masking probability |
PreTrainedTokenizer, operating on syllables rather than words or characters.Κατέβην χθὲς εἰς Πειραιᾶ['κα', 'τέ', 'βην', 'χθὲ', 'σεἰσ', 'πει', 'ραι', 'ᾶ']Observe that words are fused at the syllabic level.
1from transformers import AutoTokenizer, AutoModelForMaskedLM
2
3tokenizer = AutoTokenizer.from_pretrained("Ericu950/SyllaBERTa", trust_remote_code=True)
4model = AutoModelForMaskedLM.from_pretrained("Ericu950/SyllaBERTa", trust_remote_code=True)
5
6# Encode a sentence
7text = "Κατέβην χθὲς εἰς Πειραιᾶ μετὰ Γλαύκωνος τοῦ Ἀρίστωνος"
8tokens = tokenizer.tokenize(text)
9print(tokens)
10
11# Insert a mask at random
12import random
13tokens[random.randint(0, len(tokens)-1)] = tokenizer.mask_token
14masked_text = tokenizer.convert_tokens_to_string(tokens)
15
16# Predict masked token
17inputs = tokenizer(masked_text, return_tensors="pt", padding=True, truncation=True)
18inputs.pop("token_type_ids", None)
19with torch.no_grad():
20 outputs = model(**inputs)
21
22# Fetch prediction
23logits = outputs.logits
24mask_token_index = (inputs['input_ids'] == tokenizer.mask_token_id).nonzero(as_tuple=True)[1]
25top_tokens = logits[0, mask_token_index].topk(5, dim=-1).indices.squeeze(0)
26predicted = tokenizer.convert_ids_to_tokens(top_tokens.tolist())
27
28print("Top predictions:", predicted)Original tokens: ['κα', 'τέ', 'βην', 'χθὲ', 'σεἰσ', 'πει', 'ραι', 'ᾶ', 'με', 'τὰγ', 'λαύ', 'κω', 'νοσ', 'τοῦ', 'ἀ', 'ρίσ', 'τω', 'νοσ']
Masked at position 6
Masked text: κα τέ βην χθὲ σεἰσ πει [MASK] ᾶ με τὰγ λαύ κω νοσ τοῦ ἀ ρίσ τω νοσ
Top 5 predictions for masked token:
ραι (score: 23.12)
ρα (score: 14.69)
ραισ (score: 12.63)
σαι (score: 12.43)
ρη (score: 12.26)