Download evaluation/code/swift15/test_workflow.py from daavidhauser/Swift-1.5-Qwen3.8-27B-W4A16-HyperQwen: direct link, hf CLI and curl.
- Browser
- Download file 3.47 kB
-
https://huggingface.co/daavidhauser/Swift-1.5-Qwen3.8-27B-W4A16-HyperQwen/resolve/main/evaluation/code/swift15/test_workflow.py
- Command line
-
hf download hf://daavidhauser/Swift-1.5-Qwen3.8-27B-W4A16-HyperQwen/evaluation/code/swift15/test_workflow.py
-
curl -L -o test_workflow.py https://huggingface.co/daavidhauser/Swift-1.5-Qwen3.8-27B-W4A16-HyperQwen/resolve/main/evaluation/code/swift15/test_workflow.py
3.47 kB
| """Regression checks for file isolation, calibration separation and task scoring.""" | |
| import json | |
| import tempfile | |
| import unittest | |
| from pathlib import Path | |
| import torch | |
| from safetensors.torch import save_file, load_file | |
| from checkpoint import clone | |
| from quantize import replace_tensors | |
| from evaluate import gsm_score, json_equal, aggregate | |
| from code_runner import equal | |
| from gptq_utils import accumulate_hessian | |
| class WorkflowTests(unittest.TestCase): | |
| def test_capped_answers_count_as_wrong_even_if_partial_answer_matches(self): | |
| row={"input_tokens":10,"output_tokens":32768,"truncated":True,"error":None,"correct":True,"model_seconds":200} | |
| result=aggregate([row]) | |
| self.assertEqual(result["accuracy"],0) | |
| self.assertEqual(result["correct"],0) | |
| self.assertEqual(result["attempted"],1) | |
| self.assertEqual(result["truncated_counted_as_wrong"],1) | |
| def test_hessian_remains_fp32_inside_bf16_autocast(self): | |
| torch.manual_seed(42) | |
| x = torch.randn(64,128) | |
| h = torch.zeros(128,128) | |
| with torch.autocast("cpu",dtype=torch.bfloat16): | |
| h,n = accumulate_hessian(h,x,0) | |
| reference = 2/len(x) * (x.T @ x) | |
| self.assertEqual(n,64) | |
| self.assertTrue(torch.allclose(h,reference,rtol=1e-5,atol=1e-6)) | |
| def test_quant_export_does_not_mutate_hardlinked_baseline(self): | |
| with tempfile.TemporaryDirectory() as td: | |
| source, target = Path(td)/"source", Path(td)/"fast" | |
| source.mkdir() | |
| old = torch.ones(2, 4, dtype=torch.int32) | |
| save_file({"lm_head.weight_packed": old, "untouched.weight": torch.ones(2)}, source/"model.safetensors") | |
| (source/"model.safetensors.index.json").write_text(json.dumps({"weight_map":{"lm_head.weight_packed":"model.safetensors"}})) | |
| (source/"config.json").write_text(json.dumps({"quantization_config":{"config_groups":{"group_1":{"weights":{"num_bits":8}}}}})) | |
| clone(source,target) | |
| self.assertEqual((source/"model.safetensors").stat().st_ino,(target/"model.safetensors").stat().st_ino) | |
| replace_tensors(target,{"lm_head":{"weight_packed":torch.zeros_like(old)}},{"group_1":4}) | |
| self.assertTrue(torch.equal(load_file(source/"model.safetensors")["lm_head.weight_packed"],old)) | |
| self.assertEqual(load_file(target/"model.safetensors")["lm_head.weight_packed"].sum().item(),0) | |
| self.assertTrue(torch.equal(load_file(target/"model.safetensors")["untouched.weight"],torch.ones(2))) | |
| def test_scoring_rejects_wrong_types_and_nonfinite_numbers(self): | |
| self.assertFalse(json_equal({"x":True},{"x":1})) | |
| self.assertFalse(json_equal(float("nan"),1)) | |
| self.assertFalse(equal("9007199254740993","9007199254740992")) | |
| self.assertTrue(equal("1.0000001\n2","1 2")) | |
| self.assertTrue(gsm_score("Final answer: 1,250", "1250")) | |
| self.assertFalse(gsm_score("Final answer: 1251", "1250")) | |
| def test_failures_remain_in_time_and_quality_denominators(self): | |
| common={"input_tokens":10,"output_tokens":20,"truncated":False,"error":None} | |
| result=aggregate([dict(common,correct=True,model_seconds=2),dict(common,correct=False,model_seconds=8)]) | |
| self.assertEqual(result["accuracy"],.5) | |
| self.assertEqual(result["mean_model_seconds"],5) | |
| self.assertEqual(result["summed_request_seconds_per_correct"],10) | |
| if __name__ == "__main__": | |
| unittest.main() | |