forked from luopingyi/xc_agent_platform_demo
live: ban gguf/openchat/peft-lora; bake verify_fail marks from 2026-10-17 analysis
This commit is contained in:
36
tests/test_banned.py
Normal file
36
tests/test_banned.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import unittest
|
||||
|
||||
from src.banned import banned_rule
|
||||
|
||||
|
||||
class TestBanned(unittest.TestCase):
|
||||
def test_default_engine_and_openchat(self):
|
||||
for model, rule in [('org/Model-GGUF', 'gguf'), ('org/model.gguf', 'gguf'),
|
||||
('org/GGML-model', 'gguf'), ('OpenChat/model', 'openchat')]:
|
||||
with self.subTest(model=model):
|
||||
self.assertEqual(banned_rule(model), rule)
|
||||
|
||||
def test_unmerged_adapter_hints(self):
|
||||
for model in ('org/model-lora', 'org/LORA', 'org/adapter_model',
|
||||
'org/model-adapter-config', 'org/Model-PEFT'):
|
||||
with self.subTest(model=model):
|
||||
self.assertEqual(banned_rule(model), 'peft-lora')
|
||||
|
||||
def test_full_weights_and_unrelated_names(self):
|
||||
for model in ('org/lora-merged', 'org/merge-lora', 'org/PEFT-FULLFT',
|
||||
'org/full-ft-adapter_model', 'org/adapter-config-MERGED',
|
||||
'org/flora', 'org/lorax', 'org/model_lora',
|
||||
'org/model-GRPO', 'abaryan/CyberXP_Agent_Llama_3.2_1B'):
|
||||
with self.subTest(model=model):
|
||||
self.assertIsNone(banned_rule(model))
|
||||
|
||||
def test_full_weight_hint_does_not_override_other_bans(self):
|
||||
self.assertEqual(banned_rule('org/lora-merged-GGUF'), 'gguf')
|
||||
self.assertEqual(banned_rule('org/openchat-fullft'), 'openchat')
|
||||
|
||||
def test_existing_rules(self):
|
||||
for model in ('gpt2', 'org/Phi-3-mini', 'nvidia/Nemotron-H-4B',
|
||||
'allenai/OLMo-2-7B', 'org/LFM2', 'org/Spark-X2.5',
|
||||
'org/Breeze', 'org/gemma2', 'org/mistral-v0.1', 'org/tinyllama'):
|
||||
with self.subTest(model=model):
|
||||
self.assertIsNotNone(banned_rule(model))
|
||||
@@ -18,11 +18,29 @@ from src.precheck import precheck_model
|
||||
class TestMarks(unittest.TestCase):
|
||||
def test_baked_marks(self):
|
||||
marks = load_marks()
|
||||
self.assertEqual(len(marks), 8)
|
||||
self.assertEqual(len(marks), 16)
|
||||
self.assertTrue(all(g in GPU_ENUMS.values() for m, g in marks))
|
||||
self.assertEqual(marks['madeagents/hammer2.1-0.5b', 'Biren_166m'], 60027)
|
||||
self.assertEqual(PERMANENT_PAIR_CODES, {60012, *range(60019, 60030)})
|
||||
|
||||
def test_verify_fail_marks(self):
|
||||
rows = json.loads(Path('src/data/reject-marks.json').read_text())['marks']
|
||||
keys = [(row['model'].lower(), row['gpu']) for row in rows]
|
||||
self.assertEqual(len(keys), len(set(keys)))
|
||||
failures = [row for row in rows if row['reason'].startswith('VERIFY_FAIL:')]
|
||||
self.assertEqual(len(failures), 8)
|
||||
self.assertEqual(sorted(row['reason'] for row in failures),
|
||||
sorted(['VERIFY_FAIL:SCORE_GAP'] * 5 +
|
||||
['VERIFY_FAIL:PEFT_UNMERGED', 'VERIFY_FAIL:NO_IDLE_DEVICE',
|
||||
'VERIFY_FAIL:REF_CACHE_MISS']))
|
||||
marks = load_marks()
|
||||
for row in failures:
|
||||
self.assertEqual(row['code'], 60029)
|
||||
self.assertIn(row['code'], PERMANENT_PAIR_CODES)
|
||||
self.assertEqual(marks[row['model'].lower(), row['gpu']], 60029)
|
||||
self.assertEqual(marks['abaryan/cyberxp_agent_llama_3.2_1b', 'Biren_166m'], 60029)
|
||||
self.assertNotIn(('abaryan/cyberxp_agent_llama_3.2_1b', 'Iluvatar_bi-100'), marks)
|
||||
|
||||
def test_invalid_marks(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
path = Path(directory) / 'marks.json'
|
||||
|
||||
Reference in New Issue
Block a user