概要 / signal

Confidence

答えが「何を」なら、confidence は「それで動いてよいか」。Choice と Score の答えに必ず付いてくる 0〜1 の値で、モデルが正直に「よく分からない」と言うための仕組みです。

confidence は、確率分布の「形」を1つの数にしたもの

Choice と Score の答えには probabilities(選択肢やレベルにわたる確率分布)が含まれます。その分布が1つに集中していれば確信が高く、散らばっていれば低い。confidence はその形を 0〜1 の1つの数に要約した統計量で、TypeSafe が計算して返してくれます。

集中した分布 → confidence 0.88
frustrated0.92
angry0.08
calm0.00
1位の確率 0.92 と、confidence 0.88 は別の数。confidence は分布全体の形から出る。
散らばった分布 → confidence 0.16
exchange0.37
refund0.29
replacement0.24
information0.10
1位は exchange だが、どの選択肢も明確な勝者ではない。
confidence低いときに多い原因
Choiceあり(選択肢にわたる分布から)どの選択肢も明確に勝っていない。選択肢が重なっている、または当てはまるものがない
Scoreあり(レベルにわたる分布から)レベルが曖昧、多次元を1問で測っている、state に情報が足りない
Noulなしnoul の値そのものが確率。0.5 付近が「不確か」
既定の confidence に縛られないconfidence は多くの用途に合う便利な既定値ですが、その定義に固定されるわけではありません。probabilities が丸ごと返ってくるので、用途に合った別の指標(1位と2位の差など)を自分で計算できます。

「分かりません」は有用なシグナル:3段階の行動設計

人でも機械でも、正直に不確かさを表明できない知的システムは信頼できません。出発点としては、confidence を3つの帯に分け、それぞれ別の振る舞いをさせるのが定石です。

高い confidence → 自動で実行モデルの読みは明確。人を介さず進める。
中程度 → 慎重に進める妥当な答えだが確実ではない。ユーザーに確認する、レビュー用にフラグを立てる、追加情報を集める。
低い → 実行しない人に回す、聞き返す、別システム(推論モデルなど)にフォールバックする。
境界をどこに引くかは、間違えたときの代償で決まります。

しきい値は1つではない:リスクに応じて変える

音声バンキングの例です。同じシステムの中でも、残高照会と送金承認では、間違えたときの被害がまるで違います。意図と confidence を動かして、どの関数が呼ばれるか確かめてください(しきい値は公式パターンの値)。

判定された意図(intent.choice)
0.72
00.60.851 人に回す(全操作共通の下限) 低リスクのみ実行 高リスクも実行
confidence-gated routing公式パターンより
action = response.answers["intent"]

# どの操作でも、confidence が 0.6 未満なら人に回す
if action.confidence < 0.6:
    route_to_support_agent(account_id)

elif action.choice == "check_balance":
    # 低リスク。0.6 あれば十分
    show_balance(account_id)

elif action.choice == "approve_transfer":
    if action.confidence > 0.85:
        # 高リスクだが高確信。自動実行してよい
        approve_transfer(account_id)
    else:
        # 高リスクで中程度の確信。先に意図を確認する
        ask_user_to_confirm("Just to confirm: you would like to approve this transfer, is that correct?")

else:
    route_to_support_agent(account_id)

0.6 の下限が「本当に不確かなもの」をすべて受け止め、その上で操作ごとに固有のしきい値を置く。リスク許容度をコードが表現している、という点が重要です。

読み違えやすい点

confidence はワークフロー全体の正しさではない

分布の集中度を要約しているだけ。「この答えで行動してよい」という許可でも、答えが正しいという保証でもない。

低い confidence が常に問題とは限らない

許容できる選択肢が複数あれば、確率は自然に散らばる。害のない好みの選択なら、confidence が低くても結果を捨てる必要はない。

使わない分岐の不確かさは無視する

投機的に聞いた質問(例:配送の分岐に入らなかったときの shipping_issue)の confidence が低くても、気にしなくてよい。

Score は score と confidence を両方見る

インテント・ルーティングの例では、苦情の複雑さスコアが高いまたはその confidence が 0.5 未満なら人に回す。「複雑さが分からない」も人に回す理由になる。

しきい値の決め方

1保守的な値から始める自動実行の範囲を狭く、人に回す範囲を広く
2自分のデータで測るconfidence と正答率の関係をプロットする
3操作ごとに調整する間違えたときの代償が大きい操作ほど高く
4観察して見直す運用結果を見ながら境界を動かす
正しいしきい値は、ドメインと、その用途でのモデルの性能に依存します。クックブックに出てくるしきい値やデモの結果は、普遍的なルールではなく、評価の出発点として扱ってください。