Skip to content
Guides5 min read

저렴한 첫 레이블링 단계로서의 의사결정 모델

의사결정 모델은 순전파 한 번으로 모든 선택지에 점수를 매기며 텍스트를 쓰지 않습니다. 선택지가 적은 질문에서는 LLM 앞의 첫 레이블링 단계로 쓸 수 있습니다.

Potato Team

의사결정 모델은 고정 선택형 질문에 순전파 한 번으로 레이블을 달고, 생성할 텍스트 없이 모든 선택지의 확률을 돌려줍니다. 선택지가 몇 개뿐인 N개 중 하나 고르기 질문에서는 의사결정 모델을 레이블링 캐스케이드의 첫 단계로 쓰고, 확신하지 못하는 항목은 LLM에 보내며, 임계값은 블라인드 사람 표본으로 인증하세요. 의사결정 모델의 신뢰도는 틀리는 입력에서도 높게 유지될 수 있기 때문입니다.

의사결정 모델은 텍스트 한 조각과 유형이 정해진 질문 집합을 받아 각 답의 확률을 돌려주는 분류기입니다. 텍스트를 생성하지 않으므로 프롬프트, 근거, 규칙을 쓸 수 없습니다. Laya는 이런 종류의 공개 모델 중 하나입니다. Laya의 모델 카드에는 Apache 2.0 라이선스로 배포되는, ModernBERT-large 인코더 기반 매개변수 4억 2,100만 개의 영어 체크포인트와 매개변수 3억 2,200만 개의 다국어 체크포인트가 나와 있습니다. /v1/systemone API는 호스팅된 Jev, OpenJev, 또는 Laya 자체 서버에서 같은 종류의 답을 HTTP로 제공합니다.

첫 단계가 비용을 아끼는 경우

레이블링 캐스케이드는 모델을 대개 가장 저렴한 것부터 가장 성능이 좋은 것 순으로 시도하며, 현재 모델의 확신이 충분하지 않을 때만 항목을 다음으로 넘깁니다. 코퍼스에 쉬운 항목의 비중이 크면, 그런 항목에 확신을 갖고 레이블을 다는 저렴한 모델 덕분에 LLM에는 더 작고 어려운 나머지만 남습니다. 절약되는 정도는 그 비중에 달려 있으므로, 이를 전제로 계획을 세우기 전에 자신의 데이터로 측정하세요.

의사결정 모델이 첫 단계에 맞는 이유는 한 번의 패스로 모든 선택지에 답하기 때문입니다. 레이블이 다섯 개인 질문도 순전파 한 번이면 되고 생성되는 텍스트도 없습니다. 출력 확률이 곧 신뢰도 점수이므로 후속 질문이나 반복 샘플링이 필요 없습니다. 또한 CPU에서 실행됩니다. 모델 카드는 체크포인트를 미리 불러온 상태에서 CPU 기준 요청당 193~464ms, T4 GPU에서 영어 체크포인트 기준 39.5ms를 보고합니다.

Laya에 대해 보고된 한계

다음 한계 중 네 가지는 Laya 모델 카드에서 나왔고, 평가 척도에 관한 다섯 번째는 Potato 문서에서 나왔습니다.

  • 선택지가 많을 때. 모델 카드는 Banking77 의도 분류 벤치마크에서 Laya가 레이블 77개로 정확도 0.425를, Jev가 72개로 0.870을 기록했다고 보고합니다. 선택지들은 고정된 토큰 예산을 나눠 쓰므로, 레이블 목록이 길면 서로 밀어냅니다. Potato 문서에는 선택지가 11개 이상인 질문에서 Laya가 온도가 범위를 벗어났다고 경고하고 온도를 범위 안으로 고정한다는 점도 적혀 있습니다.
  • 영어 체크포인트에서의 다른 문자 체계. 모델 카드는 크메르어 텍스트에서 영어 체크포인트가 정확도 0.000, 신뢰도 0.952를 기록했다고 보고합니다. 신뢰도 임계값으로는 모델이 확신하는 오류를 잡아낼 수 없습니다.
  • 제로샷 정확도. 모델 카드는 기본 체크포인트가 자체 유형별 의사결정 벤치마크에서 제로샷으로 무작위 기준선 0.318, 다수 클래스 기준선 0.461에 대해 0.362로 우연 수준에 가깝다고 보고하며, Laya를 "특화를 위한 빠른 기반이지, 제로샷 의사결정 엔진이 아니다"라고 설명합니다.
  • 원래의 보정 상태. 모델 카드는 laya가 과신 상태로 배포되며, 평균 기대 보정 오차가 0.466이고 자신의 데이터로 온도를 다시 적합하면 0.081로 떨어진다고 보고합니다. 보정 정도는 도메인마다 다르므로, 다른 사람의 데이터로 고른 임계값은 그대로 옮겨 쓸 수 없습니다.
  • 평가 척도. Potato 문서에 따르면 likert와 slider 스키마에서 Laya의 점수는 질문을 어떻게 표현하든 척도를 거의 따라가지 못할 수 있습니다.

