end000's picture
Release Sol014 mathematical specialization with paired evaluations, regressions and exact replay artifacts
fc32096 verified
Raw History Blame Contribute Delete
1.59 kB
import json
from pathlib import Path
import torch
from transformers import AutoTokenizer
from safetensors import safe_open
from common import ROOT, permit_compute, append
from weights import headers, load as read_weight, save_edit as write_edit
permit_compute()
torch.set_grad_enabled(False)
MODEL = ROOT / 'models/original'
CURRENT = ROOT / 'edits/current'
NAMES = sorted(headers(MODEL))
tok = AutoTokenizer.from_pretrained(MODEL, local_files_only=True)
def load_original(name):
return read_weight(MODEL, name).float()
def load(name):
if name not in NAMES:
raise KeyError(name)
path = CURRENT / (name + '.safetensors')
if path.exists():
with safe_open(str(path), framework='pt', device='cpu') as f:
return f.get_tensor(name).float()
return load_original(name)
def save_edit(name, tensor, hypothesis):
return write_edit(MODEL, CURRENT, name, tensor, hypothesis)
def edited():
return sorted(p.name.removesuffix('.safetensors') for p in CURRENT.glob('*.safetensors'))
def drop_edit(name):
permit_compute()
if name not in NAMES:
raise KeyError(name)
for suffix in ('.safetensors', '.json', '.analysis.json', '.direction.npy'):
path = CURRENT / (name + suffix)
if path.exists():
path.unlink()
append(ROOT / 'logs/experiments.jsonl', {'action': 'drop_edit', 'tensor': name})
print('CPU kernel готов: NAMES, load, load_original, save_edit(name,tensor,hypothesis), drop_edit, edited, tok. Градиенты отключены. Модель не запущена.')