Skip to main content

evaluate_choice_with_buf

Function evaluate_choice_with_buf 

Source
pub fn evaluate_choice_with_buf(
    logits: &[f64],
    criteria: &Criteria,
    temperature: f64,
    probs_buf: &mut [f64],
) -> Result<Answer>
Expand description

作業用バッファを活用し、Choice プリミティブの生ロジットから採択候補、確率分布、および複合確信度を算出する。

§概要

  • 呼び出し側から作業用バッファスライス (probs_buf) を受け取ることで、推論バッチ処理における メモリヒープ確保を最小化する。
  • 候補キーの順序付きマップ (Criteria::Map) とロジット列を 1 対 1 で結合する。
  • 候補数 $K=1$ の特異点では、ショートサーキットにより確信度 1.0・確率 1.0 を即座に返却する。
  • 最大確率を与える候補の採択には決定論的タイブレーク規則が適用され、同率最大時は先頭インデックスが採択される。
  • 確信度には、候補数 $K$ に非依存な正規化エントロピーと Top-Margin を統合した 複合確信度スコア $S_{\text{confidence}} = (1.0 - H_{\text{norm}}) \times M(p)$ を採用する。

§引数

  • logits: 未正規化の生ロジットスライス(f64)。
  • criteria: 候補識別子と説明文のマップを保持する評価基準。
  • temperature: 適用する較正温度パラメータ $\tau$。
  • probs_buf: 確率分布書き込み用の作業バッファスライス(logits と同長が必要)。

§戻り値

  • 成功時は Choice 判定が格納された Answer、入力不正時は CoreError。