Instructions to use infobank-corp/koredact-bert-base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use infobank-corp/koredact-bert-base with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="infobank-corp/koredact-bert-base")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("infobank-corp/koredact-bert-base") model = AutoModelForTokenClassification.from_pretrained("infobank-corp/koredact-bert-base", device_map="auto") - Notebooks
- Google Colab
- Kaggle
koredact-bert-base
ํ๊ตญ์ด ๋ฉ์์งยท๋ฌธ์์์ ๊ฐ์ธ์ ๋ณด 13 ์ ํ์ ๋ฌธ์ ์คํฌ์ ์ฐพ๋ ํ ํฐ ๋ถ๋ฅ(NER) ๋ชจ๋ธ. BERT-base(ํ๋ผ๋ฏธํฐ 110M), BIO ํ๊น 27 ๋ผ๋ฒจ. PyTorch(safetensors). ONNX ๋ด๋ณด๋ด๊ธฐ๋ ๋ณ๋ ๋ฆฌํฌ koredact-bert-base-onnx.
๋ง๋ ์ด์
- ๊ตญ๋ด ๊ณต๊ฐ PII ๋ง์คํน ๋๊ตฌยท๋ชจ๋ธ์ด ์ค๋ฐ์ดํฐ์์ ์ ๋๋ก ๋์ํ์ง ์์ ์ง์ ํ์ต. ๊ธฐ์กด ๊ณต๊ฐ ๋ชจ๋ธ์ ์ฌ์ ์๋ฑ๋ก๋ฒํธยท ์ด์ ๋ฉดํ๋ฒํธยท์ฌ๊ถ๋ฒํธยท๋ฌธ๋งฅ ์ฝ๋ ์ ํ์ด ์๊ฑฐ๋, ์ ํ ๊ตฌ๋ถ ์์ด ํ ๋ผ๋ฒจ๋ก ๋ฌถ๊ฑฐ๋, ์์ฉ ์ฌ์ฉ์ด ๋งํ ๋ผ์ด์ ์ค์์.
- ์ ๊ท์ ํ์ฒ๋ฆฌ ์์ด ๋ชจ๋ธ ๋จ๋ ์ผ๋ก ์ด์ ๊ฐ๋ฅํ ์ ๋ฐ๋๊ฐ ๋ชฉํ. ๊ตฌ๋ถ์ ์ ๊ฑฐยท์๋ฆฟ์ ์์ยท์กฐ์ฌ ๊ฒฐํฉ ๊ฐ์ ํ๊ธฐ ๋ณํ์ ํ์ต ๋ฐ์ดํฐ์ ํฌํจํด ํ์ดํ ์์น๊ฐ ์๋๋ผ ๋ฌธ๋งฅ๊ณผ ์๋ฆฟ์๋ก ์ ํ์ ํ๋ณํ๊ฒ ํจ.
- ๋์ฝ๋(์กฐ์ฌ ์ ๋จ ยท ์ฃผ๋ฏผ/์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ 7๋ฒ์งธ ์๋ฆฌ ์ฌํ๋ณ ยท ๊ฒฝ๊ณ ์กฐ๊ฐ ์ ๊ฑฐ)๊น์ง ํฌํจํ ์ถ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ koredact ์ ๊ธฐ๋ณธ ๋ชจ๋ธ.
์ ํ(13)
NAME ์ฑ๋ช
ยท PHONE ์ ํ๋ฒํธ ยท EMAIL ์ด๋ฉ์ผ ยท RRN ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ยท FRN ์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ ยท BRN ์ฌ์
์๋ฑ๋ก๋ฒํธ ยท CARD ์นด๋๋ฒํธ ยท ACCOUNT ๊ณ์ข๋ฒํธ ยท ADDRESS ์ฃผ์ ยท DRIVER_LICENSE ์ด์ ๋ฉดํ๋ฒํธ ยท PASSPORT ์ฌ๊ถ๋ฒํธ ยท URL URL ยท CODE ์ธ์ฆยท์ฃผ๋ฌธ ๋ฑ ๋ฌธ๋งฅ ์ฝ๋
๊ณ๋ณดยทํ์ต
- ๋ฒ ์ด์ค ๊ณ๋ณด:
klue/bert-base(rev77c8b3d, CC-BY-SA-4.0). ํ ํฐ ๋ถ๋ฅ ํค๋ ์ฌ์ด๊ธฐํ ํ korean-pii-ner ๋ก ํ์ต. - ์ ๋ ฅ ์ฐฝ: 400์ ์ธ๊ทธ๋จผํธ, ๊ฒน์นจ 100์. ๊ฐ์ ์ ํ์ ๊ฒน์น ์คํฌ์ ๋ณํฉ. ํ์ต ์ธ์ฝ๋ฉ 512 ํ ํฐ.
ํ๊ฐ(held-out ํ ์คํธ ๋ถํ 1,589 ๋ฌธ์ ยท 1ํ ๊ฐ๋ด)
NER ๋จ๋
์ธก์ (์ ๊ท์ ํ์ฒ๋ฆฌ ์์). raw = ๋ชจ๋ธ ์์ถ๋ ฅ, ๋์ฝ๋ = koredact ๋์ฝ๋ ๊ท์น ์ ์ฉ(v3_particle_strip_rrn_frn_7th_fragment_drop).
Fฮฒ2 = ์ฌํ์จ ๊ฐ์ค F(ฮฒ=2). ํ์ต ์ฒดํฌํฌ์ธํธ ์ ํยทํ๋ณด ์ฑํ์ ์ด ๊ธฐ์ค์ด๊ณ F1 ์ ๋น๊ต์ฉ.
ํฉ์ฑ ์ค์ฌ ํ๊ฐ์
์ด๋ผ ์ค๋ฐ์ดํฐ ์ฌํ์จ์ ์ํยทํํ ์ด๋ ์ชฝ๋ ๋ณด์ฆํ์ง ์์.
| ์ ํ | ์๋ฏธ | R(raw) | P(raw) | F1(raw) | Fฮฒ2(raw) | R(๋์ฝ๋) | P(๋์ฝ๋) | F1(๋์ฝ๋) | Fฮฒ2(๋์ฝ๋) |
|---|---|---|---|---|---|---|---|---|---|
| NAME | ์ฑ๋ช | 0.963 | 0.959 | 0.961 | 0.962 | 0.963 | 0.962 | 0.962 | 0.963 |
| PHONE | ์ ํ๋ฒํธ | 0.998 | 0.981 | 0.989 | 0.994 | 0.998 | 0.982 | 0.990 | 0.994 |
| ์ด๋ฉ์ผ | 1.000 | 0.995 | 0.998 | 0.999 | 1.000 | 1.000 | 1.000 | 1.000 | |
| RRN | ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ | 0.991 | 0.947 | 0.968 | 0.982 | 0.991 | 0.964 | 0.977 | 0.985 |
| FRN | ์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ | 0.981 | 0.969 | 0.975 | 0.978 | 0.992 | 0.970 | 0.981 | 0.988 |
| BRN | ์ฌ์ ์๋ฑ๋ก๋ฒํธ | 1.000 | 0.991 | 0.995 | 0.998 | 1.000 | 0.991 | 0.995 | 0.998 |
| CARD | ์นด๋๋ฒํธ | 1.000 | 0.981 | 0.990 | 0.996 | 1.000 | 0.981 | 0.990 | 0.996 |
| ACCOUNT | ๊ณ์ข๋ฒํธ | 0.974 | 0.978 | 0.976 | 0.975 | 0.974 | 0.978 | 0.976 | 0.975 |
| ADDRESS | ์ฃผ์ | 0.990 | 0.977 | 0.984 | 0.988 | 0.990 | 0.977 | 0.984 | 0.988 |
| DRIVER_LICENSE | ์ด์ ๋ฉดํ๋ฒํธ | 0.962 | 1.000 | 0.981 | 0.969 | 0.962 | 1.000 | 0.981 | 0.969 |
| PASSPORT | ์ฌ๊ถ๋ฒํธ | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| URL | URL | 0.989 | 0.989 | 0.989 | 0.989 | 0.989 | 0.989 | 0.989 | 0.989 |
| CODE | ์ธ์ฆยท์ฃผ๋ฌธ ๋ฑ ๋ฌธ๋งฅ ์ฝ๋ | 0.988 | 0.988 | 0.988 | 0.988 | 0.988 | 0.988 | 0.988 | 0.988 |
| macro F1 | 0.984 | 0.986 | |||||||
| macro Fฮฒ2 | ์ฑํ ๊ธฐ์ค | 0.986 | 0.987 |
ONNX
- ๋ณ๋ ๋ฆฌํฌ koredact-bert-base-onnx: opset 20, fp32 ๋จ์ผ ํ์ผ 440 MB. ์ด ๋ฆฌํฌ์ ๊ฐ์ค์น์์ ๋ด๋ณด๋ธ ๊ฒ์ด๋ฉฐ dev 1,590 ๋ฌธ์ ยท 1,870 ์ธ๊ทธ๋จผํธ ยท 196,653 ํ ํฐ์์ PyTorch ๋๋น ํ ํฐ argmax ๋ถ์ผ์น 0 ยท max|ฮlogit| 8.5e-05.
์ฌ์ฉ๋ฒ
- ์ถ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ koredact(Rust ๋ฐํ์ + Python ๋ฐ์ธ๋ฉ, PyPI) ๋ ONNX ๋ฆฌํฌ koredact-bert-base-onnx ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ก๋. ์ค์น
uv add koredact.
from koredact import Masker
m = Masker.from_pretrained() # infobank-corp/koredact-bert-base-onnx
m.mask("๋ฌธ์ 010-1234-5678 ํ๊ธธ๋") # '๋ฌธ์ [PHONE] [NAME]'
m.mask(text, types=["PHONE"]) # ์ ํํ ์ ํ๋ง ๋ง์คํน
Masker.from_pretrained(mask_tokens={"PHONE": "***"}) # ์ ํ๋ณ ์นํ ๋ฌธ์์ด(๊ธฐ๋ณธ [TYPE])
- ์ด ๋ฆฌํฌ์ PyTorch ๊ฐ์ค์น๋ฅผ ์ง์ ์ธ ๋:
uv add transformers torchํtoken-classificationํ์ดํ๋ผ์ธ(aggregation_strategy="simple"). ๋์ฝ๋ ๊ท์น(์กฐ์ฌ ์ ๋จ ๋ฑ)์ koredact ์๋ง ์์.
ํ๊ณ
- ํ๊ฐ์ ์ ํฉ์ฑ ๋ฐ์ดํฐ ์ค์ฌ. ์ค๋ฐ์ดํฐ ์ฌํ์จ์ ๋ณ๋ ๊ฐ์ฌ ์์ด๋ ์ ์ ์์.
- ํ๊ธ ๊ฒฝ๋กยท๊ตญ์ ํ ๋๋ฉ์ธ URL, 400์ ์ฐฝ ๊ฒฝ๊ณ์ ๊ฑธ์น ๊ธด ์คํฌ์ ์ฝ์ .
- ๋ผ์ด์ ์ค CC-BY-SA-4.0(๋ฒ ์ด์ค ๊ณ๋ณด ์์). ์ถ๋ ฅ์ ๋ง์คํน ์ ์ฒ๋ฆฌ ์ฉ๋์ด๋ฉฐ ๋ฒ์ ํ๋จ ๊ทผ๊ฑฐ๋ก ์ฐ์ง ์์.
- Downloads last month
- 36