Fill-Mask
Transformers
Safetensors
Korean
Literary Chinese
bert
text-generation
sillok
history
korean-history
classical-chinese
Instructions to use ddokbaro/SillokBert-Scratch with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ddokbaro/SillokBert-Scratch with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("fill-mask", model="ddokbaro/SillokBert-Scratch")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForMaskedLM tokenizer = AutoTokenizer.from_pretrained("ddokbaro/SillokBert-Scratch") model = AutoModelForMaskedLM.from_pretrained("ddokbaro/SillokBert-Scratch", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Download scripts/5_evaluate_baseline.py from ddokbaro/SillokBert-Scratch: direct link, hf CLI and curl.
- Browser
- Download file 2.84 kB
-
https://huggingface.co/ddokbaro/SillokBert-Scratch/resolve/main/scripts/5_evaluate_baseline.py
- Command line
-
hf download hf://ddokbaro/SillokBert-Scratch/scripts/5_evaluate_baseline.py
-
curl -L -o 5_evaluate_baseline.py https://huggingface.co/ddokbaro/SillokBert-Scratch/resolve/main/scripts/5_evaluate_baseline.py
2.84 kB
| # SillokBert-Scratch ํ๋ก์ ํธ 5๋จ๊ณ: ๋ฒ ์ด์ค๋ผ์ธ ๋ชจ๋ธ ํ๊ฐ | |
| # ----------------------------------------------------------------- | |
| # ์๋ฌด ํ๋ จ๋ ๊ฑฐ์น์ง ์์ ๋ฒ์ฉ BERT ๋ชจ๋ธ(bert-base-multilingual-cased)์ | |
| # Perplexity(PPL)๋ฅผ ๊ณ์ฐํฉ๋๋ค. | |
| # ----------------------------------------------------------------- | |
| import os | |
| import math | |
| from pathlib import Path | |
| from transformers import ( | |
| AutoModelForMaskedLM, | |
| AutoTokenizer, | |
| DataCollatorForLanguageModeling, | |
| Trainer, | |
| TrainingArguments, | |
| ) | |
| from datasets import load_dataset, Dataset | |
| from itertools import chain | |
| def evaluate_baseline_bert(): | |
| """bert-base-multilingual-cased ๋ชจ๋ธ์ ์ฑ๋ฅ(Perplexity)๋ฅผ ํ๊ฐํฉ๋๋ค.""" | |
| # --- ๋ชจ๋ธ ๋ฐ ๊ฒฝ๋ก ์ค์ --- | |
| baseline_model_name = "bert-base-multilingual-cased" | |
| test_dataset_file = "/home/work/baro/sillok25060103/preprocessed_corpus/test.txt" | |
| eval_output_dir = Path("./baseline_evaluation_output") | |
| print("--- 5. Baseline BERT Model Evaluation ---") | |
| # --- ๋ชจ๋ธ ๋ฐ ํ ํฌ๋์ด์ ๋ก๋ --- | |
| model = AutoModelForMaskedLM.from_pretrained(baseline_model_name) | |
| tokenizer = AutoTokenizer.from_pretrained(baseline_model_name) | |
| # --- ๋ฐ์ดํฐ์ ์ค๋น --- | |
| test_dataset = load_dataset('text', data_files={'test': test_dataset_file}) | |
| block_size = 512 | |
| def tokenize_function(examples): | |
| return tokenizer(examples['text'], add_special_tokens=False, return_special_tokens_mask=False) | |
| tokenized_datasets = test_dataset.map(tokenize_function, batched=True, num_proc=4, remove_columns=['text']) | |
| all_input_ids = list(chain(*tokenized_datasets['test']['input_ids'])) | |
| total_length = len(all_input_ids) | |
| total_length = (total_length // block_size) * block_size | |
| grouped_input_ids = [all_input_ids[i : i + block_size] for i in range(0, total_length, block_size)] | |
| eval_dataset = Dataset.from_dict({'input_ids': grouped_input_ids}) | |
| print(f"์ด {len(eval_dataset)}๊ฐ์ ํ๊ฐ ์ํ์ด ์์ฑ๋์์ต๋๋ค.") | |
| # --- ํ๊ฐ ์ํ --- | |
| data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False) | |
| training_args = TrainingArguments(output_dir=eval_output_dir, per_device_eval_batch_size=8, fp16=True) | |
| trainer = Trainer( | |
| model=model, args=training_args, data_collator=data_collator, eval_dataset=eval_dataset | |
| ) | |
| metrics = trainer.evaluate() | |
| eval_loss = metrics["eval_loss"] | |
| perplexity = math.exp(eval_loss) | |
| # --- ์ต์ข ๊ฒฐ๊ณผ ๋ฐํ --- | |
| print(f"\n--- {baseline_model_name} ํ๊ฐ ๊ฒฐ๊ณผ ---") | |
| print(f" - ์ต์ข Eval Loss: {eval_loss:.4f}") | |
| print(f" - ์ต์ข Perplexity(PPL): {perplexity:.4f}") | |
| print("-" * 40) | |
| if __name__ == "__main__": | |
| evaluate_baseline_bert() | |