Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FineTune4CAD

Fine-tune Qwen3-4B на CadQuery + агентный пайплайн на трёх LangChain @tool.

До файнтюна После 3000 шагов
32% / 100 промптов 93% / 100 промптов

Структура

FineTune4CAD/
├── Train/                  # обучение и оценка
│   ├── script.py           # тренировочный пайплайн (Unsloth + QLoRA)
│   ├── eval100.py          # сравнение base vs LoRA на 100 промптах
│   ├── reeval.py           # быстрый eval сохранённой LoRA
│   ├── export_gguf.py      # конверсия LoRA → GGUF Q4_K_M
│   └── REPORT.md           # лог обучения с деталями
├── CAD_generator/          # агентное приложение
│   ├── app/                # tools.py, orchestrator, llm_client, ...
│   ├── docker/             # Dockerfile.app + docker-compose.yml (GPU)
│   ├── tests/              # pytest на @tool
│   └── demo.py             # headless 5-промптовый прогон
├── assets/                 # графики и скриншоты для отчёта
├── REPORT.md  / REPORT.pdf # итоговый отчёт (9 стр., с графиками)
└── .gitignore

Запуск приложения

Нужен Docker с GPU-passthrough (nvidia-container-toolkit) и собранный CAD_generator/models/cadquery-qwen3-4b.Q4_K_M.gguf (см. Train/export_gguf.py).

cd CAD_generator
make up        # docker compose up --build -d
                # → llama-server :8081 + Gradio UI :7860
make down      # остановить
make logs      # tail логи обоих сервисов

UI: http://localhost:7860. Запросы только на английском, например:

  • A cube 50x50x50mm
  • A washer outer diameter 24mm inner diameter 13mm thickness 2.5mm
  • An L-bracket 60x40mm both legs 20mm wide thickness 5mm
  • A flat disc diameter 80mm thickness 5mm
  • An electronics enclosure 120x80x40mm wall 2mm

Разработка

cd CAD_generator
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt cadquery pytest
.venv/bin/python -m app.search_index build      # BM25-индекс по 172K скриптов (~1 мин)
.venv/bin/python -m pytest tests/ -v            # 7 smoke-тестов на @tool
.venv/bin/python demo.py                        # headless демо

Альтернатива docker — нативный запуск:

make run-llm   # терминал 1
make run-app   # терминал 2

Подробности

См. REPORT.pdf — задача, выбор метода, гиперпараметры, метрики до/после с графиками, описание трёх tools, скриншоты UI и подводные камни (OOM на встроенном eval, eval-метрика смотревшая не туда, DeepCAD-нормализация).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages