|
| 1 | +{ |
| 2 | + "schema_version": "1.2.0", |
| 3 | + "backend_id": "cosyvoice3-lora-pytorch", |
| 4 | + "capability_binding": { |
| 5 | + "manifest": "instavar-voice-capabilities.json", |
| 6 | + "adaptation": "lora", |
| 7 | + "runtime_ids": ["pytorch"] |
| 8 | + }, |
| 9 | + "required_environment": [ |
| 10 | + { "name": "COSYVOICE_DIR", "purpose": "Pinned CosyVoice checkout with the exact companion patch set applied." }, |
| 11 | + { "name": "PRETRAINED_DIR", "purpose": "Pinned local Fun-CosyVoice3-0.5B runtime model directory." }, |
| 12 | + { "name": "BASE_LLM_CHECKPOINT", "purpose": "Pinned base llm.pt used to initialize LoRA training." }, |
| 13 | + { "name": "QWEN_PRETRAIN_DIR", "purpose": "Pinned CosyVoice-BlankEN tokenizer and configuration directory." }, |
| 14 | + { "name": "TRAIN_CONFIG", "purpose": "CosyVoice3 HyperPyYAML training configuration." }, |
| 15 | + { "name": "MAX_EPOCH", "purpose": "Explicit positive train_conf.max_epoch override applied after loading the full model config." }, |
| 16 | + { "name": "LEARNING_RATE", "purpose": "Explicit positive LoRA optimizer learning rate." }, |
| 17 | + { "name": "TRAIN_DATA_LIST", "purpose": "Prepared CosyVoice parquet training data list." }, |
| 18 | + { "name": "CV_DATA_LIST", "purpose": "Prepared CosyVoice parquet cross-validation data list." }, |
| 19 | + { "name": "RAW_TRAIN_JSONL", "purpose": "Raw training split used for grouped corpus audit." }, |
| 20 | + { "name": "RAW_VALIDATION_JSONL", "purpose": "Raw validation split used for grouped corpus audit." }, |
| 21 | + { "name": "RAW_TEST_JSONL", "purpose": "Raw test split used for grouped corpus audit." }, |
| 22 | + { "name": "REFERENCE_AUDIO", "purpose": "Authorized reference-speaker audio for reload and held-out synthesis." }, |
| 23 | + { "name": "REFERENCE_TEXT", "purpose": "Transcript matching the authorized reference audio." }, |
| 24 | + { "name": "SELECTED_ADAPTER_NAME", "purpose": "Single safe LoRA checkpoint directory selected for reload." }, |
| 25 | + { "name": "GENERATION_PLAN", "purpose": "Frozen Instavar Voice generation plan containing this candidate." }, |
| 26 | + { "name": "CANDIDATE_ID", "purpose": "Candidate identifier present in the frozen generation plan." }, |
| 27 | + { "name": "TRAIN_ENGINE", "purpose": "Explicit torch_ddp or deepspeed training engine." } |
| 28 | + ], |
| 29 | + "commands": { |
| 30 | + "preflight": ["{python}", "scripts/instavar_voice_lifecycle.py", "preflight"], |
| 31 | + "train": ["{python}", "scripts/instavar_voice_lifecycle.py", "train"], |
| 32 | + "infer": ["{python}", "scripts/instavar_voice_lifecycle.py", "infer"], |
| 33 | + "evaluate": ["{python}", "scripts/instavar_voice_lifecycle.py", "evaluate"], |
| 34 | + "package": ["{python}", "scripts/instavar_voice_lifecycle.py", "package"] |
| 35 | + }, |
| 36 | + "expected_artifacts": { |
| 37 | + "preflight": ["preflight/preflight.json"], |
| 38 | + "train": ["train/selected-adapter.tar"], |
| 39 | + "infer": ["infer/candidate.wav"], |
| 40 | + "evaluate": ["evaluate/evaluation-bundle.tar"], |
| 41 | + "package": ["package/adapter-package.tar"] |
| 42 | + }, |
| 43 | + "timeout_seconds": { |
| 44 | + "preflight": 1800, |
| 45 | + "train": 86400, |
| 46 | + "infer": 3600, |
| 47 | + "evaluate": 21600, |
| 48 | + "package": 1800 |
| 49 | + } |
| 50 | +} |
0 commit comments