Itsme5 commited on
Commit
f5a6032
·
verified ·
1 Parent(s): ede5a1b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -16
app.py CHANGED
@@ -3,50 +3,44 @@ from transformers import PreTrainedTokenizerFast
3
  from tokenizers import ByteLevelBPETokenizer
4
  from datasets import load_dataset
5
  from contextlib import asynccontextmanager
 
6
 
7
-
8
-
9
- app = FastAPI()
10
 
11
  @asynccontextmanager
12
  async def lifespan(app: FastAPI):
13
- # Εκκίνηση της διαδικασίας εκπαίδευσης του tokenizer όταν η εφαρμογή ξεκινά
14
  await train_tokenizer()
15
- yield # Διαχείριση κατά τη διάρκεια της εφαρμογής
16
- # Οποιαδήποτε διαδικασία που πρέπει να γίνει όταν η εφαρμογή σταματήσει
17
 
18
  app = FastAPI(lifespan=lifespan)
19
 
20
  async def train_tokenizer():
21
- # Ρυθμίσεις tokenizer
22
  vocab_size = 50000
23
  min_frequency = 2
24
 
25
- # Φόρτωση δεδομένων από Oscar και Wikipedia μέσω streaming
26
  dataset_greek = load_dataset("oscar", "unshuffled_deduplicated_el", split="train", streaming=True)
27
  dataset_english = load_dataset("wikipedia", "20220301.en", split="train", streaming=True)
28
 
29
- # Διαχείριση καθαρού κώδικα (αν βρεθούν κατάλληλα δεδομένα)
30
  try:
31
  dataset_code = load_dataset("bigcode/the-stack", split="train", streaming=True)
32
  datasets_list = [dataset_greek, dataset_english, dataset_code]
33
  except:
34
  datasets_list = [dataset_greek, dataset_english]
35
 
36
- # Ενοποίηση δεδομένων και προεπεξεργασία
37
  def preprocess_data(dataset):
38
  for item in dataset:
39
  text = item["text"]
40
- text = text.strip().lower() # Μπορείς να το κάνεις lower αν το θέλεις
41
  if text:
42
  yield text
43
 
44
- combined_data = (preprocess_data(dataset) for dataset in datasets_list)
45
 
46
- # Δημιουργία του tokenizer
47
  tokenizer = ByteLevelBPETokenizer()
48
 
49
- # Εκπαίδευση του tokenizer
50
  tokenizer.train_from_iterator(
51
  combined_data,
52
  vocab_size=vocab_size,
@@ -54,9 +48,9 @@ async def train_tokenizer():
54
  special_tokens=["<s>", "<pad>", "</s>", "<unk>", "<mask>"]
55
  )
56
 
57
- # Αποθήκευση του tokenizer
58
  tokenizer.save_model(".")
 
59
 
60
  @app.get("/")
61
  async def root():
62
- return {"message": "Custom Tokenizer Training Completed and Saved"}
 
3
  from tokenizers import ByteLevelBPETokenizer
4
  from datasets import load_dataset
5
  from contextlib import asynccontextmanager
6
+ import logging
7
 
8
+ logging.basicConfig(level=logging.INFO)
9
+ logger = logging.getLogger(__name__)
 
10
 
11
  @asynccontextmanager
12
  async def lifespan(app: FastAPI):
13
+ logger.info("Application starting...")
14
  await train_tokenizer()
15
+ yield
16
+ logger.info("Application shutting down...")
17
 
18
  app = FastAPI(lifespan=lifespan)
19
 
20
  async def train_tokenizer():
 
21
  vocab_size = 50000
22
  min_frequency = 2
23
 
 
24
  dataset_greek = load_dataset("oscar", "unshuffled_deduplicated_el", split="train", streaming=True)
25
  dataset_english = load_dataset("wikipedia", "20220301.en", split="train", streaming=True)
26
 
 
27
  try:
28
  dataset_code = load_dataset("bigcode/the-stack", split="train", streaming=True)
29
  datasets_list = [dataset_greek, dataset_english, dataset_code]
30
  except:
31
  datasets_list = [dataset_greek, dataset_english]
32
 
 
33
  def preprocess_data(dataset):
34
  for item in dataset:
35
  text = item["text"]
36
+ text = text.strip().lower()
37
  if text:
38
  yield text
39
 
40
+ combined_data = (preprocess_data(dataset.take(1000)) for dataset in datasets_list)
41
 
 
42
  tokenizer = ByteLevelBPETokenizer()
43
 
 
44
  tokenizer.train_from_iterator(
45
  combined_data,
46
  vocab_size=vocab_size,
 
48
  special_tokens=["<s>", "<pad>", "</s>", "<unk>", "<mask>"]
49
  )
50
 
 
51
  tokenizer.save_model(".")
52
+ logger.info("Tokenizer training completed!")
53
 
54
  @app.get("/")
55
  async def root():
56
+ return {"message": "Custom Tokenizer Training Completed and Saved"}