Spaces:
Runtime error
Runtime error
| !pip install torch | |
| !pip install tensorflow | |
| from fastapi import FastAPI | |
| from contextlib import asynccontextmanager | |
| from transformers import PreTrainedTokenizerFast | |
| from tokenizers import ByteLevelBPETokenizer | |
| from datasets import load_dataset | |
| app = FastAPI() | |
| async def lifespan(app: FastAPI): | |
| # Εκκίνηση της διαδικασίας εκπαίδευσης του tokenizer όταν η εφαρμογή ξεκινά | |
| await train_tokenizer() | |
| yield # Διαχείριση κατά τη διάρκεια της εφαρμογής | |
| # Οποιαδήποτε διαδικασία που πρέπει να γίνει όταν η εφαρμογή σταματήσει | |
| app = FastAPI(lifespan=lifespan) | |
| async def train_tokenizer(): | |
| # Ρυθμίσεις tokenizer | |
| vocab_size = 50000 | |
| min_frequency = 2 | |
| # Φόρτωση δεδομένων από Oscar και Wikipedia μέσω streaming | |
| dataset_greek = load_dataset("oscar", "unshuffled_deduplicated_el", split="train", streaming=True) | |
| dataset_english = load_dataset("wikipedia", "20220301.en", split="train", streaming=True) | |
| # Διαχείριση καθαρού κώδικα (αν βρεθούν κατάλληλα δεδομένα) | |
| try: | |
| dataset_code = load_dataset("bigcode/the-stack", split="train", streaming=True) | |
| datasets_list = [dataset_greek, dataset_english, dataset_code] | |
| except: | |
| datasets_list = [dataset_greek, dataset_english] | |
| # Ενοποίηση δεδομένων και προεπεξεργασία | |
| def preprocess_data(dataset): | |
| for item in dataset: | |
| text = item["text"] | |
| text = text.strip().lower() # Μπορείς να το κάνεις lower αν το θέλεις | |
| if text: | |
| yield text | |
| combined_data = (preprocess_data(dataset) for dataset in datasets_list) | |
| # Δημιουργία του tokenizer | |
| tokenizer = ByteLevelBPETokenizer() | |
| # Εκπαίδευση του tokenizer | |
| tokenizer.train_from_iterator( | |
| combined_data, | |
| vocab_size=vocab_size, | |
| min_frequency=min_frequency, | |
| special_tokens=["<s>", "<pad>", "</s>", "<unk>", "<mask>"] | |
| ) | |
| # Αποθήκευση του tokenizer | |
| tokenizer.save_model(".") | |
| async def root(): | |
| return {"message": "Custom Tokenizer Training Completed and Saved"} | |