Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

토큰 비용 예측

PRECC는 토큰 비용 예측 오라클을 제공하므로 여러 단계로 구성된 계획을 실제 시간이 아닌 토큰으로 예산할 수 있습니다. 각 단계 전에 예측을 기록하고 작업이 끝난 뒤 실제 값을 기록하면, 데이터셋이 내장 예측기를 학습시키며 시간이 지남에 따라 정확도가 향상됩니다.

예측 기록하기

계획된 단계의 한 줄 설명을 전달하세요. PRECC는 이를 분류하고(feat / fix / test / refactor / measurement / doc / chore / unknown), 토큰 수를 추정하며, 루프를 닫을 때 사용할 id를 출력합니다.

$ precc predict "Implement read-deltas with mtime check"
id=42 category=feat predicted=5680 tokens (confidence=0.50, model=trained-v1)
Record actual when done: precc predict --record 42 <actual_tokens>

실제 값 기록하기

단계가 완료되면 세션 푸터나 텔레메트리에서 실제 토큰 수를 확인하여 id를 통해 다시 전달하세요.

$ precc predict --record 42 6300
Recorded actual=6300 tokens for prediction id=42.

trained-v1 학습하기

닫힌 예측이 최소 열 개 이상 있으면, log10(actual)을 log10(설명 길이)와 원-핫 범주 더미에 대해 trained-v1 릿지 회귀로 적합시킵니다. 적합은 닫힌 형태(ridge λ=1 정규방정식에 대한 Cholesky 분해)이며 밀리초 단위로 실행됩니다.

$ precc predict --train
Trained trained-v1 on 22 closed predictions (λ=1).
  Model file : ~/.local/share/precc/predict_model.json
  Confidence : 0.50
  Intercept  :  +1.0016
  log_desc   :  +1.2339
  Categories :
    unknown       +0.4811
    doc           +0.4474
    measurement   +0.3422
    test          +0.1071
    refactor      +0.0326
    feat          +0.0071
    fix           -0.1096
    chore         -0.3063

학습 후에는 모델 파일을 제거하거나 교체할 때까지 모든 새로운 precc predict 호출이 자동으로 trained-v1을 사용합니다. 이전 예측은 원래의 model_version을 유지하므로 시간에 따른 예측기를 비교할 수 있습니다.

예측기 정확도 확인

precc predict --eval은 전체 및 카테고리별 평균 절대 백분율 오차(MAPE)를 보고하며, 닫힌 예측(예측값과 실제값이 모두 있는 행)에 대해서만 계산됩니다.

$ precc predict --eval
Predictions logged   : 30
With actuals (closed): 22
Mean predicted       :     1483 tokens
Mean actual          :    47238 tokens
MAPE (statistical)   :     76.4%

By category:
  category        n   predicted      actual    MAPE
  feat            6        4605        5250   26.2%
  unknown         4        1597       30526   52.6%
  test            4         924       38900   56.4%
  ...

최근 예측 목록 보기

precc predict --list는 최근 행을 역시간 순서로 표시합니다. 열린 행(실제 값 없음)은 닫힐 준비가 된 상태입니다.

$ precc predict --list --limit 5
id    ts                   category       predicted     actual  conf description
30    2026-05-09 09:40:51  feat                5348          -  0.50 Run the synthetic-fleet pilot...
29    2026-05-09 08:56:48  test                1050          -  0.60 Train predictor: trained-v1...
28    2026-05-09 07:44:18  test                 915     150000  0.60 Implement minimal task-12...

왜 실제 시간이 아니라 토큰인가

시간 추정은 사후에 측정할 수 없으며 머신이나 세션 간에 합성되지 않습니다. 토큰 수는 결정적이고 비교 가능하며, 닫힌 루프마다 레이블이 지정된 데이터셋을 확장해 예측기를 개선합니다. 오라클의 핵심은 추정을 추측 게임에서 측정으로 바꾸는 것입니다.

데이터가 저장되는 위치

모든 예측 데이터는 사용자의 컴퓨터에 로컬로 저장됩니다. 어떤 것도 업로드되지 않습니다.

~/.local/share/precc/
├── metrics.db                — predictions table (oracle DB)
└── predict_model.json        — trained-v1 coefficients (after `--train`)