"""Default container command: print usage and refuse to start a silent toy run.""" from __future__ import annotations HELP = """kda image: one GPU runtime for train / monitor / eval. Do not docker run without a command — toy overfit is not the default. Volumes (host → container): ./ckpts → /workspace/kda/ckpts pretrain corpus → /data/pretrain (ro) SFT bitext → /data/sft (ro) frozen eval → /data/eval (ro) HF tokenizer cache → /cache/huggingface SWANLAB_API_KEY via -e (never COPY into the image) Examples: docker run --rm --gpus all kda: python train.py docker run --rm --gpus all -e SWANLAB_API_KEY \\ -v "$PWD/ckpts:/workspace/kda/ckpts" \\ kda: python train_k3.py --preset toy --attnres off docker run --rm --gpus all kda: swanlab ping docker run --rm --gpus all \\ -v "$PWD/ckpts:/workspace/kda/ckpts" -v "$PWD/data/eval:/data/eval:ro" \\ kda: python -m kda.training.eval_mt \\ --ckpt /workspace/kda/ckpts/k3_wiki.pt \\ --src /data/eval/zh2en.src.txt --ref /data/eval/zh2en.ref.txt \\ --target-lang en docker run --rm --gpus all \\ -v "$PWD/ckpts:/workspace/kda/ckpts" -v "$PWD/data/sft:/data/sft:ro" \\ kda: python train_sft.py --ckpt /workspace/kda/ckpts/k3_wiki.pt \\ --data /data/sft/toy.jsonl docker run --rm --gpus all kda: python -m pytest -q """ def main() -> None: print(HELP) raise SystemExit(2) if __name__ == "__main__": main()