mirror of
https://github.com/velocitatem/PHANTOM.git
synced 2026-05-31 08:33:36 +00:00
176 lines
4.7 KiB
Makefile
176 lines
4.7 KiB
Makefile
LATEXMK := latexmk
|
|
SRCDIR := paper/src
|
|
BUILDDIR := build
|
|
TEX := main.tex
|
|
JOBNAME := main
|
|
PDF := paper/$(BUILDDIR)/$(JOBNAME).pdf
|
|
VENV := .venv
|
|
PYTHON := $(VENV)/bin/python
|
|
PIP := $(VENV)/bin/pip
|
|
PYTEST := $(VENV)/bin/pytest
|
|
NX := npx nx
|
|
|
|
SWEEP_ENV_FILE ?= .env.sweep
|
|
|
|
WANDB_ENTITY ?=
|
|
WANDB_PROJECT ?= capstone
|
|
SWEEP_ID ?=
|
|
LOCAL_TRAIN_ARGS ?= --algo ppo --total-timesteps 50000
|
|
LOCAL_BENCHMARK_ARGS ?= --tiers static,surge,linear,qtable,ppo --alpha-values 0.0,0.3 --episodes 3 --total-timesteps 3000 --max-steps 40 --device cpu
|
|
BENCHMARK_AGENT_ARGS ?=
|
|
AGENT_COUNT ?= 0
|
|
|
|
REPO_URL ?=
|
|
BRANCH ?= main
|
|
WORKDIR ?= $(HOME)/PHANTOM-agent
|
|
AGENT_LOOP ?= 1
|
|
RETRY_SECONDS ?= 20
|
|
|
|
TRAIN_IMAGE_REF := us-central1-docker.pkg.dev/phantom-trc/phantom/phantom-trainer
|
|
|
|
SWEEP_ENV_LOAD = set -a; [ -f "$(SWEEP_ENV_FILE)" ] && . "$(SWEEP_ENV_FILE)" || true; set +a
|
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
.PHONY: help
|
|
help:
|
|
@echo "pdf.build pdf.watch pdf.clean pdf.genpop pdf.genpop.watch | test.backend test.e2e test.all | web.dev | install | train | benchmark | benchmark.agent | train.agent | train.bootstrap | stats.lines"
|
|
@echo "backend.server backend.provider backend.worker | platform.up platform.down platform.logs | docker.train.publish"
|
|
@echo ""
|
|
@echo "Build general public version:"
|
|
@echo " make pdf.genpop"
|
|
@echo ""
|
|
@echo "Local wandb run:"
|
|
@echo " make train LOCAL_TRAIN_ARGS='--algo ppo --total-timesteps 50000'"
|
|
@echo ""
|
|
@echo "Local benchmark run:"
|
|
@echo " make benchmark LOCAL_BENCHMARK_ARGS='--tiers static,surge,linear --alpha-values 0.0,0.3 --episodes 3 --no-wandb'"
|
|
@echo ""
|
|
@echo "Local sweep agent from this repo:"
|
|
@echo " make train.agent SWEEP_ID=entity/project/id AGENT_COUNT=5"
|
|
@echo ""
|
|
@echo "Bootstrap private repo worker from anywhere:"
|
|
@echo " make train.bootstrap REPO_URL=https://github.com/org/repo.git BRANCH=main SWEEP_ID=entity/project/id"
|
|
@echo ""
|
|
@echo "Config source: $(SWEEP_ENV_FILE) (auto-loaded)"
|
|
|
|
$(BUILDDIR):
|
|
mkdir -p paper/$(BUILDDIR)
|
|
|
|
.PHONY: pdf.build
|
|
pdf.build:
|
|
@$(NX) run paper:build
|
|
|
|
.PHONY: pdf.watch
|
|
pdf.watch:
|
|
@$(NX) run paper:watch
|
|
|
|
.PHONY: pdf.clean
|
|
pdf.clean:
|
|
@$(NX) run paper:clean
|
|
|
|
.PHONY: pdf.genpop
|
|
pdf.genpop:
|
|
@bash scripts/nx_paper.sh build-genpop
|
|
|
|
.PHONY: pdf.genpop.watch
|
|
pdf.genpop.watch:
|
|
@bash scripts/nx_paper.sh watch-genpop
|
|
|
|
.PHONY: test.backend
|
|
test.backend:
|
|
@$(NX) run research:test
|
|
|
|
.PHONY: test.e2e
|
|
test.e2e:
|
|
@$(NX) run e2e:test
|
|
|
|
.PHONY: test.all
|
|
test.all:
|
|
@$(NX) run-many -t test --projects=research,e2e --parallel=1
|
|
|
|
.PHONY: web.dev
|
|
web.dev:
|
|
@$(NX) run web:dev
|
|
|
|
$(VENV):
|
|
python3 -m venv $(VENV)
|
|
$(PIP) install --upgrade pip
|
|
|
|
.PHONY: install
|
|
install:
|
|
@$(NX) run research:install
|
|
|
|
.PHONY: train
|
|
train:
|
|
@WANDB_ENTITY="$(WANDB_ENTITY)" WANDB_PROJECT="$(WANDB_PROJECT)" SWEEP_ENV_FILE="$(SWEEP_ENV_FILE)" LOCAL_TRAIN_ARGS="$(LOCAL_TRAIN_ARGS)" $(NX) run research:train
|
|
|
|
.PHONY: benchmark
|
|
benchmark:
|
|
@WANDB_ENTITY="$(WANDB_ENTITY)" WANDB_PROJECT="$(WANDB_PROJECT)" SWEEP_ENV_FILE="$(SWEEP_ENV_FILE)" LOCAL_BENCHMARK_ARGS="$(LOCAL_BENCHMARK_ARGS)" $(NX) run research:benchmark
|
|
|
|
.PHONY: benchmark.agent
|
|
benchmark.agent:
|
|
@WANDB_ENTITY="$(WANDB_ENTITY)" WANDB_PROJECT="$(WANDB_PROJECT)" SWEEP_ENV_FILE="$(SWEEP_ENV_FILE)" SWEEP_ID="$(SWEEP_ID)" AGENT_COUNT="$(AGENT_COUNT)" BENCHMARK_AGENT_ARGS="$(BENCHMARK_AGENT_ARGS)" $(NX) run research:benchmark-agent
|
|
|
|
.PHONY: train.agent
|
|
train.agent:
|
|
@WANDB_ENTITY="$(WANDB_ENTITY)" WANDB_PROJECT="$(WANDB_PROJECT)" SWEEP_ENV_FILE="$(SWEEP_ENV_FILE)" SWEEP_ID="$(SWEEP_ID)" AGENT_COUNT="$(AGENT_COUNT)" $(NX) run research:train-agent
|
|
|
|
.PHONY: train.bootstrap
|
|
train.bootstrap:
|
|
@WANDB_ENTITY="$(WANDB_ENTITY)" WANDB_PROJECT="$(WANDB_PROJECT)" SWEEP_ENV_FILE="$(SWEEP_ENV_FILE)" REPO_URL="$(REPO_URL)" BRANCH="$(BRANCH)" WORKDIR="$(WORKDIR)" SWEEP_ID="$(SWEEP_ID)" AGENT_COUNT="$(AGENT_COUNT)" AGENT_LOOP="$(AGENT_LOOP)" RETRY_SECONDS="$(RETRY_SECONDS)" $(NX) run research:train-bootstrap
|
|
|
|
.PHONY: stats.lines
|
|
stats.lines:
|
|
@$(NX) run research:stats
|
|
|
|
.PHONY: wordcount
|
|
wordcount:
|
|
@$(NX) run paper:wordcount
|
|
|
|
.PHONY: docker.train.publish
|
|
docker.train.publish:
|
|
@TRAIN_IMAGE_REF="$(TRAIN_IMAGE_REF)" $(NX) run research:docker-train-publish
|
|
|
|
.PHONY: backend.server backend.provider backend.worker platform.up platform.down platform.logs
|
|
backend.server:
|
|
@$(NX) run backend-server:dev
|
|
|
|
backend.provider:
|
|
@$(NX) run pricing-provider:dev
|
|
|
|
backend.worker:
|
|
@$(NX) run backend-worker:dev
|
|
|
|
platform.up:
|
|
@$(NX) run platform:up
|
|
|
|
platform.down:
|
|
@$(NX) run platform:down
|
|
|
|
platform.logs:
|
|
@$(NX) run platform:logs
|
|
|
|
.PHONY: pdf clean watch run.webapp test count-lines all
|
|
pdf:
|
|
@$(NX) run paper:build
|
|
|
|
clean:
|
|
@$(NX) run paper:clean
|
|
|
|
watch:
|
|
@$(NX) run paper:watch
|
|
|
|
run.webapp:
|
|
@$(NX) run web:dev
|
|
|
|
test:
|
|
@$(NX) run research:test
|
|
|
|
count-lines:
|
|
@$(NX) run research:stats
|
|
|
|
all:
|
|
@$(NX) run paper:build
|