Download fiber_hub_integration.py from bbkdevops/Fiber-MoE-Symplectic-Gating-Research: direct link, hf CLI and curl.
- Browser
- Download file 4.99 kB
-
https://huggingface.co/bbkdevops/Fiber-MoE-Symplectic-Gating-Research/resolve/main/fiber_hub_integration.py
- Command line
-
hf download hf://bbkdevops/Fiber-MoE-Symplectic-Gating-Research/fiber_hub_integration.py
-
curl -L -o fiber_hub_integration.py https://huggingface.co/bbkdevops/Fiber-MoE-Symplectic-Gating-Research/resolve/main/fiber_hub_integration.py
4.99 kB
| """ | |
| Fiber-MoE Official Hub Integration Library (`fiber-moe`) | |
| Provides native `from_pretrained()` and `push_to_hub()` integration with Hugging Face Hub, | |
| exactly matching the standard Hugging Face Library Integration specifications. | |
| """ | |
| from __future__ import annotations | |
| import os | |
| import json | |
| import torch | |
| import torch.nn as nn | |
| from huggingface_hub import hf_hub_download, snapshot_download, upload_folder, create_repo, get_token | |
| CONFIG_NAME = "config.json" | |
| WEIGHTS_NAME = "model.safetensors" | |
| FIBER_METADATA_NAME = "fiber_meta.json" | |
| class FiberHubModel(nn.Module): | |
| def __init__(self, config: dict): | |
| super().__init__() | |
| self.config = config | |
| self.state_dim = config.get("state_dim", 64) | |
| self.action_dim = config.get("action_dim", 16) | |
| self.num_experts = config.get("num_experts", 128) | |
| self.num_fibers = config.get("num_fibers", 8) | |
| self.backbone = nn.Linear(self.state_dim, self.action_dim) | |
| def forward(self, x: torch.Tensor): | |
| return self.backbone(x) | |
| def from_pretrained( | |
| cls, | |
| pretrained_model_name_or_path: str, | |
| token: str | None = None, | |
| revision: str | None = None, | |
| **kwargs | |
| ) -> FiberHubModel: | |
| """ | |
| Load a Fiber-MoE model from a local directory or directly from the Hugging Face Hub. | |
| """ | |
| token = token or get_token() | |
| if os.path.isdir(pretrained_model_name_or_path): | |
| model_dir = pretrained_model_name_or_path | |
| else: | |
| # Download snapshot from Hugging Face Hub with automatic local caching | |
| model_dir = snapshot_download( | |
| repo_id=pretrained_model_name_or_path, | |
| token=token, | |
| revision=revision, | |
| allow_patterns=["*.json", "*.safetensors", "*.py", "*.yaml"] | |
| ) | |
| config_path = os.path.join(model_dir, CONFIG_NAME) | |
| if os.path.exists(config_path): | |
| with open(config_path, "r", encoding="utf-8") as f: | |
| config = json.load(f) | |
| else: | |
| config = {"state_dim": 64, "action_dim": 16, "num_experts": 128, "num_fibers": 8} | |
| model = cls(config) | |
| # Load weights if available | |
| weights_path = os.path.join(model_dir, WEIGHTS_NAME) | |
| if os.path.exists(weights_path): | |
| from safetensors.torch import load_file | |
| state_dict = load_file(weights_path) | |
| model.load_state_dict(state_dict, strict=False) | |
| print(f"[✓] Successfully instantiated FiberHubModel from: {pretrained_model_name_or_path}") | |
| return model | |
| def push_to_hub( | |
| self, | |
| repo_id: str, | |
| token: str | None = None, | |
| commit_message: str = "Upload Fiber-MoE model using native integration", | |
| private: bool = False | |
| ) -> str: | |
| """ | |
| Save weights, configuration, and model card, then upload directly to the Hugging Face Hub. | |
| """ | |
| token = token or get_token() | |
| create_repo(repo_id=repo_id, token=token, private=private, exist_ok=True) | |
| save_dir = f"./temp_{repo_id.replace('/', '_')}" | |
| os.makedirs(save_dir, exist_ok=True) | |
| # 1. Save config | |
| config_path = os.path.join(save_dir, CONFIG_NAME) | |
| with open(config_path, "w", encoding="utf-8") as f: | |
| json.dump(self.config, f, indent=2) | |
| # 2. Save weights via safetensors | |
| from safetensors.torch import save_file | |
| save_file(self.state_dict(), os.path.join(save_dir, WEIGHTS_NAME)) | |
| # 3. Generate standardized Model Card | |
| readme_content = f"""--- | |
| library_name: fiber-moe | |
| tags: | |
| - fiber-moe | |
| - symplectic-flow | |
| - stmf-zero | |
| - autonomous-agent | |
| pipeline_tag: reinforcement-learning | |
| license: apache-2.0 | |
| --- | |
| # {repo_id} | |
| This model was exported and uploaded using the official **`fiber-moe`** library integration with the Hugging Face Hub. | |
| ## How to Load | |
| ```python | |
| from fiber_hub_integration import FiberHubModel | |
| model = FiberHubModel.from_pretrained("{repo_id}") | |
| ``` | |
| """ | |
| with open(os.path.join(save_dir, "README.md"), "w", encoding="utf-8") as f: | |
| f.write(readme_content) | |
| # 4. Upload directory to Hub | |
| upload_folder( | |
| folder_path=save_dir, | |
| repo_id=repo_id, | |
| token=token, | |
| commit_message=commit_message | |
| ) | |
| print(f"[✓] Model successfully pushed to Hub: https://huggingface.co/{repo_id}") | |
| return f"https://huggingface.co/{repo_id}" | |
| if __name__ == "__main__": | |
| print("Testing FiberHubModel Native Integration...") | |
| # Initialize a model | |
| model = FiberHubModel(config={"state_dim": 64, "action_dim": 16, "num_experts": 128, "num_fibers": 8}) | |
| x = torch.randn(2, 64) | |
| out = model(x) | |
| print("Forward output shape:", out.shape) | |
| print("Testing from_pretrained on local repository structure...") | |
| loaded = FiberHubModel.from_pretrained(".") | |
| print("Native library integration test complete!") | |