Obtenir AX Code · GratuitDocumentation

Cette page est traduite de la documentation anglaise. Les commandes, identifiants et exemples sont inchangés. Runtime 7.24.5 · SDK 2.6.9. Source anglaise

Mesures natives de préremplissage et de décodage de Tiel Coder

Statut : instantané local historique Dernière revue : 2026-09-21 Responsable : mainteneurs d’AX Code Date : 2026-09-19 Portée : les deux paquets Tiel choisis par AX Code, AX Engine face à MTPLX, Apple M3 Max 128 GiB

Remplacé pour le classement. La campagne d’API native du 20 septembre 2026 sur quatre machines est la comparaison actuelle de Tiel face à MTPLX, y compris un achèvement 194.88 tok/s sur M5 Max pour le paquet par défaut et un pic de décodage Cyber-Tiel de 249.01 tok/s. Voir Synthèse des pairs Tiel. Conservez cette page comme instantané de phase du M3 Max du 19 septembre (moteur identifié comme 7.4.0 ; médiane de trois). Ne mélangez pas les tableaux.

Ces résultats conservent la ligne de base du profil agentic d’origine. La Comparaison du profil MTP de Tiel ultérieure mesure le profil auto désormais choisi par AX Code, y compris ses compromis dépendants de la charge.

Les nouveaux paquets Tiel ont tourné avec MTP actif sur les deux runtimes testés. La construction source d’AX Engine a atteint 47.36–58.53 jetons/s de décodage sur les quatre cas ; MTPLX a atteint 92.13–96.26. Le préremplissage était d’environ 1,190–1,446 jetons/s. Ce sont des mesures de phases d’inférence native sur un Apple M3 Max avec 128 GiB, pas un débit de codage de bout en bout d’AX Code ou d’OpenCode.

Exigence de construction : l’AX Engine 7.4.0 installé par Homebrew n’a pas pu démarrer Tiel avec Engine(MlxMtpRequiredButUnavailable). Les résultats AX Engine ci-dessous utilisent une construction locale optimisée du commit 51137c71a6794964d52c32c95e275c0923ed8d0b, qui ajoute le correctif du chargeur d’espace de noms MTP de Tiel. Cette construction s’identifie encore comme 7.4.0. Ses résultats n’établissent pas la prise en charge dans le binaire Homebrew existant ni dans une version publiée. MTP restait exigé ; aucune exécution de repli avec MTP désactivé n’est incluse.

Résultats

Chaque valeur est la médiane de trois essais. Tous les essais ont généré exactement 256 jetons et ont signalé zéro jeton d’entrée en cache. Le préremplissage et le décodage utilisent tous deux des jetons par seconde.

Modèle Jetons d’entrée Préremplissage AX Engine Décodage AX Engine Préremplissage MTPLX Décodage MTPLX
Tiel Coder, court 458 1,255.61 57.03 1,207.01 92.27
Tiel Coder, contexte 3,182 1,424.24 55.25 1,279.48 96.26
Cyber-Tiel Coder, court 483 1,226.86 58.53 1,189.60 95.09
Cyber-Tiel Coder, contexte 3,207 1,446.19 47.36 1,427.62 92.13

La différence de décodage existe dans des requêtes directes au runtime avec des entrées appariées, avant la boucle d’agent d’AX Code. Cette comparaison locale situe donc une différence au niveau du runtime ; elle n’identifie pas un seul noyau ou une seule politique comme cause. Le préremplissage est beaucoup plus proche entre ces configurations. Aucun contrôle avec MTP désactivé n’a été exécuté, ce n’est donc pas une mesure de l’accélération MTP.

Entrées assainies, les 24 reçus d’essais, compteurs de phases, révisions de modèles et résultats d’acceptation client accompagnent ce rapport.

Artefacts exacts et environnement

