confidence は、確率分布の「形」を1つの数にしたもの
Choice と Score の答えには probabilities(選択肢やレベルにわたる確率分布)が含まれます。その分布が1つに集中していれば確信が高く、散らばっていれば低い。confidence はその形を 0〜1 の1つの数に要約した統計量で、TypeSafe が計算して返してくれます。
exchange だが、どの選択肢も明確な勝者ではない。| 型 | confidence | 低いときに多い原因 |
|---|---|---|
| Choice | あり(選択肢にわたる分布から) | どの選択肢も明確に勝っていない。選択肢が重なっている、または当てはまるものがない |
| Score | あり(レベルにわたる分布から) | レベルが曖昧、多次元を1問で測っている、state に情報が足りない |
| Noul | なし | noul の値そのものが確率。0.5 付近が「不確か」 |
既定の confidence に縛られない
confidence は多くの用途に合う便利な既定値ですが、その定義に固定されるわけではありません。probabilities が丸ごと返ってくるので、用途に合った別の指標(1位と2位の差など)を自分で計算できます。「分かりません」は有用なシグナル:3段階の行動設計
人でも機械でも、正直に不確かさを表明できない知的システムは信頼できません。出発点としては、confidence を3つの帯に分け、それぞれ別の振る舞いをさせるのが定石です。
高い confidence → 自動で実行モデルの読みは明確。人を介さず進める。
中程度 → 慎重に進める妥当な答えだが確実ではない。ユーザーに確認する、レビュー用にフラグを立てる、追加情報を集める。
低い → 実行しない人に回す、聞き返す、別システム(推論モデルなど)にフォールバックする。
しきい値は1つではない:リスクに応じて変える
音声バンキングの例です。同じシステムの中でも、残高照会と送金承認では、間違えたときの被害がまるで違います。意図と confidence を動かして、どの関数が呼ばれるか確かめてください(しきい値は公式パターンの値)。
判定された意図(intent.choice)
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観察して見直す運用結果を見ながら境界を動かす