Documentation

Artefacts de release de Laya-CoreML 0.1.0

Installe le runtime public sur Apple Silicon :

python -m pip install 'laya-coreml[demo]==0.1.0'

La wheel contient l’inférence, le chargement depuis le Hub, la démo Snake terminal et son moteur de rendu de replay. Les poids du modèle sont téléchargés séparément. PyTorch est une dépendance d’export optionnelle ; MLX une dépendance de comparaison optionnelle. Ni l’une ni l’autre n’est requise pour exécuter les modèles publiés. Voir le projet PyPI.

Releases de modèles épinglées

Les six dépôts sont publics. Chacun inclut le paquet Core ML exporté, le tokenizer, la configuration, la fiche modèle, la licence, l’attribution et le rapport de validation. Les paquets ANE contiennent aussi les tenseurs exacts d’embedding hôte et de tête d’action. Ce sont des bundles d’inférence autonomes.

Dépôt Hugging Face Révision de release
aac6fef/laya-coreml fff78b2d9750c6b748fe8c90fcbf8bed0a1522a9
aac6fef/laya-multilingual-coreml 8139e9089273319512c730218903784074133187
aac6fef/laya-multilingual-coreml-ane 39d6a9b3d0f67f06da74fbade6121ea134cbdb21
aac6fef/laya-multilingual-coreml-ane-w8 7503714810747a879b1e310074a9398bc573e739
aac6fef/laya-multilingual-coreml-snake e580bca9c1a8f5e6084afedc49cba4a166dfc6f2
aac6fef/laya-typed-decisions-coreml 28d24fa8d67a3264556b23391ec6c3fd98573056

Par exemple :

hf download aac6fef/laya-multilingual-coreml-ane \
  --revision 39d6a9b3d0f67f06da74fbade6121ea134cbdb21 \
  --local-dir models/ane
laya-coreml-snake --model ./models/ane

Ou charge directement un instantané Hub épinglé :

import laya_coreml as laya

agent = laya.load(
    "aac6fef/laya-multilingual-coreml-ane",
    revision="39d6a9b3d0f67f06da74fbade6121ea134cbdb21",
)

L’inventaire de release, les hashs de paquets, les formes et les tailles de bundle complètes sont dans hub-release.json. Le bundle W8 fait environ 557 MB, incluant les embeddings hôtes et le tokenizer ; 129 MB ne décrit que son corps Core ML. W8 est une palettisation de poids avec calcul FP16, pas une quantification d’activations en entiers.

Vérification des modèles et des paquets

Chaque paquet publié a été vérifié par rapport à son export validé archivé avant l’envoi. Les bundles ANE portables préservent le corps Core ML d’origine et extraient six tenseurs hôtes avec une égalité élément par élément exacte. L’inférence au moment du packaging a ensuite répété les contrôles de fixture dorée en amont :

Bundle Réponses sélectionnées correspondantes Dérive maximale de probabilité calibrée Appels répétés
Anglais FP16 63/63 0.003308 100 stable
Multilingue FP16 63/63 0.001578 100 stable
Typed Decisions FP16 63/63 0.002727 100 stable
Snake GPU, B3/L64 12/12 fitting 0.001308 100 stable
ANE FP16, L96 59/59 fitting 0.002925 100 stable
ANE W8, L96 59/59 fitting 0.014393 100 stable

Les exports courts rejettent les fixtures au-delà de leur capacité d’entrée. Leurs sous-ensembles de fitting sont explicites ; ce ne sont pas des affirmations d’équivalence sur tout le contexte. Tous utilisent le même seuil de dérive de probabilité de 0.02. Les checkpoints généralistes couvrent 189/189 questions ; les six bundles couvrent ensemble 319 comparaisons de fitting, avec un recouvrement entre checkpoints. Voir release-validation.json.

