Download runtime/src/resynthesis/geometry_migration.py from namenotfoundai/Nucleus-Resynthesis: direct link, hf CLI and curl.
- Browser
- Download file 43.4 kB
-
https://huggingface.co/namenotfoundai/Nucleus-Resynthesis/resolve/main/runtime/src/resynthesis/geometry_migration.py
- Command line
-
hf download hf://namenotfoundai/Nucleus-Resynthesis/runtime/src/resynthesis/geometry_migration.py
-
curl -L -o geometry_migration.py https://huggingface.co/namenotfoundai/Nucleus-Resynthesis/resolve/main/runtime/src/resynthesis/geometry_migration.py
43.4 kB
| """Checkpointed NoNE expert/layer geometry growth. | |
| This module is an explicit checkpoint I/O boundary, not a model hot path. | |
| It preserves every trained source tensor region exactly, adds trainable | |
| expert/layer capacity deterministically, migrates named AdamW moments, and | |
| writes a non-promotable candidate receipt. The migrated graph must still train, | |
| cold reload, and pass held-out proof before it can replace a promoted state. | |
| """ | |
| from __future__ import annotations | |
| import copy | |
| import hashlib | |
| import json | |
| import os | |
| import re | |
| import time | |
| from pathlib import Path | |
| from typing import Any, cast | |
| import torch | |
| MIGRATION_SCHEMA = "nnf.resynthesis.none_geometry_migration.v1" | |
| CHECKPOINT_SCHEMA = "nnf.resynthesis.additive_state.v1" | |
| GROWTH_PLAN_SCHEMA = "nnf.resynthesis.none_growth_plan.v2" | |
| LEGACY_GROWTH_PLAN_SCHEMA = "nnf.resynthesis.none_growth_plan.v1" | |
| GROWTH_PLAN_SCHEMAS = frozenset( | |
| {GROWTH_PLAN_SCHEMA, LEGACY_GROWTH_PLAN_SCHEMA} | |
| ) | |
| STRUCTURAL_EXPERTS = 4 | |
| _LAYER_PATTERN = re.compile(r"^science_stack\.science_layer_(\d+)\.(.+)$") | |
| _GLOBAL_EXPERT_ROWS = frozenset( | |
| { | |
| "correction_expert_head.weight", | |
| "fabric.decision_proj.weight", | |
| "fabric.expert_bias_table", | |
| "fabric.expert_hidden_table", | |
| "fabric.intent_table", | |
| } | |
| ) | |
| _GLOBAL_LAYER_ROWS = frozenset( | |
| { | |
| "correction_layer_head.weight", | |
| "fabric.layer_bias_table", | |
| "fabric.layer_hidden_table", | |
| "science_stack.layer_identity_glyphs", | |
| "science_stack.traversal_gate", | |
| } | |
| ) | |
| _GLOBAL_LAYER_SQUARE = frozenset({"science_stack.layer_transfer_graph"}) | |
| _LAYER_EXPERT_ROWS = frozenset( | |
| { | |
| "_expert_history_states", | |
| "expert_activation_prior", | |
| "expert_depth_pref", | |
| "expert_intent_glyphs", | |
| "expert_role_tag", | |
| "expert_specialization", | |
| "expert_transfer_affinity", | |
| "router.weight", | |
| } | |
| ) | |
| _LAYER_EXPERT_SQUARE = frozenset({"expert_compatibility"}) | |
| _LAYER_FFN_ROWS = frozenset({"ffn_down", "ffn_gate_up"}) | |
| _STACK_PARAMETER_ORDER = ( | |
| "science_stack.traversal_gate", | |
| "science_stack.layer_rotation_pressure", | |
| "science_stack.layer_transfer_graph", | |
| "science_stack.layer_transfer_scale", | |
| "science_stack.logit_residual_scale", | |
| "science_stack.layer_identity_glyphs", | |
| "science_stack.layer_identity_scale", | |
| "science_stack.long_context_anchor_gain", | |
| "science_stack.glyph_projection.weight", | |
| "science_stack.layer_identity_query_proj.weight", | |
| "science_stack.long_context_anchor_query.weight", | |
| ) | |
| _LAYER_PARAMETER_ORDER = ( | |
| "expert_activation_prior", | |
| "expert_intent_glyphs", | |
| "language_match_scale", | |
| "expert_role_tag", | |
| "expert_specialization", | |
| "role_match_scale", | |
| "expert_compatibility", | |
| "expert_transfer_scale", | |
| "expert_rotation_pressure", | |
| "expert_depth_pref", | |
| "expert_transfer_affinity", | |
| "layer_depth_signal", | |
| "layer_complexity", | |
| "memory_bank", | |
| "mhc_distinct_hypothesis_scale", | |
| "ffn_gate_up", | |
| "ffn_down", | |
| "residual_scale", | |
| "translate_scale", | |
| "audit_scale", | |
| "norm.weight", | |
| "norm.bias", | |
| "output_norm.weight", | |
| "output_norm.bias", | |
| "router.weight", | |
| "intent_query_proj.weight", | |
| "role_query_proj.weight", | |
| "expert_capability_proj.weight", | |
| "expert_capability_proj.bias", | |
| "capability_match_scale", | |
| "expert_history_gru.weight_ih", | |
| "expert_history_gru.weight_hh", | |
| "expert_history_gru.bias_ih", | |
| "expert_history_gru.bias_hh", | |
| "layer_role_head.weight", | |
| "layer_role_head.bias", | |
| "recurrent_expert.weight_ih_l0", | |
| "recurrent_expert.weight_hh_l0", | |
| "recurrent_expert.bias_ih_l0", | |
| "recurrent_expert.bias_hh_l0", | |
| "attention_expert.intent_pivot_scale", | |
| "attention_expert.action_pivot_scale", | |
| "attention_expert.context_query_pivot_scale", | |
| "attention_expert.relation_connectivity_scale", | |
| "attention_expert.q_proj.weight", | |
| "attention_expert.q_proj.bias", | |
| "attention_expert.k_proj.weight", | |
| "attention_expert.k_proj.bias", | |
| "attention_expert.v_proj.weight", | |
| "attention_expert.v_proj.bias", | |
| "attention_expert.c_proj.weight", | |
| "attention_expert.c_proj.bias", | |
| "attention_expert.intent_c_proj.weight", | |
| "attention_expert.action_c_proj.weight", | |
| "attention_expert.r_query_proj.weight", | |
| "attention_expert.r_query_proj.bias", | |
| "attention_expert.r_key_proj.weight", | |
| "attention_expert.r_key_proj.bias", | |
| "attention_expert.intent_r_query_proj.weight", | |
| "attention_expert.intent_r_key_proj.weight", | |
| "attention_expert.out_proj.weight", | |
| "attention_expert.out_proj.bias", | |
| "action_glyph_bridge.weight", | |
| "memory_query.weight", | |
| "memory_out.weight", | |
| "glyph_proj.weight", | |
| "glyph_gate.weight", | |
| "glyph_translate_proj.weight", | |
| "glyph_translate_back.weight", | |
| ) | |
| _V12_LAYER_PARAMETER_ORDER = tuple( | |
| name | |
| for name in _LAYER_PARAMETER_ORDER | |
| if name | |
| not in { | |
| "attention_expert.action_pivot_scale", | |
| "attention_expert.action_c_proj.weight", | |
| "action_glyph_bridge.weight", | |
| } | |
| ) | |
| _LEGACY_LAYER_PARAMETER_BASE = tuple( | |
| name | |
| for name in _LAYER_PARAMETER_ORDER | |
| if name != "mhc_distinct_hypothesis_scale" | |
| ) | |
| _LEGACY_LAYER_PARAMETER_ORDER = ( | |
| *_LEGACY_LAYER_PARAMETER_BASE[ | |
| : _LEGACY_LAYER_PARAMETER_BASE.index( | |
| "attention_expert.intent_pivot_scale" | |
| ) | |
| ], | |
| "attention_expert.in_proj_weight", | |
| "attention_expert.in_proj_bias", | |
| "attention_expert.out_proj.weight", | |
| "attention_expert.out_proj.bias", | |
| *_LEGACY_LAYER_PARAMETER_BASE[ | |
| _LEGACY_LAYER_PARAMETER_BASE.index("memory_query.weight") : | |
| ], | |
| ) | |
| _TAIL_PARAMETER_ORDER = ( | |
| "stop_gate.trajectory_proj.weight", | |
| "stop_gate.lstm.weight_ih_l0", | |
| "stop_gate.lstm.weight_hh_l0", | |
| "stop_gate.lstm.bias_ih_l0", | |
| "stop_gate.lstm.bias_hh_l0", | |
| "stop_gate.stop_utility_gate.weight", | |
| "stop_gate.stop_utility_gate.bias", | |
| "stop_gate.stop_contradiction_gate.weight", | |
| "stop_gate.stop_contradiction_gate.bias", | |
| "feedback_head.weight", | |
| "feedback_head.bias", | |
| "prior_hidden_proj.weight", | |
| "outcome_encoder.weight", | |
| "parent_outcome_encoder.weight", | |
| "acquisition_encoder.weight", | |
| "acquisition_policy.input_norm.weight", | |
| "acquisition_policy.input_norm.bias", | |
| "acquisition_policy.context.weight", | |
| "acquisition_policy.context.bias", | |
| "acquisition_policy.action_head.weight", | |
| "acquisition_policy.action_head.bias", | |
| "correction_context_norm.weight", | |
| "correction_context_norm.bias", | |
| "correction_hidden_up.weight", | |
| "correction_trigger_head.weight", | |
| "correction_trigger_head.bias", | |
| "task_confidence_head.weight", | |
| "task_confidence_head.bias", | |
| "delegation_head.weight", | |
| "delegation_head.bias", | |
| "correction_expert_head.weight", | |
| "correction_layer_head.weight", | |
| "logit_residual_down.weight", | |
| "logit_residual_up.weight", | |
| "fabric.expert_bias_table", | |
| "fabric.layer_bias_table", | |
| "fabric.intent_table", | |
| "fabric.domain_residency", | |
| "fabric.transfer_table", | |
| "fabric.expert_hidden_table", | |
| "fabric.layer_hidden_table", | |
| "fabric.phase_hidden_table", | |
| "fabric.residual_gate", | |
| "fabric.parent_expert_route_gate", | |
| "fabric.parent_layer_route_gate", | |
| "fabric.phase_proj.weight", | |
| "fabric.decision_proj.weight", | |
| "legacy_capability_bank.fusion_logit", | |
| "legacy_capability_bank.route_query.weight", | |
| "legacy_capability_bank.outcome_query.weight", | |
| "legacy_capability_bank.residual_projection.weight", | |
| ) | |
| def _file_sha256(path: Path) -> str: | |
| digest = hashlib.sha256() | |
| with path.open("rb") as handle: | |
| for chunk in iter(lambda: handle.read(8 * 1024 * 1024), b""): | |
| digest.update(chunk) | |
| return digest.hexdigest() | |
| def _state_identity(state: dict[str, torch.Tensor]) -> tuple[str, str]: | |
| names = sorted(state) | |
| key_hash = hashlib.sha256("\n".join(names).encode("utf-8")).hexdigest() | |
| geometry = [(name, tuple(state[name].shape), str(state[name].dtype)) for name in names] | |
| geometry_hash = hashlib.sha256( | |
| json.dumps(geometry, separators=(",", ":")).encode("utf-8") | |
| ).hexdigest() | |
| return key_hash, geometry_hash | |
| def _atomic_torch_save(payload: object, path: Path) -> None: | |
| path.parent.mkdir(parents=True, exist_ok=True) | |
| temporary = path.with_name(f".{path.name}.{os.getpid()}.tmp") | |
| temporary.unlink(missing_ok=True) | |
| torch.save(payload, temporary) | |
| with temporary.open("rb") as handle: | |
| os.fsync(handle.fileno()) | |
| os.replace(temporary, path) | |
| def _atomic_json(payload: dict[str, Any], path: Path) -> None: | |
| path.parent.mkdir(parents=True, exist_ok=True) | |
| temporary = path.with_name(f".{path.name}.{os.getpid()}.tmp") | |
| temporary.unlink(missing_ok=True) | |
| with temporary.open("w", encoding="utf-8") as handle: | |
| json.dump(payload, handle, sort_keys=True, indent=2) | |
| handle.write("\n") | |
| handle.flush() | |
| os.fsync(handle.fileno()) | |
| os.replace(temporary, path) | |
| def _checkpoint_payload(path: Path, *, map_location: str) -> dict[str, Any]: | |
| payload = torch.load(path, map_location=map_location, mmap=True, weights_only=True) | |
| if not isinstance(payload, dict) or payload.get("schema") != CHECKPOINT_SCHEMA: | |
| raise RuntimeError("Resynthesis geometry source is not an additive checkpoint") | |
| lineage = payload.get("lineage") | |
| parameters = payload.get("parameters") | |
| buffers = payload.get("buffers") | |
| if ( | |
| not isinstance(lineage, dict) | |
| or not isinstance(parameters, dict) | |
| or not isinstance(buffers, dict) | |
| or not all(isinstance(value, torch.Tensor) for value in parameters.values()) | |
| or not all(isinstance(value, torch.Tensor) for value in buffers.values()) | |
| ): | |
| raise RuntimeError("Resynthesis geometry source checkpoint is incomplete") | |
| state = {**parameters, **buffers} | |
| key_hash, geometry_hash = _state_identity(state) | |
| if payload.get("stateKeySetSha256") != key_hash: | |
| raise RuntimeError("Resynthesis geometry source key identity differs") | |
| if payload.get("stateGeometrySha256") != geometry_hash: | |
| raise RuntimeError("Resynthesis geometry source tensor geometry differs") | |
| return payload | |
| def checkpoint_geometry(path: str | Path) -> tuple[int, int, bool]: | |
| """Read additive geometry without allocating checkpoint tensor storage.""" | |
| payload = _checkpoint_payload(Path(path), map_location="meta") | |
| lineage = payload["lineage"] | |
| layers = int(lineage.get("scienceLayers", 0)) | |
| experts = int(lineage.get("scienceExperts", 0)) | |
| migrated = bool(lineage.get("draftingCheckpointGeometryChanged", False)) | |
| if layers < 1 or experts < STRUCTURAL_EXPERTS + 1: | |
| raise RuntimeError("Resynthesis additive checkpoint geometry is invalid") | |
| if int(lineage.get("parallelDraftWorkers", 0)) != experts: | |
| raise RuntimeError("Resynthesis additive drafting geometry differs") | |
| return layers, experts, migrated | |
| def validate_migration_candidate( | |
| checkpoint_path: str | Path, | |
| receipt_path: str | Path, | |
| ) -> dict[str, Any]: | |
| """Validate model, optimizer, lineage, and receipt at training boundary.""" | |
| checkpoint = Path(checkpoint_path).resolve() | |
| receipt_file = Path(receipt_path).resolve() | |
| receipt = json.loads(receipt_file.read_text(encoding="utf-8")) | |
| if not isinstance(receipt, dict) or receipt.get("schema") != MIGRATION_SCHEMA: | |
| raise RuntimeError("NoNE geometry candidate receipt schema differs") | |
| if receipt.get("passed") is not True or receipt.get("promotionEligible") is not False: | |
| raise RuntimeError("NoNE geometry candidate authority is invalid") | |
| target = receipt.get("targetCheckpoint") | |
| if not isinstance(target, dict): | |
| raise RuntimeError("NoNE geometry candidate receipt has no target checkpoint") | |
| if Path(str(target.get("path", ""))).resolve() != checkpoint: | |
| raise RuntimeError("NoNE geometry candidate path differs from its receipt") | |
| if target.get("sha256") != _file_sha256(checkpoint): | |
| raise RuntimeError("NoNE geometry candidate SHA-256 differs from its receipt") | |
| payload = _checkpoint_payload(checkpoint, map_location="meta") | |
| lineage = payload["lineage"] | |
| if ( | |
| lineage.get("schema") != "nnf.resynthesis.composed_additive_lineage.v13" | |
| or lineage.get("intentContextPivotAttention") is not True | |
| or lineage.get("contextIntentActionAttention") is not True | |
| or lineage.get("contextActionSource") | |
| != "trained_acquisition_policy_probability_tensor" | |
| or lineage.get("contextActionDim") != 4 | |
| or lineage.get("contextActionScorePivot") is not True | |
| or lineage.get("contextActionCheckpointGeometryChanged") is not True | |
| or lineage.get("intentRelationalAttention") is not True | |
| or tuple(lineage.get("attentionMultiples", ())) | |
| != ("q", "k", "v", "c", "r") | |
| or lineage.get("scienceAttentionExactTiling") is not True | |
| or lineage.get("contextRelationCheckpointGeometryChanged") is not True | |
| ): | |
| raise RuntimeError( | |
| "NoNE geometry candidate intent/action C/R lineage differs" | |
| ) | |
| parameters = payload["parameters"] | |
| parameter_elements = sum(tensor.numel() for tensor in parameters.values()) | |
| if int(target.get("parameterElements", -1)) != parameter_elements: | |
| raise RuntimeError("NoNE geometry candidate parameter count differs") | |
| optimizer_record = receipt.get("targetOptimizer") | |
| if not isinstance(optimizer_record, dict): | |
| raise RuntimeError("NoNE geometry candidate has no optimizer authority") | |
| optimizer_path = checkpoint.with_suffix(".optimizer.pt") | |
| if Path(str(optimizer_record.get("path", ""))).resolve() != optimizer_path: | |
| raise RuntimeError("NoNE geometry optimizer path differs from its receipt") | |
| if not optimizer_path.is_file() or optimizer_record.get("sha256") != _file_sha256( | |
| optimizer_path | |
| ): | |
| raise RuntimeError("NoNE geometry optimizer SHA-256 differs from its receipt") | |
| optimizer = torch.load( | |
| optimizer_path, | |
| map_location="meta", | |
| mmap=True, | |
| weights_only=True, | |
| ) | |
| if not isinstance(optimizer, dict): | |
| raise RuntimeError("NoNE geometry optimizer payload is invalid") | |
| groups = optimizer.get("param_groups") | |
| states = optimizer.get("state") | |
| if not isinstance(groups, list) or len(groups) != 1 or not isinstance(states, dict): | |
| raise RuntimeError("NoNE geometry optimizer groups are invalid") | |
| names = groups[0].get("param_names") | |
| parameter_ids = groups[0].get("params") | |
| if ( | |
| not isinstance(names, (list, tuple)) | |
| or not isinstance(parameter_ids, (list, tuple)) | |
| or len(names) != len(parameter_ids) | |
| or set(str(name) for name in names) != set(parameters) | |
| ): | |
| raise RuntimeError("NoNE geometry optimizer names differ from the model") | |
| for name, parameter_id in zip(names, parameter_ids, strict=True): | |
| parameter_state = states.get(parameter_id) | |
| if not isinstance(parameter_state, dict): | |
| continue | |
| for moment_name in ("exp_avg", "exp_avg_sq", "max_exp_avg_sq"): | |
| moment = parameter_state.get(moment_name) | |
| if isinstance(moment, torch.Tensor) and moment.shape != parameters[ | |
| str(name) | |
| ].shape: | |
| raise RuntimeError( | |
| f"NoNE geometry optimizer moment differs for {name}" | |
| ) | |
| remaining = receipt.get("remainingProof") | |
| if not isinstance(remaining, list) or "continued_training" not in remaining: | |
| raise RuntimeError("NoNE geometry candidate omits continued-training authority") | |
| checkpoint_geometry(checkpoint) | |
| return receipt | |
| def _expanded_rows(source: torch.Tensor, target_rows: int) -> torch.Tensor: | |
| source_rows = source.shape[0] | |
| if target_rows < source_rows or source_rows < 1: | |
| raise RuntimeError("geometry migration cannot shrink or clone an empty tensor") | |
| if target_rows == source_rows: | |
| return source.clone() | |
| indices = torch.arange( | |
| target_rows - source_rows, | |
| device=source.device, | |
| dtype=torch.long, | |
| ).remainder(source_rows) | |
| appended = source.index_select(0, indices).clone() | |
| if appended.is_floating_point(): | |
| offsets = torch.arange( | |
| 1, | |
| appended.shape[0] + 1, | |
| device=appended.device, | |
| dtype=torch.float32, | |
| ) | |
| scale_shape = (appended.shape[0],) + (1,) * (appended.ndim - 1) | |
| scale = (1.0 + offsets.remainder(7).reshape(scale_shape) / 128.0).to( | |
| dtype=appended.dtype | |
| ) | |
| appended.mul_(scale) | |
| return torch.cat((source.clone(), appended), dim=0) | |
| def _expanded_square(source: torch.Tensor, target_width: int) -> torch.Tensor: | |
| if source.ndim != 2 or source.shape[0] != source.shape[1]: | |
| raise RuntimeError("geometry transfer tensor is not square") | |
| source_width = source.shape[0] | |
| if target_width < source_width or source_width < 1: | |
| raise RuntimeError("geometry migration cannot shrink a transfer tensor") | |
| if target_width == source_width: | |
| return source.clone() | |
| indices = torch.arange( | |
| target_width, | |
| device=source.device, | |
| dtype=torch.long, | |
| ).remainder(source_width) | |
| expanded = source.index_select(0, indices).index_select(1, indices).clone() | |
| expanded[:source_width, :source_width].copy_(source) | |
| if expanded.is_floating_point(): | |
| diagonal = torch.arange(source_width, target_width, device=source.device) | |
| expanded[diagonal, diagonal] += expanded.new_tensor(1.0 / 128.0) | |
| return expanded | |
| def _migrate_tensor( | |
| name: str, | |
| source: torch.Tensor, | |
| *, | |
| source_layers: int, | |
| source_experts: int, | |
| target_layers: int, | |
| target_experts: int, | |
| ) -> torch.Tensor: | |
| del source_layers | |
| if name in _GLOBAL_EXPERT_ROWS: | |
| return _expanded_rows(source, target_experts) | |
| if name in _GLOBAL_LAYER_ROWS: | |
| return _expanded_rows(source, target_layers) | |
| if name in _GLOBAL_LAYER_SQUARE: | |
| return _expanded_square(source, target_layers) | |
| match = _LAYER_PATTERN.match(name) | |
| if match is None: | |
| return source.clone() | |
| suffix = match.group(2) | |
| if suffix in _LAYER_EXPERT_ROWS: | |
| return _expanded_rows(source, target_experts) | |
| if suffix in _LAYER_EXPERT_SQUARE: | |
| return _expanded_square(source, target_experts) | |
| if suffix in _LAYER_FFN_ROWS: | |
| return _expanded_rows(source, target_experts - STRUCTURAL_EXPERTS) | |
| return source.clone() | |
| def _migrate_state( | |
| source: dict[str, torch.Tensor], | |
| *, | |
| source_layers: int, | |
| source_experts: int, | |
| target_layers: int, | |
| target_experts: int, | |
| ) -> dict[str, torch.Tensor]: | |
| target = { | |
| name: _migrate_tensor( | |
| name, | |
| tensor, | |
| source_layers=source_layers, | |
| source_experts=source_experts, | |
| target_layers=target_layers, | |
| target_experts=target_experts, | |
| ) | |
| for name, tensor in source.items() | |
| } | |
| layer_sources: dict[int, list[tuple[str, str, torch.Tensor]]] = {} | |
| for name, tensor in source.items(): | |
| match = _LAYER_PATTERN.match(name) | |
| if match is None: | |
| continue | |
| layer_sources.setdefault(int(match.group(1)), []).append( | |
| (name, match.group(2), tensor) | |
| ) | |
| if set(layer_sources) != set(range(source_layers)): | |
| raise RuntimeError("source checkpoint science layers are not contiguous") | |
| for target_layer in range(source_layers, target_layers): | |
| source_layer = target_layer % source_layers | |
| for _name, suffix, tensor in layer_sources[source_layer]: | |
| target_name = f"science_stack.science_layer_{target_layer}.{suffix}" | |
| migrated = _migrate_tensor( | |
| target_name, | |
| tensor, | |
| source_layers=source_layers, | |
| source_experts=source_experts, | |
| target_layers=target_layers, | |
| target_experts=target_experts, | |
| ) | |
| if migrated.is_floating_point() and migrated.ndim > 0: | |
| migrated.mul_(migrated.new_tensor(1.0 + (target_layer + 1) / 512.0)) | |
| target[target_name] = migrated | |
| return dict(sorted(target.items())) | |
| def _preserved_prefix(source: torch.Tensor, target: torch.Tensor) -> bool: | |
| if source.ndim != target.ndim or any( | |
| source.shape[axis] > target.shape[axis] for axis in range(source.ndim) | |
| ): | |
| return False | |
| slices = tuple(slice(0, width) for width in source.shape) | |
| return torch.equal(source, target[slices]) | |
| def _legacy_qkv_preserved( | |
| source: dict[str, torch.Tensor], | |
| adapted: dict[str, torch.Tensor], | |
| ) -> bool: | |
| """Verify split Q/K/V tensors recompose every trained legacy projection.""" | |
| found = False | |
| for name, tensor in source.items(): | |
| if not name.endswith("attention_expert.in_proj_weight"): | |
| continue | |
| found = True | |
| prefix = name[: -len("in_proj_weight")] | |
| qkv = tuple( | |
| adapted.get(f"{prefix}{projection}_proj.weight") | |
| for projection in ("q", "k", "v") | |
| ) | |
| if not all(isinstance(value, torch.Tensor) for value in qkv): | |
| return False | |
| if not torch.equal( | |
| torch.cat(cast(tuple[torch.Tensor, ...], qkv), dim=0), | |
| tensor, | |
| ): | |
| return False | |
| bias_name = f"{prefix}in_proj_bias" | |
| source_bias = source.get(bias_name) | |
| if isinstance(source_bias, torch.Tensor): | |
| qkv_bias = tuple( | |
| adapted.get(f"{prefix}{projection}_proj.bias") | |
| for projection in ("q", "k", "v") | |
| ) | |
| if not all(isinstance(value, torch.Tensor) for value in qkv_bias): | |
| return False | |
| if not torch.equal( | |
| torch.cat(cast(tuple[torch.Tensor, ...], qkv_bias), dim=0), | |
| source_bias, | |
| ): | |
| return False | |
| return found | |
| def _parameter_order(parameter_names: set[str], layers: int) -> list[str]: | |
| order = list(_STACK_PARAMETER_ORDER) | |
| layer_order: tuple[str, ...] | |
| if any( | |
| name.endswith("attention_expert.in_proj_weight") | |
| for name in parameter_names | |
| ): | |
| layer_order = _LEGACY_LAYER_PARAMETER_ORDER | |
| elif any( | |
| name.endswith("attention_expert.action_c_proj.weight") | |
| for name in parameter_names | |
| ): | |
| layer_order = _LAYER_PARAMETER_ORDER | |
| else: | |
| layer_order = _V12_LAYER_PARAMETER_ORDER | |
| if not any( | |
| name.endswith(".mhc_distinct_hypothesis_scale") | |
| for name in parameter_names | |
| ): | |
| layer_order = tuple( | |
| name | |
| for name in layer_order | |
| if name != "mhc_distinct_hypothesis_scale" | |
| ) | |
| if not any( | |
| name.endswith(".capability_match_scale") | |
| for name in parameter_names | |
| ): | |
| layer_order = tuple( | |
| name | |
| for name in layer_order | |
| if name != "capability_match_scale" | |
| ) | |
| for layer in range(layers): | |
| prefix = f"science_stack.science_layer_{layer}." | |
| order.extend(prefix + suffix for suffix in layer_order) | |
| order.extend(_TAIL_PARAMETER_ORDER) | |
| if set(order) != parameter_names: | |
| missing = sorted(parameter_names - set(order)) | |
| unexpected = sorted(set(order) - parameter_names) | |
| raise RuntimeError( | |
| "optimizer name recovery differs from checkpoint parameters: " | |
| f"unmapped={missing} absent={unexpected}" | |
| ) | |
| return order | |
| def _expanded_named_order( | |
| source_names: list[str], | |
| *, | |
| source_layers: int, | |
| target_layers: int, | |
| ) -> list[str]: | |
| target = list(source_names) | |
| layer_positions = [ | |
| index | |
| for index, name in enumerate(source_names) | |
| if (match := _LAYER_PATTERN.match(name)) is not None | |
| and int(match.group(1)) == source_layers - 1 | |
| ] | |
| if not layer_positions: | |
| raise RuntimeError("optimizer parameter names contain no final science layer") | |
| insert_at = max(layer_positions) + 1 | |
| additions: list[str] = [] | |
| suffixes = [ | |
| match.group(2) | |
| for name in source_names | |
| if (match := _LAYER_PATTERN.match(name)) is not None | |
| and int(match.group(1)) == 0 | |
| ] | |
| for layer in range(source_layers, target_layers): | |
| additions.extend(f"science_stack.science_layer_{layer}.{suffix}" for suffix in suffixes) | |
| target[insert_at:insert_at] = additions | |
| return target | |
| def _migrate_optimizer( | |
| source: dict[str, Any], | |
| *, | |
| source_parameters: dict[str, torch.Tensor], | |
| target_parameters: dict[str, torch.Tensor], | |
| source_layers: int, | |
| source_experts: int, | |
| target_layers: int, | |
| target_experts: int, | |
| ) -> tuple[dict[str, Any], int, int]: | |
| groups = source.get("param_groups") | |
| states = source.get("state") | |
| if not isinstance(groups, list) or len(groups) != 1 or not isinstance(states, dict): | |
| raise RuntimeError("geometry migration requires one AdamW parameter group") | |
| source_group = groups[0] | |
| source_ids = list(source_group.get("params", ())) | |
| names_value = source_group.get("param_names") | |
| if isinstance(names_value, (list, tuple)): | |
| source_names = [str(name) for name in names_value] | |
| if set(source_names) != set(source_parameters): | |
| raise RuntimeError("optimizer parameter names differ from checkpoint") | |
| else: | |
| # Snapshot parameter dictionaries are canonically name-sorted, while | |
| # pre-v25 optimizers followed module registration order. Reconstruct | |
| # that exact checkpointed architecture order; never infer by shape. | |
| source_names = _parameter_order(set(source_parameters), source_layers) | |
| if len(source_ids) != len(source_names): | |
| raise RuntimeError("optimizer parameter IDs differ from named parameters") | |
| source_by_name = dict(zip(source_names, source_ids, strict=True)) | |
| target_names = list(target_parameters) | |
| target_state: dict[int, dict[str, Any]] = {} | |
| copied_states = 0 | |
| expanded_states = 0 | |
| projection_aliases = { | |
| ".q_proj.weight": (".in_proj_weight", 0), | |
| ".k_proj.weight": (".in_proj_weight", 1), | |
| ".v_proj.weight": (".in_proj_weight", 2), | |
| ".q_proj.bias": (".in_proj_bias", 0), | |
| ".k_proj.bias": (".in_proj_bias", 1), | |
| ".v_proj.bias": (".in_proj_bias", 2), | |
| } | |
| for target_id, name in enumerate(target_names): | |
| layer_match = _LAYER_PATTERN.match(name) | |
| if ( | |
| layer_match is not None | |
| and int(layer_match.group(1)) >= source_layers | |
| ): | |
| continue | |
| source_name = name | |
| source_id = source_by_name.get(source_name) | |
| projection_slice: int | None = None | |
| if source_id is None: | |
| for suffix, (legacy_suffix, part) in projection_aliases.items(): | |
| if name.endswith(suffix): | |
| source_name = name[: -len(suffix)] + legacy_suffix | |
| source_id = source_by_name.get(source_name) | |
| projection_slice = part | |
| break | |
| if source_id not in states: | |
| continue | |
| source_state = states[source_id] | |
| if not isinstance(source_state, dict): | |
| raise RuntimeError("optimizer parameter state is invalid") | |
| migrated_state: dict[str, Any] = {} | |
| for key, value in source_state.items(): | |
| if not isinstance(value, torch.Tensor) or value.ndim == 0: | |
| migrated_state[key] = value.clone() if isinstance(value, torch.Tensor) else copy.deepcopy(value) | |
| continue | |
| source_parameter = source_parameters[source_name] | |
| if tuple(value.shape) != tuple(source_parameter.shape): | |
| raise RuntimeError( | |
| f"optimizer moment geometry differs for {source_name}" | |
| ) | |
| if projection_slice is not None: | |
| width = target_parameters[name].shape[0] | |
| if value.shape[0] != 3 * width: | |
| raise RuntimeError( | |
| f"legacy attention optimizer moment differs for {name}" | |
| ) | |
| value = value[ | |
| projection_slice * width : (projection_slice + 1) * width | |
| ].clone() | |
| migrated_value = _migrate_tensor( | |
| name, | |
| value, | |
| source_layers=source_layers, | |
| source_experts=source_experts, | |
| target_layers=target_layers, | |
| target_experts=target_experts, | |
| ) | |
| if migrated_value.shape != target_parameters[name].shape: | |
| raise RuntimeError(f"migrated optimizer moment geometry differs for {name}") | |
| if migrated_value.shape != value.shape: | |
| slices = tuple(slice(0, width) for width in value.shape) | |
| migrated_value.zero_() | |
| migrated_value[slices].copy_(value) | |
| expanded_states += 1 | |
| migrated_state[key] = migrated_value | |
| target_state[target_id] = migrated_state | |
| copied_states += 1 | |
| target_group = { | |
| key: copy.deepcopy(value) | |
| for key, value in source_group.items() | |
| if key not in {"params", "param_names"} | |
| } | |
| target_group["params"] = list(range(len(target_names))) | |
| target_group["param_names"] = target_names | |
| return {"state": target_state, "param_groups": [target_group]}, copied_states, expanded_states | |
| def migrate_geometry_checkpoint( | |
| source_checkpoint: str | Path, | |
| growth_plan: str | Path, | |
| output_checkpoint: str | Path, | |
| receipt_path: str | Path, | |
| *, | |
| source_optimizer: str | Path | None = None, | |
| output_optimizer: str | Path | None = None, | |
| ) -> dict[str, Any]: | |
| """Create a trained-state-preserving, non-promoted growth candidate.""" | |
| source_path = Path(source_checkpoint).resolve() | |
| plan_path = Path(growth_plan).resolve() | |
| output_path = Path(output_checkpoint).resolve() | |
| receipt = Path(receipt_path).resolve() | |
| if source_path == output_path: | |
| raise ValueError("geometry migration output must differ from its source") | |
| plan = json.loads(plan_path.read_text(encoding="utf-8")) | |
| if ( | |
| not isinstance(plan, dict) | |
| or plan.get("schema") not in GROWTH_PLAN_SCHEMAS | |
| ): | |
| raise RuntimeError("NoNE growth plan schema differs") | |
| if isinstance(plan.get("pagingPolicy"), dict): | |
| raise RuntimeError( | |
| "paged NoNE growth plans require immutable page-generation " | |
| "migration, not monolithic geometry cloning" | |
| ) | |
| target_geometry = plan.get("proposedMinimumTargetGeometry") | |
| if not isinstance(target_geometry, dict): | |
| raise RuntimeError("NoNE growth plan has no target geometry") | |
| payload = _checkpoint_payload(source_path, map_location="cpu") | |
| lineage = payload["lineage"] | |
| original_source_parameters = payload["parameters"] | |
| source_layers = int(lineage.get("scienceLayers", 0)) | |
| source_experts = int(lineage.get("scienceExperts", 0)) | |
| target_layers = int(target_geometry.get("scienceLayers", 0)) | |
| target_experts = int(target_geometry.get("scienceExperts", 0)) | |
| if target_layers <= source_layers or target_experts <= source_experts: | |
| raise RuntimeError("NoNE migration target must expand both layers and experts") | |
| from resynthesis.science_layers import ( | |
| SCIENCE_ATTENTION_TILE_TOKENS, | |
| adapt_attention_state_to_context_relation, | |
| ) | |
| from resynthesis.config import ( | |
| DUAL_CHUNK_LOCAL_SIZE, | |
| DUAL_CHUNK_PRETRAIN_LENGTH, | |
| NATIVE_ATTENTION_POSITION_APERTURE, | |
| PRETRAINED_ROPE_BAND_TOKENS, | |
| RESYNTHESIS_NATIVE_PREFILL_TILE_TOKENS, | |
| RESYNTHESIS_ONLINE_SOFTMAX_TILE_TOKENS, | |
| ) | |
| source_parameters, attention_adapted = adapt_attention_state_to_context_relation( | |
| original_source_parameters | |
| ) | |
| legacy_projection_present = any( | |
| name.endswith("attention_expert.in_proj_weight") | |
| for name in original_source_parameters | |
| ) | |
| legacy_qkv_preserved = ( | |
| not legacy_projection_present | |
| or _legacy_qkv_preserved( | |
| original_source_parameters, | |
| source_parameters, | |
| ) | |
| ) | |
| if not legacy_qkv_preserved: | |
| raise RuntimeError("NoNE attention migration changed trained Q/K/V regions") | |
| relational_layers = { | |
| int(match.group(1)) | |
| for name in source_parameters | |
| if name.endswith("attention_expert.r_query_proj.weight") | |
| and (match := _LAYER_PATTERN.match(name)) is not None | |
| } | |
| if relational_layers != set(range(source_layers)): | |
| raise RuntimeError( | |
| "NoNE geometry source lacks complete context-relational attention" | |
| ) | |
| source_buffers = payload["buffers"] | |
| if isinstance(lineage, dict): | |
| lineage = dict(lineage) | |
| lineage["intentContextPivotAttention"] = True | |
| lineage["intentRelationalAttention"] = True | |
| lineage["attentionMultiples"] = ("q", "k", "v", "c", "r") | |
| lineage["contextQueryPivot"] = True | |
| lineage["contextIntentActionAttention"] = True | |
| lineage["contextActionSource"] = ( | |
| "trained_acquisition_policy_probability_tensor" | |
| ) | |
| lineage["contextActionDim"] = 4 | |
| lineage["contextActionScorePivot"] = True | |
| lineage["contextActionCheckpointGeometryChanged"] = True | |
| lineage["relationConnectivity"] = "none_router_selected_intent_tensor" | |
| lineage["scienceAttentionExactTiling"] = True | |
| lineage["scienceAttentionTileTokens"] = SCIENCE_ATTENTION_TILE_TOKENS | |
| lineage["contextRelationCheckpointGeometryChanged"] = True | |
| lineage["parentDualChunkRoPECompose"] = True | |
| lineage["additiveOnlineSoftmaxLongPool"] = True | |
| lineage["dualChunkAtSuccessiveSeamExposed"] = True | |
| lineage["nativeContextPositionAperture"] = ( | |
| NATIVE_ATTENTION_POSITION_APERTURE | |
| ) | |
| lineage["onlineSoftmaxTileTokens"] = ( | |
| RESYNTHESIS_ONLINE_SOFTMAX_TILE_TOKENS | |
| ) | |
| lineage["nativePrefillTileTokens"] = ( | |
| RESYNTHESIS_NATIVE_PREFILL_TILE_TOKENS | |
| ) | |
| lineage["longContextStackComposeCheckpointGeometryChanged"] = False | |
| parent_lineage = lineage.get("parent") | |
| if not isinstance(parent_lineage, dict): | |
| raise RuntimeError("NoNE geometry source parent lineage is invalid") | |
| parent_lineage = dict(parent_lineage) | |
| parent_lineage.update( | |
| { | |
| "parentDualChunkRoPECompose": True, | |
| "parentOnlineSoftmaxLongPool": True, | |
| "nativeAttentionPositionAperture": ( | |
| NATIVE_ATTENTION_POSITION_APERTURE | |
| ), | |
| "onlineSoftmaxTileTokens": ( | |
| RESYNTHESIS_ONLINE_SOFTMAX_TILE_TOKENS | |
| ), | |
| "dualChunkPretrainLength": DUAL_CHUNK_PRETRAIN_LENGTH, | |
| "dualChunkLocalSize": DUAL_CHUNK_LOCAL_SIZE, | |
| "dualChunkAtSuccessiveSeamExposed": True, | |
| "pretrainedRoPEBandTokens": PRETRAINED_ROPE_BAND_TOKENS, | |
| "nativePrefillTileTokens": ( | |
| RESYNTHESIS_NATIVE_PREFILL_TILE_TOKENS | |
| ), | |
| } | |
| ) | |
| lineage["parent"] = parent_lineage | |
| lineage["schema"] = "nnf.resynthesis.composed_additive_lineage.v13" | |
| target_parameters = _migrate_state( | |
| source_parameters, | |
| source_layers=source_layers, | |
| source_experts=source_experts, | |
| target_layers=target_layers, | |
| target_experts=target_experts, | |
| ) | |
| target_buffers = _migrate_state( | |
| source_buffers, | |
| source_layers=source_layers, | |
| source_experts=source_experts, | |
| target_layers=target_layers, | |
| target_experts=target_experts, | |
| ) | |
| preserved = sum( | |
| _preserved_prefix(value, target_parameters[name]) | |
| for name, value in source_parameters.items() | |
| ) + sum( | |
| _preserved_prefix(value, target_buffers[name]) | |
| for name, value in source_buffers.items() | |
| ) | |
| source_tensor_count = len(source_parameters) + len(source_buffers) | |
| if preserved != source_tensor_count: | |
| raise RuntimeError("geometry migration changed a trained source tensor region") | |
| target_lineage = copy.deepcopy(lineage) | |
| target_lineage["scienceLayers"] = target_layers | |
| target_lineage["scienceExperts"] = target_experts | |
| target_lineage["parallelDraftWorkers"] = target_experts | |
| target_lineage["draftingCheckpointGeometryChanged"] = True | |
| target_state = {**target_parameters, **target_buffers} | |
| key_hash, geometry_hash = _state_identity(target_state) | |
| target_payload = { | |
| "schema": CHECKPOINT_SCHEMA, | |
| "lineage": target_lineage, | |
| "stateKeySetSha256": key_hash, | |
| "stateGeometrySha256": geometry_hash, | |
| "parameters": target_parameters, | |
| "buffers": target_buffers, | |
| } | |
| _atomic_torch_save(target_payload, output_path) | |
| optimizer_source_path = ( | |
| Path(source_optimizer).resolve() if source_optimizer is not None else None | |
| ) | |
| optimizer_output_path = ( | |
| Path(output_optimizer).resolve() | |
| if output_optimizer is not None | |
| else output_path.with_suffix(".optimizer.pt") | |
| ) | |
| copied_optimizer_states = 0 | |
| expanded_optimizer_states = 0 | |
| optimizer_written = False | |
| if optimizer_source_path is not None: | |
| optimizer_payload = torch.load( | |
| optimizer_source_path, | |
| map_location="cpu", | |
| mmap=True, | |
| weights_only=True, | |
| ) | |
| if not isinstance(optimizer_payload, dict): | |
| raise RuntimeError("NoNE source optimizer checkpoint is invalid") | |
| migrated_optimizer, copied_optimizer_states, expanded_optimizer_states = ( | |
| _migrate_optimizer( | |
| optimizer_payload, | |
| source_parameters=original_source_parameters, | |
| target_parameters=target_parameters, | |
| source_layers=source_layers, | |
| source_experts=source_experts, | |
| target_layers=target_layers, | |
| target_experts=target_experts, | |
| ) | |
| ) | |
| _atomic_torch_save(migrated_optimizer, optimizer_output_path) | |
| optimizer_written = True | |
| parameter_elements = sum(tensor.numel() for tensor in target_parameters.values()) | |
| receipt_payload = { | |
| "schema": MIGRATION_SCHEMA, | |
| "passed": True, | |
| "builtAt": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), | |
| "sourceCheckpoint": { | |
| "path": str(source_path), | |
| "sha256": _file_sha256(source_path), | |
| }, | |
| "sourceOptimizer": ( | |
| { | |
| "path": str(optimizer_source_path), | |
| "sha256": _file_sha256(optimizer_source_path), | |
| } | |
| if optimizer_source_path is not None | |
| else None | |
| ), | |
| "growthPlan": { | |
| "path": str(plan_path), | |
| "sha256": _file_sha256(plan_path), | |
| }, | |
| "targetCheckpoint": { | |
| "path": str(output_path), | |
| "sha256": _file_sha256(output_path), | |
| "parameterElements": parameter_elements, | |
| "parameterBillions": parameter_elements / 1_000_000_000, | |
| }, | |
| "targetOptimizer": ( | |
| { | |
| "path": str(optimizer_output_path), | |
| "sha256": _file_sha256(optimizer_output_path), | |
| } | |
| if optimizer_written | |
| else None | |
| ), | |
| "sourceGeometry": { | |
| "scienceLayers": source_layers, | |
| "scienceExperts": source_experts, | |
| "parallelDraftWorkers": source_experts, | |
| }, | |
| "targetGeometry": { | |
| "scienceLayers": target_layers, | |
| "scienceExperts": target_experts, | |
| "parallelDraftWorkers": target_experts, | |
| }, | |
| "checks": { | |
| "allSourceTensorRegionsPreservedExactly": preserved == source_tensor_count, | |
| "preservedSourceTensorRegions": preserved, | |
| "sourceTensorRegions": source_tensor_count, | |
| "contextRelationAttentionMigrated": attention_adapted, | |
| "legacyQkvSlicesPreservedExactly": legacy_qkv_preserved, | |
| "contextRelationGatesIdentityInitialized": all( | |
| bool( | |
| tensor.detach().eq(0).all() | |
| ) | |
| for name, tensor in source_parameters.items() | |
| if name.endswith( | |
| ( | |
| "context_query_pivot_scale", | |
| "relation_connectivity_scale", | |
| "action_pivot_scale", | |
| ) | |
| ) | |
| ), | |
| "contextActionProjectionPresent": all( | |
| ( | |
| f"science_stack.science_layer_{layer}." | |
| "attention_expert.action_c_proj.weight" | |
| ) | |
| in source_parameters | |
| for layer in range(source_layers) | |
| ), | |
| "contextActionGlyphBridgePresent": all( | |
| ( | |
| f"science_stack.science_layer_{layer}." | |
| "action_glyph_bridge.weight" | |
| ) | |
| in source_parameters | |
| for layer in range(source_layers) | |
| ), | |
| "newLayerModulesPresent": all( | |
| any( | |
| name.startswith(f"science_stack.science_layer_{layer}.") | |
| for name in target_state | |
| ) | |
| for layer in range(source_layers, target_layers) | |
| ), | |
| "expertGeometryExpanded": target_experts > source_experts, | |
| "layerGeometryExpanded": target_layers > source_layers, | |
| "modelOwnedRoutingRetained": True, | |
| "optimizerNamedStateMigrated": optimizer_written, | |
| "copiedOptimizerStates": copied_optimizer_states, | |
| "expandedOptimizerMomentTensors": expanded_optimizer_states, | |
| }, | |
| "promotionEligible": False, | |
| "remainingProof": [ | |
| "continued_training", | |
| "cold_reload", | |
| "heldout_generalization", | |
| "correction_stress", | |
| "immutable_release_verification", | |
| ], | |
| } | |
| _atomic_json(receipt_payload, receipt) | |
| return receipt_payload | |
| def main() -> int: | |
| import argparse | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument("source_checkpoint", type=Path) | |
| parser.add_argument("growth_plan", type=Path) | |
| parser.add_argument("output_checkpoint", type=Path) | |
| parser.add_argument("receipt", type=Path) | |
| parser.add_argument("--source-optimizer", type=Path) | |
| parser.add_argument("--output-optimizer", type=Path) | |
| args = parser.parse_args() | |
| result = migrate_geometry_checkpoint( | |
| args.source_checkpoint, | |
| args.growth_plan, | |
| args.output_checkpoint, | |
| args.receipt, | |
| source_optimizer=args.source_optimizer, | |
| output_optimizer=args.output_optimizer, | |
| ) | |
| print(json.dumps(result, sort_keys=True)) | |
| return 0 if result.get("passed") is True else 1 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |