Instructions to use 1T/wt-kure-insurance-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use 1T/wt-kure-insurance-v1 with PEFT:
Task type is invalid.
- sentence-transformers
How to use 1T/wt-kure-insurance-v1 with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("1T/wt-kure-insurance-v1") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
wt-kure-insurance-v1
๊ธด ๋ฌธ์ ์ธ๋ฑ์ฑ์ฉ ํ๊ตญ์ด ๋ณดํ ๋๋ฉ์ธ ์๋ฒ ๋ฉ LoRA ์ด๋ํฐ. 256 ~ 7,500 ํ ํฐ์ ํ ๋ชจ๋ธ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
๊ฐ์
nlpai-lab/KURE-v1 (bge-m3 backbone, 568M, 1024-dim, max_seq 8,192) ์ LoRA ์ด๋ํฐ๋ฅผ ๋ถ์์ต๋๋ค.
์งง์ ์ฒญํฌ๋ง ์ ๋๋ ๊ฒ ์๋๋ผ ๊ธด ์ฒญํฌ์ผ์๋ก base ๋ฐ ์์ฉ API ์์ ๊ฒฉ์ฐจ๊ฐ ๋ฒ์ด์ง๋๋ก ํ์ตํ ์ ์ด ํต์ฌ์
๋๋ค (7,500 ํ ํฐ Recall@1 ์์ base +22.2pp, OpenAI text-embedding-3-large +59.5pp).
๊ฐ์ ์ฝํผ์ค๋ฅผ ์งง์ ์ฒญํฌ(์ ๋ฐ ๊ฒ์)์ ๊ธด ์ฒญํฌ(๋งฅ๋ฝ ๋ณด์กด)๋ก ๋์์ ์ธ๋ฑ์ฑํ๋ multi-resolution ์ ๋ต์ ๋จ์ผ ๋ชจ๋ธ๋ก ์ปค๋ฒํ๋ ์ฉ๋์
๋๋ค.
| Base | nlpai-lab/KURE-v1 (bge-m3, 568M, 1024-dim, max_seq 8,192) |
| Adapter | LoRA r=16, alpha=32, target Q/K/V/dense |
| Trainable params | 7,110,656 (base ๋๋น 1.24%) ยท ์ด๋ํฐ 28.5 MB |
| Loss | MultipleNegativesRankingLoss, temperature 0.05, in-batch + mined hard negative 4 |
| ํ์ต ๋ฐ์ดํฐ | ๋น๊ณต๊ฐ ๋ณดํ ๋๋ฉ์ธ ๋ฌธ์ 437๊ฑด โ 4-resolution ์ฒญํฌ 15,500๊ฐ โ ํฉ์ฑ query 46,500๊ฑด (3/์ฒญํฌ) โ hard negative 8/query mining โ ์ํ ๋จ์ split (train 40,344 / eval 5,397 / out-of-domain test 759) |
| Curriculum | epoch 1 short-heavy (256 ํ ํฐ 50%) โ epoch 3 long-heavy (7,500 ํ ํฐ 50%) |
| ํ์ต | H100 80GB ร 1, bf16 + gradient checkpointing, peak VRAM 18.6 GB, 15h 21m (3 epoch) |
๋ฒค์น๋งํฌ
๊ธธ์ด๋ณ ๋๋ฉ์ธ retrieval โ Recall@1 (๋น๊ณต๊ฐ ํ๊ฐ์ )
| resolution | ๋ณธ ๋ชจ๋ธ | base KURE-v1 | OpenAI 3-large | vs base | vs OpenAI |
|---|---|---|---|---|---|
| 256 tok | 96.32% | 93.23% | 89.73% | +3.09pp | +6.60pp |
| 1,024 tok | 94.77% | 88.45% | 76.51% | +6.31pp | +18.26pp |
| 4,096 tok | 82.06% | 65.16% | 37.02% | +16.90pp | +45.04pp |
| 7,500 tok | 77.74% | 55.59% | 18.22% | +22.15pp | +59.52pp |
์ ์์ฑ์ paired permutation test + Bonferroni ๋ณด์ ์ผ๋ก ํ์ธํ์ต๋๋ค (OpenAI ๋๋น 14์น 2๋ฌด 0ํจ).
ํ๊ฐ ์ฝํผ์ค๊ฐ ์ค์๋น์ค (200K+ ์ฒญํฌ) ๋ณด๋ค ์์ ์ ๋ ์์น๋ inflated ์ ๋๋ค. ๋ชจ๋ธ ๊ฐ ์๋ ๊ฒฉ์ฐจ๋ ๋์ผ ์กฐ๊ฑด์ด๋ผ ๊ณต์ ํฉ๋๋ค. OpenAI 3-large ๋ 4,096/7,500 ํ ํฐ ์ ๋ ฅ์์ 8,192 token ํ๊ณ๋ฅผ ํผํ๋ ค 6,000์๋ก cap ํ์ต๋๋ค (ํ๊ตญ์ด cl100k_base ๊ธฐ์ค ์ฝ 5.5~6.5K ํ ํฐ). ํ๊ฐ ๋ฐ์ดํฐ๋ ๋น๊ณต๊ฐ๋ผ ์ฌํ ๋ถ๊ฐ โ ๊ณต๊ฐ ๊ฒ์ฆ์ ์๋ KorSTS ๋ฅผ ๋ณด์ธ์.
์ผ๋ฐ ํ๊ตญ์ด (KorSTS, 519 sentence pair ยท ๊ณต๊ฐ ๋ฐ์ดํฐ)
๋ณดํ ํนํ ํ์ต์ผ๋ก ์ผ๋ฐ ์ฑ๋ฅ์ด ๊น์๋์ง ๋ณด๋ forgetting probe ์ ๋๋ค.
| ๋ชจ๋ธ | Spearman |
|---|---|
| ๋ณธ ๋ชจ๋ธ | 0.8766 |
| base KURE-v1 | 0.8774 (โ0.07pp) |
| OpenAI 3-large | 0.8234 |
| e5-small-ko + LoRA (384-dim) | 0.7996 |
base ๋๋น โ0.07pp. forgetting ์์ต๋๋ค.
Latency (per query)
| ํ๊ฒฝ | seq=128 | seq=1,024 | seq=4,096 | seq=7,500 |
|---|---|---|---|---|
| H100 80GB, bf16 (์ถ์ , train profile ๊ธฐ๋ฐ) | ~3 ms | ~13 ms | ~52 ms | ~124 ms |
| Apple M-series CPU (์ค์ธก, batch=2) | 108 ms | 517 ms | 2,488 ms | 6,805 ms |
568M ๋ชจ๋ธ์ด๋ผ CPU ๋ ๊ธด seq ์์ ๋นํ์ค์ ์ ๋๋ค. GPU ๋ฅผ ์ฐ์ธ์. ์ด๋ํฐ๋ฅผ base ์ ๋ณํฉํ๋ฉด base ์ ๋์ผํ latency ๋ก ์๋น๋ฉ๋๋ค (PEFT inference mode ๋ ์งง์ seq ์์ 3~20% ์ค๋ฒํค๋).
Quick Start
pip install sentence-transformers peft
from peft import PeftModel
from sentence_transformers import SentenceTransformer
m = SentenceTransformer("nlpai-lab/KURE-v1", device="cuda")
m[0].auto_model = PeftModel.from_pretrained(m[0].auto_model, "1T/wt-kure-insurance-v1")
q = m.encode(["๋ณดํ๋ฃ ๋ถํ ๋ฉ์
๊ฐ๋ฅํ๊ฐ์?"], normalize_embeddings=True)
p = m.encode(["๋ณดํ๋ฃ๋ ์ผ์๋ฉ์ ์์น์ผ๋ก ํ๋ ํ์์ ๋ถํ ์์ ๊ฐ๋ฅํฉ๋๋ค.",
"๋ณดํ๊ธ ์ฒญ๊ตฌ๊ถ์ ์๋ฉธ์ํจ๋ 3๋
์
๋๋ค.",
"์ค๋ ์ ์ฌ ๋ญ ๋จน์๊น"], normalize_embeddings=True)
print(q.shape, (q @ p.T).round(3)) # (1, 1024) [[0.73 0.038 0.178]]
query prefix ๋ ํ์ ์์ต๋๋ค (bge-m3 ๊ณ์ด). ๋์กฐ ํ์ต์ผ๋ก cosine ์ ๋๊ฐ ๋ถํฌ๊ฐ base ์ ๋ค๋ฅด๋ฏ๋ก ์๊ณ๊ฐ์ ์ฌ์บ๋ฆฌ๋ธ๋ ์ด์ ํ์ธ์.
vLLM (--task embed) ๋ฑ ์ด๋ํฐ๋ฅผ ์ง์ ๋ชป ์ฝ๋ ๋ฐํ์์ ๋ณํฉํด์ ์ฐ์ธ์.
m[0].auto_model = m[0].auto_model.merge_and_unload()
m.save("wt-kure-insurance-v1-merged")
ํ๊ณ
- 1024-dim ยท 568M ์ด๋ผ CPU ๋จ๋ ์ด์์๋ ๋ฌด๊ฒ์ต๋๋ค. ์งง์ ์ง์ ์์ฃผ๋ฉด 1T/wt-e5-small-ko-insurance-v1 (384-dim, CPU 13 ms) ์ชฝ์ด ๋ง์ต๋๋ค.
- ํ์ต query ๊ฐ LLM ํฉ์ฑ์ด๋ผ ์ค์ ์ฌ์ฉ์ ๋ฐํ ๋ถํฌ์ ์์ ํ ๊ฐ์ง๋ ์์ต๋๋ค.
- ์ด๋ํฐ๋ง ๋ฐฐํฌํฉ๋๋ค. tokenizer ยท pooling ์ค์ ์ base ๋ฅผ ๊ทธ๋๋ก ์๋๋ค.
์ธ์ฉ
@misc{wt-kure-insurance-v1,
title = {wt-kure-insurance-v1: a long-context Korean insurance-domain retrieval LoRA for KURE-v1},
author = {Kim, Wontae},
year = {2026},
url = {https://huggingface.co/1T/wt-kure-insurance-v1}
}
๋ผ์ด์ ์ค ยท ๊ณ ์ง
์ด๋ํฐ MIT (base ๋ผ์ด์ ์ค ์น๊ณ). base nlpai-lab/KURE-v1 MIT, ๊ทธ backbone BAAI/bge-m3 MIT.
๋๋ฉ์ธ ํ์ต ๋ฐ์ดํฐ๋ ๋น๊ณต๊ฐ์ด๋ฉฐ ๋ณธ repo ์ ํฌํจ๋์ง ์์ต๋๋ค.
- Downloads last month
- 14
Model tree for 1T/wt-kure-insurance-v1
Evaluation results
- Spearman correlation on KorSTStest set self-reported0.877