๋ฌธ์žฅ์˜ ๊ฐ์ •์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

KcELECTRA ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ฝ 22๋งŒ๊ฐœ์˜ ๊ฐ์ • ๋ฌธ์žฅ์„ ํ•™์Šตํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด FP16 ๋ชจ๋ธ์„ ONNX FP16์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ CPU ํ™˜๊ฒฝ์—์„œ์˜ ์ถ”๋ก  ์†๋„๋ฅผ ์•ฝ 2๋ฐฐ ๋‹จ์ถ•ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ฐ์ •์€ ์ด 6๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋„์ถœ๋˜๋ฉฐ ๊ธฐ์จ, ๋‹นํ™ฉ, ๋ถ„๋…ธ, ๋ถˆ์•ˆ, ์ƒ์ฒ˜, ์Šฌํ”” ์ž…๋‹ˆ๋‹ค.

# onnx๋กœ ๋ฐ”๊พธ๋ฉด์„œ softmax๊ฐ€ ํ’€๋ ธ์œผ๋ฏ€๋กœ ๋‹ค์‹œ numpy๋ฅผ ์‚ฌ์šฉํ•ด ๋งŒ๋“ค์–ด์คŒ
def softmax(x):
    x = np.array(x)
    e_x = np.exp(x - np.max(x))
    return e_x / e_x.sum(axis=-1, keepdims=True)

def predict(text: str):
    text = clean(text)

    inputs = tokenizer(text, return_tensors="np")

    ort_inputs = {
        "input_ids": inputs["input_ids"],
        "attention_mask": inputs["attention_mask"]
    }

    logits = session.run(["logits"], ort_inputs)[0]  # (1, 6)
    probs = softmax(logits)[0]  # shape: (6,)

    result = {id2label[i]: float(probs[i]) for i in range(6)}
    return result
# pip install optimum[onnxruntime]

from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer

model_id = "noridorimari/onnx_emotion_classifier"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = ORTModelForSequenceClassification.from_pretrained(model_id)

inputs = tokenizer("์˜ค๋Š˜ ๊ธฐ๋ถ„์ด ๋ณ„๋กœ ์ข‹์ง€ ์•Š์•„.", return_tensors="pt")
outputs = model(**inputs)
print(outputs.logits)
@misc{lee2021kcelectra,
  author = {Junbum Lee},
  title = {KcELECTRA: Korean comments ELECTRA},
  year = {2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/Beomi/KcELECTRA}}
}
Downloads last month
9
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for noridorimari/onnx_emotion_classifier

Quantized
(1)
this model