JEV - 呪文ではなく、閉じた問いを設計する

真偽、選択、段階が言語として足りるのは、業務を互いに邪魔しない閉じた問いに分け、状態を物語より先に圧縮したときです。クーポンを出すかは、コードのしきい値に残します。

JEV - 呪文ではなく、閉じた問いを設計する

共著者:folkbench.com (Folkbench は、AI API、モデルサービス、関連サイト向けの、検証できる評価・選定プラットフォームです。公開されたサービス情報、価格、可用性、レイテンシ、証拠の期間をもとに、利用者が経路を比較して選べるようにします。)

この一連は、十篇です。

指示の仕事の前半は、詩学でした。安定した JSON を得るために、人は役割を書き、脅しを書き、例をいくつか書き、XML を書きました。それは、無限の token の組み合わせの中の囲い込みでした。Jev はその囲い込みを取り消します。解空間は推論の前に閉じます。設計するのは、よりよい呪文ではありません。状態と、互いに邪魔しない閉じた問いがいくつかです。真偽、選択、段階が言語として足りるのは、業務をこの三つの形に分ける気があるときだけです。

囲い込みから質問票へ

[ generative ]
prompt (role, examples, format restraints) → infinite tokens → text that can drift

[ Jev ]
state + closed questions (Noul / Choice / Score) → a finite set → one distribution

三つの問いは、聞いてよいことを言い切ります。

  1. 真偽、Noul。欲しいのは「はい」の確率で、しきい値を試すために使います。しきい値を越えたかはコードが決めます。空値ではありません。
  2. 単一選択、Choice。選択肢はあらかじめ固定し、多くて 255 です。各選択肢には、何を指すかを書きます。意図と振り分けに使います。
  3. 段階、Score。2 から 10 の段を、低い方から高い方へ具体的な場合として書きます。程度に使います。新しい類を発明するためには使いません。

形式だけが仕事だった指示は、これで失効します。残る技は、状態をどう圧縮するか、そして大きな問いをどう分けるかです。

状態は物語に勝たなければならない

状態は物語を聞きません。原則は、飾りを落とし、出来事の順を残し、事実を残すことです。

利用者が離れるかを問う生成式の書き方は、よくこうなります。

あなたは上級のサポート担当です。プロフィールと対話を読み、解約したいかを判断し、理由を説明し、JSON を出してください。プロフィール:Zhang San、VIP3、登録から 2 年。利用者は、機能がまた壊れ、データが消えたと言います。サポートは、修理中だと言います。利用者は、もういい、返金の方法を教えてくれ、と言います。

問題は役割の文と埋め草です。モデルは「あなたは専門家だ」に注意を割き、出力は「もういい」に引っ張られます。

Jev が食べるのは、圧縮された状態です。

{
  "user_profile": {"tier": "VIP3", "tenure_months": 24},
  "last_event": {"type": "system_error", "impact": "data_loss"},
  "dialogue_history": [
    {"role": "user", "intent": "complain", "content": "feature crashed, data lost"},
    {"role": "agent", "intent": "apology", "content": "fix in progress"},
    {"role": "user", "intent": "churn_explicit", "content": "asks for a refund and says they will stop"}
  ]
}

元の対話は一行残してよいですが、意図と影響は自分の欄に置きます。モデルが読むのは状態の木であり、作文ではありません。

一つの業務の問いを三つに分ける

「50 元のクーポンを出すべきか」は、一つの閉じた問いではありません。中に意図、怒り、不正、費用が重なっています。Jev では一発で当てると失敗します。直交する三つの問いに分け、クーポンの方針はコードに残します。

state ─┬─ Choice   primary intent
       ├─ Score    negative degree, rungs 1 to 5
       └─ Noul     does this look like farming coupons

意図

Choice。空間は、技術的な質問、製品の提案、障害の苦情、悪意のある請求です。題幹が問うのは、この回の主たる意図だけです。払うべきかは問いません。

[State]
{ ...compressed state... }

[Question]
From the dialogue, which class is the primary intent of this turn.

程度

Score。段 1 は疑問か軽い不満です。段 3 は明確な不満で、説明を求めます。段 5 は極端な感情か、返金または解約がすでに卓上にあることです。裸の「1 から 5」を渡してはいけません。各段を場合として書きます。

[State]
{ ...compressed state... }

[Question]
Score the negative degree on these rungs.
1: a question, or a mild complaint
3: a clear complaint that demands an explanation
5: extreme emotion, or a refund or closure already requested

はいか、いいえか

Noul。直近 30 日の請求回数を状態へ入れ、この回がクーポンの不正な刈り取りに合うかを問います。戻るのは確率です。しきい値はコードに書きます。

[State]
{ ...state, plus claim count for 30 days... }

[Question]
Historical claims are greater than 3, and the impact of this incident is low. Does this turn match coupon farming.

コードが受け取るのは分布だけ

下流は、壊れ得る JSON の文字列をもう解析しません。三つの結果は、それぞれ数か表です。業務の条件は関数の中に残します。

intent = jev.choice(
    state=user_state,
    options=["tech_support", "feedback", "complaint", "malicious"],
)
anger = jev.score(state=user_state, rungs=5)
fraud = jev.noul(state=user_state_with_history)

def handle_coupon(intent, anger, fraud):
    if fraud.p_yes >= 0.9:
        return "DENY_AND_HANDOFF"
    if intent.top == "complaint" and anger.expected >= 4:
        return "ISSUE_50_COUPON"
    return "STANDARD_APOLOGY"

モデルを置き換えても、出力の形はこの三つです。形式の崩壊は、故障の種類ではなくなります。決定性は「モデルは決して間違えない」にはなりません。決定性とは、間違えてもあなたが書いたマスに落ち、分岐はなお試せる、ということです。

修辞は退場する

観点 生成の指示 Jev
技 文体、例、形式の呪文 業務を分ける、状態を圧縮する、離散空間を描く
解空間 開いている 閉じている:Noul / Choice / Score
安定 措辞と温度 構造。出力は生まれながら分布である
デバッグ 形容詞を直し、調子を足し、例を足す 状態の欄を直し、問いが直交するまで分ける

真偽、選択、段階が言語として足りるのは、「次に何をすべきか」をこの三つへ分けられるちょうどそのときです。分けられない一区切りは、この言語の失敗ではありません。関節に入るべきではありません。話せるモデルか、人に残します。

シリーズ