# 1C LoRA Training Цель: обучить draft LoRA adapter `qwen3-coder-30b-a3b-1c-lora-v1` поверх `qwen3-coder-30b-a3b-instruct`. ## Preconditions - Полностью скачана базовая модель: `/models/base/qwen3-coder-30b-a3b-instruct`. - Подготовлен датасет: `plugins/1c/training/prepared/train.chat.jsonl`. - Есть GPU/CUDA на `docker-gpu.cin.su`. - В датасете достаточно проверенных примеров. Синтетические 2 записи подходят только для smoke-run, не для полезного качества. ## Current Preflight Status На 2026-07-04 локальный preflight для нового Qwen3-Coder training contour не стартует, потому что: - локально нет CUDA/GPU; - training-зависимости не установлены в локальный Python; - HF-база `qwen3-coder-30b-a3b-instruct` еще не лежит в `/models/base/qwen3-coder-30b-a3b-instruct` на текущем workspace path; - запускать обучение нужно на `docker-gpu.cin.su`, потому что именно там есть GPU-контур для этой модели. Если файл будет удален или поврежден, восстановить/докачать базовую модель можно так: ```powershell python scripts/download_hf_range.py qwen3-coder-30b-a3b-instruct ` --local-dir models/base/qwen3-coder-30b-a3b-instruct ` --chunk-size 16mb ` --retries 20 ``` ## Prepare Dataset ```powershell python scripts/validate_1c_training_data.py plugins/1c/training/examples/instruction.examples.jsonl python scripts/prepare_1c_training_data.py --input plugins/1c/training/examples/instruction.examples.jsonl --output plugins/1c/training/prepared/train.chat.jsonl ``` ## Local Preflight ```powershell python scripts/preflight_1c_training.py ``` ## Dry Run ```powershell python scripts/train_1c_lora.py --dry-run ``` ## GPU Docker Run ```powershell docker --host ssh://docker-gpu.cin.su compose --env-file core/deploy/docker-gpu/training/1c-lora.env.example -f core/deploy/docker-gpu/training/1c-lora.compose.yaml up --abort-on-container-exit ``` Или через готовый wrapper: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts/run_1c_lora_training_gpu.ps1 ``` Full end-to-end orchestration for the current `Q6` route: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts/train_and_publish_q6_lora.ps1 ``` Preview the whole flow without executing: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts/train_and_publish_q6_lora.ps1 -PlanOnly ``` Troubleshooting: ```text docs/runbooks/q6-lora-troubleshooting.md ``` ## Output Adapter path: ```text /models/adapters/1c/qwen3-coder-30b-a3b-1c-lora-v1 ``` After a successful training run: 1. Run `plugins/1c/evals/smoke.yaml`. 2. Convert the adapter for `llama.cpp` GGUF format or merge it before rebuilding the Q6 GGUF deployment artifact. GGUF adapter export on `docker-gpu`: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts/convert_1c_lora_to_gguf_gpu.ps1 ``` The default output path is: ```text /models/adapters/1c/qwen3-coder-30b-a3b-1c-lora-v1.gguf ``` If the export container should reuse an existing `llama.cpp` checkout on the host without pulling updates: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts/convert_1c_lora_to_gguf_gpu.ps1 -SkipClone ``` 3. To launch the current GPU Q6 route with a converted adapter, use: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File scripts/manage_gpu_q6_service.ps1 ` -Action start ` -LoraPath /models/adapters/1c/qwen3-coder-30b-a3b-1c-lora-v1.gguf ``` If you need a custom adapter scale, pass `-LoraScale 0.5` or another value. 4. Compare base, RAG, and adapter outputs. 5. Promote model card from `draft` only after expert review.