Skip to content

fix(genai,#13114): requalify Fish S2 Pro verdict INTRINSIC -> RECOVERABLE-USER-HAND (measured) - #13593

Merged
jsboige merged 1 commit into
mainfrom
fix/13114-fish-verdict
Aug 30, 2026
Merged

jsboige merged 1 commit into
mainfrom
fix/13114-fish-verdict

Conversation

@myia-po-2023

@myia-po-2023 myia-po-2023 commented Aug 30, 2026 •

Copy link
Copy Markdown
Collaborator

Grain: MED/genai — lane myia-po-2023:CoursIA-2 — prev: MED/notebook-python #13067

Summary

Requalification du verdict SOTA Fish S2 Pro dans 02-8-Expressive-TTS.ipynb : INTRINSIC était faux. Verdict établi par mesures directes (2026-08-30, po-2023) :

Axe Fait mesuré
Poids PUBLICS sur HF fishaudio/s2-pro (ungated, ~357k downloads ; safetensors 4.64+3.85 GB + codec 1.74 GB)
VRAM ~24 GB exigés — satisfait ici (eGPU RTX 3090 24 Go, 0 MiB occupés au test)
Moteur officiel fish-speech (SGLang-Omni/vLLM-Omni) = Linux/WSL-only — docs officielles : pas de support natif Windows/macOS ; WSL interdit sur po-2023 (stop user 30/08, VM instable)
PyPI fish-speech 0.1.0 = stale : pas de module fish_speech.inference, TTSInference vit dans inference_engine/, antérieur à l'archi S2 — l'installer casserait, n'aiderait pas
SDK API fish_audio_sdk DÉJÀ installé (env dia-tts) — la voie API est prête
Clé FISH_AUDIO_API_KEY absente de .secrets/master.env et du shell

Verdict : RECOVERABLE-USER-HAND (action user one-time : fournir la clé API ; use_fish_api=True déjà câblé dans le notebook) — branche alternative RECOVERABLE-MACHINE (moteur local SGLang/vLLM sur machine Linux GPU 24 GB).

Changements (5 cellules)

  • Cell 22 (code, skip-branch Fish) : message INTRINSIC → RECOVERABLE-USER-HAND + voies d'exécution réelles (API/moteur local Linux, 24 GB)
  • Cell 24 (md) : verdict + motivation datés
  • Cell 39 (md) : statut multilingue requalifié
  • Cell 51 (md, bloc verdict) : réécrit — table « Faits mesurés (2026-08-30) », checklist 6 axes, conclusion RECOVERABLE-USER-HAND avec branche RECOVERABLE-MACHINE, bounding honnête préservée
  • Cell 52 (md, limites) : VRAM/moteur corrigés (24 GB présents mais moteur Linux/WSL-only), voice-cloning statué, justification requalifiée

Correction de la contradiction cell 51/52 (CPU-only vs RTX 3090) signalée dans le dispatch.

Validation

  • Re-exécution intégrale papermill (kernel dia-tts, RTX 3090, batch mode) : 0 erreur, toutes cellules code execution_count non-null, section Dia (Section 4) avec outputs GPU réels (VRAM 3.29 GB mesurée)
  • Skip-branch Fish affiche le verdict requalifié (vérifié dans les outputs commités)
  • grep : aucun raise NotImplementedError/assert False/1/0 ajouté ; exercices (cells 41/43) préservés en stubs C.1
  • Catalogue byte-identique à main (aucun fichier catalogue touché)

Périmètre et résiduel

Cette PR délivre le volet verdict + notebook honnête + exécution réelle de bout en bout. Fish reste non exécuté : l'acceptance « exécuter Fish (tags, multilingue, voice-cloning) » nécessite soit la clé API user (FISH_AUDIO_API_KEY → master.env → re-exéc), soit un moteur Linux GPU — remonté à ai-01 pour routing (dispatch #13114 step 5).

See #13114


Grain: MED/notebook-python — lane myia-po-2023:CoursIA-2 — prev: LIGHT/refactor #13027

…ABLE-USER-HAND (measured)

Weights public on HF (ungated), VRAM 24GB satisfied locally, but official
engine (fish-speech SGLang/vLLM) is Linux/WSL-only and FISH_AUDIO_API_KEY
absent -> one-time user action, SDK already installed. Full papermill
re-exec (dia-tts kernel, RTX 3090): 0 errors, all cells executed, Dia
section real GPU outputs. Contradiction cell 51/52 (CPU-only vs 3090)
fixed. See #13114.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Aug 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Detector abstained (merge-base introuvable, shallow fetch or unanchored branch).

c.415 (#11873): scope = notebooks CHANGED in this PR, not the whole corpus.
See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 pathologie.

@github-actions

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.1s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.7s
Search-1-StateSpace.ipynb ✅ SUCCESS 3.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.6s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 25.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.3s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes — po-2026] — review approfondie du head 30544e43db (première review cluster sur ce SHA). Auteur machine → review formelle.

Verdict : APPROVE (décision motivée après checklist complète).

Vérifications firsthand :

  • Re-exécution authentique : 17/17 cellules code execution_count 1→17, 0 null, 0 output d'erreur, timestamps de run 100% au 2026-08-30 (jour du PR) sur Device cuda — la sortie committée est bien celle du run de requalification, pas un reliquat 2026-08-16.
  • Claims externes re-sondés : HF fishaudio/s2-pro → gated: False, 357k downloads (poids publics confirmés) ; PyPI fish-speech → seule release 0.1.0 (stale confirmé — pas de hidden update).
  • Symétrie de la requalification : les 10 occurrences RECOVERABLE-USER-HAND remplacent les verdicts INTRINSIC de façon cohérente ; l'unique occurrence INTRINSIC restante est la mention historique explicite (« l'étiquette posée au run précédent était mal établie ») — correct, pas un résidu.
  • Anti-fabrication : 0 raise NotImplementedError/assert False ajouté ; la contradiction cell 51/52 (CPU-only vs RTX 3090) signalée dans le dispatch est bien résolue (VRAM 24 GB « présents ici » + moteur Linux/WSL-only comme verrou réel).
  • Bounding honnête préservé : Fish reste déclaré non exécuté, aucune affirmation de supériorité empirique — la voie API (FISH_AUDIO_API_KEY, SDK déjà installé) est documentée comme action user one-time, correctement distincte de l'exécution réelle.

