tymbos commited on
Commit
4f6cdf2
·
verified ·
1 Parent(s): 3d37920

Update train_tokenizer.py

Browse files
Files changed (1) hide show
  1. train_tokenizer.py +19 -4
train_tokenizer.py CHANGED
@@ -1,10 +1,13 @@
1
  # -*- coding: utf-8 -*-
2
  from tokenizers import Tokenizer, decoders, models, normalizers, pre_tokenizers, trainers
 
3
 
4
- def train_tokenizer(iterator, vocab_size=50000, min_frequency=3):
5
  """
6
- Εκπαιδεύει έναν Tokenizer τύπου BPE πάνω σε δεδομένα που παρέχονται από τον iterator.
7
  """
 
 
8
  # Δημιουργία του Tokenizer με μοντέλο BPE και ορισμό token για άγνωστα
9
  tokenizer = Tokenizer(models.BPE(unk_token="<unk>"))
10
 
@@ -18,14 +21,26 @@ def train_tokenizer(iterator, vocab_size=50000, min_frequency=3):
18
  pre_tokenizers.Digits(individual_digits=True)
19
  ])
20
 
21
- # Ορισμός ειδικών tokens (π.χ. για ιστορικά κείμενα)
22
  trainer = trainers.BpeTrainer(
23
  vocab_size=vocab_size,
24
  min_frequency=min_frequency,
25
  special_tokens=["<|endoftext|>", "<pad>", "<unk>", "<mask>", "[CITATION]"],
26
  continuing_subword_prefix=""
27
  )
28
-
 
29
  tokenizer.train_from_iterator(iterator, trainer=trainer)
30
  tokenizer.decoder = decoders.ByteLevel()
 
 
 
 
 
 
 
 
 
 
 
31
  return tokenizer
 
1
  # -*- coding: utf-8 -*-
2
  from tokenizers import Tokenizer, decoders, models, normalizers, pre_tokenizers, trainers
3
+ import os
4
 
5
+ def train_tokenizer(iterator, vocab_size=50000, min_frequency=3, output_dir="tokenizer_model"):
6
  """
7
+ Εκπαιδεύει έναν Tokenizer τύπου BPE και αποθηκεύει το αποτέλεσμα.
8
  """
9
+ print("🔄 Ξεκινάει η εκπαίδευση του tokenizer...")
10
+
11
  # Δημιουργία του Tokenizer με μοντέλο BPE και ορισμό token για άγνωστα
12
  tokenizer = Tokenizer(models.BPE(unk_token="<unk>"))
13
 
 
21
  pre_tokenizers.Digits(individual_digits=True)
22
  ])
23
 
24
+ # Ορισμός ειδικών tokens
25
  trainer = trainers.BpeTrainer(
26
  vocab_size=vocab_size,
27
  min_frequency=min_frequency,
28
  special_tokens=["<|endoftext|>", "<pad>", "<unk>", "<mask>", "[CITATION]"],
29
  continuing_subword_prefix=""
30
  )
31
+
32
+ # Εκπαίδευση του tokenizer
33
  tokenizer.train_from_iterator(iterator, trainer=trainer)
34
  tokenizer.decoder = decoders.ByteLevel()
35
+
36
+ # Δημιουργία φακέλου αποθήκευσης αν δεν υπάρχει
37
+ if not os.path.exists(output_dir):
38
+ os.makedirs(output_dir)
39
+
40
+ # Αποθήκευση του tokenizer
41
+ tokenizer.save(os.path.join(output_dir, "tokenizer.json"))
42
+ tokenizer.model.save(output_dir) # Αποθηκεύει vocab.json και merges.txt
43
+
44
+ print(f"✅ Ο tokenizer αποθηκεύτηκε στον φάκελο '{output_dir}'!")
45
+
46
  return tokenizer