# Pinned to what runs on the dev box (RTX 5090, CUDA 12.8). Versions are # observed-baselines, not strict floors — bump as upstream/drivers move. # core torch>=2.9 # Hard-pin: the upstream modeling_qwen3.py (commit df86ca9) reads # `config.rope_theta` directly; transformers 5.x moved that into a # `rope_parameters` dict, silently breaking attention freqs at sample time. transformers==4.57.1 safetensors>=0.7 # HF model load (NEOChatModel uses trust_remote_code) huggingface_hub>=0.26 sentencepiece einops pillow numpy # low-VRAM training bitsandbytes>=0.45 # 8-bit / 4-bit base + paged AdamW8bit peft>=0.13 # not strictly required (we have our own LoRA), pulled in for utility helpers # config + dataset pyyaml pydantic>=2.0 pyarrow>=14 # ArrowT2IDataset (parquet shards) for 1M+ scale datasets # tests pytest>=7