Modèle Dépôt Hugging Face Révision
Tiel Coder, défaut d’AX Code AutomatosX/AX-Tiel-Coder-35B-A3B-MLX-AXQ-MXFP4-MTP 5ab39b24bfd7f65203be9b7823b1840486f58b6d
Cyber-Tiel Coder dépôt AutomatosX/AX-Cyber-Tiel-Coder-35B-A3B-MLX-AXQ-MXFP4-MTP fe05e871ec69ad9ae8eac01fd285555514ac7daf
  • Source AX Code : 205cb556b ; la sélection utilise mlx et les poids MXFP4 de l’éditeur.
  • Hôte : Apple M3 Max, 137,438,953,472 octets de mémoire ; macOS 27.0, construction 26A428.
  • AX Engine : construction en profil de publication de 51137c71a6794964d52c32c95e275c0923ed8d0b, MLX 0.32.2. SHA-256 du serveur : 1fbe7fc50ea16448f98350616273214c0475bffb3ef509fceb3f8849163e97f5.
  • MTPLX : 2.11.3, MLX 0.32.2, environnement Python 3.12.
  • Les deux runtimes lisent le même instantané Hugging Face partagé de chaque modèle. Le téléchargement du modèle, le chargement des poids et le démarrage du serveur sont exclus des chronométrages de phase.

Les paquets sont des requantifications de développement. Ces tests ne certifient pas la qualité du modèle, la parité numérique, le comportement en long contexte, d’autre matériel, ni les performances d’une version future. Ils ne remplacent pas la Matrice de clients réels Qwen3.8 historique, qui utilisait d’autres modèles et mesurait une autre frontière.

Méthode de mesure

L’invite demande un cache LRU TypeScript générique et des tests, précédés de 8 ou 96 fonctions TypeScript synthétiques. Les messages sont stockés dans le reçu JSON. Le jetoniseur épinglé de chaque modèle rend son modèle de conversation officiel avec enable_thinking=false et add_generation_prompt=true. Les jetons entiers résultants sont envoyés inchangés aux deux moteurs. La sortie /tokenize d’AX Engine a aussi été vérifiée par rapport à ces identifiants. Le modèle de Cyber-Tiel ajoute un texte d’identité, ce qui explique ses 25 jetons supplémentaires ; les entrées entre moteurs correspondent au sein de chaque modèle.

Les requêtes utilisent une température de 0.55, top-p 1, top-k 0, une graine 0 et une limite de 256 jetons. Chaque moteur reçoit un échauffement explicite de 64 jetons avant ses essais mesurés. MTPLX effectue aussi son échauffement normal de démarrage et d’arrière-plan. Un échauffement ne compte pas comme un essai. L’ordre d’exécution était MTPLX/Tiel, AX Engine/Tiel, MTPLX/Cyber-Tiel, AX Engine/Cyber-Tiel. Un seul moteur d’inférence était actif à la fois ; la compilation était terminée avant le début des essais mesurés. Ce petit échantillon à ordre fixe n’est pas une étude d’endurance ni une étude thermique contrebalancée.

AX Engine utilise le /v1/generate natif avec input_tokens et max_output_tokens. MTPLX utilise un /v1/completions diffusé avec un prompt sous forme de tableau d’entiers, suivi de /metrics. Cela évite les différences d’assemblage d’invite client et de rendu du modèle de conversation entre les deux serveurs. La sortie plafonnée est une charge de débit, pas un test d’exactitude du code complet.

Mesure AX Engine MTPLX
Durée de préremplissage ax_mlx_prefill_wall_us / 1e6 prompt_eval_time_s
Débit de préremplissage Jetons d’entrée non mis en cache / durée de préremplissage prefill_compute_tok_s, audité par rapport à new_prefill_tokens / prompt_eval_time_s
Durée de décodage ax_mlx_decode_wall_us / 1e6 decode_elapsed_s
Débit de décodage (output_tokens - 1) / decode duration ; la première sortie appartient au préremplissage decode_tok_s, audité par rapport à completion_tokens / decode_elapsed_s
Preuve de cache Cache de préfixe désactivé avec AX_MLX_PREFIX_CACHE_MAX_ENTRIES=0 ; zéro jeton réutilisé Cache de session SSD désactivé ; zéro jeton en cache à chaque achèvement
Preuve MTP Politique exigée, rédacteur de modèle actif, jetons acceptés positifs, zéro pas de repli direct signalé generation_mode=mtp, profondeur 3, compteurs de brouillon et d’acceptation positifs

