Questa pagina è tradotta dalla documentazione inglese. Comandi, identificatori ed esempi restano invariati. Runtime 7.24.4 · SDK 2.6.7. Testo inglese
Misure native di prefill e decode di Tiel Coder
Stato: istantanea locale storica Ultima revisione: 2026-09-21 Responsabile: manutentori di AX Code Data: 2026-09-19 Ambito: i due pacchetti Tiel selezionati da AX Code, AX Engine rispetto a MTPLX, Apple M3 Max 128 GiB
Superata per la classifica. La campagna API nativa su quattro macchine del 20 September 2026 è il confronto corrente tra Tiel e MTPLX, incluso il completamento 194.88 tok/s su M5 Max per il pacchetto predefinito e il picco di decode di Cyber-Tiel 249.01 tok/s. Vedi riepilogo tra pari di Tiel. Conserva questa pagina come istantanea di fase M3 Max del 19 September (motore identificato come 7.4.0; mediana di tre). Non mescolare le tabelle.
Questi risultati conservano la linea di base originale del profilo agentic. Il successivo confronto dei profili MTP di Tiel misura il profilo auto ora selezionato da AX Code, inclusi i compromessi dipendenti dal carico.
I nuovi pacchetti Tiel sono girati con MTP attivo su entrambi i runtime testati. La build sorgente di AX Engine ha raggiunto 47.36–58.53 token/s di decode nei quattro casi; MTPLX ha raggiunto 92.13–96.26. Il prefill era circa 1,190–1,446 token/s. Sono misure di fase di inferenza nativa su un Apple M3 Max con 128 GiB, non il throughput di programmazione end-to-end di AX Code o OpenCode.
Requisito di build: l’AX Engine Homebrew 7.4.0 installato non è riuscito ad avviare Tiel con Engine(MlxMtpRequiredButUnavailable). I risultati di AX Engine sotto usano una build locale ottimizzata del commit 51137c71a6794964d52c32c95e275c0923ed8d0b, che aggiunge la correzione del loader dello spazio dei nomi MTP di Tiel. Quella build si identifica ancora come 7.4.0. I suoi risultati non stabiliscono il supporto nel binario Homebrew esistente né in una release pubblicata. MTP è restato richiesto; non è inclusa un’esecuzione di ripiego con MTP disabilitato.
Risultati
Ogni valore è la mediana di tre prove. Tutte le prove hanno generato esattamente 256 token e hanno riportato zero token di input in cache. Prefill e decode usano entrambi token al secondo.
| Modello | Token di input | Prefill AX Engine | Decode AX Engine | Prefill MTPLX | Decode MTPLX |
|---|---|---|---|---|---|
| Tiel Coder, breve | 458 | 1,255.61 | 57.03 | 1,207.01 | 92.27 |
| Tiel Coder, contesto | 3,182 | 1,424.24 | 55.25 | 1,279.48 | 96.26 |
| Cyber-Tiel Coder, breve | 483 | 1,226.86 | 58.53 | 1,189.60 | 95.09 |
| Cyber-Tiel Coder, contesto | 3,207 | 1,446.19 | 47.36 | 1,427.62 | 92.13 |
La differenza di decode esiste in richieste dirette al runtime con input abbinati, prima del ciclo dell’agente di AX Code. Questo confronto locale individua quindi una differenza a livello di runtime; non identifica un singolo kernel o una policy come causa. Il prefill è molto più vicino tra queste configurazioni. Non è stato eseguito un controllo con MTP disabilitato, quindi non è una misura dell’accelerazione MTP.
Input ripuliti, tutte le 24 ricevute di prova, contatori di fase, revisioni dei modelli e risultati di accettazione dei client accompagnano questo rapporto.
Artefatti e ambiente esatti
| Modello | Repository Hugging Face | Revisione |
|---|---|---|
| Tiel Coder, predefinito di AX Code | AutomatosX/AX-Tiel-Coder-35B-A3B-MLX-AXQ-MXFP4-MTP | 5ab39b24bfd7f65203be9b7823b1840486f58b6d |
| pacchetto alternativo Cyber-Tiel Coder | AutomatosX/AX-Cyber-Tiel-Coder-35B-A3B-MLX-AXQ-MXFP4-MTP | fe05e871ec69ad9ae8eac01fd285555514ac7daf |
- Sorgente di AX Code:
205cb556b; la selezione usamlxe i pesi MXFP4 dell’editore. - Host: Apple M3 Max, 137,438,953,472 byte di memoria; macOS 27.0, build
26A428. - AX Engine: build in profilo release di
51137c71a6794964d52c32c95e275c0923ed8d0b, MLX 0.32.2. SHA-256 del server:1fbe7fc50ea16448f98350616273214c0475bffb3ef509fceb3f8849163e97f5. - MTPLX: 2.11.3, MLX 0.32.2, ambiente Python 3.12.
- Entrambi i runtime leggono la stessa istantanea condivisa di Hugging Face di ogni modello. Download del modello, caricamento dei pesi e avvio del server sono esclusi dai tempi di fase.
I pacchetti sono riquantizzazioni di sviluppo. Questi test non certificano la qualità del modello, la parità numerica, il comportamento su contesto lungo, altro hardware o le prestazioni di una release futura. Non sostituiscono la matrice storica dei client reali di Qwen3.8, che ha usato modelli diversi e ha misurato un confine diverso.
Metodo di misura
Il prompt chiede una cache LRU TypeScript generica e dei test, preceduti da 8 o 96 funzioni TypeScript sintetiche. I messaggi sono memorizzati nella ricevuta JSON. Il tokenizer fissato di ogni modello rende il proprio template di chat ufficiale con enable_thinking=false e add_generation_prompt=true. I token interi risultanti vengono inviati invariati a entrambi i backend. L’output /tokenize di AX Engine è stato anche controllato rispetto a quegli ID. Il template di Cyber-Tiel aggiunge testo di identità, spiegando i suoi 25 token aggiuntivi; gli input tra backend corrispondono dentro ogni modello.
Le richieste usano temperatura 0.55, top-p 1, top-k 0, seed 0 e un limite di 256 token. Ogni backend riceve un riscaldamento esplicito di 64 token prima delle prove misurate. MTPLX esegue anche il proprio riscaldamento normale di avvio e background. Un riscaldamento non conta come prova. L’ordine di esecuzione è stato MTPLX/Tiel, AX Engine/Tiel, MTPLX/Cyber-Tiel, AX Engine/Cyber-Tiel. Solo un backend di inferenza era attivo alla volta; la compilazione è finita prima che iniziassero le prove misurate. Questo piccolo campione a ordine fisso non è uno studio di resistenza né uno studio termico controbilanciato.
AX Engine usa /v1/generate nativo con input_tokens e max_output_tokens. MTPLX usa /v1/completions in streaming con un prompt ad array di interi, seguito da /metrics. Questi evitano differenze nell’assemblaggio del prompt del client e nel rendering del template di chat tra i due server. L’output limitato è un carico di throughput, non un test di correttezza del codice completo.
| Misura | AX Engine | MTPLX |
|---|---|---|
| Durata del prefill | ax_mlx_prefill_wall_us / 1e6 |
prompt_eval_time_s |
| Velocità di prefill | Token di input non in cache / durata del prefill | prefill_compute_tok_s, verificato rispetto a new_prefill_tokens / prompt_eval_time_s |
| Durata del decode | ax_mlx_decode_wall_us / 1e6 |
decode_elapsed_s |
| Velocità di decode | (output_tokens - 1) / decode duration; il primo output appartiene al prefill |
decode_tok_s, verificato rispetto a completion_tokens / decode_elapsed_s |
| Prove di cache | Cache del prefisso disabilitata con AX_MLX_PREFIX_CACHE_MAX_ENTRIES=0; zero token riusati |
Cache di sessione SSD spenta; zero token in cache a ogni completamento |
| Prove MTP | Policy richiesta, drafter del modello attivo, token accettati positivi, zero passi di ripiego diretto riportati | generation_mode=mtp, profondità 3, contatori positivi di bozza e accettazione |
I contatori di decode nativi hanno confini del primo token leggermente diversi; sono riportati con le formule effettive invece di essere rietichettati come timer identici. Nessuna velocità divide l’output per la durata totale della richiesta HTTP. Il TTFT nativo di MTPLX è conservato nel JSON; la sonda non in streaming di AX Engine non misura il TTFT di trasporto.
Configurazione del runtime
AX Engine ha usato il profilo di speculazione generico agentic, un contesto di 32,768 token, un budget di output annunciato di 8,192 token, larghezza dello scheduler 2,048 e una richiesta concorrente. Gli override di ambiente di AX Code specifici del denso Qwen3.8 non sono stati applicati. La profondità MTP ammessa era 3; i gate di bozza normali del motore sono restati attivi.
Argomenti di avvio equivalenti, con SNAPSHOT impostato sull’istantanea fissata appropriata e MODEL sul suo alias di AX Code:
AX_MLX_PREFIX_CACHE_MAX_ENTRIES=0 /path/to/fixed/ax-engine-server \
--host 127.0.0.1 --port 18439 --model-id "$MODEL" \
--mlx --mlx-model-artifacts-dir "$SNAPSHOT" \
--mlx-mtp-policy required --speculation-profile agentic \
--mlx-mtp-disable-ngram-stacking --max-concurrent-requests 1 \
--max-batch-tokens 2048 --max-output-tokens 8192 \
--block-size-tokens 16 --total-blocks 2048
mtplx serve --model "$SNAPSHOT" --model-id "$MODEL" \
--host 127.0.0.1 --port 18442 --no-auth --agent-rewrites off \
--max-tokens 8192 --context-window 32768 --reasoning off \
--no-stats-footer --ssd-session-cache off --warmup-tokens 64 \
--strict-warmup --fan-mode default --generation-mode mtp --load-mtp --depth 3
MTPLX ha usato una configurazione isolata vuota. I manifesti dei modelli di AX Engine sono stati preparati con il suo downloader fissato e solo locale; i pesi del modello e i tensori MTP dell’editore sono stati conservati. Nessuna configurazione ha disabilitato MTP per ottenere un risultato.
Accettazione degli strumenti di AX Code
Un’esecuzione separata del sorgente di AX Code ha chiesto a ogni modello di leggere probe.txt con lo strumento di lettura e di restituire solo il suo contenuto. Stato e configurazione erano isolati. AX Engine ha usato il collegamento loopback esplicito al server sorgente testato. Queste esecuzioni sono escluse dalla tabella delle fasi native.
| Modello | Runtime | Lettura completata | Marcatore corretto nella risposta finale | Formato di solo output esatto |
|---|---|---|---|---|
| Tiel | sorgente AX Engine | Sì | Sì | No; ha aggiunto prosa e un blocco di codice |
| Tiel | MTPLX | Sì | Sì | Sì |
| Cyber-Tiel | sorgente AX Engine | Sì | Sì | No; ha aggiunto prosa e un blocco di codice |
| Cyber-Tiel | MTPLX | Sì | Sì | Sì |
Tutti e quattro i processi client sono usciti con successo e hanno completato una chiamata di lettura reale. Le due esecuzioni di AX Engine non hanno soddisfatto il requisito più stretto di formato di output, quindi non è una certificazione comportamentale o di qualità di programmazione interamente positiva. I loro prompt, i payload degli strumenti, il campionamento predefinito e la gestione della chat sono percorsi di client e runtime, distinti dal benchmark di fase a token abbinati. Nessun comportamento cloud, CLI, GPU privata o AX Trust è stato regolato per questi test.
Un’invocazione gestita separata providers ax-engine start ha omesso l’argomento del modello e ha selezionato tiel-coder-35b-axq-mxfp4 alla revisione fissata con mlx. Il suo stato live ha riportato supporto agli strumenti, policy MTP richiesta/richiesta, MTP attivo, 27 token abbozzati e 23 token accettati. Il server gestito è stato poi arrestato con successo. Questo ha usato stato isolato di AX Code e l’override AX_ENGINE_SERVER=/absolute/path/to/fixed/ax-engine-server dell’helper esistente; il binario installato dell’utente e la configurazione del provider non sono stati sostituiti. Lo stesso override può essere impostato quando si avvia pnpm run dev con una build che contiene la correzione del loader.
Il cambiamento del catalogo ha superato 11,374 test deterministici, con 17 saltati, più 208 test SDK, 259 test di script (94 saltati), typecheck ricorsivo, controlli di struttura del repository e controlli TUI. Vedi selezione del modello e requisiti di runtime prima di usare il nuovo predefinito.