""" Upload Memory Routing Agent to HuggingFace Hub This script uploads: 1. Model card (README.md) 2. Training dataset 3. Benchmark dataset 4. Training configuration """ import os import json from dotenv import load_dotenv from huggingface_hub import HfApi, create_repo, upload_file, upload_folder, login load_dotenv() # Configuration HF_TOKEN = os.getenv("HF_TOKEN") REPO_ID = "muratcankoylan/memory-routing-agent" DATASET_REPO_ID = "muratcankoylan/memory-routing-marketing" # Login first if HF_TOKEN: print(f"Logging in with token (first 10 chars): {HF_TOKEN[:10]}...") login(token=HF_TOKEN) else: print("ERROR: HF_TOKEN not found in .env file") exit(1) def upload_model(): """Upload model card and metadata to HuggingFace.""" api = HfApi(token=HF_TOKEN) # Create model repo try: create_repo(repo_id=REPO_ID, token=HF_TOKEN, exist_ok=True) print(f"Created/verified repo: {REPO_ID}") except Exception as e: print(f"Repo creation note: {e}") # Upload README (model card) upload_file( path_or_fileobj="huggingface/README.md", path_in_repo="README.md", repo_id=REPO_ID, token=HF_TOKEN, ) print("Uploaded model card") # Upload benchmark upload_file( path_or_fileobj="training/benchmarks/marketing_routing_benchmark.json", path_in_repo="benchmark/marketing_routing_benchmark.json", repo_id=REPO_ID, token=HF_TOKEN, ) print("Uploaded benchmark") # Upload training config config = { "base_model": "meta-llama/Llama-3.1-8B", "lora_rank": 32, "sft_steps": 100, "sft_batch_size": 128, "sft_learning_rate": 2.86e-4, "rl_iterations": 12, "rl_groups_per_batch": 64, "rl_group_size": 32, "rl_learning_rate": 2e-5, "tinker_checkpoint": "tinker://4f4bae1f-5a95-5f53-a55a-a14f2872825c:train:0/sampler_weights/rl_iter_012", "reward_weights": { "f1": 0.6, "temporal": 0.2, "parity": 0.1, "efficiency": 0.1 } } with open("huggingface/config.json", "w") as f: json.dump(config, f, indent=2) upload_file( path_or_fileobj="huggingface/config.json", path_in_repo="config.json", repo_id=REPO_ID, token=HF_TOKEN, ) print("Uploaded config") print(f"\nModel uploaded to: https://huggingface.co/{REPO_ID}") def upload_dataset(): """Upload training dataset to HuggingFace Datasets.""" api = HfApi(token=HF_TOKEN) # Create dataset repo try: create_repo(repo_id=DATASET_REPO_ID, token=HF_TOKEN, repo_type="dataset", exist_ok=True) print(f"Created/verified dataset repo: {DATASET_REPO_ID}") except Exception as e: print(f"Dataset repo creation note: {e}") # Create dataset README dataset_readme = """--- license: apache-2.0 language: - en tags: - memory-routing - marketing - classification - synthetic size_categories: - 1K