Présentation
Jev est le nouveau modèle d destiné à transformer du texte naturel et un état d’application en décisions typées. Le service accepte un state et une map de questions, puis renvoie pour chaque question un choix, un score ou une probabilité yes/no (Choice, Noul, Score). Les réponses sont actuellement encodées en JSON, ce qui impose une (dé)sérialisation coûteuse lorsqu’elles sont consommées par des pipelines de données.
Architecture et schéma Arrow
Pour éviter le « JSON tax », les auteurs ont conçu un schéma Apache Arrow qui reflète exactement les trois types de réponses. Chaque type est stocké dans une colonne ; les métadonnées décrivent les libellés de choix ou la légende des scores. Le schéma utilise des extension types afin d’associer une sémantique riche à des types de stockage simples :
Choice struct<choice: uint8 not null,
confidence: float64 not null,
probabilities: fixed_size_list<item: float64 not null>[N] not null>
metadata: {"labels":["returns","shipping","billing","other"]}
Noul float64 not null
Score struct<score: float64 not null,
confidence: float64 not null,
probabilities: fixed_size_list<item: float64 not null>[N] not null>
metadata: {"legend":["Can wait","Within a few days","Today"]}
Le champ choice stocke un indice d’un octet vers les libellés partagés, tandis que les vecteurs de probabilités à taille fixe éliminent les offsets par ligne et conservent la précision 64 bits fournie par le SDK Python de TypeSafe.
Analyse des performances et limites
Jev génère les probabilités en parallèle grâce à un parallel sampler et à la méthode Reinforcement Learning for Calibrated Decisions. TypeSafe affirme des gains de vitesse et de coût substantiels par rapport aux LLM génériques dans les flux de décision. En exposant directement les colonnes Arrow, les consommateurs (pandas, Polars, DuckDB, DataFusion) peuvent accéder aux buffers sans copie, réduisant ainsi le temps de désérialisation et la consommation mémoire. Cependant, le modèle ne propose pas d’endpoint batch : chaque état nécessite un appel API distinct, ce qui limite l’efficacité sur des jeux de données massifs.
Pour pallier ce manque, les auteurs ont développé Jevaro, un proxy Python qui agrège plusieurs états, invoque Jev séquentiellement et renvoie un flux IPC Arrow conforme au schéma. Cette approche conserve l’ordre d’entrée mais ne résout pas le problème de latence réseau inhérent à des milliers d’appels séparés.
Perspectives d’intégration
Si TypeSafe intégrait une sortie Arrow native, les pipelines d’analyse historique – par exemple la validation de décisions sur des millions d’interactions client – pourraient être exécutés en mode batch, tirant parti des moteurs de requête Arrow déjà déployés chez Databricks, Snowflake ou ClickHouse. La combinaison de speculative fan‑out, de confidence‑gated routing et de composite scoring avec un format de données columnar ouvrirait la voie à des workflows entièrement probabilistes, où chaque ligne de tableau représente une décision calibrée et immédiatement exploitable.