| import pandas as pd | |
| import os | |
| models = { | |
| 'DistilBERT': 'D:/SVD_Project/results/distilbert_sst2_comprehensive_sweep/summary.csv', | |
| 'RoBERTa': 'D:/SVD_Project/results/roberta_sst2_comprehensive_sweep/summary.csv', | |
| 'GPT-2': 'D:/SVD_Project/results/gpt2_sst2_comprehensive_sweep/summary.csv', | |
| 'Qwen3.5': 'D:/SVD_Project/results/qwen3_5_sst2_comprehensive_sweep/summary.csv', | |
| } | |
| categories = { | |
| "Tuple injection collateral": ["'tuple' object has no attribute", "tuple indices must be integers", "must be Tensor, not tuple"], | |
| "GQA projection mismatch": ["all_head_size", "kv_head", "GQA", "q_proj_out"], | |
| "Device/dtype mismatch": ["Expected all tensors to be on the same device", "dtypes match"], | |
| "Timeout": ["timeout", "exceeded hard"], | |
| "Frozen recovery params / Plateau": ["plateau", "incompatible", "roberta_bidirectional_self_attention_incompatible", "gpt2_causal_geometry_plateau"], | |
| "CUDA OOM": ["out of memory", "CUDA OOM"], | |
| "Other": [] | |
| } | |
| for name, path in models.items(): | |
| if not os.path.exists(path): | |
| print(f"=== {name}: CSV NOT FOUND ===") | |
| continue | |
| df = pd.read_csv(path) | |
| total = len(df) | |
| pass_cnt = len(df[df['status'] == 'PASS']) | |
| non_pass = df[df['status'] != 'PASS'] | |
| print(f"\n=======================================================") | |
| print(f"=== {name}: {pass_cnt}/{total} PASS ({len(non_pass)} non-PASS) ===") | |
| print(f"=======================================================") | |
| print("Status breakdown:") | |
| for st, cnt in non_pass['status'].value_counts().items(): | |
| print(f" {st}: {cnt}") | |
| print("\nRoot cause categorization:") | |
| cat_counts = {c: [] for c in categories} | |
| for _, row in non_pass.iterrows(): | |
| err = str(row.get('error', '')) + " " + str(row.get('status', '')) | |
| matched = False | |
| for cat, patterns in categories.items(): | |
| if cat == "Other": | |
| continue | |
| if any(p.lower() in err.lower() for p in patterns): | |
| cat_counts[cat].append(row['module_name']) | |
| matched = True | |
| break | |
| if not matched: | |
| cat_counts["Other"].append(row['module_name']) | |
| for cat, mods in cat_counts.items(): | |
| if mods: | |
| print(f" [{cat}] ({len(mods)} modules):") | |
| print(f" {' '.join(mods)}") | |
Xet Storage Details
- Size:
- 2.36 kB
- Xet hash:
- da83976b3621d71af795a4b1940c65999b9516f1963aa4fafffa0590ae6c315a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.