BERT / README.md
JangTaeng's picture
Upload 7 files
05c8e16 verified

A newer version of the Gradio SDK is available: 6.16.0

Upgrade
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-basekykim/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에 공개한 라이선스를 따릅니다.