jev-latest
TypeSafeの判断モデルです。テキストを生成するのではなく、テキストやJSONに関する型付きの質問に、選択肢の選択、尺度での評価、「はい・いいえ」と確率で答えます。ルーティング、問い合わせの仕分け、モデレーション、スコアリングに適し、一回のリクエストのすべての質問を並列に評価します。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
Jevは、TypeSafeのフラッグシップで、新しいクラスSystem Oneの最初のモデルです。テキストを書くのではなく、プログラムがすぐに使える判断を素早く行います。状態(state)としてテキストまたはJSONを、さらに質問の集合を渡すと、校正された確率を持つ型付きの値を返します。
言語モデルが人に向けて言葉を書くのに対し、JevはTypeSafeによるとコードに近いものです。応答は、コードが必要とする形ですぐに返り、高速で、指定した選択肢の外の値は一つもありません。繰り返しのリクエストで安定した応答を返すよう設計されています。
System Oneと言語モデルの違い
- 生成しません。 Jevはユーザーへの応答やコードを書かず、推論の過程も説明しません。三つの質問タイプのいずれかを通じて、可能な応答を自分で定めます。
- 校正された判断を学習しています。 TypeSafeは、RLCD(Reinforcement Learning for Calibrated Decisions)で学習させています。確率を実際の結果に合わせ、不確実さを反映します。確率0.8の多数の応答のうち、約80%が正しいことを目指します。校正は、大きなサンプルの特性であり、個々の応答の正しさの保証ではありません。
- 学習目標が異なります。 チャットモデルは人に好まれるよう学習します(RLHF)。TypeSafeの観察によると、これは迎合や、自信があるように聞こえる誤りを促します。RLHFの共著者の一人、ディオゴ・アルメイダは、TypeSafeの共同創業者です。
名前は、ダニエル・カーネマンの『ファスト&スロー』の「システム1」に由来します。素早い直感的な判断と、ゆっくり熟考する「システム2」の対比です。Jevは、素早く狭い範囲の判断を行うために作られています。
三つの質問タイプ
質問は状態に関する一つの判断であり、応答は、コードがしきい値と比較したり、並べ替えたり、次へ渡したりする値です。
- Choice — 選択肢の選択。 問い合わせの担当部門、商品のカテゴリ、コード断片の言語などです。選択肢は「選択肢 → 説明」の辞書で、255件までです。応答には、選択した
choice、全選択肢のprobabilities(合計1)、確信度のconfidenceがあります。すべてのケースを一覧で網羅できない場合は、「その他」や「どれにも該当しない」を追加します。 - Score — 尺度での評価。 不具合の重大度、顧客の苛立ち、スキルレベルなど、自分で説明した順序付きの尺度上の位置です。低い方から高い方へ2〜10段階を指定します。モデルは、番号や隣の段階を見ずに、各段階を個別に評価します。応答には、
score(各段階の番号と確率の積の和で、段階の間の値になる場合があります)、段階の説明を持つlegend、probabilities、confidenceがあります。 - Noul — はい、またはいいえ。 命題が正しいかを判断します。応答の
noulは「はい」の確率で、0〜1です。1に近ければ確信のある「はい」、0に近ければ確信のある「いいえ」、0.5付近では判断が揺れています。独立したconfidenceはなく、一つの数値が応答全体を表します。任意のcriteriaで、「はい」と「いいえ」の条件を具体化します。
選び方は、順序のない既知の選択肢ならchoice、連続した幅の段階ならscore、確率自体が重要な純粋な「はい・いいえ」ならnoulです。Noulの0.5は、「はい」と「いいえ」が同じ確率という意味であり、「中程度」ではありません。程度を測るのはscoreです。二つのタイプが適する場合は、コードがすぐ動作できる方を選びます。choiceは分岐、scoreはしきい値、noulはifです。
一回のリクエストで、タイプを混在できます。応答は常に自分の選択肢に制約され、ほかの質問には依存しません。ほかの応答を変えずに、質問を追加・削除できます。
状態
状態は、顧客のメッセージ、文書の一部、データベースの記録、アプリケーションの状態など、モデルが評価する対象です。
- 文字列 — メッセージ、記事、抜粋など、テキストが一つの場合。
- オブジェクト — 名前付きのフィールド、関連する記録、アプリケーションの状態。TypeSafeは、各部分に分かりやすい名前があるため、大半のリクエストでオブジェクトを推奨しています。
- 配列 — メッセージや記録の系列。
専門家に渡す素材のように準備します。比較が必要な判断では、やり取り、注文、返品ルールを一緒に入れます。内容は状態に、判断は質問に置きます。質問が状態の一部についてのものなら、ticket.messages[0].textのように、バッククォートでそのパスを示します。
質問の指定方法
- 一つの質問に一つの素早い判断。 よい質問は、必要な文脈を持つ詳しい人が一秒で答えられるものです。例えば「このメッセージに緊急性はありますか」です。「メッセージを分析して、何をするか決めてください」は、すでに遅い推論であり、簡単な質問に分割する必要があります。
- 質問全体は
instructionsに。refund_requestedなどの質問キーは、自分のコードだけに必要で、モデルには渡されません。 - 同じ状態へのすべての質問を一回のリクエストで。 モデルは並列に評価します。TypeSafeによると、質問を増やしても応答時間はほとんど増えず、その質問のトークン分だけの費用です。「念のため」の質問は、ほぼ追加費用なしで行えます。どの応答が必要かは、コードが決めます。
- 複雑な判断は分割。 「スタートアップの申請を評価して」の代わりに、市場規模、技術的な実現可能性、競合との違いを別々に質問し、重みを使ってコードで結果を計算します。優先順位が変わったら、質問を書き直すのではなく、重みを変更します。
- 依存する質問は二回目のリクエストで。 同じリクエストの応答は、互いのコンテキストにはなりません。最初の応答なしでは組み立てられない場合にだけ、二回目が必要です。データを追加で読み込む、次の質問の選択肢を選ぶなどのケースです。
- 長い質問はオブジェクトで。
instructionsとcriteriaは通常文字列ですが、オブジェクトや配列にもできます。一つのフィールドに質問、ほかのフィールドにデータを置きます。一つの質問で履歴書とデータベースの記録を照合するなどの場合に便利です。
確信度
choiceとscoreのconfidenceは、0〜1で、確率が一つの応答にどれほど集中しているかを示します。1は一つの選択肢に全確率が集中し、0はすべてに均等に分布しています。scoreでは、隣の段階は、遠い段階より確信度を下げにくくなります。noulでは、確信度は値そのものです。0.5から離れるほど、応答が確かなものになります。
TypeSafeは、三つの範囲を推奨しています。
- 高い確信度 — 自動で動作します。
- 中程度 — 例えばユーザーに確認を求めるなど、慎重に動作します。
- 低い確信度 — 人に引き継ぐ、リクエストを具体化する、より強力な推論モデルなどの代替経路を接続します。
誤りの費用が高いほど、しきい値を厳しくします。読み取りより、取り消せない動作の方が高いしきい値です。応答は何を選ぶかを、確信度は動作すべきかを示します。確信度と精度を比較し、自分のデータでしきい値を選びます。
Jevを組み込んだシステムの作り方
Jevは、自分で次の手順を選び、各サイクルで進路を誤る可能性があるエージェントではなく、コードが処理を制御し、モデルが狭い意味の問いに答えるプログラムに向けられています。TypeSafeによる設計の八つの手順です。
- コードでできることはコードで行います。信頼性が高く、低費用です。
- 状態には、現在の質問に必要なものだけを入れます。新しい事実は、モデルの記憶ではなく、自分の知識ベースから取得します。
- 状態を構造化します。入れ子のJSONを使い、曖昧さを減らせる場合、質問には必要なフィールドのパスをバッククォートで示します。
- 質問は、最も狭く具体的なものにします。TypeSafeによると、これがおそらく最も重要なルールです。広い質問は、一つの応答に複数の判断を隠します。
- 質問を構造化します。質問自体を短くし、説明、例、自分のデータベースの値を、長い一つの文字列ではなく、
instructionsまたはcriteriaオブジェクトの隣接フィールドに置きます。 - 一つのリクエストで、同じ状態に対する多数の独立した質問を行います。一ドル当たりの有用性が増えます。
- 応答はコードが統合します。ルール、重み付きの和、従来型の機械学習モデルの特徴量として使います。
- 確信度で分岐します。不確かなケースは、人や推論モデルに渡します。
Jevはチャットでもコード補完モデルでもなく、プログラミングのエージェントで言語モデルの代わりにはできません。ただし、素早く校正された応答が必要な場所でJevを呼び出すコードを、エージェントが作成することはできます。
利用分野
- バックグラウンドの自動化 — 人がそばにいなくても、百万回実行する判断。
- リアルタイム — TypeSafeによると、大半のリクエストは約100ミリ秒で実行され、即時の処理やインターフェースに使えます。
- ビッグデータ — 巨大なコーパスの検索、エージェントの作業ログの注釈付け、予測の特徴量。
- ほかのモデルの検証 — リクエスト、抽出、推論、ツール呼び出しにおける、制限の回避、引用の誤り、捏造。
- 検索とランキング — 「質問・候補」のペアの関連性、再ランキング、コンテキストの選別。
- 意図による分岐 — ユーザーが何を望み、単純なロジック、専門モデル、人のどの処理担当が必要か。テーマ、複雑さ、リスクで、どの言語モデルに渡すか決めます。
- 保護の検証 — 言語モデルの入力、出力、ツール呼び出しにおける、埋め込まれた指示、ルール違反、個人情報の漏洩。
- サポート — 問い合わせのテーマと意図、緊急性、苛立ち、離脱リスク、返金の希望、待ち行列。
- モデレーション — 自分のプラットフォームのルールに沿った、有害性、嫌がらせ、スパム、詐欺、危険な助言、個人情報。重大度と確信度で、通過、警告、検証、遮断を選びます。
- 業界 — 保険事故、金融調査、KYC、契約と広告、商品カード、採用、見込み客、ゲーム、リスク、需要予測、知識グラフ、科学レビュー、CIでのコードの意味の検証。
特性
jev-latest— 最新の安定版の別名で、現在はJev 1.13です。応答したバージョンは、modelフィールドに、jev-1.13.0などで示されます。新しいバージョンが出ると別名はそちらに移り、自分で変更しなくても応答が変わる場合があります。バージョンに合わせてしきい値を調整している場合、このフィールドを確認します。- コンテキスト — 状態とすべての質問を合わせ、一回のリクエストで64Kトークンです。状態と最長の質問の合計は32Kまでです。状態は一度だけ読み、それに対するすべての質問を並列に検証します。
- 入力 — テキストのみです。文字列、JSONオブジェクト、テキストの配列を使います。画像、音声、動画にはまだ対応していません。先にテキストに変換します。
- 言語 — 主な学習言語は英語で、現在、最も高い精度が得られます。中国語、日本語、韓国語などのほかの言語も受け付けますが、精度は下がるため、自分のデータで検証します。
- Ailoot APIの料金と請求 — 条件は選択したメソッドによって異なり、そのメソッドのカードに記載されています。
- 調整 — Jevは顧客のデータで追加学習しません。自分の素材は
state、分野のルールはinstructionsとcriteriaに入れます。 - データ — TypeSafeは、顧客のリクエストや応答でJevを学習させないとしています。
Jev 1.13の既知の弱点
TypeSafeは、現在のバージョンの弱点を公開し、次のバージョンで多くを修正するとしています。モデルは速く、校正され、常識に基づく判断に優れていますが、次の点があります。
- 文字どおりに読みます。 暗黙の質問ではなく、書かれた質問に答えます。但し書き、否定、暗黙の条件を文字どおりに理解します。
criteriaに正確な条件や境界ケースを書き、避けられない解釈は二つの文字どおりの質問に分割します。 - 計算機ではありません。 文字、繰り返し、リストの要素数の計算は不確かで、サイズが大きいほど誤りが増えます。コードで数え、候補ごとに一つの質問をします。色は、名前に比べてhexやRGBでは理解が弱くなります。
scoreはしきい値には適しますが、段階の間の正確な数値には適しません。 - 日付と時刻。 どちらの日付が先か、間隔、期間内かの判断は不確かで、特に形式の混在や相対日付で問題があります。choiceで日付の各部分を抽出し(「記載なし」を選択肢に含めます)、コードで比較します。
- 間接的な表現。 二重否定や、性質の性質についての質問は精度を下げます。直接書き、状態の各部分を名前で示します。
- 状態の余分な内容。 無関係なテキストは精度を下げます。コードで除外し、できない場合はnoulの質問で無関係なものを取り除きます。
- 敵対的なテキスト。 モデルは、既定では状態に仕掛けがあると想定しません。埋め込まれた指示や、自分自身の分類に反論するテキストが、応答を変える場合があります。正確な基準を書き、実行前に境界ケースを検証します。
- 矛盾。
instructionsとcriteriaが異なる要求をする場合、例えばnoulの「はい」を「いいえ」と説明すると、精度が下がります。基準は質問の続きです。 - 選択肢の順序。 choiceで最初の選択肢に偏る場合があります。選択肢を並べ替え、応答が変わらないことを確認します。
- 生成。 Jevはテキストを書くよう学習されていません。データの抽出では、正規表現や生成モデルで候補を見つけ、Jevにchoiceで正しいものを選ばせます。
Ailoot · System One POST /v1/systemone jev-latest
jev-latestはじめに
TypeSafeの判断モデルです。テキストを生成するのではなく、テキストやJSONに関する型付きの質問に、選択肢の選択、尺度での評価、「はい・いいえ」と確率で答えます。ルーティング、問い合わせの仕分け、モデレーション、スコアリングに適し、一回のリクエストのすべての質問を並列に評価します。
- 対応する入力
- テキスト
- 結果
- structured
Ailootで利用可能 · 入力とメソッド
Ailoot · System One POST /v1/systemone
- 入力の種類
text- 出力の種類
structured- コンテキスト
- 64,000 tokens
- 出力形式
- json
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 jev-latest | デフォルト— |
フィールドstate | 種類string|object|array | 要件必須 | 値と制限 | デフォルト— |
フィールドquestions | 種類object | 要件必須 | 値と制限 オブジェクトの最小フィールド数: 1 | デフォルト— |
フィールドquestions.<id>.type | 種類string | 要件必須 | 値と制限 noul, choice, score | デフォルト— |
フィールドquestions.<id>.instructions | 種類string|object|array|null | 要件任意 | 値と制限 | デフォルト— |
フィールドquestions.<id>.criteria | 種類object|array|null | 要件任意 | 値と制限 条件: noul:任意でnullを許容するtrue/falseの説明;choice:評価基準のオブジェクト;score:空でない評価基準の配列 | デフォルト— |
フィールドstream | 種類boolean|null | 要件任意 | 値と制限 false, null | デフォルト— |
入力素材の組み合わせ
noul · 必須: state, questions.<id>.type=noul
choice · 必須: state, questions.<id>.type=choice, criteria object
score · 必須: state, questions.<id>.type=score, nonemptycriteriaarray
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータmaterial_types | 仕様text |
パラメータrequired | 仕様model, state, questions |
パラメータoptional_controls | 仕様null |
パラメータcontent_type | 仕様application/json |
ライフサイクル: exact retained published method
メソッドの形式とIDは正確に記載しています。供給元の対応能力とリクエストの受け入れは別です。
料金
Ailootのメソッド料金
POST /v1/systemone- 入力
- ≈$0.000084 / 1K
- 出力
- $0.00 / 1K
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
リクエスト例
Ailoot · System One
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "jev-latest", "state": "", "questions": {"is_urgent": {"type": "noul", "instructions": "Does the supplied customer message express urgency?"}}}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["state"]=text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
結果を受け取って保存
Ailoot · System One
json
完了した結果をすべて保存
返された完全なレスポンス、ファイル、コンテンツ部分をすべて保存してください。
指定された質問ID、確率、凡例に対応する回答をすべて保持してください。nを使う信頼度の式にはn>1が必要ですが、これはAPIの選択肢数に最小値のルールがあると断定するものではありません。
レスポンスのフィールド
| フィールド | 種類 |
|---|---|
フィールドanswers.<id>.type | 種類string |
フィールドanswers.<id>.noul | 種類number |
フィールドanswers.<id>.choice | 種類string |
フィールドanswers.<id>.score | 種類number |
フィールドanswers.<id>.confidence | 種類number |
フィールドanswers.<id>.probabilities | 種類object |
フィールドanswers.<id>.legend | 種類object |
フィールドusage | 種類object |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス400 · invalid_request_error | 条件必須フィールド、素材の表現形式、またはパラメーター値が不正です | 次の手順新しい生成リクエストを送る前に、指定されたフィールドを修正してください。 |
エイリアス
モデルのエイリアス
Ailoot jev-latest
メソッドパスのエイリアス
上記に表示されたメソッドパスを使用してください。
関連する呼び出し用ID
FAQ · jev-latest
- 利用できる入力と結果は何ですか?
POST /v1/systemone·jev-latest:text→structured- リクエストはどの項目を使用しますか?
POST /v1/systemone·jev-latest:model,state,questions,stream- どの制限が適用されますか?
POST /v1/systemone·jev-latest:ctx:64000