merchant-consumption-category-discriminator-v3

๋ชจ๋ธ ๊ฐœ์š”

์ด ๋ชจ๋ธ์€ ํ•œ๊ตญ์–ด ๊ฐ€๋งน์ ๋ช…์„ ์ž…๋ ฅ๋ฐ›์•„ ์†Œ๋น„ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•œ KoELECTRA ๊ธฐ๋ฐ˜ ๋ถ„๋ฅ˜ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
๊ฐ€๋งน์ ๋ช…์—๋Š” ์—…์ข…์„ ์„ค๋ช…ํ•˜๋Š” ํ•ต์‹ฌ ํ† ํฐ๊ณผ ์ง€์ ๋ช…, ์ง€์—ญ๋ช…, ์ˆซ์ž, ๊ด„ํ˜ธ ๊ฐ™์€ ๋ถ€๊ฐ€ ์ •๋ณด๊ฐ€ ํ•จ๊ป˜ ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„, ์ด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ ์ •๋ณด

  • Model ID: kakao1513/merchant-consumption-category-discriminator-v3
  • Base checkpoint: monologg/koelectra-base-v3-discriminator
  • Architecture: KoELECTRA encoder + attention pooling classifier
  • Max length: 64
  • Num labels: 15
  • Loading: trust_remote_code=True ํ•„์š”

์ „์ฒ˜๋ฆฌ

์ž…๋ ฅ ํ…์ŠคํŠธ์—๋Š” ๋‹ค์Œ ์ „์ฒ˜๋ฆฌ๋ฅผ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  • NFKC ์ •๊ทœํ™”
  • ๊ณต๋ฐฑ/๊ฐœํ–‰ ์ •๋ฆฌ
  • casefold ๊ธฐ๋ฐ˜ ์ •๊ทœํ™” ํ…์ŠคํŠธ ์ƒ์„ฑ

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ ํ‘œ๊ธฐ ์ฐจ์ด๋ฅผ ์ตœ๋Œ€ํ•œ ์ผ๊ด€๋œ ํ˜•ํƒœ๋กœ ๋งž์ถ”๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์›๋ณธ ์ž…๋ ฅ ์ •๊ทœํ™” ์˜ˆ์‹œ
๏ผก๏ผข๏ผฃ๋งˆํŠธ abc๋งˆํŠธ
์Šคํƒ€๋ฒ…์Šค ๊ฐ•๋‚จR์  ์Šคํƒ€๋ฒ…์Šค ๊ฐ•๋‚จr์ 
๋ฉ”๊ฐ€์ปคํ”ผ\n(์ฃฝ์ „์ ) ๋ฉ”๊ฐ€์ปคํ”ผ (์ฃฝ์ „์ )

ํ•™์Šต ๋ฐฉ์‹

๊ธฐ๋ณธ KoELECTRA์˜ [CLS] pooling ๋ฐฉ์‹ ๋Œ€์‹ , ํ† ํฐ๋ณ„ ์ค‘์š”๋„๋ฅผ ํ•™์Šตํ•˜๋Š” attention pooling head๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ํ•™์Šต ์‹œ์—๋Š” ์ง€์ ๋ช…, ์ธต์ˆ˜, ๊ด„ํ˜ธ, ์ง€์—ญ๋ช… ๋“ฑ ๋’ค์ชฝ ์ ‘๋ฏธ ์ •๋ณด๋ฅผ ์ผ๋ถ€๋Ÿฌ ์„ž๋Š” suffix/branch noise augmentation์„ ์ ์šฉํ•ด, ๊ฐ€๋งน์ ๋ช… ๋ณ€ํ˜•์— ๋” ๊ฐ•ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ

service_test f1_macro ๊ธฐ์ค€ ์„ฑ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

model_variant f1_macro
baseline 0.7825
v3 0.8308

์ž…๋ ฅ/์ถœ๋ ฅ ์˜ˆ์‹œ

์ž…๋ ฅ ๊ฐ€๋งน์ ๋ช… ์˜ˆ์ธก ์˜ˆ์‹œ
์Šคํƒ€๋ฒ…์Šค ๊ฐ•๋‚จR์  ์นดํŽ˜
๋‹ค์ด์†Œ ์ฃฝ์ „์  ์ƒํ™œ
๋ฒ„๊ฑฐํ‚น ํŒ๊ต์—ญ์  ์‹๋น„

์‚ฌ์šฉ ์˜ˆ์‹œ

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

model_id = "kakao1513/merchant-consumption-category-discriminator-v3"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForSequenceClassification.from_pretrained(model_id, trust_remote_code=True)

merchant_text = "์Šคํƒ€๋ฒ…์Šค ๊ฐ•๋‚จR์ "

encoded = tokenizer(
    merchant_text,
    return_tensors="pt",
    truncation=True,
    max_length=64,
)

with torch.no_grad():
    logits = model(**encoded).logits

predicted_label_id = int(logits.argmax(dim=-1).item())
label_name = model.config.id2label.get(
    predicted_label_id,
    model.config.id2label.get(str(predicted_label_id))
)

print(label_name)

์ฐธ๊ณ ์‚ฌํ•ญ

์ด ๋ชจ๋ธ์€ ์ปค์Šคํ…€ attention pooling ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•˜๋ฏ€๋กœ trust_remote_code=True๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Downloads last month
80
Safetensors
Model size
0.1B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support