Yatsuiii commited on
Commit
1bc9be2
·
verified ·
1 Parent(s): 46f07ab

Upload app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +95 -44
app.py CHANGED
@@ -569,74 +569,125 @@ VALIDATION = f"""
569
 
570
  ARCHITECTURE = """
571
  <div>
572
- <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:18px">
573
- <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:18px 20px">
574
- <div style="color:#fb923c;font-weight:600;font-size:0.78rem;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px">Brain Mode Decomposition</div>
575
- <div style="color:#cbd5e1;font-size:0.85rem;line-height:1.6">
576
- K=16 learnable directions in ROI space. <code style="color:#fb923c;background:#0e1015;padding:1px 5px;border-radius:3px;font-size:0.8rem">M_kl = v_k · FC · v_l</code>
577
- compresses 19,900 FC features → 152 dims while preserving network structure.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
  </div>
579
  </div>
580
- <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:18px 20px">
581
- <div style="color:#fb923c;font-weight:600;font-size:0.78rem;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px">Gradient Reversal Layer</div>
582
- <div style="color:#cbd5e1;font-size:0.85rem;line-height:1.6">
583
- Adversarial site deconfounding (Ganin 2016). Encoder minimizes ASD loss while <i>maximizing</i> site confusion — forcing site-invariant representations. α annealed 0→1.
 
 
 
 
584
  </div>
 
585
  </div>
586
- <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:18px 20px">
587
- <div style="color:#fb923c;font-weight:600;font-size:0.78rem;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px">LOSO Ensemble</div>
588
- <div style="color:#cbd5e1;font-size:0.85rem;line-height:1.6">
589
- 4 models × 1 held-out site each. No model ever saw the test subject's scanner. Cross-model agreement = site-independent finding.
590
  </div>
 
 
 
 
 
 
 
591
  </div>
592
  </div>
593
 
 
594
  <div style="background:#161922;border:1px solid #252a35;border-radius:8px;overflow:hidden">
595
- <table style="width:100%;border-collapse:collapse;font-size:0.86rem">
596
- <tr><td style="padding:10px 16px;color:#8b95a7;width:160px;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Dataset</td><td style="padding:10px 16px;color:#cbd5e1">ABIDE I 1,102 subjects · 17 acquisition sites</td></tr>
597
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Parcellation</td><td style="padding:10px 16px;color:#cbd5e1">CC200 (Craddock 2012) 200 functional ROIs</td></tr>
598
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Architecture</td><td style="padding:10px 16px;color:#cbd5e1">AdversarialBrainModeNetwork · K=16 · hidden_dim=64</td></tr>
599
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Regularization</td><td style="padding:10px 16px;color:#cbd5e1">GRL adversarial + orthogonality loss on brain modes</td></tr>
600
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Validation</td><td style="padding:10px 16px;color:#cbd5e1">LOSO AUC = <span style="color:#ef4444;font-weight:600">0.7872</span> across 529 held-out subjects</td></tr>
601
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Interpretability</td><td style="padding:10px 16px;color:#cbd5e1">Real-time gradient saliency on FC adjacency matrix</td></tr>
602
  </table>
603
  </div>
 
604
  </div>
605
  """
606
 
607
  AMD = f"""
608
  <div>
609
- <div style="display:flex;gap:32px;margin-bottom:22px;flex-wrap:wrap">
610
- <div><div style="font-size:1.7rem;font-weight:700;color:#fb923c;line-height:1;font-variant-numeric:tabular-nums">192<span style="font-size:0.8rem;color:#5e6675;font-weight:500"> GB</span></div><div style="color:#8b95a7;font-size:0.7rem;margin-top:5px;text-transform:uppercase;letter-spacing:1px">HBM3 unified</div></div>
611
- <div><div style="font-size:1.7rem;font-weight:700;color:#fb923c;line-height:1">bf16</div><div style="color:#8b95a7;font-size:0.7rem;margin-top:5px;text-transform:uppercase;letter-spacing:1px">Full precision</div></div>
612
- <div><div style="font-size:1.7rem;font-weight:700;color:#f4f4f5;line-height:1">7B</div><div style="color:#8b95a7;font-size:0.7rem;margin-top:5px;text-transform:uppercase;letter-spacing:1px">Qwen2.5 params</div></div>
613
- <div><div style="font-size:1.7rem;font-weight:700;color:#f4f4f5;line-height:1;font-variant-numeric:tabular-nums">2,000</div><div style="color:#8b95a7;font-size:0.7rem;margin-top:5px;text-transform:uppercase;letter-spacing:1px">Domain examples</div></div>
614
- <div><div style="font-size:1.7rem;font-weight:700;color:#f4f4f5;line-height:1">r=16</div><div style="color:#8b95a7;font-size:0.7rem;margin-top:5px;text-transform:uppercase;letter-spacing:1px">LoRA rank</div></div>
615
- </div>
616
 
