qwenti-inference / scripts /degrade.py
OpceanAI's picture
Model card, paper, figures, logs and scripts
2049fc8 verified
Raw History Blame Contribute Delete
1.37 kB
import sys
sys.path.insert(0, "/tmp/opencode/tl")
import numpy as np
import torch
import int4hf as H
import mirror3 as M
from export_full import load as load_weights
M.ATT_C, M.PKSH, M.SILU_SH, M.SILU_RND = 66572, 0, 11, False
M.build_tables()
float_m = H.AutoModelForCausalLM.from_pretrained("/tmp/opencode/tl", dtype=torch.float32).eval()
int4_m = H.int4_model()
N = 40
def greedy(model, n):
ids = torch.tensor([[1]])
out = []
with torch.no_grad():
for _ in range(n):
lg = model(ids).logits[0, -1]
t = int(lg.argmax())
out.append(t)
ids = torch.cat([ids, torch.tensor([[t]])], 1)
return out
def mirror_greedy(n):
st = M.State()
tok = 1
out = []
for pos in range(n):
lg = M.step(tok, pos, st)
tok = int(lg.argmax())
out.append(tok)
return out
f = greedy(float_m, N)
i4 = greedy(int4_m, N)
mi = mirror_greedy(N)
print("float puro :", f)
print("int4 pesos float :", i4)
print("pipeline entero :", mi)
agree_i4 = next((k for k in range(N) if f[k] != i4[k]), N)
agree_mi = next((k for k in range(N) if f[k] != mi[k]), N)
same = sum(1 for k in range(N) if i4[k] == mi[k])
print(f"float vs int4-float: coinciden {agree_i4}/{N} | float vs pipeline: {agree_mi}/{N}")
print(f"pipeline vs int4-float (fidelidad del kernel): {same}/{N}")