Skip to content

Commit

Permalink
updated statsforecast models
Browse files Browse the repository at this point in the history
  • Loading branch information
attilabalint committed Jun 20, 2024
1 parent 62e2021 commit 636db8a
Show file tree
Hide file tree
Showing 22 changed files with 38 additions and 64 deletions.
46 changes: 15 additions & 31 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -129,42 +129,47 @@ download-salesforce-moirai: models/salesforce-moirai/models/moirai-1.0-R-small \

DOCKER_HUB_REPOSITORY := $(DOCKER_HUB_REPOSITORY)
ENFOBENCH_VERSION := $(shell hatch version)
MODEL_NAME := sf-naive
IMAGE_TAG := $(ENFOBENCH_VERSION)-$(MODEL_NAME)
MODEL := sf-naive
IMAGE_TAG := $(ENFOBENCH_VERSION)-$(MODEL)
DEFAULT_PORT := 3000

DARTS_VERSION := 0.27.2
SKTIME_VERSION := 0.26.1
STATSFORECAST_VERSION := 1.5.0
DARTS_VERSION := 0.30.0
SKTIME_VERSION := 0.30.1
STATSFORECAST_VERSION := 1.7.5
CHRONOS_VERSION := 1.2.0


.PHONY: base-image-darts
## Build base image for darts
base-image-darts:
docker build --build-arg DARTS_VERSION=$(DARTS_VERSION) -t $(DOCKER_HUB_REPOSITORY):base-u8darts-$(DARTS_VERSION) ./docker/base/darts
docker push $(DOCKER_HUB_REPOSITORY):base-u8darts-$(DARTS_VERSION)


.PHONY: base-image-sktime
## Build base image for sktime
base-image-sktime:
docker build --build-arg SKTIME_VERSION=$(SKTIME_VERSION) -t $(DOCKER_HUB_REPOSITORY):base-sktime-$(SKTIME_VERSION) ./docker/base/sktime
docker push $(DOCKER_HUB_REPOSITORY):base-sktime-$(SKTIME_VERSION)


.PHONY: base-image-statsforecast
## Build base image for statsforecast
base-image-statsforecast:
docker build --build-arg STATSFORECAST_VERSION=$(STATSFORECAST_VERSION) -t $(DOCKER_HUB_REPOSITORY):base-statsforecast-$(STATSFORECAST_VERSION) ./docker/base/statsforecast
docker push $(DOCKER_HUB_REPOSITORY):base-statsforecast-$(STATSFORECAST_VERSION)


.PHONY: base-image-amazon-chronos
base-image-amazon-chronos:
docker build --build-arg CHRONOS_VERSION=$(CHRONOS_VERSION) -t $(DOCKER_HUB_REPOSITORY):base-amazon-chronos-$(CHRONOS_VERSION) ./docker/base/amazon-chronos
docker push $(DOCKER_HUB_REPOSITORY):base-amazon-chronos-$(CHRONOS_VERSION)


.PHONY: base-image-salesforce-moirai
base-image-salesforce-moirai:
docker build -t $(DOCKER_HUB_REPOSITORY):base-salesforce-moirai ./docker/base/salesforce-moirai
docker push $(DOCKER_HUB_REPOSITORY):base-salesforce-moirai


## Build base images
Expand All @@ -175,45 +180,24 @@ base-images: base-image-darts \
base-image-salesforce-moirai


.PHONY: push-base-images
## Push base images to Docker Hub
push-base-images:
docker push $(DOCKER_HUB_REPOSITORY):base-u8darts-$(DARTS_VERSION)
docker push $(DOCKER_HUB_REPOSITORY):base-sktime-$(SKTIME_VERSION)
docker push $(DOCKER_HUB_REPOSITORY):base-statsforecast-$(STATSFORECAST_VERSION)
docker push $(DOCKER_HUB_REPOSITORY):base-amazon-chronos-$(CHRONOS_VERSION)
docker push $(DOCKER_HUB_REPOSITORY):base-salesforce-moirai


.PHONY: image
.PHONY: build-image
## Build a model image
image:
docker build -t $(DOCKER_HUB_REPOSITORY):$(IMAGE_TAG) ./models/$(MODEL_NAME)
build-image:
docker build -t $(DOCKER_HUB_REPOSITORY):$(IMAGE_TAG) ./models/$(MODEL)


.PHONY: push-image
## Push a model image to Docker Hub
push-image: image
push-image:
docker push $(DOCKER_HUB_REPOSITORY):$(IMAGE_TAG)


.PHONY: run-image
## Run a model image
run-image: image
run-image:
docker run -it --rm -p $(DEFAULT_PORT):3000 $(DOCKER_HUB_REPOSITORY):$(IMAGE_TAG)