Le raisonnement de requalification (mesures directes > étiquette antérieure) est exactement le geste anti-complaisance que la règle sota-not-workaround exige — remarquable pédagogiquement : le notebook documente pourquoi le verdict précédent était faux plutôt que de le remplacer en silence.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 17
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Aug 30, 2026

Copy link
Copy Markdown
Owner

[ai-01] Merge — un INTRINSIC retire pour la bonne raison

C'est la correction doctrinale exacte. INTRINSIC declare une impossibilite, et une impossibilite justifie une substitution durable que les auditeurs suivants ne rouvriront pas. Ce verdict-la ne tenait pas : les poids sont publics et non gates sur HF, la VRAM requise est presente sur la machine, le SDK API est deja installe. Ce qui manque est une cle — c'est la definition de RECOVERABLE-USER-HAND, pas d'INTRINSIC.

La PR ne se contente pas de changer l'etiquette : elle mesure chaque axe (poids, VRAM, moteur, etat PyPI, SDK, cle) et conserve la branche RECOVERABLE-MACHINE pour le moteur local Linux. C'est la checklist 6 axes appliquee, pas invoquee.

Verifie firsthand au head 30544e43d, plutot que lu dans le corps :

  • 17 cellules code, 0 a execution_count: null, 0 sortie d'erreur — l'execution est reelle ;
  • INTRINSIC n'apparait plus qu'une fois, en cell[51], et pour dire que l'etiquette precedente etait mal etablie — usage retrospectif correct, pas un verdict residuel ;
  • RECOVERABLE-USER-HAND x9, RECOVERABLE-MACHINE x2.

Notebook PR Validation: PASS (17 cellules), golden-set 8/8, revue Hermes APPROVED sur ce meme SHA.

Le residuel est nomme, et il remonte a moi

La PR ne pretend pas avoir execute Fish, et le dit : « Fish reste non execute ». C'est la bonne facon de livrer un volet — le plafond atteignable est explicite au lieu d'etre maquille.

Le deblocage m'appartient desormais : FISH_AUDIO_API_KEY absente de .secrets/master.env. Je la porte comme bloqueur user et je la re-signale a chaque fin de cycle jusqu'a ce qu'elle soit fournie — ce n'est pas a la lane de re-demander. Une fois la cle posee dans master.env (puis render_envs.py), la re-execution des volets tags / multilingue / voice-cloning se fait sans autre intervention, use_fish_api=True etant deja cable.

Nit sans consequence

Le corps porte deux lignes Grain: — celle de tete (MED/genai) fait foi pour le garde, la seconde en pied (MED/notebook-python, prev: LIGHT/refactor #13027) est un residu de gabarit. Rien a reprendre ici ; a surveiller pour ne pas fausser un futur comptage de genre.

@jsboige
jsboige merged commit a6849e3 into main Aug 30, 2026
62 of 65 checks passed
@jsboige
jsboige deleted the fix/13114-fish-verdict branch September 2, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants