質問の設計
Jev は指定された選択肢の範囲内でのみ回答するため、質問と選択肢の設計が判定の正確性に直接影響します。このページでは、本番導入前に一つずつ確認すべき設計の要点を示し、返却結果の各フィールドの意味を説明します。
設計の要点
1. 選択肢はすべてのケースを網羅する。 これは誤判定の最も一般的な原因です。選択肢が不完全な場合でも、Jev はその中から 1 つを選択し、信頼度が高くなる場合もあります。そのため、この種の誤りは信頼度では検出できません。
実測:billing(charges, invoices, refunds)と technical(outages, errors, integration issues)の 2 つの選択肢のみを指定し、Will it rain in Shanghai tomorrow? を入力したところ、3 回連続で technical が返され、信頼度は 0.96–0.98 でした。other(none of the above)を追加すると、3 回とも other が返され、信頼度は 1 でした。
2. すべての選択肢と段階に説明を記述する。 description は単語 1 つよりも範囲を明確に定義できます。たとえば billing に「請求、請求書、返金」と記述することで、モデルは「請求書の発行内容の誤り」をこの選択肢に分類できるようになります。
3. 1 つの質問では 1 つの事項のみを判定する。「緊急であり、かつ支払いに関係するか」は 2 つの predicate に分割し、同じリクエストに含めてください。
4. すべての質問に name を設定する。 設定しなくてもリクエストは成功しますが、返される回答に name が含まれず、順序でしか対応付けられないため、質問が多い場合に誤りが生じやすくなります。
5. 複数の質問を同じリクエストにまとめる。 同一リクエスト内の質問は同一の入力を共有し、入力は 1 回分のみ課金されます。実測では、1 回のリクエストに 60 個の質問を含めた場合の所要時間は約 0.9 秒、質問 1 つの場合は約 0.6 秒でした。
返却結果の説明
{
"type": "choice",
"name": "team",
"choice": "billing",
"confidence": 0.85,
"probabilities": [
{ "value": "billing", "probability": 0.9 },
{ "value": "technical", "probability": 0.1 },
{ "value": "other", "probability": 0 }
]
}choice:確率が最も高い選択肢であり、判定結果です。probabilities:各選択肢の確率であり、合計は 1 です。confidence:今回の判定の信頼性を 0–1 で表します。2 つの選択肢の確率が近い場合でもchoiceは結果を返しますが、confidenceは低くなります。score(score タイプ):各段階の確率で重み付けして算出した値であり、段階は 0 から番号付けされます。結果は段階の間の値になる場合があります。たとえば 1.43 は第 1 段階と第 2 段階の間で、第 1 段階に近いことを表します。probability(predicate タイプ):回答が「はい」である確率です。predicate は信頼度を個別に返しません。
同じ入力で複数回呼び出すと、確率と信頼度にはわずかな変動が生じます(実測では、同じチケットの信頼度が 0.56–0.61 の間で変動しました)。そのため、しきい値は結果の境界値付近に設定しないでください。