W1 todo 里 audio.py 的 WhisperEncoder 之前写的是从 HF mirror 拉权重, 国内拉 HF(哪怕走 hf-mirror)经常被卡。改成首选 ModelScope(例如 iic/Whisper-large-v3 / iic/Whisper-small),HF mirror 留作 fallback。 infra 决定那条也顺手把 mirror 列表对齐到 pip / 模型权重 / HF 数据集 三条线,写清楚 modelscope 是模型权重首选。
- .gitea/workflows/smoke.yml: gitea CI on ailab gpu runner (manual git clone since actions/checkout@v4 mis-resolves subpath gitea); injects WANDB_API_KEY + CI_RUN_TAG=smoke-$run_number - scripts/smoke.sh: in-place smoke (uv sync + 1 shard + tokenizer + d=6 50-step base_train); idempotent cache at /data/nanochat-smoke/ - doc/research_feasibility.md: voice-first multimodal feasibility study (mochi) - doc/todo.md: phase-by-phase roadmap (W1 Whisper smoke → W4 MVP) - README.md: omni preamble pointing at upstream nanochat README - .gitignore: exclude .claude/ runtime files