ふくふくHukuhuku LLC
EP.61Toolbox 11分公開:

Jevの3択から数値を探す「jev-bisect」。仕組みと12条件の動作確認

Jevに「大きい・小さい・一致」を繰り返し尋ねるjev-bisectがPyPIに登場。APIを呼ばない教材で、数値探索の流れと誤比較・範囲外・回数上限の挙動を確かめます。

#Jev#jev-bisect#Python#二分探索#判断モデル
執筆 / 監修
松尾 亮合同会社ふくふく 代表社員

データ基盤・データパイプライン構築 / BI / 生成 AI 活用支援を専門とするエンジニア (28 年)。 本記事は AI 利用ポリシーに基づき、生成 AI の補助で執筆 → 人間が監修・編集して公開しています。

プロフィール詳細
シェア

「大きい・小さい・一致」の3択を繰り返せば、AIから数値を取り出せる。そんな仕組みのが、2026年10月9日3時38分36秒(日本時間)にPython向け配布サイトでv0.1.0の配布を始めました。新しいAIモデルではなく、へ比較を尋ねながら候補を絞る道具です。PyPIの配布記録

編集部はこの配布版を手元で動かし、応答を人工的に決めた12条件を確認しました。正しい比較では62へ到達する一方、誤った比較と「一致」を返すと、24でも正常終了しました。これはライブラリの制御を確かめた結果です。JevのAPIは呼び出しておらず、数値問題の正答率・日本語品質・利用料金は実測していません。

業務で役立つのは、この違いを確かめてから組み込むことです。例えば申込数を読み取る試作なら、返答が数値だったかに加えて、元の台帳と一致したかを別々に記録します。その確認を再現する教材も用意しました。

新しいのはモデルではなく、数値を探す手順

jev-bisectはから使うです。今回のニュースはv0.1.0の初配布で、ソースの履歴は10月6日からあります。今朝の紹介投稿を、開発そのものの開始日として扱うものではありません。公式リポジトリ

使う側が質問と下限・上限を渡すと、プログラムが候補の数値を作ります。Jevの役割は、その候補より答えが大きいか、小さいか、一致するかを選ぶことです。候補の更新にはを使い、回答が「一致」になるまで続けます。

担当行うことそれだけでは分からないこと
利用者質問、範囲、刻み幅、上限回数を決める正解がその範囲にあるか
jev-bisect次の候補を作り、比較の履歴を残す比較の意味が正しいか
Jev大きい・小さい・一致を選ぶ返答を業務上の確定値にしてよいか
業務側の確認元資料や既知値と照合する未確認の質問にも同じ品質で使えるか

実際のJev接続では、公式を使います。ただしjev-bisectは別の開発者によるライブラリであり、TypeSafe本体の新機能と同一ではありません。モデルと周辺ツールの役割は、Jev系の比較記事も参照してください。

62へ進む手順を、通信なしで一段ずつ見る

最初に確認する値を62、範囲を0〜100、刻みを1と決めます。初回の候補は50です。「大きい」なら50を除外して51〜100へ、「小さい」なら次の候補75を除外して51〜74へ進み、候補は62になります。

この範囲更新だけなら、advance関数で確認できます。以下のコードは比較の答えを人が指定しており、Jevへの通信を行いません。編集部でもv0.1.0で実行しました。固定版の実装

Python
from jev_bisect import advance
state = advance("higher", min=0, max=100)print(state.to_dict())# {'max': 100, 'min': 51, 'last_guess': 75}
state = advance("lower", **state.to_dict())print(state.last_guess)  # 62

ここで「比較が正しい」という条件を外すと、見えるものが変わります。初回の50に対して誤って「小さい」と答えれば、残る範囲は0〜49です。正解62はその時点で候補から落ち、後から正しい比較を続けても元には戻れません。

これは二分探索を採用したこと自体の不具合ではありません。手順が依存する比較を、間違える可能性のあるモデルへ渡すときの設計上の境界です。数値を返す形式だけでなく、どの比較を信じて候補を捨てたかまで見られることに、この教材の意味があります。

人工応答で12条件を確認。正常終了でも正解とは限らない

編集部ではmacOS 27.0のARM64環境、Python 3.12.10、jev-bisect 0.1.0、typesafe-sdk 0.7.2を使いました。入力と期待結果を10月9日7時10分45秒に固定してから実行しています。実物のライブラリへ、決めた比較だけを返すを渡し、通信するクライアントの生成とソケットの利用も禁止しました。

探索全体を動かす8条件と、範囲更新だけを見る4条件は、すべて事前の期待結果に一致しました。「12問をAIが正解した」という意味ではありません。 故意に誤った答えを返す条件も含む、実装の検査です。

条件実際の候補の推移観測した終了
正解62、比較は正しい50 → 75 → 623回で62を返した
最初だけ誤って「小さい」50 → 24 → 37 → 43 → 46 → 48 → 497回目の後、探索不能
誤った「小さい」の次に誤った「一致」50 → 242回で24を返した。既知値62と不一致
正解12、範囲は0〜105 → 8 → 9 → 104回目の後、探索不能
正解62、上限2回50 → 75回数上限で停止
正解0.3、0〜1を0.1刻み0.5 → 0.2 → 0.33回で0.3を返した

