gpt2_dense_50M_same_total_param / upload_project_hf.py
Soham Jain
Initial commit of GPT-2 46M SwiGLU Dense baseline model architecture and configs
fa2fdd8 verified
Raw
History Blame Contribute Delete
2.99 kB
import os
import sys
import re
import argparse
from huggingface_hub import HfApi, create_repo
def upload_project(repo_name=None):
token = os.environ.get("HF_TOKEN")
if not token:
print("Error: HF_TOKEN environment variable not set!")
print("Please set it before running: set HF_TOKEN=your_token")
sys.exit(1)
if not repo_name:
repo_name = os.environ.get("HF_REPO_NAME", "gpt2_dense_50M_same_total_param")
local_dir = os.path.dirname(os.path.abspath(__file__))
api = HfApi(token=token)
try:
user_info = api.whoami()
username = user_info["name"]
print(f"[HF] Authenticated as: {username}")
except Exception as e:
print(f"[HF] Authentication failed: {e}")
sys.exit(1)
repo_id = f"{username}/{repo_name}"
# Auto-create the repo if it does not exist
try:
create_repo(repo_id=repo_id, repo_type="model", token=token, exist_ok=True)
print(f"[HF] Repository '{repo_id}' is ready.")
except Exception as e:
print(f"[HF] Warning during repository creation: {e}")
print(f"[HF] Uploading GPT-2 46M SwiGLU Dense baseline scripts to '{repo_id}' main branch...")
ignore_patterns = [
"**/__pycache__/*",
"**/*.pyc",
"**/hf_cache/*",
"**/nltk_data/*",
"**/checkpoints/*"
]
sensitive_ignores = []
token_pattern = re.compile(r"hf_[a-zA-Z0-9]{34}")
for root, dirs, files in os.walk(local_dir):
if "__pycache__" in root or "checkpoints" in root:
continue
for file in files:
file_path = os.path.join(root, file)
try:
with open(file_path, "r", encoding="utf-8", errors="ignore") as f:
content = f.read()
if token_pattern.search(content):
rel_path = os.path.relpath(file_path, local_dir)
rel_path_glob = rel_path.replace("\\", "/")
sensitive_ignores.append(rel_path_glob)
print(f" -> Warning: Sensitive file containing raw token excluded: {rel_path_glob}")
except Exception:
pass
all_ignores = ignore_patterns + sensitive_ignores
try:
api.upload_folder(
folder_path=local_dir,
repo_id=repo_id,
repo_type="model",
revision="main",
ignore_patterns=all_ignores,
commit_message="Initial commit of GPT-2 46M SwiGLU Dense baseline model architecture and configs"
)
print(f"\n[HF] Success! Scripts uploaded to: https://huggingface.co/{repo_id}/tree/main")
except Exception as e:
print(f"[HF] Upload failed: {e}")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--repo-name", type=str, default=None, help="Hugging Face repository name")
args = parser.parse_args()
upload_project(args.repo_name)