Architect8999's picture
feat: integrate Galaxy bugbounty checklist, clientside resources, paper2code
256c9c2 verified
Raw
History Blame Contribute Delete
4.24 kB
"""
{{PAPER_TITLE}} — Model Architecture
Paper: https://arxiv.org/abs/{{ARXIV_ID}}
Authors: {{AUTHORS}}
Year: {{YEAR}}
Implements: {{ONE_LINE_DESCRIPTION}}
Section references:
{{§SECTION_1}} — {{DESCRIPTION_1}}
{{§SECTION_2}} — {{DESCRIPTION_2}}
{{§SECTION_3}} — {{DESCRIPTION_3}}
Usage:
from src.model import {{MODEL_CLASS}}, ModelConfig
config = ModelConfig()
model = {{MODEL_CLASS}}(config)
output = model(input_tensor)
"""
import math
from dataclasses import dataclass, field
from typing import Optional, Tuple, List
import torch
import torch.nn as nn
import torch.nn.functional as F
# ---------------------------------------------------------------------------
# Configuration
# ---------------------------------------------------------------------------
@dataclass
class ModelConfig:
"""All model hyperparameters.
Values from {{PAPER_TITLE}} unless marked [UNSPECIFIED].
Matches configs/base.yaml — change values there, not here.
"""
# Architecture — §{{ARCH_SECTION}}
# {{PARAM_1_NAME}}: {{TYPE}} = {{VALUE}} # §X.Y — "quote from paper"
# {{PARAM_2_NAME}}: {{TYPE}} = {{VALUE}} # [UNSPECIFIED] — our choice, alternatives: ...
pass # REPLACE with actual config fields
# ---------------------------------------------------------------------------
# Sub-modules
# ---------------------------------------------------------------------------
class {{COMPONENT_A}}(nn.Module):
"""§{{SECTION}} — {{Description of component from paper}}.
"{{Exact quote from paper describing this component}}"
"""
def __init__(self, config: ModelConfig):
super().__init__()
# §{{SECTION}} — build layers as described
pass # REPLACE with actual layers
def forward(self, x: torch.Tensor) -> torch.Tensor:
"""
Args:
x: {{description}} — shape: (batch, {{dims}})
Returns:
{{description}} — shape: (batch, {{dims}})
"""
# §{{SECTION}} — forward pass
# Every tensor operation gets a shape comment:
# x = self.linear(x) # (batch, seq_len, d_model) -> (batch, seq_len, d_ff)
pass # REPLACE with actual forward pass
class {{COMPONENT_B}}(nn.Module):
"""§{{SECTION}} — {{Description of component from paper}}."""
def __init__(self, config: ModelConfig):
super().__init__()
pass # REPLACE
def forward(self, x: torch.Tensor) -> torch.Tensor:
pass # REPLACE
# ---------------------------------------------------------------------------
# Main Model
# ---------------------------------------------------------------------------
class {{MODEL_CLASS}}(nn.Module):
"""§{{SECTION}} — {{Paper's name for the full model}}.
Composed of:
- {{COMPONENT_A}} (§{{SECTION_A}})
- {{COMPONENT_B}} (§{{SECTION_B}})
"{{Quote from paper describing the overall model}}"
"""
def __init__(self, config: ModelConfig):
super().__init__()
self.config = config
# Build model components
# REPLACE with actual component instantiation
def forward(
self,
x: torch.Tensor,
# Add other inputs as needed (mask, labels, etc.)
) -> torch.Tensor:
"""Forward pass following §{{SECTION}} description.
Args:
x: {{description}} — shape: (batch, {{input_dims}})
Returns:
{{description}} — shape: (batch, {{output_dims}})
"""
# §{{SECTION}} — step-by-step forward pass
# Mirror the paper's description order
# Shape comments on every operation
pass # REPLACE
def __repr__(self) -> str:
"""Print architecture summary."""
total_params = sum(p.numel() for p in self.parameters())
trainable_params = sum(p.numel() for p in self.parameters() if p.requires_grad)
return (
f"{self.__class__.__name__}(\n"
f" config={self.config},\n"
f" total_params={total_params:,},\n"
f" trainable_params={trainable_params:,}\n"
f")"
)