Spaces:
Paused
Paused
import os | |
from fastapi import FastAPI | |
from huggingface_hub import HfApi | |
import time | |
TOKEN = os.environ.get("BULK_ENERGY_TOKEN") | |
API = HfApi(token=TOKEN) | |
REPO_ID = "AIEnergyScore/BulkCalcSpace" | |
RESULTS_DSET = "AIEnergyScore/BulkCalcResults" | |
app = FastAPI() | |
def start_train(): | |
model_file = open("models.txt", "r+").readlines() | |
task_file = open("tasks.txt", "r+").readlines() | |
hardware_file = open("hardware.txt", "r+").readlines() | |
for hardware in hardware_file: | |
hardware = hardware.strip() | |
os.system(f"echo 'Requested hardware is {hardware}'") | |
curr_runtime = API.get_space_runtime(repo_id=REPO_ID) | |
os.system(f"echo 'Current hardware is {curr_runtime}'") | |
if curr_runtime.hardware != hardware: | |
os.system("echo 'Trying to switch.'") | |
API.request_space_hardware(repo_id=REPO_ID, hardware=hardware) | |
for model in model_file: | |
model = model.strip() | |
os.system(f"echo 'Attempting to benchmark model {model}.'") | |
for task in task_file: | |
task = task.strip() | |
os.system(f"echo 'Attempting to benchmark model {model} on task {task}.'") | |
# Create the name of the directory for output. | |
now = time.time() | |
run_dir = f"runs/{task}/{model}/{now}" | |
os.system(f"./entrypoint.sh {model} {task} {hardware} {run_dir}") | |
# Uploads all run output to the results dataset. | |
os.system(f"echo 'Uploading {run_dir} to {RESULTS_DSET}'") | |
try: | |
API.create_repo(repo_id=f"{RESULTS_DSET}", repo_type="dataset",) | |
os.system("echo 'Created results dataset repository.'") | |
except: | |
os.system("echo 'Using pre-existing dataset respository.'") | |
API.upload_folder(folder_path=run_dir, repo_id=f"{RESULTS_DSET}", repo_type="dataset",) | |
print("Pausing space") | |
API.pause_space(REPO_ID) | |
#return {"Status": "Done"} |