Files
llm/docs/runbooks/q6-lora-troubleshooting.md
T

152 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Q6 LoRA Troubleshooting
Цель: короткая памятка по типовым проблемам при обучении, конвертации и публикации `Qwen3-Coder Q6` с LoRA.
## Main Rule
На `docker-gpu` training/download контейнеры должны видеть код из `Z:\LLM\model-chat-app`, а не напрямую из `Z:\codex\LLM`.
Актуальный поток такой:
1. локальный репозиторий архивируется;
2. архив синхронизируется в `Z:\LLM\model-chat-app`;
3. training/download контейнеры используют этот каталог как `/workspace` или `/app`.
Если новые `scripts`, `plugins` или `registry/model-cards` не попали в `model-chat-app`, контейнеры будут работать на старом коде.
## Quick Checks
Проверить GPU host:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/check_gpu_host.ps1 -SshTarget docker-gpu
```
Показать план полного пайплайна:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/train_and_publish_q6_lora.ps1 -PlanOnly
```
Прогнать только безопасный preflight:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/train_and_publish_q6_lora.ps1 -SkipDownload -SkipTrain -SkipConvert -SkipRestart -SkipSmoke
```
## Common Failures
### `Model card not found for id qwen3-coder-30b-a3b-instruct`
Причина:
- контейнер загрузки стартовал раньше, чем новый `model card` попал в `Z:\LLM\model-chat-app`.
Что делать:
```powershell
. .\scripts\app_archive.ps1
$archive = New-AppArchive
Test-AppArchive -Archive $archive
Sync-AppDirectory -SshTarget docker-gpu -RemoteArchive 'C:\ProgramData\LLM\model-chat-app.zip' -RemoteAppDir 'Z:\LLM\model-chat-app' -Archive $archive
docker -H ssh://docker-gpu rm -f llm-hf-range-qwen3-coder-base
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\download_hf_range_gpu.ps1 -CardId qwen3-coder-30b-a3b-instruct -LocalDir /models/base/qwen3-coder-30b-a3b-instruct -Detached -ContainerName llm-hf-range-qwen3-coder-base
```
### `requirements-training.txt` not found
Причина:
- training container смонтировал неправильный workspace path.
Правильное ожидание:
- `HOST_WORKSPACE_DIR=Z:/LLM/model-chat-app`
- wrapper `scripts/run_1c_lora_training_gpu.ps1` сам синхронизирует текущий код в `model-chat-app` перед `docker compose up`.
### `base model is incomplete at /models/base/qwen3-coder-30b-a3b-instruct`
Причина:
- HF-база еще не скачана полностью.
Что смотреть:
```powershell
docker -H ssh://docker-gpu logs -f llm-hf-range-qwen3-coder-base
docker -H ssh://docker-gpu run --rm -v Z:/LLM/models:/models alpine sh -lc "ls -lah /models/base/qwen3-coder-30b-a3b-instruct"
```
Хороший признак:
- в логе идут строки `OK <filename>`
- появились все `model-00001-of-00016.safetensors` ... `model-00016-of-00016.safetensors`
### `CUDA out of memory`
Причина:
- слишком тяжелая конфигурация для текущего режима RTX 4090.
Что делать:
- остановить лишние тяжелые сервисы;
- убедиться, что активен только нужный training/runtime контур;
- при необходимости уменьшить training нагрузку в `plugins/1c/training/configs/qwen3-coder-30b-a3b-lora.yaml`.
### `llama.cpp` стартовал без адаптера
Причина:
- не передан `-LoraPath`
- `.gguf` адаптер не был создан
- опубликован не тот путь
Проверка:
```powershell
docker -H ssh://docker-gpu run --rm -v Z:/LLM/models:/models alpine sh -lc "ls -lah /models/adapters/1c/qwen3-coder-30b-a3b-1c-lora-v1.gguf"
powershell -ExecutionPolicy Bypass -File scripts\manage_gpu_q6_service.ps1 -Action status -LoraPath /models/adapters/1c/qwen3-coder-30b-a3b-1c-lora-v1.gguf
```
## Monitoring Commands
Скачивание базы:
```powershell
docker -H ssh://docker-gpu logs -f llm-hf-range-qwen3-coder-base
```
Обучение:
```powershell
docker -H ssh://docker-gpu logs -f llm-train-1c-lora
```
Q6 runtime:
```powershell
docker -H ssh://docker-gpu logs -f llm-llama-qwen3-coder-q6-test
```
Endpoint check:
```powershell
python scripts\check_inference_endpoint.py --base-url http://docker-gpu.cin.su:8081 --expected-model qwen3-coder-1c-q6 --print
```
Smoke eval:
```powershell
python scripts\run_1c_smoke_eval.py --base-url http://docker-gpu.cin.su:8081 --model qwen3-coder-1c-q6
```
## Recommended Order
1. Дождаться полной загрузки HF-базы.
2. Прогнать `PreflightOnly`.
3. Запустить обучение.
4. Конвертировать LoRA в GGUF.
5. Перезапустить `Q6` с `-LoraPath`.
6. Прогнать endpoint check и smoke eval.