Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text classification

klue-roberta-framing-3class

by Joaram likeramm/klue-roberta-framing-3class

klue-roberta-framing-3class is an open-weight model for text classification from Joaram, released under Creative Commons Attribution-ShareAlike 4.0. It has 337M parameters and a 514-token context. At 16-bit it needs about 0.8 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

같은 사실을 긍정적인 틀 또는 부정적인 틀로 제시하는 가치 프레이밍(valence framing)을 다룹니다. 예를 들어 "GDP 2.3% 성장"을 "견조한 성장세"로 쓰면 긍정, "성장 둔화 우려"로 쓰면 부정입니다. 코드: https://github.com/likeramm/econ-framing-bias - 방법: LLM 라벨을 소형 모델로 옮기는 지식 증류. klue/roberta-large를 파인튜닝했습니다.

Parameters337M
Context514
Weights1.3 GB
Licensecc-by-sa-4.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve klue-roberta-framing-3class (337M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.7 GB 0.8 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.3 GB 0.4 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.2 GB 0.2 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

klue-roberta-framing-3class on every accelerator the SAVRN Index prices, at every precision

Model Card

By Joaram, published under cc-by-sa-4.0, revision ba46c8da34d9.

같은 사실을 긍정적인 틀 또는 부정적인 틀로 제시하는 가치 프레이밍(valence framing)을 다룹니다. 예를 들어 "GDP 2.3% 성장"을 "견조한 성장세"로 쓰면 긍정, "성장 둔화 우려"로 쓰면 부정입니다. 코드: https://github.com/likeramm/econ-framing-bias - 방법: LLM 라벨을 소형 모델로 옮기는 지식 증류. klue/roberta-large를 파인튜닝했습니다. - 라벨: gpt-5.5가 라벨링 가이드라인 프롬프트(v2)로 판정한 결과 (OpenAI Batch API) - 학습 8,866 / 검증 1,900 / 테스트 1,901 (층화 분할, seed 42). 검증셋으로 모델을 고르고, 테스트셋으로 최종 보고 - 입력: 제목 [SEP] 본문 앞 500자, 최대 256 토큰 - 설정: lr 1e-5, batch 4 × gradient accumulation 2, 최대 6 epoch(조기 종료 patience 2), 클래스 가중 교차엔트로피, FP16, RTX 4060 테스트셋 (n=1,901, 정답 = gpt-5.5 라벨) 사람 라벨과의 일치도 (파일럿 50건, 학습 제외): 정확도 0.74, Cohen's κ 0.58 - 중립이 가장 어렵습니다. 사람과 LLM의 판단도 중립에서 가장 많이 엇갈립니다. - 사건의 좋고 나쁨에 끌리는 경향이 있습니다. "GDP 2.3% 성장…

Read Joaram's full model card

한국어 경제 뉴스의 프레이밍(논조)을 긍정·중립·부정 3가지로 분류하는 모델입니다. 같은 사실을 긍정적인 틀 또는 부정적인 틀로 제시하는 가치 프레이밍(valence framing)을 다룹니다. 예를 들어 "GDP 2.3% 성장"을 "견조한 성장세"로 쓰면 긍정, "성장 둔화 우려"로 쓰면 부정입니다.

순천향대학교 컴퓨터소프트웨어공학과 졸업작품 「경제 뉴스 편향 탐지 및 주가 영향 분석 시스템」의 일부입니다. 코드: https://github.com/likeramm/econ-framing-bias

라벨

id label 정의
0 negative (부정) 둔화·하락·우려·위기의 틀로 서술
1 neutral (중립) 기자의 해석이 최소화된 사실·수치 전달, 또는 양측을 병렬 제시하고 평가 유보
2 positive (긍정) 성장·회복·개선·안도의 틀로 서술. 우려를 언급해도 완화·방어로 마무리

판정의 핵심 원칙은 "사건이 아니라 서술을 본다"입니다. 나쁜 사건이라도 수치와 경과만 건조하게 전달하면 중립입니다.

사용법

import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

repo = "likeramm/klue-roberta-framing-3class"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForSequenceClassification.from_pretrained(repo).eval()

def classify(title, content=""):
    # 학습과 같은 입력 형식: "제목 [SEP] 본문 앞 500자", 최대 256 토큰
    text = f"{title} [SEP] {content[:500]}" if len(content.strip()) > 10 else title
    enc = tok(text, max_length=256, truncation=True, return_tensors="pt")
    with torch.no_grad():
        probs = torch.softmax(model(**enc).logits, dim=-1)[0]
    return {model.config.id2label[i]: round(p.item(), 4) for i, p in enumerate(probs)}

classify("2분기 GDP 2.3%…성장 둔화 우려 확대, 불확실성 고조")

학습

  • 방법: LLM 라벨을 소형 모델로 옮기는 지식 증류. klue/roberta-large를 파인튜닝했습니다.
  • 데이터: 2016~2026년 한국 경제 뉴스 13,268건 (38개 매체, 15개 경제 이벤트)
  • 라벨: gpt-5.5가 라벨링 가이드라인 프롬프트(v2)로 판정한 결과 (OpenAI Batch API)
  • 평가용 기사(사람 라벨 골든셋 600건, 반사실 테스트셋 원본)는 학습에서 제외
  • 학습 8,866 / 검증 1,900 / 테스트 1,901 (층화 분할, seed 42). 검증셋으로 모델을 고르고, 테스트셋으로 최종 보고
  • 입력: 제목 [SEP] 본문 앞 500자, 최대 256 토큰
  • 설정: lr 1e-5, batch 4 × gradient accumulation 2, 최대 6 epoch(조기 종료 patience 2), 클래스 가중 교차엔트로피, FP16, RTX 4060

성능

테스트셋 (n=1,901, 정답 = gpt-5.5 라벨)

F1
부정 0.912
중립 0.775
긍정 0.853
Macro-F1 0.847
Accuracy 0.864

사람 라벨과의 일치도 (파일럿 50건, 학습 제외): 정확도 0.74, Cohen's κ 0.58

테스트 점수는 gpt-5.5의 판단을 얼마나 잘 재현하는지를 뜻합니다. 정답이 LLM 라벨이므로 이 모델의 실제 정확도는 LLM 라벨의 품질을 넘을 수 없습니다. 사람 평가자 기준의 검증은 진행 중입니다.

한계

  • 확률이 과신되어 있습니다. 학습 손실이 매우 낮아(약 0.08) 출력 확률이 0.99 이상으로 몰리는 경우가 많습니다. 확률을 "확신의 정도"로 해석하지 마세요.
  • 중립이 가장 어렵습니다. 사람과 LLM의 판단도 중립에서 가장 많이 엇갈립니다.
  • 사건의 좋고 나쁨에 끌리는 경향이 있습니다. "GDP 2.3% 성장 발표"처럼 건조한 사실 보도를 긍정으로 분류하기도 합니다. 학습 라벨(v2 프롬프트)의 경향을 물려받은 것으로, 강도어 방향 규칙(R0-a)과 인용 규칙(R0-b)을 추가한 v3 가이드라인과는 차이가 있습니다.
  • 거시 경제 뉴스로 학습했습니다. 개별 기업 뉴스, 다른 분야 뉴스, 다른 시기에는 성능이 떨어질 수 있습니다.

용도

뉴스 프레이밍 연구, 매체 간 보도 비교, 미디어 리터러시 도구에 쓰기 위한 모델입니다. 투자 판단에 쓰지 마세요. 이 프로젝트의 분석에서 뉴스 논조는 이후 주가 방향을 예측하지 못했습니다.

Configuration

Architecture
RobertaForSequenceClassification
Context length (tokens)
514
Layers
24
Hidden size
1,024
Feed-forward size
4,096
Attention heads
16
Vocabulary size
32,000
Model type
roberta

Identity and Version

Repository
likeramm/klue-roberta-framing-3class
Publisher
Joaram
Task
Text classification
Modality
Text
Library
Not stated by the source
Parameters
337M parameters
Languages
ko
Revision
ba46c8da34d9091b54aa4f5a86fa1205ec3a2ba4
First published
2026-10-13
Last updated
2026-10-13

Files and Weights

6 files, 1.3 GB in total. The weights are 1 file totalling 1.3 GB in safetensors.

Weights1 file · 1.3 GB
Configuration1 file · 961 B
Tokenizer2 files · 752.5 KB
Documentation1 file · 4.7 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights1.3 GB 7fc2e8ff3291
config.jsonConfiguration961 B —
README.mdDocumentation4.7 KB —
.gitattributesRepository1.5 KB —
tokenizer.jsonTokenizer752.1 KB —
tokenizer_config.jsonTokenizer445 B —

License and Download

License
cc-by-sa-4.0
Access
Open weights, no gate
Download size
1.3 GB
Download from Joaram

Released by Joaram through its official repository on Hugging Face. Read the license.

Built From

  • Derived from klue/roberta-large

Memory Requirements

PrecisionWeights in memory
As published1.3 GB
16-bit0.7 GB
8-bit0.3 GB
4-bit0.2 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About klue-roberta-framing-3class

How much GPU memory does klue-roberta-framing-3class need?

About 0.8 GB at 16-bit and 0.2 GB at 4-bit: the weights (337M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run klue-roberta-framing-3class on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use klue-roberta-framing-3class commercially?

Yes. klue-roberta-framing-3class is released under Creative Commons Attribution-ShareAlike 4.0. CC BY-SA 4.0 permits sharing and adapting, including commercially, with credit to the creator, and requires adaptations to be released under the same license.

What is klue-roberta-framing-3class's context length?

514 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text classification

laya-multilingual

Convai Innovations

Non-autoregressive System 1 decision model covering 100+ languages. Give it a state (text, email, ticket, or JSON) and typed questions; it returns typed answers with probabilities in a single forward pass. No text generation, so nothing to parse and nothing to hallucinate. Part of the Laya family — use this checkpoint for anything that is not English. Since laya 0.3.13 the default Router() keeps both english and this checkpoint resident, so a mixed workload no longer swaps checkpoints on every language change. For a server, load them up front so even the first request of each language is just a forward pass: router.attach("multilingual", agent) registers an Agent you already built, so a…

Open weights apache-2.0 322M parameters transformers

Model · Text classification

laya-coreai

Andrey Babikov

Laya typed decisions on Apple Silicon, running on the Core AI runtime — the successor to Core ML. This is a.aimodel asset exported from via Apple's coreai-torch bridge. It outputs choice / score / noul probabilities (and RL action logits) with zero generated tokens and no PyTorch, Core ML, Transformers, or cloud API at inference time. macOS 27+ (Core AI runtime), Python 3.10+. Validated on M3 Max / macOS 27.2. Validate the download end-to-end (all three specializations, timing, contract checks): Snake demo with the model (terminal game, reuses the laya-coreml UI + safety shield; automatically uses the B3 asset when present for ~2x game throughput): ~3× faster per pass than the fastest Core…

Open weights apache-2.0 322M parameters coreai

Model · Text classification

laya-pt-es-typed

Telepatia

This checkpoint fine-tunes convaiinnovations/laya-multilingual for native choice, score, and noul decisions in Portuguese and Spanish. It keeps the original 322M-parameter mmBERT architecture. It adds no inference component and does not generate text. It returns typed answers and probabilities in one forward pass. This is a text model. Inference takes a textual state plus typed questions. The second training stage used text decisions derived from public speech corpora, but this checkpoint does not accept audio by itself. The separate audio projector is not included. The official Laya SDK defines these primitives as follows: - choice: selects one key from a runtime-defined criteria object.…

Open weights apache-2.0 322M parameters laya

Model · Text classification

laya-multilingual

Scott Lamkin

Non-autoregressive System 1 decision model covering 100+ languages. Give it a state (text, email, ticket, or JSON) and typed questions; it returns typed answers with probabilities in a single forward pass. No text generation, so nothing to parse and nothing to hallucinate. Part of the Laya family — use this checkpoint for anything that is not English. The default Router() keeps both english and this checkpoint resident, so a mixed workload no longer swaps checkpoints on every language change. For a server, load them up front so even the first request of each language is just a forward pass: router.attach("multilingual", agent) registers an Agent you already built, so a process that loaded…

Open weights apache-2.0 322M parameters transformers

Classifies GitHub issues written in any language as bug, feature, question or docs. A fine-tune of Laya multilingual (mmBERT-base) used by the laya-triage GitHub Action for non-English issues, next to the English model laya-triage-en. The same 500 NLBSE'23 validation issues, machine-translated with NLLB-200 into 13 languages. Accuracy (±3 points per language): laya-triage and Jev are within noise of each other across languages; both are far ahead of the untuned base. Translations can flatter a model trained on translations, so we also checked real issues: on 367 non-English issues opened in 2026 (never seen, written by people, not translated) accuracy went from 47.1% to 65.7%. Use it…

Open weights apache-2.0 322M parameters

Model · Text classification

rex

NguyenThanhDat

System 1 calibrated decision model for zero-latency threat triage

Open weights apache-2.0 322M parameters