特に見たいのは3行目です。人工応答のconfidenceを0.1にしても、「一致」なら結果が返りました。v0.1.0はその値を履歴に保存しますが、低い場合に自動保留する条件は持っていません。今回の0.1は編集部が置いた値で、Jevが実際に出したではありません。終了条件の実装

探索不能も、原因まで確定する診断ではありません。今回の表では、範囲が狭い場合と、途中の比較を誤った場合が同じ種類の例外になりました。失敗時は範囲を自動で広げ続けず、元資料・質問・比較履歴を人が見直す設計が向いています。

刻み幅を細かくしても、モデルの正しさは上がらない

precision=0.01は0.01刻みで候補を作る指定です。「誤差が必ず0.01以下になる」という約束ではありません。候補はゼロを基準にした刻みの倍数なので、下限に0.001を指定しても、そこから0.01ずつ足す動作にはなりません。

教材では0.001〜0.019を0.01刻みにすると候補が0.01だけになること、0.001〜0.009では候補がなく、比較を一度も呼ばずに探索不能になることも確認しました。小数点以下の桁数を増やす前に、必要な単位と、範囲に候補が残るかを決めたいところです。

回数にも上限があります。v0.1.0の既定は20回で、設定できるのは1〜20回です。初回候補の評価も1回に数えます。細かい刻みと広い範囲を組み合わせれば、正しい比較が続いても指定回数内に終わらない場合があります。設定と例外の定義

台帳と照合する小さな試作から使う

試すなら、答えが分かっている架空の申込台帳を用意し、抽出した人数の候補を人が確認する工程に置きます。「申込62件、取消7件、参加予定55人」のような資料では、何を人数として尋ねるかによって正解が変わります。「最終的な参加予定人数」と対象を先に決め、期待する55を別欄へ保存します。

ただし、申込数と取消数が既に別の数値欄へ入っているなら、62 - 7で足ります。請求額、税額、在庫数など、入力と式が確定している処理をモデルの比較へ置き換える利点はありません。jev-bisectを検討する余地は、文章の読み取りと数値の探索を組み合わせる試作にあります。その用途での性能は、今回の人工応答の検査では確認していません。

保存する項目確認したいこと
元資料と質問同じ人数・期間・単位を尋ねているか
期待値と根拠人がどの記録を正解にしたか
範囲・刻み・上限回数正解を候補に含められるか
各回の候補・選択・confidenceどの段階で候補を失ったか
終了状態と返却値停止したかと、値が合っていたかを分ける
モデルの版と利用量次の試験と同じ条件か、費用はいくらか

確認後に増やしたいのは、成功した似た文だけではありません。取消の記載が二重にある、単位が人と組で違う、数字そのものが書かれていない、といった条件も別に残します。そもそも確定できない資料を、無理に一つの数値へ変えない運用が必要です。

教材を再実行する。実際のJev接続は別の工程

再現用教材をダウンロードし、展開先で次を実行します。最初の導入時は配布パッケージを取得する通信が発生します。その後のrun_checks.pyは人工応答だけを使い、キーの入力や設定は必要ありません。

Bash
python3 -m venv .venv.venv/bin/python -m pip install --only-binary=:all: -r requirements.txt.venv/bin/python run_checks.py --output my-results.json

これはMac・Linux向けのコマンド例です。Windowsでは実行ファイルの場所を.venv\Scripts\python.exeへ読み替えます。編集部で実行した環境はMacのみです。教材には固定入力、期待結果、生の模擬呼出記録、依存版、読者用の空の記録例を同梱しました。既存の結果ファイルを上書きしないため、再実行時は出力名を変えます。

ライブラリはPython 3.10以降を対象とする初期版で、で配布されています。一方、実際にJevへ接続するにはアカウントとキーが必要です。実接続時は、質問と各回の候補・探索範囲がTypeSafe側へ送られます。2026年10月9日の公式モデル表ではJev 1.13は入力100万当たり0.042米ドル、出力は無料です。比較を繰り返した各呼出の入力を合計するため、探索1件をAPI1回分の費用と考えないようにします。配布条件・Jevの料金とモデル

Jevの公式案内では英語が主な学習言語で、日本語を含む他言語を同じ品質とはしていません。本教材に日本語の質問文があっても、人工応答がその文を理解したわけではありません。実接続を試す際は日本語の読み取りを別に評価し、元資料との照合を外さず進めます。言語条件

よくある質問

無料で、Jevの数値精度まで試せますか?
同梱教材はAPI課金なしで探索の制御を確認できます。Jevの回答は取得しないため、モデルの数値精度は分かりません。実際の接続にはキーと提供元の利用条件・料金が別途必要です。
exactlyで終われば、正しい答えですか?
いいえ。v0.1.0はその選択で結果を返しますが、元資料との一致を独立に検証しません。人工応答の検査では、正解62に対して24を返す正常終了を再現しました。
precision=0.01なら、金額計算にも使えますか?
刻み幅を0.01にできるだけで、金額の正しさや丸め規則への適合を保証しません。入力値と計算式が分かっている金額は、通常の計算処理で扱う方が適切です。
シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp