A newer version of the Gradio SDK is available: 6.16.0
metadata
title: BERT 데모 - 사전학습 & 파인튜닝 태스크
emoji: 🤖
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 4.44.0
python_version: '3.11'
app_file: app.py
pinned: false
license: apache-2.0
tags:
- bert
- nlp
- transformers
- masked-language-modeling
- question-answering
- text-classification
- named-entity-recognition
short_description: BERT 논문의 사전학습과 파인튜닝 태스크 실습 데모
BERT — 사전학습된 양방향 트랜스포머 인터랙티브 데모
이 Space는 Devlin et al. (2019), BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (arXiv:1810.04805) 논문에서 소개한 태스크들을 직접 체험해보는 데모입니다.
논문의 두 가지 사전학습 목적함수(Section 3.1) 와 네 가지 파인튜닝 태스크 카테고리(Figure 4) 를 모두 다룹니다.
데모에서 직접 해볼 수 있는 것
🎭 사전학습 태스크 (논문 §3.1)
| 탭 | 태스크 | 보여주는 것 |
|---|---|---|
| Masked LM | [MASK] 토큰 예측 |
핵심 MLM 목적함수 — 15%의 토큰을 가리고 양방향 문맥으로부터 예측 |
| Next Sentence Prediction | IsNext / NotNext |
문장 B가 실제로 문장 A 다음에 오는지 이진 분류 |
🎯 파인튜닝 태스크 (논문 §4)
| 탭 | 논문 태스크 | 사용 모델 | Figure 4 위치 |
|---|---|---|---|
| 문장 쌍 분류 | MNLI / RTE / MRPC | textattack/bert-base-uncased-MNLI |
(a) |
| 단일 문장 분류 | SST-2 감성 분석 | textattack/bert-base-uncased-SST-2 |
(b) |
| 질의응답 | SQuAD v1.1 | bert-large-uncased-whole-word-masking-finetuned-squad |
(c) |
| 개체명 인식 | CoNLL-2003 NER | dslim/bert-base-NER |
(d) |
💡 사용된 사전학습 모델은 모두 영어 BERT입니다(원 논문이 영어 코퍼스로 사전학습됨). 한국어로 같은 실험을 하고 싶다면
klue/bert-base나kykim/bert-kor-base같은 한국어 BERT 체크포인트로 교체하시면 됩니다.
저장소 구조
.
├── README.md # 이 파일 (Hugging Face Space 카드)
├── app.py # Gradio 데모 (위 6개 태스크 모두 포함)
├── requirements.txt # Python 의존성
├── train_glue.py # GLUE 태스크 파인튜닝 스크립트 (논문 §4.1)
├── train_squad.py # SQuAD v1.1 파인튜닝 스크립트 (논문 §4.2)
└── inference_examples.py # 최소 추론 예제 스니펫
빠른 시작 (로컬 실행)
git clone https://huggingface.co/spaces/<your-username>/bert-demo-ko
cd bert-demo-ko
pip install -r requirements.txt
python app.py
Gradio 앱이 http://127.0.0.1:7860에서 실행됩니다.
논문 파인튜닝 재현하기
학습 스크립트의 하이퍼파라미터는 논문 Appendix A.3을 따릅니다:
"Batch size: 16, 32 — Learning rate (Adam): 5e-5, 3e-5, 2e-5 — Number of epochs: 2, 3, 4."
bert-base-uncased를 SST-2에 파인튜닝하는 예:
python train_glue.py \
--task_name sst2 \
--model_name_or_path bert-base-uncased \
--learning_rate 2e-5 \
--num_train_epochs 3 \
--per_device_train_batch_size 32
SQuAD v1.1 파인튜닝 예:
python train_squad.py \
--model_name_or_path bert-base-uncased \
--learning_rate 5e-5 \
--num_train_epochs 3 \
--per_device_train_batch_size 32
인용
@inproceedings{devlin-etal-2019-bert,
title = "{BERT}: Pre-training of Deep Bidirectional Transformers for Language Understanding",
author = "Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina",
booktitle = "Proceedings of NAACL-HLT",
year = "2019",
pages = "4171--4186",
url = "https://aclanthology.org/N19-1423/"
}
라이선스
Apache 2.0. 이 Space에서 로드하는 사전학습 체크포인트들은 각 원저자가 Hugging Face Hub에 공개한 라이선스를 따릅니다.