617
- <div style="background:#161922;border:1px solid #252a35;border-radius:8px;overflow:hidden;margin-bottom:14px">
618
- <table style="width:100%;border-collapse:collapse;font-size:0.86rem">
619
- <tr><td style="padding:10px 16px;color:#8b95a7;width:160px;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Base model</td><td style="padding:10px 16px;color:#cbd5e1">Qwen/Qwen2.5-7B-Instruct <span style="color:#5e6675">· AMD partner model</span></td></tr>
620
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Method</td><td style="padding:10px 16px;color:#cbd5e1">LoRA r=16, α=32 · all projection layers (q, k, v, o, gate, up, down)</td></tr>
621
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Hardware</td><td style="padding:10px 16px;color:#cbd5e1">AMD Instinct MI300X · ROCm · bf16 — no quantization</td></tr>
622
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Training data</td><td style="padding:10px 16px;color:#cbd5e1">2,000 GCN→clinical report pairs · ASD-grounded · 3 epochs</td></tr>
623
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Task</td><td style="padding:10px 16px;color:#cbd5e1">Structured clinical interpretation of LOSO GCN ensemble outputs</td></tr>
624
- <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.5px">Output</td><td style="padding:10px 16px;color:#cbd5e1">DMN / salience / cerebellar-cortical findings grounded in ASD literature</td></tr>
625
- </table>
626
- </div>
627
 
628
- <img src="data:image/png;base64,{AMD_BENCH_B64}" style="width:100%;border-radius:6px;margin-bottom:14px;border:1px solid #252a35"/>
 
629
 
630
- <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px">
631
  <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:18px 20px">
632
- <div style="color:#fb923c;font-weight:600;font-size:0.78rem;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px">Why Qwen2.5-7B?</div>
633
- <div style="color:#cbd5e1;font-size:0.85rem;line-height:1.6">AMD partner model. Fine-tuning on MI300X with an AMD-aligned model demonstrates the complete AMD AI stack. 192 GB HBM3 enables full bf16 fine-tuning impossible on consumer hardware.</div>
 
 
 
 
 
634
  </div>
 
635
  <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:18px 20px">
636
- <div style="color:#fb923c;font-weight:600;font-size:0.78rem;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px">Why domain fine-tuning?</div>
637
- <div style="color:#cbd5e1;font-size:0.85rem;line-height:1.6">Base Qwen generates generic text. Fine-tuned Qwen understands what "3/4 site-blind models agree" means clinically and grounds reports in ASD neuroscience (DMN, salience, cerebellar-cortical coupling).</div>
 
 
 
 
 
638
  </div>
 
 
 
 
 
 
 
 
 
 
 
639
  </div>
 
640
  </div>
641
  """
642
 
 
569
 
570
  ARCHITECTURE = """
571
  <div>