MODELS = $(shell ls -d ./models/* | xargs -n 1 basename)
## Make all model images
images:
$(foreach var,$(MODELS), $(MAKE) image MODEL_NAME=$(var);)


## Push images to Docker Hub
push-images:
$(foreach var,$(MODELS), $(MAKE) push-image MODEL_NAME=$(var);)


#################################################################################
# Self Documenting Commands #
#################################################################################
Expand Down
2 changes: 1 addition & 1 deletion docker/base/darts/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.11.6-slim-bookworm
FROM python:3.11-slim-bookworm

WORKDIR /usr/local/app

Expand Down
2 changes: 1 addition & 1 deletion docker/base/sktime/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.11.6-slim-bookworm
FROM python:3.11-slim-bookworm

WORKDIR /usr/local/app

Expand Down
2 changes: 1 addition & 1 deletion docker/base/statsforecast/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.11.6-slim-bookworm
FROM python:3.11-slim-bookworm

WORKDIR /usr/local/app

Expand Down
4 changes: 1 addition & 3 deletions models/sf-auto-ces/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM attilabalint/enfobench-models:base-statsforecast-1.5.0
FROM attilabalint/enfobench-models:base-statsforecast-1.7.5

WORKDIR /usr/local/app

Expand All @@ -7,7 +7,5 @@ RUN pip install --no-cache-dir -r /usr/local/app/requirements.txt

COPY ./src /usr/local/app/src

ENV ENFOBENCH_MODEL_SEASONALITY="1D"

EXPOSE 3000
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "3000"]
2 changes: 1 addition & 1 deletion models/sf-auto-ces/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enfobench>=0.6.0,<0.7.0
enfobench>=0.7.0,<0.8.0
2 changes: 1 addition & 1 deletion models/sf-auto-ces/src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def forecast(


# Load parameters
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY")
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY", "1D")

# Instantiate your model
model = AutoCESModel(seasonality=seasonality)
Expand Down
2 changes: 1 addition & 1 deletion models/sf-historic-average/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM attilabalint/enfobench-models:base-statsforecast-1.5.0
FROM attilabalint/enfobench-models:base-statsforecast-1.7.5

WORKDIR /usr/local/app

Expand Down
2 changes: 1 addition & 1 deletion models/sf-historic-average/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enfobench>=0.6.0,<0.7.0
enfobench>=0.7.0,<0.8.0
2 changes: 1 addition & 1 deletion models/sf-mstl/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM attilabalint/enfobench-models:base-statsforecast-1.5.0
FROM attilabalint/enfobench-models:base-statsforecast-1.7.5

WORKDIR /usr/local/app

Expand Down
2 changes: 1 addition & 1 deletion models/sf-mstl/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enfobench>=0.6.0,<0.7.0
enfobench>=0.7.0,<0.8.0
5 changes: 1 addition & 4 deletions models/sf-naive-seasonal-avg/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM attilabalint/enfobench-models:base-statsforecast-1.5.0
FROM attilabalint/enfobench-models:base-statsforecast-1.7.5

WORKDIR /usr/local/app

Expand All @@ -7,8 +7,5 @@ RUN pip install --no-cache-dir -r /usr/local/app/requirements.txt

COPY ./src /usr/local/app/src

ENV ENFOBENCH_MODEL_SEASONALITY="1D"
ENV ENFOBENCH_MODEL_WINDOW_SIZE="28"

EXPOSE 3000
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "3000"]
2 changes: 1 addition & 1 deletion models/sf-naive-seasonal-avg/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enfobench>=0.6.0,<0.7.0
enfobench>=0.7.0,<0.8.0
4 changes: 2 additions & 2 deletions models/sf-naive-seasonal-avg/src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ def forecast(


# Load parameters
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY")
window_size = int(os.getenv("ENFOBENCH_MODEL_WINDOW_SIZE"))
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY", "1D")
window_size = int(os.getenv("ENFOBENCH_MODEL_WINDOW_SIZE", "28"))

# Instantiate your model
model = SeasonalWindowAverageModel(seasonality, window_size)
Expand Down
4 changes: 1 addition & 3 deletions models/sf-naive-seasonal/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM attilabalint/enfobench-models:base-statsforecast-1.5.0
FROM attilabalint/enfobench-models:base-statsforecast-1.7.5

WORKDIR /usr/local/app

Expand All @@ -7,7 +7,5 @@ RUN pip install --no-cache-dir -r /usr/local/app/requirements.txt

COPY ./src /usr/local/app/src

ENV ENFOBENCH_MODEL_SEASONALITY="1D"

EXPOSE 3000
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "3000"]
2 changes: 1 addition & 1 deletion models/sf-naive-seasonal/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enfobench>=0.6.0,<0.7.0
enfobench>=0.7.0,<0.8.0
2 changes: 1 addition & 1 deletion models/sf-naive-seasonal/src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def forecast(


# Load parameters
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY")
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY", "1D")

# Instantiate your model
model = SeasonalNaiveModel(seasonality)
Expand Down
2 changes: 1 addition & 1 deletion models/sf-naive/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM attilabalint/enfobench-models:base-statsforecast-1.5.0
FROM attilabalint/enfobench-models:base-statsforecast-1.7.5

WORKDIR /usr/local/app

Expand Down
2 changes: 1 addition & 1 deletion models/sf-naive/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enfobench>=0.6.0,<0.7.0
enfobench>=0.7.0,<0.8.0
5 changes: 1 addition & 4 deletions models/sf-seasonal-es/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM attilabalint/enfobench-models:base-statsforecast-1.5.0
FROM attilabalint/enfobench-models:base-statsforecast-1.7.5

WORKDIR /usr/local/app

Expand All @@ -7,8 +7,5 @@ RUN pip install --no-cache-dir -r /usr/local/app/requirements.txt

COPY ./src /usr/local/app/src

ENV ENFOBENCH_MODEL_SEASONALITY="1D"
ENV ENFOBENCH_MODEL_ALPHA="0.5"

EXPOSE 3000
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "3000"]
2 changes: 1 addition & 1 deletion models/sf-seasonal-es/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
enfobench>=0.6.0,<0.7.0
enfobench>=0.7.0,<0.8.0
4 changes: 2 additions & 2 deletions models/sf-seasonal-es/src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ def forecast(


# Load parameters
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY")
alpha = float(os.getenv("ENFOBENCH_MODEL_ALPHA"))
seasonality = os.getenv("ENFOBENCH_MODEL_SEASONALITY", "1D")
alpha = float(os.getenv("ENFOBENCH_MODEL_ALPHA", "0.5"))

# Instantiate your model
model = SeasonalExponentialSmoothingModel(seasonality=seasonality, alpha=alpha)
Expand Down

0 comments on commit 636db8a

Please sign in to comment.