Un environnement Python 3.12 neuf a installé la wheel construite et l’extra demo, sans Torch, MLX ni Transformers. Les six bundles locaux se sont chargés et ont produit des prédictions stables tandis que les connexions socket Python étaient bloquées. Un instantané Hub ANE public et épinglé a ensuite été chargé, suivi d’un second chargement depuis le cache avec les connexions réseau bloquées. Aucune section hors ligne n’a tenté de connexion. Ce contrôle a aussi exercé le correctif de matérialisation des liens symboliques Core ML décrit dans USAGE.md. Résultats : wheel-runtime-smoke.json.

La version 0.1.0 a été publiée sur PyPI le 2026-09-20. Les deux fichiers de distribution publics ont été téléchargés et leurs empreintes SHA256 correspondaient aux artefacts de release locaux. Un second environnement neuf a ensuite installé laya-coreml[demo]==0.1.0 directement depuis l’index PyPI public avec la mise en cache désactivée. L’exemple de chargement direct depuis le Hub du README a tourné avec succès, renvoyé zéro token de sortie et produit la même réponse sur trois appels répétés avec les connexions réseau bloquées pendant la prédiction. Les deux points d’entrée CLI installés ont aussi démarré avec succès. Voir reçu de publication et contrôle d’inférence sur installation publique.

Reproduire les contrôles de release

Le portail de release local a passé 64 tests, les contrôles Ruff lint/format et une validation stricte des métadonnées de paquet Twine. Les tests incluent la sémantique de conversion, l’intégrité du cache de bundles, les invariants du jeu, la résolution de modèle hors ligne et le rejeu exact de chaque plateau/action dans l’enregistrement publié de 855 coups.

Le backend de build est épinglé à Hatchling 1.31.0. Sa sortie Core Metadata 2.4 passe le vérificateur Twine 6 de la release ; un build initial utilisant les métadonnées 2.5 plus récentes par défaut a été rejeté. Voir l’historique des versions de Hatchling pour le changement de défaut. Les artefacts publiés utilisent le build compatible et sont revérifiés avant l’envoi. Les empreintes SHA256 exactes de la wheel et de la distribution source sont consignées dans distribution-files.json.

Depuis un checkout source avec les artefacts validés d’origine disponibles :

uv sync --extra convert --extra dev --extra compare --extra research --extra demo --extra publish
.venv/bin/python scripts/prepare_hub.py
.venv/bin/python -m benchmarks.release_validate models/hub/* \
  --output benchmarks/results/release-validation.json
.venv/bin/ruff check .
.venv/bin/ruff format --check .
.venv/bin/pytest -q
.venv/bin/python -m build
.venv/bin/twine check --strict dist/*

prepare_hub.py refuse d’écraser des répertoires de bundle existants. Le contrôle de wheel autonome s’exécute avec scripts/wheel_smoke.py --hub-check dans un environnement neuf depuis l’extérieur de l’arborescence source, après téléchargement ou préparation des six bundles. Voir SNAKE_BENCHMARKS.md pour les mesures complètes de la boucle de jeu et LAUNCH.md pour les sources médias exactes enregistrées.

Synchronisation amont 0.2.0

Cette release porte la validation de prompt applicable, les libellés noul personnalisés, les instructions Unicode, la troncature de fin de conversation, les diagnostics de réduction d’options et le report de confiance de réponse via l’amont 4aa6761. Elle publie aussi le plafonnement de température qui était présent dans la source 0.1.1 mais absent de PyPI 0.1.0. Les signatures de graphe Core ML, les poids et les contrôles de capacité ANE sont inchangés. Les résultats de benchmark historiques ci-dessus décrivent 0.1.0, pas une nouvelle campagne de performance. La latence sur questions mixtes et la prise en charge des Mac Intel n’ont pas été validées par cette synchronisation.

Pousse un tag v<version> après avoir mis à jour pyproject.toml, laya_coreml/__init__.py et uv.lock. Le workflow Release exécute les contrôles CI réutilisables, vérifie les trois versions par rapport au tag, construit et valide wheel/sdist, publie sur PyPI à l’aide du secret de dépôt PYPI_API_TOKEN et crée une release GitHub avec les mêmes distributions. Un échec de CI empêche la publication.