ashley222's picture
Upload setup.py with huggingface_hub
7830291 verified
# PHASE 1: Environment Setup & Package Validation
import os
import sys
import subprocess
import json
def run_command(cmd, description):
print(f"[*] Running: {description}...")
try:
result = subprocess.run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
print(" [OK] Success.")
return result.stdout
except subprocess.CalledProcessError as e:
print(f" [ERR] Error during {description}:")
print(e.stderr)
raise e
def main():
print("======================================================================")
print(" GEMMA 4 GWT INTEGRATION ENVIRONMENT SETUP")
print("======================================================================")
# 1. Install missing core packages
dependencies = ["transformers>=4.42.0", "accelerate>=0.21.0", "matplotlib>=3.5.0", "huggingface_hub", "numpy>=1.20.0"]
print("[*] Checking pip package installations...")
for dep in dependencies:
try:
dep_name = dep.split(">=")[0].split("==")[0]
__import__(dep_name)
print(f" [OK] {dep_name} is already installed.")
except ImportError:
print(f" [ADD] {dep_name} is missing. Installing...")
subprocess.run([sys.executable, "-m", "pip", "install", dep], check=True)
# 2. Install cognitive-aug locally in editable mode
print("\n[*] Installing cognitive-aug package in editable mode...")
pypack_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "../pypack"))
try:
import cognitive_aug
print(" [OK] cognitive-aug is already imported.")
except ImportError:
print(" [ADD] cognitive-aug is not installed. Installing from local source...")
run_command([sys.executable, "-m", "pip", "install", "-e", pypack_path], "editable installation of cognitive-aug")
# 3. Import and report package versions
import torch
import transformers
import importlib.metadata
cognitive_aug_ver = importlib.metadata.version("cognitive-aug")
print("\n======================================================================")
print(" SYSTEM DIAGNOSTIC REPORT")
print("======================================================================")
print(f" Python Version : {sys.version.split(' ')[0]}")
print(f" PyTorch Version : {torch.__version__}")
print(f" Transformers Version : {transformers.__version__}")
print(f" Cognitive-Aug Version : {cognitive_aug_ver}")
cuda_available = torch.cuda.is_available()
print(f" CUDA GPU Acceleration: {'AVAILABLE' if cuda_available else 'NOT AVAILABLE (CPU fallback)'}")
if cuda_available:
print(f" GPU Hardware Name : {torch.cuda.get_device_name(0)}")
print(f" CUDA Device Count : {torch.cuda.device_count()}")
print("======================================================================")
# 4. Programmatic Layer Naming Schema Verification
print("\n[*] Constructing programmatic Gemma 4 shell model structure...")
# Gemma 4 layer architecture specification:
# Root: Gemma4ForConditionalGeneration
# Language Tower: language_model (Gemma4ForCausalLM)
# Model Core: model (Gemma4Model)
# Layer Sequence: layers (ModuleList)
# Target projection layers inside each layer: q_proj, k_proj, v_proj, o_proj
class MockGemma4Attention(torch.nn.Module):
def __init__(self, hidden_size=2560):
super().__init__()
self.q_proj = torch.nn.Linear(hidden_size, hidden_size)
self.k_proj = torch.nn.Linear(hidden_size, 512)
self.v_proj = torch.nn.Linear(hidden_size, 512)
self.o_proj = torch.nn.Linear(hidden_size, hidden_size)
def forward(self, x):
return x
class MockGemma4Layer(torch.nn.Module):
def __init__(self, hidden_size=2560):
super().__init__()
self.self_attn = MockGemma4Attention(hidden_size)
def forward(self, x):
# Pass through attention
return self.self_attn(x)
class MockGemma4Decoder(torch.nn.Module):
def __init__(self, num_layers=42):
super().__init__()
self.layers = torch.nn.ModuleList([MockGemma4Layer() for _ in range(num_layers)])
def forward(self, x):
for layer in self.layers:
x = layer(x)
return x
class MockGemma4LanguageModel(torch.nn.Module):
def __init__(self):
super().__init__()
self.model = MockGemma4Decoder()
def forward(self, x):
return self.model(x)
class Gemma4ForConditionalGeneration(torch.nn.Module):
def __init__(self):
super().__init__()
self.language_model = MockGemma4LanguageModel()
def forward(self, x):
return self.language_model(x)
try:
model = Gemma4ForConditionalGeneration()
print(" [OK] Gemma 4 conditional generation class initialized successfully.")
# Verify layers resolution
layers = model.language_model.model.layers
print(f" [OK] Resolved sequence backbone: model.language_model.model.layers")
print(f" [OK] Sequence length: {len(layers)} blocks.")
print(f" [OK] Resolved attention weights: q_proj, k_proj, v_proj, o_proj in self_attn")
# Write environment check report
os.makedirs("results", exist_ok=True)
report_path = "results/env_report.json"
report = {
"python_version": sys.version,
"torch_version": torch.__version__,
"cuda_available": cuda_available,
"cuda_device": torch.cuda.get_device_name(0) if cuda_available else "None",
"transformers_version": transformers.__version__,
"cognitive_aug_version": cognitive_aug_ver,
"layers_count": len(layers),
"layers_resolved_successfully": True
}
with open(report_path, "w") as f:
json.dump(report, f, indent=2)
print(f"\n[+] Environment validated! Diagnostic details exported to: {report_path}")
print("======================================================================")
except Exception as e:
print(f" [!] Verification failed: {e}")
sys.exit(1)
if __name__ == "__main__":
main()