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.