
2026/09/30 1:25
ジェヴがアローを話したとすればどうなるのでしょうか?
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
TypeSafe AI は、並列サンプリングと確立された確率を備えた強化学習を用いて、自然言語とアプリケーションの状態を信頼性の高い型付けされた意思決定に変換するJevモデルの 출시により、重要なスケーラビリティボトルネックに対処しました。Jev は、JSON API を介して選択肢、スコア、確率、および自信度レベルを返し、これはコードワークフローへの直接統合を可能にします。構造化された高スループットの処理を実現するために、チームは複数の状態を 1 つのリクエストで受け取り、結果を Apache Arrow IPC ストリームとしてストリーミングする Python/JavaScript プロキシサーバーJevaroを開発しました。これは、重い JSON シリアライゼーションオーバーヘッドを取り除きます。Jevaro は、HTTP/2 コネクションプーリング、非同期リクエストウィンドウ、SDK リトライなどの最適化を備えており、バッチ間で入力順序を維持します。テストでは 30,000 の回答に対して推定$0.20のコストで 10,000 リクエストを 21.5 秒(464 states/sec)処理しました。Jev は 3 つの質問タイプをサポートしています:Choice(選択されたオプションとその確率/自信度)、Noul(はい/いいえの確率)、および Score(順序付けられたレベル上の位置)。このシステムは、TypeSafe Python SDK の値と一致させるために、行ごとのオフセットなしで確率(
fixed_size_list、64 ビット浮動小数点)を備えたカスタム Apache Arrow スキーマを使用します。これにより、自信ゲート付きルーティング、意図分析、複合スコアリング、推測的なファンアウトといった確率的ワークフローが、開発者のコードに直接統合されます。Jevaro ライブラリは Python (jevaro) および JavaScript (npm install jevaro) 向けの TypeSafeClient クラスを提供し、ブラウザサポートも含まれています。これらの進歩により、TypeSafe は現在、スケーラブルで費用対効果の高いソリューションを提供しており、数千の回答のコストを数セントに削減しながら、大規模な堅牢な意思決定を実現できます。本文
Jev: TypeSafe AI の型付き決定モデルと Arrow インターフェース
Jev とは
- TypeSafe AI が提供している新たな AI モデルです。
- 入力: 自然言語とアプリケーションの状態(コンテキスト)。
- 出力: 型付きの決定(typed decisions)。コードが直接利用可能な選択肢、スコア、確率を含む JSON 形式で返却されます。
- 位置づけ: Jev の存在は広く知られていない場合がありますが、これは AI の出力をコード内でより使いやすくするための取り組みの一部です。
従来の制約から脱却へ
- 既存のアプローチ(Outlines 他):
ファイルによる制約付きデコーディングを用います。.txt- LLM にスキーマ準拠の出力を「誘導」する手法です。
- TypeSafe のアプローチ (Jev):
- 新しいモデルアーキテクチャ、並列サンプラーを採用しています。
- 「較正された決定のための強化学習」というトレーニング手法を用いています。
- 回答トークンの逐次生成を避け、確率を並列に出力します。
- メリット:
- 一般的な LLM の意思決定ワークフローと比較して、速度とコストにおいて著しい改善が得られています。
Jev パターンによる新ワークフロー
Jev は強力なパターンを実現し、従来の決定論的なパイプラインから確率的なパイプラインへの扉を開きます。
- 投機的なファンアウト (Speculative fan-out):
- 1 回呼び出しで多数の質問(投機的含む)を送り、コード側が関連性を判断させます。
- 信頼度ゲート付ルーティング (Confidence-gated routing):
- 確信度を第 2 の意思決定軸とみなします。Jev が不確かと判断した場合は、コードで異なる経路を選択可能にします。
- 複合スコアリング (Composite scoring):
- 複数の判断次元を一つのスコアに統合します。
- 意図ルーティング (Intent routing):
- ユーザーの意図进行分类し、適切なハンドラへリクエストを転送します。
Apache Arrow と Jev の統合
構造化データのパフォーマンス向上を図るために、JSON の変換コストを削減する Apache Arrow を活用します。
- 目標: JSON の再シリアライズと型付きカラムの再構築を行うことなく結果を消費可能にすること。
Jev の回答モデル化 (Arrow スキーマ)
Jev は 3 つの質問タイプを持ち、それぞれ異なる形状の回答を返します。各タイプは Arrow カラムとして表現されます。
1. Choice(選択)
| 要素 | データ型 | 説明 |
|---|---|---|
| choice | | オプションのインデックス(共有されたラベルへの 1 バイト参照)。 |
| confidence | | 信頼度スコア。 |
| probabilities | | 確率ベクトル(サイズは選択肢の数 $N$)。 |
| metadata | JSON | ラベルリスト例: |
2. NouL (Yes/No 判定)
- data type:
float64 - 内容: 「はい」である確率のみ(信頼度フィールドは別途不要)。
- metadata: なし。
3. Score(スコアリング)
| 要素 | データ型 | 説明 |
|---|---|---|
| score | | スコア値(順序付けられたレベルの位置)。 |
| confidence | | 信頼度スコア。 |
| probabilities | | 各レベルへの確率(サイズはレベルの数 $N$)。 |
| metadata | JSON | レベルの説明例: |
- 技術的特徴:
- Arrow 拡張タイプを用い、セマンティクスを付与しています。
- 固定サイズのプロバビリティベクトルにより、行ごとのオフセット不要で効率的な保存が可能(TypeSafe Python SDK が返す値の精度維持)。
- スキーマメタデータにより、選択インデックスやスコアレベルの意味を再構成可能にします。
アーキテクチャ上の利点
- 消費側のメリット:
、pandas
、Polars
、Databricks
、Snowflake
などが Arrow 形式でデータを処理できます。ClickHouse - 相互運用性: JSON 変換コストを省き、互換性の高いコンシューマはコピーを伴わずに Arrow バッファを利用可能です。
- エコシステムとの整合: Hugging Face Datasets や一般的なデータウェアハウスの HTTP 経由での Arrow クエリ結果取得手法と一致します。
「単一の状態」から「多数の状態」へ:課題と解決
Jev は現在、Arrow 出力をサポートしていませんが、分析層として「ユニットOfWork を全体テーブル化」する目標があります。
現状の制限 (API の問題点)
- リクエスト構造: TypeSafe API は「1 つの状態に対する多数の質問」には最適ですが、「多数の独立した状態に対する同じ質問セット(バッチ)」には対応していません。
- 実装上の課題:
- ライブカスタマ対話などで複数のタスク(意図特定、緊急度スコアリングなど)を一度に行いたい場合、各状態ごとに数千〜数百万回の別々の API 呼び出しが必要です。
- JSON のシリアライズと再パースのオーバーヘッドが発生します。
解決策:Jevaro の構築
これらの課題を回避するために、小型の Python プロキシサーバー Jevaro を開発しました。
Jevaro の機能
- バッチ処理: 複数の状態と共有された質問マップを 1 つのリクエストで受け付けます。
- 並列実行: 各状態で Jev を呼び出し、Arrow IPC ストリームとして結果を返します。
- 順序保証: 結果は入力順序を保って到着し、スキーマを即座に送信して逐次利用可能です。
パフォーマンスチューニング
- ネットワーク最適化: 長寿な HTTP/2 接続プールの再利用、非同同期のリクエストウィンドウ管理、切断時のリトライ機能を実装。
- オーバーヘッド削減: レート制限や負荷へのバックオフ機構を備えつつ、結果の入力順序保持に成功しました。
今後の展望
- 現在の Jevaro は上流の API オーバーヘッドが残ります。
- 期待されるネイティブバッチ API (Arrow ストリーム直接返却):
- JSON 変換と反復的なリクエスト処理を排除し、スループットを桁違いに向上させる可能性があります。
- ボトルネックを「推論自体」へシフトできるでしょう。
Python と JavaScript から Jevaro を使用する
Python クライアント (uv
)
uvTypeSafe API キーを設定し、サーバー起動と実行を行います。
# サーバー起動 export TYPESAFE_API_KEY="your-api-key" uvx jevaro-server # クライアント実行 (別のターミナル) uv run --with jevaro example.py
コード例 (
):example.py
from jevaro import Noul, TypeSafeClient with TypeSafeClient(base_url="http://127.0.0.1:8000") as client: with client.system_one( states=["Please refund the shoes.", "Where is my parcel?"], questions={"refund": Noul(instructions="Is a refund being requested?")}, ) as reader: print(reader.schema) for batch in reader: if batch.num_rows: print(batch.to_pylist())
- ポイント:
はreader
です。スキーマと各状態の返品確率を出力します。PyArrow RecordBatchReader
JavaScript クライアント (node
)
nodenpm でインストールし、Node.js 環境で動作します(ブラウザ環境でも動作可能)。
npm install jevaro
コード例 (
):example.mjs
const client = new TypeSafeClient({ baseURL: "http://127.0.0.1:8000" }); const reader = await client.systemOne({ states: ["Please refund the shoes.", "Where is my parcel?"], questions: { refund: noul("Is a refund being requested?") }, }); try { console.log(reader.schema.toString()); for await (const batch of reader) { for (const row of batch) console.log(row.refund); } } finally { await reader.cancel(); }
- ポイント:
はreader
を返します。Apache Arrow AsyncRecordBatchStreamReader
スループットとコスト分析
テスト結果 (10,000 件の合成カスタマメッセージ)
- スループット: 約 464 ステート毎秒 (Choice/Noul/Score の各タイプで評価)。
- 総実行時間: 21.5 秒。
- Latency 分解:
- スキーマ受信まで: 34 ミリ秒。
- 最初の回答行受信まで: 290 ミリ秒。
- コスト: 推定 $0.20 (30,000 の回答に対して)。
分析と課題
- 現状の評価: Jev は API オーバヘッドを含め、このワークロードに対し安価かつ比較的速やかに処理可能です。
- 残るオーバーヘッド: Jevaro は現在も各状態で API 呼び出しを 1 回ずつ行っており、TypeSafe API では JSON シリアライズが発生します。Jevaro が Arrow アレイを構築するための変換コストが依然として発生しています。
- 今後の方向性:
- バッチ処理と Arrow 出力を TypeSafe API 内部で実装することで、この変換コストを除去できます。
- Jevaro の改良(Arrow 入力対応、レート制限適応性向上など)を進めつつ、TypeSafe チームとの協力を進めます。
まとめと次のステップ
Jev への Arrow インターフェースは、確率的な決定と決定論的なデータ処理を混合するパイプラインの実現に重要です。
次のアクション
- Jevaro の試行: 独自のステートと質問で試してください。
- Gateway の早期アクセス: カラムゲートウェイの同様の新機能へ登録しましょう。
フィードバック: Jev に対する Arrow インターフェースで何を望むかは、GitHub Issue からご教示ください。