ko-hallucheck-v1 โ ํ๊ตญ์ด ํ๊ฐ(์ถฉ์ค์ฑ) ํ๋ณ๊ธฐ
(context, answer) ์์ ์ ๋ ฅ๋ฐ์ ๋ต๋ณ์ด ๋ฌธ๋งฅ์ ์ถฉ์คํ์ง(SUPPORTED) ํ๊ฐ์ธ์ง(HALLUCINATED) ํ๋ณํ๋ ํ๊ตญ์ด ์ ์ฉ cross-encoder์ ๋๋ค. RAG ํ์ดํ๋ผ์ธ์ ์ถ๋ ฅ ๊ฒ์ดํธ, LLM ๋ฉํ ์ธ์๊ฒ์ฆ, ์์ฑ ์ฝํ ์ธ ํ์ง ๊ฒ์ดํธ ์ฉ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์์ด๊ถ์๋ vectara/hallucination_evaluation_model, MiniCheck, LettuceDetect ๋ฑ ์ฑ์ํ ํ๋ณ๊ธฐ๊ฐ ์์ง๋ง, ํ๊ตญ์ด ์ ์ฉ ๊ณต๊ฐ ํ๋ณ๊ธฐ๋ ์์ด ๊ทธ ๊ณต๋ฐฑ์ ์ฑ์ฐ๊ธฐ ์ํด ๋ง๋ค์์ต๋๋ค.
- Base: BAAI/bge-reranker-v2-m3 (568M, Apache-2.0) โ 2-label seq-classification ํ์ธํ๋
- Labels:
0 = HALLUCINATED,1 = SUPPORTED - Max length: 512 (context+answer, longest_first truncation)
์ฑ๋ฅ
| ํ๊ฐ์ | acc | AUROC | ํ๊ฐํ์ง recall (intrinsic / extrinsic) |
|---|---|---|---|
| in-dist test (์ํค ๊ธฐ๋ฐ ๋ฌธ์ฅํ, n=1002) | 0.938 | 0.980 | 0.83 / 1.00 |
| spanํ held-out (KorQuAD ์ํค, n=688) | 0.988 | 0.997 | 0.99 / 1.00 |
| cross-source OOD (KLUE-MRC ๋ด์ค span, n=1500) | 0.966 | 0.979 | 0.99 / 0.99 |
- OOD๋ ํ์ต์ ์ฐ์ง ์์ ์์ค(๋ด์ค ๋๋ฉ์ธ)์ด๋ฉฐ, ๊ธฐ๋ณธ ์๊ณ๊ฐ 0.5์์ ์ ์ฑ๋ฅ์ด ๋์ต๋๋ค(๋ณ๋ ์บ๋ฆฌ๋ธ๋ ์ด์ ๋ถํ์).
- v1 ๋๋น ํต์ฌ ๊ฐ์ : ๋ฌธ์ฅํ ๋ฐ์ดํฐ๋ง์ผ๋ก ํ์ตํ๋ฉด spanํ ์ ๋ ฅ์์ ํ๋ณ์ด ๋ถ๊ดด(ํฌ๋งท shortcut)ํ๋ ๋ฌธ์ ๋ฅผ ๋คํฌ๋งท(๋ฌธ์ฅํ+spanํ) ํ์ต์ผ๋ก ํด๊ฒฐํ์ต๋๋ค.
์ ์งํ ํ๊ณ (์ฝ๊ณ ์ฐ์ธ์)
- negative(ํ๊ฐ) ์ํ์ด LLM ์์ฑ + ๋ฃฐ ๋ณํ(์ซ์/๊ฐ์ฒด ์นํ, ํ๋ฌธ์ ์ด์)์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค. OOD ํ๊ฐ์ ํ๊ฐ๋ ๊ฐ์ ๋ฃฐ ํจ๋ฐ๋ฆฌ๋ก ์์ฑ๋์ด, ์คํ๊ฒฝ LLM ํ๊ฐ๊ณผ ๋ถํฌ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ฌ๋ ๋ผ๋ฒจ ๊ธฐ๋ฐ ๋ ๋ฆฝ ๋ฒค์น๋งํฌ(Ko-FaithBench)๋ฅผ ์ค๋น ์ค์ด๋ฉฐ ๊ณต๊ฐ ์ ์ฌ๊ธฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ๋ฏธ๋ฌํ 1๊ธ์ ์์ค ๋ณํ(intrinsic)์ in-dist recall์ 0.83์ผ๋ก, ๊ทนํ ๋ฏธ์ธํ ์๊ณก์ ๋์น ์ ์์ต๋๋ค.
- context 512 ํ ํฐ ์ด๊ณผ๋ถ์ ์๋ฆฝ๋๋ค. ๊ธด ๋ฌธ์๋ ์ฒญํฌ ๋จ์๋ก ๋๋ ํ๋ณํ์ธ์.
- ์ฌ์ค์ฑ ํ๋ณ์ด ์๋๋ผ ์ฃผ์ด์ง context์ ๋ํ ์ถฉ์ค์ฑ ํ๋ณ์ ๋๋ค. context ์์ฒด๊ฐ ํ๋ฆฌ๋ฉด ์ก์ง ๋ชปํฉ๋๋ค.
- ์๋ฃยท๋ฒ๋ฅ ๋ฑ ๊ณ ์ํ ์ฉ๋์๋ ์ฌ๋ ๊ฒํ ์์ด ๋จ๋ ์ฌ์ฉํ์ง ๋ง์ธ์.
์ฌ์ฉ๋ฒ
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
repo = "jismsy/ko-hallucheck-v1"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForSequenceClassification.from_pretrained(repo).eval()
context = "๋์ฌ์ ์ฒซ ํ์ฌ๋ช
์ ๋กฏ๋ฐ๊ณต์
์ฌ์๋ค. 1978๋
์ฌ๋ช
์ ๋์ฌ์ผ๋ก ๋ณ๊ฒฝํ๋ค."
answer = "๋์ฌ์ 1965๋
์ผ์์ํ์ผ๋ก ์ฐฝ๋ฆฝ๋์๋ค."
enc = tok(context, answer, truncation="longest_first", max_length=512, return_tensors="pt")
with torch.no_grad():
prob_supported = torch.softmax(model(**enc).logits, -1)[0, 1].item()
print(f"SUPPORTED ํ๋ฅ : {prob_supported:.3f}") # 0.5 ๋ฏธ๋ง โ ํ๊ฐ ํ์
ํ์ต ๋ฐ์ดํฐ
- ํ๊ตญ์ด ์ํคํผ๋์ ๊ธฐ๋ฐ ๋ฌธ์ฅํ (context, answer) ~18k์: LLM ์์ฑ supported/intrinsic/extrinsic, ์ํ ์๋ ๊ฒ์(๋ผ๋ฒจ ์ ํ๋ ~90%)
- KorQuAD v1 ๊ธฐ๋ฐ spanํ ~5.3k์: ๋ฃฐ ๊ธฐ๋ฐ ์์ฑ
- ๋ฌธ์(article) ๊ทธ๋ฃน ๋จ์ train/val/test ๋ถํ ๋ก ๋์ ์ฐจ๋จ
- ๋ฐ์ดํฐ ์๋ฌธ ๋ผ์ด์ ์ค: Korean Wikipedia(CC BY-SA), KorQuAD v1(CC BY-ND) โ ๋ฐ์ดํฐ์ ์์ฒด๋ ์ฌ๋ฐฐํฌํ์ง ์์ต๋๋ค.
Citation
@misc{ko-hallucheck-2026,
title={ko-hallucheck: Korean Faithfulness / Hallucination Detection Cross-Encoder},
author={ianwoo},
year={2026},
url={https://huggingface.co/jismsy/ko-hallucheck-v1}
}
- Downloads last month
- -
Model tree for jismsy/ko-hallucheck-v1
Base model
BAAI/bge-reranker-v2-m3