QuantHive / train_notebook.py
ARKAISW's picture
Semantic observation prompts β€” rich text replaces raw floats (judge feedback #1)
213c699
import os
import sys
import subprocess
from pathlib import Path
def run_notebook():
print("============================================================")
print(" QuantHive β€” Notebook-based GRPO Training (HF Jobs)")
print("============================================================")
# 1. Install necessary execution dependencies
print("πŸ“¦ Installing notebook execution tools...")
subprocess.run([sys.executable, "-m", "pip", "install", "-q", "nbconvert", "nbformat", "ipykernel", "huggingface_hub"], check=True)
# 2. Execute the notebook
print("πŸš€ Executing mate_training.ipynb (mimicking Colab flow)...")
try:
# We run it with --to notebook --execute --inplace
subprocess.run([
"jupyter", "nbconvert",
"--to", "notebook",
"--execute",
"--inplace",
"mate_training.ipynb"
], check=True)
print("βœ… Notebook execution successful!")
except subprocess.CalledProcessError as e:
print(f"❌ Notebook execution failed: {e}")
# We don't exit here because the notebook might have saved partial results
# 3. Model Storage to HF Hub
# The notebook saves to ./quanthive-trader-grpo-lora
model_path = Path("quanthive-trader-grpo-lora")
if model_path.exists():
print(f"πŸ“‘ Found trained model at {model_path}. Pusing to HF Hub...")
try:
from huggingface_hub import HfApi
api = HfApi()
repo_id = "ARKAISW/quanthive-trader-grpo-lora"
# Use HF_TOKEN if available in environment
token = os.environ.get("HF_TOKEN")
api.upload_folder(
folder_path=str(model_path),
repo_id=repo_id,
repo_type="model",
token=token
)
print(f"βœ… Model successfully pushed to https://huggingface.co/{repo_id}")
except Exception as e:
print(f"⚠️ Model push failed: {e}")
print("You can manually push the 'quanthive-trader-grpo-lora' folder later.")
else:
print("❌ Trained model folder not found. Check notebook output for errors.")
print("============================================================")
print("🏁 Processing Finished.")
if __name__ == "__main__":
run_notebook()