572
+
573
+ <!-- Pipeline flow -->
574
+ <div style="display:flex;align-items:center;gap:0;margin-bottom:24px;overflow-x:auto;padding-bottom:4px">
575
+
576
+ <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:14px 16px;min-width:130px;text-align:center;flex-shrink:0">
577
+ <div style="color:#8b95a7;font-size:0.65rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px">Input</div>
578
+ <div style="color:#f4f4f5;font-weight:600;font-size:0.88rem">fMRI BOLD</div>
579
+ <div style="color:#5e6675;font-size:0.74rem;margin-top:3px">T × 200 ROIs</div>
580
+ </div>
581
+
582
+ <div style="color:#252a35;font-size:1.4rem;padding:0 6px;flex-shrink:0">→</div>
583
+
584
+ <div style="background:#1a1810;border:1px solid #fb923c44;border-radius:8px;padding:14px 16px;min-width:160px;text-align:center;flex-shrink:0">
585
+ <div style="color:#fb923c;font-size:0.65rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px">Step 1</div>
586
+ <div style="color:#f4f4f5;font-weight:600;font-size:0.88rem">Brain Mode Decomp.</div>
587
+ <div style="color:#8b95a7;font-size:0.74rem;margin-top:3px">K=16 · 19,900→152 dims</div>
588
+ <code style="color:#fb923c;font-size:0.7rem;display:block;margin-top:5px">M_kl = v_k · FC · v_l</code>
589
+ </div>
590
+
591
+ <div style="color:#252a35;font-size:1.4rem;padding:0 6px;flex-shrink:0">→</div>
592
+
593
+ <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:14px 16px;min-width:140px;text-align:center;flex-shrink:0">
594
+ <div style="color:#8b95a7;font-size:0.65rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px">Step 2</div>
595
+ <div style="color:#f4f4f5;font-weight:600;font-size:0.88rem">Shared Encoder</div>
596
+ <div style="color:#5e6675;font-size:0.74rem;margin-top:3px">MLP · hidden_dim=64</div>
597
+ </div>
598
+
599
+ <div style="color:#252a35;font-size:1.4rem;padding:0 6px;flex-shrink:0">→</div>
600
+
601
+ <div style="display:flex;flex-direction:column;gap:6px;flex-shrink:0">
602
+ <div style="background:#1a2e1a;border:1px solid #22c55e44;border-radius:8px;padding:10px 16px;min-width:150px;text-align:center">
603
+ <div style="color:#22c55e;font-size:0.65rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px">ASD Head</div>
604
+ <div style="color:#f4f4f5;font-weight:600;font-size:0.85rem">p(ASD) + saliency</div>
605
+ </div>
606
+ <div style="background:#1a1018;border:1px solid #8b5cf644;border-radius:8px;padding:10px 16px;min-width:150px;text-align:center">
607
+ <div style="color:#8b5cf6;font-size:0.65rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px">GRL → Site Head</div>
608
+ <div style="color:#f4f4f5;font-weight:600;font-size:0.85rem">Site deconfounding</div>
609
  </div>
610
  </div>
611
+
612
+ </div>
613
+
614
+ <!-- Three concept cards -->
615
+ <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:18px">
616
+ <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:16px 18px">
617
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:8px">
618
+ <span style="background:#fb923c22;color:#fb923c;font-size:0.68rem;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:0.8px">Brain Modes</span>
619
  </div>
620
+ <div style="color:#cbd5e1;font-size:0.84rem;line-height:1.55">K=16 learnable directions compress the 200×200 FC matrix into 152 bilinear features — each mode specialises to a functional network (DMN, salience, FPN).</div>
621
  </div>
622
+ <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:16px 18px">
623
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:8px">
624
+ <span style="background:#8b5cf622;color:#8b5cf6;font-size:0.68rem;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:0.8px">GRL</span>
 
625
  </div>
626
+ <div style="color:#cbd5e1;font-size:0.84rem;line-height:1.55">Gradient Reversal Layer (Ganin 2016) forces the encoder to learn representations that are <em>maximally confusing</em> to a site classifier — scanner artifacts can't leak into the ASD prediction.</div>
627
+ </div>
628
+ <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:16px 18px">
629
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:8px">
630
+ <span style="background:#ef444422;color:#ef4444;font-size:0.68rem;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:0.8px">LOSO</span>
631
+ </div>
632
+ <div style="color:#cbd5e1;font-size:0.84rem;line-height:1.55">4 models, each trained blind to one scanner site. At inference all 4 vote — if 3/4 agree across different hardware, it's a biology signal, not an artifact.</div>
633
  </div>
634
  </div>
635
 
636
+ <!-- Spec table -->
637
  <div style="background:#161922;border:1px solid #252a35;border-radius:8px;overflow:hidden">
638
+ <table style="width:100%;border-collapse:collapse;font-size:0.85rem">
639
+ <tr><td style="padding:10px 16px;color:#8b95a7;width:150px;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Dataset</td><td style="padding:10px 16px;color:#cbd5e1">ABIDE I · 1,102 subjects · 17 acquisition sites</td></tr>
640
+ <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Parcellation</td><td style="padding:10px 16px;color:#cbd5e1">CC200 (Craddock 2012) · 200 functional ROIs</td></tr>
641
+ <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Model</td><td style="padding:10px 16px;color:#cbd5e1">AdversarialBrainModeNetwork · K=16 modes · hidden_dim=64</td></tr>
642
+ <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Validation</td><td style="padding:10px 16px;color:#cbd5e1">LOSO AUC = <span style="color:#ef4444;font-weight:600">0.7872</span> · 529 held-out subjects · 0 confident misclassifications</td></tr>
643
+ <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Interpretability</td><td style="padding:10px 16px;color:#cbd5e1">Real-time gradient saliency · 7-network aggregation · 3D brain surface</td></tr>
 
