You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Additions
MLXDecisionModel evaluates prompts in batches when a request has several questions or a choice with rotation debiasing, with up to maximumBatchSize prompts in one forward pass (default 16; set it to 1 to evaluate each prompt separately). Batching applies to models whose layers use plain key-value caches, such as Qwen3; other models evaluate each prompt separately. Tokenization now runs outside the model lock with up to four concurrent tasks. On an M4 Max with Qwen3 4B, a request with 16 binary questions and two rotated choices fell from 2.8–2.9 s to 1.2–1.3 s with a short state (#9)
Changes
With prefixCaching: true, models whose layers use plain key-value caches now get an explicit causal mask array instead of the symbolic mask that MLX 0.31.1 applies incorrectly for split prefills (#9)
DecisionSession.Diagnostics.duration for MLX answers is now an estimate allocated from the request's total scoring time in proportion to each answer's prompt evaluations, so it can change when other questions in the request change (#9)