文件历史

17 次代码提交

作者 SHA1 备注 提交日期
ZGY 07c937b295 Merge pull request #347 from rafaelfiguereod-stack/harden/torch-load-weights-only
Harden checkpoint loading: set weights_only=True on all torch.load calls
2026-07-01 11:04:06 +08:00
Rafael Figuereo 09fce8e9db Harden checkpoint loading: set weights_only=True on all torch.load calls
The fine-tuning resume path in scripts/train_voxcpm_finetune.py called
torch.load() without weights_only=True for the LoRA checkpoint, full-model
checkpoint, optimizer, and scheduler. Loading an attacker-supplied checkpoint
directory would therefore execute arbitrary code during unpickling.

Every inference-time loader (model/voxcpm.py, model/voxcpm2.py, LoRA loading)
already passes weights_only=True, and the project ships a test asserting LoRA
loading rejects malicious pickle payloads. This closes the remaining gap so the
resume path matches that posture.

Also:
- app.py: add a --host flag so the Gradio server can bind to 127.0.0.1 instead
  of being hardwired to 0.0.0.0 (default unchanged to preserve current behavior).
  The UI exposes an unauthenticated api_name="generate" endpoint.
- tests/test_torch_load_safety.py: AST guard asserting every torch.load across
  src/, scripts/, app.py and lora_ft_webui.py sets weights_only=True, plus a
  behavioral check that a malicious pickle is blocked.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 19:16:14 -04:00
Eliseu Silva 5e293dee2f fix: formatting/trailing whitespace 2026-06-24 22:31:23 -03:00
Eliseu Silva 9f1548b631 feat: add seed support for reproducible generation in v1 and v2
- Exposed 'seed' parameter in VoxCPMModel and VoxCPM2Model generation methods.
- Added PyTorch RNG seed setting before inference runs.
- Handled 'retry_badcase' seed adjustment by incrementing the seed value on retries.
- Exposed 'self.last_successful_seed' as a model attribute for UI integrations.
- Propagated 'seed' parameter to high-level pipeline class and CLI tools (cli.py).
- Added '--seed' flag to full-finetune and LoRA inference scripts.
- Configured validation audio generation in training script to use a fixed seed for objective comparison on TensorBoard.
- Added comprehensive unit tests in CLI test files to validate seed parsing and propagation.
- Updated English and Chinese READMEs with seed usage examples.
2026-06-01 15:34:09 -03:00
Oumnya 96d605b9de fix(mps): align VOXCPM_MPS_DTYPE override set with get_dtype parser
Drop "half" from _VALID_DTYPE_OVERRIDES / _LOW_PRECISION_DTYPES.
get_dtype() has never accepted "half", so VOXCPM_MPS_DTYPE=half would
pass override validation and then crash downstream with
"Unsupported dtype: half". The remaining aliases (bfloat16/bf16,
float16/fp16, float32/fp32) already cover the intended dtype space.

Adds a standalone unit check under scripts/ to guard the invariant
that every accepted override parses through get_dtype().

Addresses review feedback on #263.
2026-04-21 18:24:53 +08:00
Labmem-Zhouyx 68af4fe502 fix: ft log and setting 2026-04-08 18:15:17 +08:00
刘鑫 46cfce0c97 fix VoxCPM2 training sample_rate: 48000 -> 16000 (match AudioVAE encoder)
Made-with: Cursor
2026-04-07 22:59:18 +08:00
刘鑫 d9cf376e16 update voxcpm2 2026-03-31 11:50:37 +08:00
刘鑫 23ed7ffeee fix: fix some bugs in resuming multi-GPU training 2026-03-13 18:43:07 +08:00
symhsym 07e526a231 Update train_voxcpm_finetune.py
修改了issue#185中提到的问题,在训练时进行validate会对原模型执行to(torch.bfloat16)然后to(torch.float32)的操作,这样可能导致模型数值浮动,因此这个修改让validate步骤保留原模型数值
2026-02-11 11:17:47 +08:00
刘鑫 79e75f259e Fix: optimize save ckpt function 2026-01-16 16:22:34 +08:00
刘鑫 e8dd956fc2 Print all log messages to stderr instead of stdout 2026-01-12 15:30:45 +08:00
刘鑫 6499215204 Optimize logging validation set results to TensorBoard 2025-12-27 11:49:04 +08:00
刘鑫 a266c0a88d add lora funetine webUI; optimize lora save and load logic 2025-12-09 21:34:39 +08:00
Ayin1412 58717d7d82 修复lora/ft测试代码处传参错误的内容 2025-12-06 14:49:35 +08:00
刘鑫 400f47a516 Modify lora inference api 2025-12-05 22:22:13 +08:00
Labmem-Zhouyx 3443dbb212 Update: VoxCPM1.5 and fine-tuning supprt 2025-12-05 21:04:51 +08:00