px-explorer-v4 / baseline_coherence_test.py
BuildBot
push_hf: sparse-branch für HF-Push (nur Code, 0 LFS)
9644d0b
Raw
History Blame Contribute Delete
1.99 kB
import torch
import json
import time
from transformers import AutoModelForCausalLM, AutoTokenizer
def run_patched_baseline_test(model_id="google/gemma-3-270m-it"):
print(f"--- Patched (Commit 2fdc442) Coherence Test: {model_id} ---")
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="cuda")
from all_space.px_patches.gemma3_270m_px_baseline.patch import apply_px_patch
apply_px_patch(model, config_preset="SUBJECTIVE")
test_prompts = [
"What is the capital of France?",
"Was ist der Sinn von Kunst?",
"Solve: 15 + 27 * 2"
]
results = []
for prompt in test_prompts:
print(f"\nPrompt: {prompt}")
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
start_time = time.time()
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=128,
do_sample=False,
pad_token_id=tokenizer.eos_token_id
)
duration = time.time() - start_time
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(f"Response: {response}")
tokens = tokenizer.encode(response)
repetition_score = len(tokens) / len(set(tokens)) if tokens else 0
is_coherent = True
if repetition_score > 3.0:
is_coherent = False
print("!! Coherence Issue detected !!")
results.append({
"prompt": prompt,
"response": response,
"is_coherent": is_coherent,
"tps": len(tokens) / duration
})
return results
if __name__ == "__main__":
results = run_patched_baseline_test()
all_ok = all(r["is_coherent"] for r in results)
print(f"\nBaseline Stability: {'✅ OK' if all_ok else '❌ BROKEN'}")