이 한계들을 종합하면, 의사결정 모델은 선택지가 몇 개뿐인 N개 중 하나 고르기 질문에, 그리고 해당 체크포인트가 학습된 언어에 한정해 쓰는 것이 좋습니다. 임계값은 자신의 코퍼스에서 얻은 사람 레이블로 고르세요.

Potato에서 의사결정 모델 쓰기

Potato 2.11에는 의사결정 모델용 엔드포인트 유형이 두 가지 추가되었습니다. laya는 Laya를 Potato 프로세스 안에서 실행하며, torch와 transformers를 끌어오는 decision extra인 pip install 'potato-annotation[decision]'이 필요합니다. systemone은 /v1/systemone API를 제공하는 모든 서버와 통신하며 base_url만 있으면 됩니다. 둘 다 radio, select, likert, slider 스키마에서 작동하며, multiselect, 스팬, 자유 텍스트 스키마에 레이블을 달도록 설정하면 솔로 모드가 시작되지 않습니다.

레이블링 엔진에서 의사결정 모델은 캐스케이드 맨 앞에 두는 decision 소스입니다. Potato에 포함된 텍스트 예제에서 발췌한 다음 설정은 작은 Ollama LLM 앞에 Laya를 두고, Potato의 기본 신뢰도 90%로 10% 오류 목표에 대해 이 조합을 인증합니다.

yaml
labeling_engine:
  enabled: true
  sources:
    - id: laya
      kind: decision
      endpoint_type: laya
      model: convaiinnovations/laya
      options:
        device: cpu
    - id: llm
      kind: llm
      endpoint_type: ollama
      model: llama3.2:3b
      base_url: http://localhost:11434
      max_tokens: 200
  cascade: [laya, llm]
  contracts:
    - id: accuracy
      kind: selective_risk
      schema: sentiment
      error: 0.1
      confidence: 0.9

엔진은 블라인드 사람 표본의 절반으로 Laya의 신뢰도 임계값을 고르고 나머지 절반으로 검정하므로, 임계값은 모델 카드가 아니라 자신의 코퍼스에서 나옵니다. 표본의 dev 절반이 Laya의 임계값을 정하기 전까지는 LLM이 모든 항목에 레이블을 답니다. 그 뒤로 LLM은 Laya가 확신하지 못하는 항목과 보정 표본만 봅니다.

예제의 README에 기록된 실행에서는 Gemma 12B를 LLM으로 썼는데, Laya의 임계값이 끝내 정해지지 않아 수락된 레이블 전부를 LLM이 만들었습니다. 그러니 첫 단계에 기대기 전에 그 단계가 자신의 코퍼스에서 얼마나 기여하는지 측정하세요. 엔진은 각 단계의 수락된 레이블을 따로 검정하므로, 크메르어 사례처럼 확신에 찬 실패는 인증 표본에 그런 종류의 입력이 포함되어 있다면 그 표본에서 오류로 드러납니다. distributional 계약은 Laya의 전체 확률 벡터도 쓸 수 있어, 주석자들의 의견이 갈리는 주관적 질문에 잘 맞습니다.

솔로 모드에서 의사결정 모델은 labeling_models에, 그리고 confidence_routing의 첫 단계로 들어갑니다. 솔로 모드에는 revision_models 아래에 생성형 모델도 필요합니다. 의사결정 모델은 솔로 모드의 수정 루프가 만들어 내는 프롬프트와 규칙을 쓸 수 없기 때문입니다.

전체 실행 전에 의사결정 모델 시험하기

코퍼스 전체를 의사결정 모델로 보내기 전에, 이미 레이블을 단 항목 수십 개로 모델을 실행해 보세요. 솔로 모드의 Try on 10 items 버튼이 프롬프트에 대해 이 일을 하고, 엔진에서는 potato label run 다음에 potato label status를 실행하면 각 단계의 임계값에 레이블이 몇 개 더 필요한지, 어느 소스가 오류를 냈는지 볼 수 있습니다. 인증에 실패한 단계는 아무것도 수락하지 않으며, 임계값을 넘는 항목을 LLM이 아니라 사람에게 보냅니다. 그러면 LLM이 레이블을 달 수도 있었던 항목에 사람 레이블 예산이 쓰입니다. 의사결정 모델 단계가 계속 인증에 실패하면 캐스케이드에서 빼세요.

더 읽어보기