MF_BERT โ€” 119 ๊ตฌ๊ธ‰๋Œ€-๋ณ‘์› ํ†ตํ™” ์ •๋ณด ์ถ”์ถœ ๋ชจ๋ธ

119 ๊ตฌ๊ธ‰๋Œ€์™€ ๋ณ‘์› ์‘๊ธ‰์‹ค ์‚ฌ์ด์˜ ํ†ตํ™” ํ…์ŠคํŠธ๋ฅผ ๋„ฃ์œผ๋ฉด, ์ด์†ก ๋ฌธ์˜์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ •ํ•ด์ง„ JSON(v2 ์Šคํ‚ค๋งˆ)์œผ๋กœ ๋ฝ‘๋Š” ๋‹ค์ค‘๊ณผ์ œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. KTAS ๋“ฑ๊ธ‰, ์ฃผ์ฆ์ƒ(Pre-KTAS ๋Œ€๋ถ„๋ฅ˜ยท์†Œ๋ถ„๋ฅ˜), ์ฆ์ƒ(ํ™•์ธ/๋ถ€์ •), ์†์ƒ(๋ถ€์œ„ยท์œ ํ˜•ยท์ขŒ์šฐ), ์ฒ˜์น˜, ์‚ฌ๊ณ ์œ ํ˜•, ์งˆ๋ณ‘๋ถ„๋ฅ˜, ์˜์‹(AVPU), ์„ฑ๋ณ„, ๋ณต์šฉ์•ฝ, ๊ทธ๋ฆฌ๊ณ  ํ™œ๋ ฅ์ง•ํ›„ยท๋‚˜์ดยท๋ฐœ์ƒ ์‹œ์ ยท์˜์‹ฌ ์ง„๋‹จยท๋ณต์šฉ์•ฝ ๊ตฌ๊ฐ„์„ ํ•œ ๋ฒˆ์— ๋ƒ…๋‹ˆ๋‹ค.

  • ์ธ์ฝ”๋”: klue/roberta-large(์ „์ฒด ๋ฏธ์„ธ์กฐ์ •). 512ํ† ํฐ๋ณด๋‹ค ๊ธด ํ†ตํ™”๋Š” 128ํ† ํฐ์”ฉ ๊ฒน์น˜๊ฒŒ ๋‚˜๋ˆ  ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ถœ๋ ฅ์ธต: ๋‹จ์ผ ์„ ํƒ ํ—ค๋“œ 8๊ฐœ, ๋‹ค์ค‘ ์„ ํƒ ํ—ค๋“œ 7๊ฐœ(๋ณด๊ธฐ๋งˆ๋‹ค ์ž๊ธฐ ๊ทผ๊ฑฐ ํ† ํฐ์„ ์ฐพ๋Š” ๋ณด๊ธฐ๋ณ„ ์–ดํ…์…˜), ํ† ํฐ ๊ตฌ๊ฐ„ ํƒœ๊ฑฐ
  • ์†๋„: RTX 5080์—์„œ ํ†ตํ™” 1๊ฑด ์•ฝ 0.013์ดˆ

ํŒ๋‹จ ๋ณด์กฐ์šฉ์ž…๋‹ˆ๋‹ค. ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ์™€ AI ๋ผ๋ฒจ๋กœ ํ•™์Šตยทํ‰๊ฐ€ํ–ˆ๊ณ , KTAS ์ •ํ™•๋„๊ฐ€ 70%๋Œ€์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ด์†ก ๊ฒฐ์ •์— ์ž๋™์œผ๋กœ ์“ฐ์ง€ ๋งˆ์„ธ์š”.

๋ฒ„์ „

revision ๋‚ ์งœ ๋‚ด์šฉ
main 2026-10-02 ์ด ๋ชจ๋ธ. ๋ณด๊ธฐ๋ณ„ ์–ดํ…์…˜, ๋‹ค์ค‘ ์„ ํƒ ์–‘์„ฑ ๊ฐ€์ค‘์น˜, 2์ธต ํ—ค๋“œ, KTAS ๊ธฐ๋Œ€ ๋น„์šฉ ์†์‹ค, ์ธต๋ณ„ ํ•™์Šต๋ฅ  ๊ฐ์†Œ. ๋ถ€์ • ์ฆ์ƒ ๋ผ๋ฒจ์„ ๋ณด๊ฐ•ํ•œ ๋ฐ์ดํ„ฐ
v1-2026-09-30 2026-09-30 ์ฒซ ๊ณต๊ฐœ ๋ชจ๋ธ

์‚ฌ์šฉ๋ฒ•

๋ชจ๋ธ ์ฝ”๋“œ(mf_bert ํŒจํ‚ค์ง€: ๋ชจ๋ธ ๊ตฌ์กฐยท์กฐ๊ฐ ๋‚˜๋ˆ„๊ธฐยท๋””์ฝ”๋”ฉ)๋Š” ์ด ์ €์žฅ์†Œ์— ๋“ค์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์› ํ”„๋กœ์ ํŠธ์˜ BERT/mf_bert ํด๋”๋ฅผ import ๊ฒฝ๋กœ์— ๋‘๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

from pathlib import Path
import torch
from huggingface_hub import snapshot_download
from transformers import AutoTokenizer
from mf_bert.model import CallExtractor
from mf_bert.infer import predict

d = Path(snapshot_download("podongchip/MF_BERT"))            # best.pt, tokenizer/
tokenizer = AutoTokenizer.from_pretrained(d / "tokenizer")
ckpt = torch.load(d / "best.pt", map_location="cpu", weights_only=False)
a = ckpt["args"]
model = CallExtractor(a["encoder"], dropout=a["dropout"], last_n_layers=a["last_n_layers"],
                      layer_dropout=a["layer_dropout"], label_attention=a.get("label_attention", False),
                      head_layers=a.get("head_layers", 1), head_hidden_size=a.get("head_hidden_size"),
                      pretrained=False)
model.load_state_dict(ckpt["model"])
print(predict(model.eval(), tokenizer, ["119 ๊ตฌ๊ธ‰๋Œ€์ž…๋‹ˆ๋‹ค\n58์„ธ ๋‚จ์ž๋ถ„ ๊ฐ€์Šด ํ†ต์ฆ์œผ๋กœ ์ด์†ก ๋ฌธ์˜๋“œ๋ฆฝ๋‹ˆ๋‹ค"])[0])
  • ์ด ์ฝ”๋“œ๋Š” main๊ณผ v1-2026-09-30 ์ฒดํฌํฌ์ธํŠธ๋ฅผ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ์ด์ „ ๋ชจ๋ธ์€ snapshot_download("podongchip/MF_BERT", revision="v1-2026-09-30")๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ๋•Œ klue/roberta-large์˜ ์„ค์ • ํŒŒ์ผ์„ ํ•จ๊ป˜ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฐ›๋Š” ํŒŒ์ผ์€ ์•ฝ 1.5GB์ž…๋‹ˆ๋‹ค.

์ถœ๋ ฅ ํ˜•์‹

ํ†ตํ™”๋งˆ๋‹ค dict ํ•˜๋‚˜: call_type, ktas_level, ktas_evidence, chief_complaint, suspected_diagnosis, vitals, consciousness, symptoms, onset, incidents, disease_category, injuries, treatments, age, sex, medications, notes, meta. ๋ชจ๋ธ์ด ๋ฐฐ์šฐ์ง€ ์•Š๋Š” call_type, ktas_evidence, notes๋Š” ํ•ญ์ƒ null์ž…๋‹ˆ๋‹ค.

ํ•™์Šต ๋ฐ์ดํ„ฐ

  • AI Hub ใ€Œ์œ„๊ธ‰์ƒํ™ฉ ์Œ์„ฑ/์Œํ–ฅ (๊ณ ๋„ํ™”) - 119 ์ง€๋Šฅํ˜• ์‹ ๊ณ ์ ‘์ˆ˜ ์Œ์„ฑ ์ธ์‹ ๋ฐ์ดํ„ฐใ€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋งŒ๋“  ํ•ฉ์„ฑ ํ†ตํ™” 8,082๊ฑด์ž…๋‹ˆ๋‹ค. ํ†ตํ™” ํ…์ŠคํŠธ์™€ ๋ผ๋ฒจ์€ ๋ชจ๋‘ Claude ๊ณ„์—ด ๋ชจ๋ธ๋กœ ๋งŒ๋“ค์—ˆ๊ณ  ์‚ฌ๋žŒ ๊ฒ€์ˆ˜๋Š” ๊ฑฐ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ํ†ตํ™” ์›๋ฌธ์ด๋‚˜ STT ๊ฒฐ๊ณผ๋Š” ๋“ค์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ์…‹ podongchip/119-call-transcript-synthetic-labels๋Š” ์ •์ œ ์ „ 8,990๊ฑด ๋ฒ„์ „์ด๊ณ , ์ด ๋ชจ๋ธ์€ ๊ทธ ๋’ค ์ •์ œยท์žฌ๋ผ๋ฒจ๋ง(์ฆ์ƒยท์ฒ˜์น˜ยท์†์ƒ Claude Sonnet ์žฌ๋ผ๋ฒจ, ๊ด€ํ–‰ ๊ทœ์น™ ๋ณด์ •, ๋น ์ง„ ๋ถ€์ • ์ฆ์ƒ 1,913๊ฐœ ๋ณด๊ฐ•)์„ ๊ฑฐ์นœ ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถ„ํ• : ๋ชจ๋“  ํ—ค๋“œ์˜ ๋ผ๋ฒจ ๊ตฌ์„ฑ์ด ํ•™์Šต๊ณผ ๊ฒ€์ฆ์—์„œ ๋น„์Šทํ•˜๋„๋ก ๊ณ ๋ฅธ 9:1 ๋ถ„ํ• (ํ•™์Šต 7,188 / ๊ฒ€์ฆ 894), 10์—ํญ, ๊ฒ€์ฆ ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ 9์—ํญ ์ฒดํฌํฌ์ธํŠธ

ํ‰๊ฐ€

ํ•™์Šต ๋ฐ์ดํ„ฐ์™€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ์ƒˆ๋กœ ๋งŒ๋“  ํ•ฉ์„ฑ ๋ฒค์น˜๋งˆํฌ 100๊ฑด(KTAS 1~5 ๊ฐ 20๊ฑด, ์ •๋‹ต์€ Claude Opus ๋ผ๋ฒจ๋Ÿฌ 3๋ช…์˜ ๋…๋ฆฝ ๋ผ๋ฒจ์„ ํŒ์ •ํ•ด ๋งŒ๋“ฆ)์œผ๋กœ ํ‰๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์„ ํƒ์€ ์ •ํ™•๋„, ๋‹ค์ค‘ ์„ ํƒ์€ micro F1, ๊ตฌ๊ฐ„์€ ๊ธ€์ž ์œ„์น˜๊ฐ€ ์ •ํ™•ํžˆ ๊ฐ™์•„์•ผ ๋งž๋Š” F1์ž…๋‹ˆ๋‹ค.

์ง€ํ‘œ v1-2026-09-30 main (์ด ๋ชจ๋ธ)
KTAS ์ •ํ™•๋„ 72% 71%
KTAS ยฑ1 ์ผ์น˜ - 100%
KTAS ๊ณผ์†Œ ๋ถ„๋ฅ˜(์ •๋‹ต๋ณด๋‹ค ๊ฐ€๋ณ๊ฒŒ) 9% 18%
์ฃผ์ฆ์ƒ ๋Œ€๋ถ„๋ฅ˜ / ์†Œ๋ถ„๋ฅ˜ 92% / 88% 95% / 91%
์ฃผ ์‚ฌ๊ณ ์œ ํ˜• / ์งˆ๋ณ‘๋ถ„๋ฅ˜ 95% / 80% 95% / 87%
AVPU / ๋ณต์šฉ์•ฝ ์ƒํƒœ 94% / 96% 93% / 96%
์‚ฌ๊ณ ์œ ํ˜• F1 92.8 93.0
์ฒ˜์น˜ / ์ฒ˜์น˜ ์„ธ๋ถ€ F1 72.3 / 71.3 84.4 / 75.1
์ฆ์ƒ F1 50.7 68.4
์†์ƒ / ์†์ƒ ์ขŒ์šฐ F1 30.2 / 21.7 68.1 / 52.6
๊ตฌ๊ฐ„ F1 61.3 60.1
  • ๋‹ค์ค‘ ์„ ํƒ(์ฆ์ƒยท์†์ƒยท์ฒ˜์น˜)์ด ํฌ๊ฒŒ ์ข‹์•„์กŒ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ "๊ตฌํ† ๋Š” ์—†์–ด์š”" ๊ฐ™์€ ๋ถ€์ • ์ฆ์ƒ์˜ ์žฌํ˜„์œจ์ด ์•ฝ 60%๋กœ ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค.
  • KTAS ๊ณผ์†Œ ๋ถ„๋ฅ˜๋Š” 18%๋กœ ์ด์ „ ๋ชจ๋ธ๋ณด๋‹ค ๋†’์Šต๋‹ˆ๋‹ค. KTAS ์˜ค์ฐจ๋Š” ๋ชจ๋‘ ยฑ1๋“ฑ๊ธ‰ ์•ˆ์ด์ง€๋งŒ, ์„ค์ •์„ ์กฐ๊ธˆ์”ฉ ๋ฐ”๊ฟ” ๋‹ค์‹œ ํ•™์Šตํ•  ๋•Œ๋งˆ๋‹ค KTAS ์ •ํ™•๋„๊ฐ€ 70~82%๋กœ ํ”๋“ค๋ ธ์Šต๋‹ˆ๋‹ค.
  • ๋ฒค์น˜๋งˆํฌ๊ฐ€ 100๊ฑด์ด๋ผ ์ง€ํ‘œ์— ๋”ฐ๋ผ ๋ช‡ ํฌ์ธํŠธ์˜ ํ”๋“ค๋ฆผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ๊ณ„

  • ๋ฐ์ดํ„ฐยท๋ผ๋ฒจยท๋ฒค์น˜๋งˆํฌ ์ •๋‹ต์ด ๋ชจ๋‘ AI๊ฐ€ ๋งŒ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์ˆ˜๋Š” "์ด ๋ผ๋ฒจ ๊ธฐ์ค€๊ณผ์˜ ์ผ์น˜๋„"์ด๊ณ , ์‹ค์ œ ํ†ตํ™”๋‚˜ ์‹ค์ œ STT ์ถœ๋ ฅ์œผ๋กœ๋Š” ๊ฒ€์ฆํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ KTAS ๋ผ๋ฒจ์€ ๋“ฑ๊ธ‰ ๊ฒฝ๊ณ„ ์‚ฌ๋ก€๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋งค๊ธฐ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณผ์†Œ ๋ถ„๋ฅ˜๊ฐ€ ์œ„ํ—˜ํ•œ ์šฉ๋„๋ผ๋ฉด ์‚ฌ๋žŒ์ด ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•œ๊ตญ์–ด 119 ๊ตฌ๊ธ‰๋Œ€-๋ณ‘์›(์ผ๋ถ€ ๋ณ‘์›-๋ณ‘์›) ํ†ตํ™” ํ˜•์‹์— ๋งž์ถฐ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for podongchip/MF_BERT

Finetuned
(78)
this model