Les compteurs de décodage natifs ont des frontières de premier jeton légèrement différentes ; ils sont rapportés avec leurs formules réelles plutôt que renommés comme des minuteurs identiques. Aucun débit ne divise la sortie par la durée totale de la requête HTTP. Le TTFT natif de MTPLX est conservé dans le JSON ; la sonde non diffusée d’AX Engine ne mesure pas le TTFT de transport.

Configuration d'exécution

AX Engine a utilisé le profil de spéculation générique agentic, un contexte de 32,768 jetons, un budget de sortie annoncé de 8,192 jetons, une largeur d’ordonnanceur de 2,048 et une requête concurrente. Les forçages d’environnement AX Code propres au Qwen3.8 dense n’ont pas été appliqués. La profondeur MTP admise était de 3 ; les portes de brouillon normales du moteur restaient actives.

Arguments de lancement équivalents, avec SNAPSHOT réglé sur l’instantané épinglé approprié et MODEL sur son alias 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 a utilisé une configuration isolée vide. Les manifestes de modèles d’AX Engine ont été préparés avec son téléchargeur épinglé, local seulement ; les poids de modèle de l’éditeur et les tenseurs MTP ont été conservés. Aucune des deux configurations n’a désactivé MTP pour obtenir un résultat.

Acceptation des outils AX Code

Une exécution source distincte d’AX Code a demandé à chaque modèle de lire probe.txt avec l’outil de lecture et de n’en renvoyer que le contenu. L’état et la configuration étaient isolés. AX Engine utilisait un rattachement explicite en boucle locale vers le serveur source testé. Ces exécutions sont exclues du tableau de phases natives.

Modèle Runtime Lecture achevée Marqueur correct dans la réponse finale Format de sortie seule exact
Tiel source AX Engine Oui Oui Non ; prose ajoutée et une clôture de code
Tiel MTPLX Oui Oui Oui
Cyber-Tiel source AX Engine Oui Oui Non ; prose ajoutée et une clôture de code
Cyber-Tiel MTPLX Oui Oui Oui

Les quatre processus clients se sont terminés avec succès et ont achevé un véritable appel de lecture. Les deux exécutions AX Engine ont échoué à l’exigence plus stricte de format de sortie, ce n’est donc pas une certification comportementale ni de qualité de codage entièrement réussie. Leurs invites, charges d’outils, échantillonnage par défaut et gestion de conversation sont des chemins client et runtime, distincts du banc de phases à jetons appariés. Aucun comportement cloud, CLI, GPU privé ou AX Trust n’a été ajusté pour ces tests.

Une invocation gérée distincte providers ax-engine start a omis l’argument de modèle et a choisi tiel-coder-35b-axq-mxfp4 à la révision épinglée avec mlx. Son état en direct a signalé la prise en charge des outils, une politique MTP exigée/exigée, MTP actif, 27 jetons rédigés et 23 jetons acceptés. Le serveur géré a ensuite été arrêté avec succès. Cela a utilisé un état AX Code isolé et le forçage AX_ENGINE_SERVER=/absolute/path/to/fixed/ax-engine-server de l’assistant existant ; le binaire installé de l’utilisateur et la configuration du fournisseur n’ont pas été remplacés. Le même forçage peut être défini au démarrage de pnpm run dev avec une construction contenant le correctif du chargeur.

Le changement de catalogue a passé 11,374 tests déterministes, avec 17 ignorés, plus 208 tests SDK, 259 tests de scripts (94 ignorés), la vérification de types récursive, les contrôles de structure du dépôt et les contrôles TUI. Voir sélection de modèle et exigences d’exécution avant d’utiliser le nouveau défaut.