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。