Browse Source

removing the deprecated @modal.build and using modal.Volume.from_name

pull/314/head
craigprobus 2 months ago
parent
commit
9450509f5d
  1. 3
      week8/agents/specialist_agent.py
  2. 5270
      week8/day1.ipynb
  3. 9
      week8/pricer_ephemeral.py
  4. 9
      week8/pricer_service.py
  5. 24
      week8/pricer_service2.py

3
week8/agents/specialist_agent.py

@ -15,7 +15,8 @@ class SpecialistAgent(Agent):
Set up this Agent by creating an instance of the modal class
"""
self.log("Specialist Agent is initializing - connecting to modal")
Pricer = modal.Cls.lookup("pricer-service", "Pricer")
#DEL: Pricer = modal.Cls.lookup("pricer-service", "Pricer")
Pricer = modal.Cls.from_name("pricer-service", "Pricer")
self.pricer = Pricer()
self.log("Specialist Agent is ready")

5270
week8/day1.ipynb

File diff suppressed because it is too large Load Diff

9
week8/pricer_ephemeral.py

@ -12,10 +12,10 @@ secrets = [modal.Secret.from_name("hf-secret")]
GPU = "T4"
BASE_MODEL = "meta-llama/Meta-Llama-3.1-8B"
PROJECT_NAME = "pricer"
HF_USER = "ed-donner" # your HF name here! Or use mine if you just want to reproduce my results.
RUN_NAME = "2024-09-13_13.04.39"
HF_USER = "cproSD" # your HF name here! Or use mine if you just want to reproduce my results.
RUN_NAME = "2025-04-08_21.52.37"
PROJECT_RUN_NAME = f"{PROJECT_NAME}-{RUN_NAME}"
REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36"
#DEL: REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36"
FINETUNED_MODEL = f"{HF_USER}/{PROJECT_RUN_NAME}"
@ -52,7 +52,8 @@ def price(description: str) -> float:
device_map="auto"
)
fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION)
#DEL: fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION)
fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL)
set_seed(42)
inputs = tokenizer.encode(prompt, return_tensors="pt").to("cuda")

9
week8/pricer_service.py

@ -12,10 +12,10 @@ secrets = [modal.Secret.from_name("hf-secret")]
GPU = "T4"
BASE_MODEL = "meta-llama/Meta-Llama-3.1-8B"
PROJECT_NAME = "pricer"
HF_USER = "ed-donner" # your HF name here! Or use mine if you just want to reproduce my results.
RUN_NAME = "2024-09-13_13.04.39"
HF_USER = "cproSD" # your HF name here! Or use mine if you just want to reproduce my results.
RUN_NAME = "2025-04-08_21.52.37"
PROJECT_RUN_NAME = f"{PROJECT_NAME}-{RUN_NAME}"
REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36"
#DEL: REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36"
FINETUNED_MODEL = f"{HF_USER}/{PROJECT_RUN_NAME}"
@ -52,7 +52,8 @@ def price(description: str) -> float:
device_map="auto"
)
fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION)
#DEL: fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION)
fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL)
set_seed(42)
inputs = tokenizer.encode(prompt, return_tensors="pt").to("cuda")

24
week8/pricer_service2.py

@ -6,16 +6,17 @@ from modal import App, Volume, Image
app = modal.App("pricer-service")
image = Image.debian_slim().pip_install("huggingface", "torch", "transformers", "bitsandbytes", "accelerate", "peft")
secrets = [modal.Secret.from_name("hf-secret")]
volume = modal.Volume.from_name("pricer-model-cache", create_if_missing=True)
# Constants
GPU = "T4"
BASE_MODEL = "meta-llama/Meta-Llama-3.1-8B"
PROJECT_NAME = "pricer"
HF_USER = "ed-donner" # your HF name here! Or use mine if you just want to reproduce my results.
RUN_NAME = "2024-09-13_13.04.39"
HF_USER = "cproSD" # your HF name here! Or use mine if you just want to reproduce my results.
RUN_NAME = "2025-04-08_21.52.37"
PROJECT_RUN_NAME = f"{PROJECT_NAME}-{RUN_NAME}"
REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36"
#DEL: REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36"
FINETUNED_MODEL = f"{HF_USER}/{PROJECT_RUN_NAME}"
MODEL_DIR = "hf-cache/"
BASE_DIR = MODEL_DIR + BASE_MODEL
@ -24,15 +25,17 @@ FINETUNED_DIR = MODEL_DIR + FINETUNED_MODEL
QUESTION = "How much does this cost to the nearest dollar?"
PREFIX = "Price is $"
@app.cls(image=image, secrets=secrets, gpu=GPU, timeout=1800)
#DEL: @app.cls(image=image, secrets=secrets, gpu=GPU, timeout=1800)
@app.cls(image=image, secrets=secrets, gpu=GPU, timeout=1800, volumes={"/pretrained_models": volume})
class Pricer:
@modal.build()
def download_model_to_folder(self):
#DEL: def download_model_to_folder(self):
def __enter__(self):
from huggingface_hub import snapshot_download
import os
os.makedirs(MODEL_DIR, exist_ok=True)
snapshot_download(BASE_MODEL, local_dir=BASE_DIR)
snapshot_download(FINETUNED_MODEL, revision=REVISION, local_dir=FINETUNED_DIR)
os.makedirs("/pretrained_models/" + MODEL_DIR, exist_ok=True)
snapshot_download(BASE_MODEL, local_dir="/pretrained_models/" + BASE_DIR)
#DEL: snapshot_download(FINETUNED_MODEL, revision=REVISION, local_dir=FINETUNED_DIR)
snapshot_download(FINETUNED_MODEL, local_dir="/pretrained_models/" + FINETUNED_DIR)
@modal.enter()
def setup(self):
@ -61,7 +64,8 @@ class Pricer:
device_map="auto"
)
self.fine_tuned_model = PeftModel.from_pretrained(self.base_model, FINETUNED_DIR, revision=REVISION)
#DEL: self.fine_tuned_model = PeftModel.from_pretrained(self.base_model, FINETUNED_DIR, revision=REVISION)
self.fine_tuned_model = PeftModel.from_pretrained(self.base_model, FINETUNED_DIR)
@modal.method()
def price(self, description: str) -> float:

Loading…
Cancel
Save