644
  </table>
645
  </div>
646
+
647
  </div>
648
  """
649
 
650
  AMD = f"""
651
  <div>
 
 
 
 
 
 
 
652
 
653
+ <!-- Benchmark chart first — most impressive thing -->
654
+ <img src="data:image/png;base64,{AMD_BENCH_B64}" style="width:100%;border-radius:8px;margin-bottom:20px;border:1px solid #252a35"/>
 
 
 
 
 
 
 
 
655
 
656
+ <!-- Two-column layout: stat grid left, pipeline right -->
657
+ <div style="display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px">
658
 
 
659
  <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:18px 20px">
660
+ <div style="color:#8b95a7;font-size:0.68rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px;font-weight:500">Hardware</div>
661
+ <div style="display:grid;grid-template-columns:1fr 1fr;gap:14px">
662
+ <div><div style="font-size:1.5rem;font-weight:700;color:#fb923c;font-variant-numeric:tabular-nums">192<span style="font-size:0.75rem;color:#5e6675;font-weight:400"> GB</span></div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">HBM3 unified mem</div></div>
663
+ <div><div style="font-size:1.5rem;font-weight:700;color:#fb923c">bf16</div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">Full precision</div></div>
664
+ <div><div style="font-size:1.5rem;font-weight:700;color:#fb923c">30×</div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">Faster than CPU</div></div>
665
+ <div><div style="font-size:1.5rem;font-weight:700;color:#fb923c">94ms</div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">Per subject</div></div>
666
+ </div>
667
  </div>
668
+
669
  <div style="background:#161922;border:1px solid #252a35;border-radius:8px;padding:18px 20px">
670
+ <div style="color:#8b95a7;font-size:0.68rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px;font-weight:500">LoRA Fine-Tune</div>
671
+ <div style="display:grid;grid-template-columns:1fr 1fr;gap:14px">
672
+ <div><div style="font-size:1.5rem;font-weight:700;color:#f4f4f5">7B</div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">Qwen2.5 params</div></div>
673
+ <div><div style="font-size:1.5rem;font-weight:700;color:#f4f4f5">r=16</div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">LoRA rank</div></div>
674
+ <div><div style="font-size:1.5rem;font-weight:700;color:#f4f4f5">2K</div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">Domain examples</div></div>
675
+ <div><div style="font-size:1.5rem;font-weight:700;color:#f4f4f5">3</div><div style="color:#8b95a7;font-size:0.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:0.8px">Epochs</div></div>
676
+ </div>
677
  </div>
678
+
679
+ </div>
680
+
681
+ <!-- Fine-tune spec table -->
682
+ <div style="background:#161922;border:1px solid #252a35;border-radius:8px;overflow:hidden">
683
+ <table style="width:100%;border-collapse:collapse;font-size:0.85rem">
684
+ <tr><td style="padding:10px 16px;color:#8b95a7;width:150px;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Base model</td><td style="padding:10px 16px;color:#cbd5e1">Qwen/Qwen2.5-7B-Instruct <span style="color:#5e6675">· AMD partner model · ROCm native</span></td></tr>
685
+ <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Method</td><td style="padding:10px 16px;color:#cbd5e1">LoRA r=16 α=32 · q, k, v, o, gate, up, down projections · bf16 — no quantization needed</td></tr>
686
+ <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Training task</td><td style="padding:10px 16px;color:#cbd5e1">GCN ensemble output → structured clinical referral letter with ICD-10 codes</td></tr>
687
+ <tr style="border-top:1px solid #252a35"><td style="padding:10px 16px;color:#8b95a7;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px">Why MI300X?</td><td style="padding:10px 16px;color:#cbd5e1">192 GB unified HBM3 fits the full 7B model in bf16 without sharding — impossible on consumer GPUs. ROCm enables native PyTorch training with zero code changes.</td></tr>
688
+ </table>
689
  </div>
690
+
691
  </div>
692
  """
693