Команды CLI
Кузня устанавливает команду kuz в PATH.
Те же команды работают как python3 kuz.py <команда> при запуске из исходников.
Все команды #
| Команда | Описание |
|---|---|
kuz app | Открыть интерфейс в браузере (по умолчанию http://127.0.0.1:7860) |
kuz train <config> | Обучить из файла конфига |
kuz check <config> | Проверить конфиг и данные, ничего не запуская |
kuz sim <path> | Проверить файл симуляции |
kuz init <config> | Создать конфиг из пресета |
kuz runs | Список ранов |
kuz presets | Список встроенных пресетов |
Голая команда kuz без аргументов открывает интерфейс (то же, что kuz app).
kuz app #
Открывает веб-интерфейс Кузни в браузере.
kuz app
kuz app --port 8080
kuz app --no-open # запустить сервер, не открывать браузер
kuz app --host 0.0.0.0 # слушать на всех интерфейсах (для доступа по сети)
Флаги kuz app
| Флаг | По умолчанию | Описание |
|---|---|---|
--host HOST | 127.0.0.1 | Адрес для прослушивания. |
--port PORT | 7860 | Порт. |
--root DIR | runs | Папка для хранения ранов. |
--no-open | — | Не открывать браузер/окно автоматически. |
--window MODE | window |
window — окно приложения (по умолчанию);webview — только родное окно ОС;app — окно браузера без вкладок;browser — обычная вкладка;auto — окно, а если не получилось — вкладка.
|
Пример вывода при запуске:
_ __
| |/ / _ _ ___ _ __ _ _ __ _
| ' / | | | ||_ /| '_ \ | | | | / _` |
| . \ | |_| | / / | | | || |_| || (_| |
|_|\_\ \__,_|/___||_| |_| \__, | \__,_|
|___/
Кузня v1.0.0 — обучение нейросетей из JSON
интерфейс: http://127.0.0.1:7860
раны: /home/user/runs
окно: отдельное окно приложения
Ctrl+C — остановить
kuz train #
Запускает обучение из файла конфига в терминале. Работает headless — без браузера, в том числе по SSH.
kuz train my.json
kuz train my.json --epochs 100 # переопределить число эпох
kuz train my.json --name exp-001 # задать имя рана
kuz train my.json --no-discord # отключить Discord на этот ран
kuz train my.json --quiet # минимум вывода в терминал
kuz train rl.json --episodes 500 # переопределить число эпизодов
Флаги kuz train
| Флаг | Описание |
|---|---|
--epochs N | Переопределить train.epochs из конфига. |
--episodes N | Переопределить simulation.episodes из конфига (RL-задачи). |
--name NAME | Переопределить run_name. |
--root DIR | Папка для ранов (по умолчанию runs). |
--no-discord | Полностью отключить Discord на этот ран. |
--dry-run | Discord в холостом режиме: не отправляет, только логирует. |
-q, --quiet | Тихий режим — минимум вывода. |
Пример вывода при обучении:
🔥 spiral-classifier / yasnyy-gorn-k3f9
2→64→64→3 · 40 эп. · adamw lr=0.003
устройство: cpu · параметров: 4 547
████████████░░░░░░░░░░░░ 15/40 loss 0.8341 · val 0.9102 · acc 0.7800
✓ finished за 1м23с
лучший val_loss: 0.2401
чекпоинты: runs/20240115-143022-yasnyy-gorn-k3f9
kuz check #
Проверяет конфиг и данные, не запуская обучения. Удобно убедиться, что всё в порядке перед длинным ранов.
kuz check my.json
Вывод при успехе:
spiral-classifier / yasnyy-gorn-k3f9
2→64→64→3 · 40 эп. · adamw lr=0.003
параметров ≈ 4 547
✓ данные ок: 2400 train / 600 val, builtin:spirals
конфиг рабочий.
Для RL-конфига дополнительно запускается smoke-test симуляции:
gridworld-agent / bystryy-iskra-m7q2
PPO · 300 эп. · симуляция
параметров ≈ 4 418
проверяю симуляцию…
✓ симуляция ок: obs=4, actions=4
конфиг рабочий.
kuz sim #
Проверяет файл симуляции: загружает его, выполняет smoke-test и выводит характеристики.
kuz sim sims/gridworld.py
kuz sim sims/my_env.py --entry MyEnvClass
kuz sim sims/my_env.py --timeout 5.0
Флаги kuz sim
| Флаг | По умолчанию | Описание |
|---|---|---|
--entry NAME | make_env | Имя фабрики или класса среды. |
--timeout SEC | 10.0 | Таймаут шага при проверке. |
Пример вывода:
проверяю sims/gridworld.py…
✓ симуляция рабочая
obs_dim: 4
n_actions: 4
reward: [-0.22, -0.02]
· n_actions взят из атрибута n_actions
· obs_dim выведен из формы первого наблюдения: (4,)
kuz init #
Создаёт файл конфига из встроенного пресета.
kuz init my.json # пресет spirals по умолчанию
kuz init my.json --preset spirals
kuz init my.json -p xor
kuz init rl.json -p gridworld
kuz init my.json -p regression
kuz init my.json -f # --force: перезаписать существующий файл
Флаги kuz init
| Флаг | По умолчанию | Описание |
|---|---|---|
-p, --preset NAME | spirals | Имя пресета (см. kuz presets). |
--rl | — | Предупреждение, если выбранный пресет не для RL. |
-f, --force | — | Перезаписать файл, если он уже существует. |
Вывод:
✓ my.json
2→64→64→3 · 40 эп. · adamw lr=0.003
запустить: kuz train my.json
kuz runs #
Показывает список ранов в папке runs.
kuz runs
kuz runs --limit 50 # показать до 50 ранов
kuz runs --root ./my-runs # папка с ранами
Флаги kuz runs
| Флаг | По умолчанию | Описание |
|---|---|---|
-n, --limit N | 20 | Максимум ранов в выводе. |
--root DIR | runs | Папка с ранами. |
Пример вывода:
✓ spiral-classifier yasnyy-gorn-k3f9 val_loss 0.2401 1м23с
✓ xor-mini tikhy-molot-x2p1 val_acc 0.9975 0м48с
⏹ sine-fit ostryy-ugl-k8m2 mse 0.0443 —
✗ gridworld-agent derzkiy-klin-r4n9 — 2м11с
всего: 4
kuz presets #
Показывает список встроенных пресетов.
kuz presets
Вывод:
spirals 2→64→64→3 · 40 эп. · adamw lr=0.003
≈4 547 параметров
xor 2→16→2 · 60 эп. · adam lr=0.01
≈82 параметра
regression 1→96→96→1 · 80 эп. · adamw lr=0.002
≈9 601 параметр
gridworld PPO · 300 эп. · симуляция
≈4 418 параметров
kuz init my.json --preset spirals
Версия и помощь #
kuz --version # → Кузня 1.0.0
kuz --help # общая справка
kuz train --help # справка по команде train
Примеры типичных сценариев #
Быстрый старт с пресетом
kuz init my.json --preset spirals
kuz check my.json
kuz train my.json
Обучение RL-агента
kuz init rl.json --preset gridworld
kuz sim sims/gridworld.py # убедиться, что среда работает
kuz check rl.json
kuz train rl.json
Обучение в тихом режиме (для скриптов и CI)
kuz train my.json --quiet --no-discord
echo "Обучение завершено с кодом: $?"
Обучение по SSH с webhook-уведомлением
export KUZNYA_WEBHOOK_URL="https://discord.com/api/webhooks/..."
kuz train config.json # карточка появится в Discord-канале
Переопределить параметры прямо из командной строки
kuz train my.json --epochs 200 --name long-run-001
Открыть интерфейс на нестандартном порту
kuz app --port 8888 --no-open
# Открыть вручную: http://127.0.0.1:8888