msrh-zindi-magic / docs /PIPELINE_DIAGRAM.md
MagicCard's picture
Docs
028081c
|
Raw
History Blame Contribute Delete
8.35 kB

Full pipeline diagram (text)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ STEP 1: DATA  (raw Zindi CSVs β†’ AfriE5 retrieval)            β”‚
β”‚                                                              β”‚
β”‚  Train.csv  Val.csv  Test.csv                                β”‚
β”‚       β”‚       β”‚        β”‚                                     β”‚
β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                     β”‚
β”‚                β”‚                                             β”‚
β”‚   AfriE5 retrieval (McGill-NLP/AfriE5-Large-instruct)        β”‚
β”‚   build_afrie5_k5.py --k=3,5,7                               β”‚
β”‚                β”‚                                             β”‚
β”‚       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”                                    β”‚
β”‚       β–Ό        β–Ό        β–Ό                                    β”‚
β”‚  TV_k3.json  TV_k5.json  TV_k7.json                          β”‚
β”‚  (train+test, top-K passages per query)                      β”‚
β”‚                                                              β”‚
β”‚   Fewshot demo prep (top-K similar Q,A from Train+Val)       β”‚
β”‚   build_fewshot_train_k{3,4,5,7}.py + test counterparts      β”‚
β”‚                β”‚                                             β”‚
β”‚       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”                                    β”‚
β”‚       β–Ό        β–Ό        β–Ό                                    β”‚
β”‚  k3_fewshot  k5_fewshot  k7_fewshot                          β”‚
β”‚                β”‚                                             β”‚
β”‚   v8 prompt swap (replace v1 instruction with v8)            β”‚
β”‚   build_v8_k5_fewshot.py                                     β”‚
β”‚                β”‚                                             β”‚
β”‚                β–Ό                                             β”‚
β”‚         k5_fewshot_v8.json                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ STEP 2: TRAIN  (13 LoRA adapters)  β€” OPTIONAL for reviewer   β”‚
β”‚                                                              β”‚
β”‚  ⚠ Reviewer can SKIP this step β€” all 19 LoRA adapters        β”‚
β”‚     are PRE-TRAINED and shipped in checkpoints/<name>/       β”‚
β”‚     (~35 GB total, 1.8-2.1 GB per adapter).                  β”‚
β”‚                                                              β”‚
β”‚  Training recipes (LlamaFactory + DeepSpeed ZeRO-3):         β”‚
β”‚  Q3.5-27B base Γ— K=3 v1 (3ep)        β†’ ck-1200, ck-1100      β”‚
β”‚  Q3.5-27B base Γ— K=3 v1 (5ep)        β†’ ck-1200               β”‚
β”‚  Q3.5-27B base Γ— K=4 v1 (3ep)        β†’ ck-1600               β”‚
β”‚  Q3.5-27B base Γ— K=5 V8 (3ep)         β†’ ck-1500              β”‚
β”‚  Q3.5-27B base Γ— K=7 v1 (3ep)        β†’ ck-1600, ck-1200      β”‚
β”‚  Q3.6-27B base Γ— K=3 v1 (3ep RecA)   β†’ ck-1600               β”‚
β”‚  Q3.6-27B base Γ— K=4 v1 (3ep)        β†’ ck-1400               β”‚
β”‚  Q3.6-27B base Γ— K=5 v1 (3ep)        β†’ ck-1200, ck-1000      β”‚
β”‚  Q3.6-27B base Γ— K=7 V8 (3ep) ⭐      β†’ ck-1600               β”‚
β”‚  Q3-32B base   Γ— K=3 v1 (3ep)        β†’ ck-1400               β”‚
β”‚  Q3-32B base   Γ— K=5 v1 (3ep)        β†’ ck-1700               β”‚
β”‚  Q3-32B base   Γ— K=7 v1 (3ep)        β†’ ck-1600, ck-1200      β”‚
β”‚  + 3 NoFewshots SFT runs (same LoRA recipe, no demos):       β”‚
β”‚    Q3.5-27B (5ep ck-2800)  qwen35_27b_nofewshots_5ep...yaml  β”‚
β”‚    Q3.6-27B (5ep ck-2600)  qwen36_27b_nofewshots_5ep...yaml  β”‚
β”‚    Q3-32B  (4ep ck-6500)   qwen3_32b_nofewshots_4ep...yaml   β”‚
β”‚                                                              β”‚
β”‚  LoRA: r=128, Ξ±=256, dropout=0.05, target=all                β”‚
β”‚  LR=2e-4 cosine warmup 5%, bf16, gc=true                     β”‚
β”‚  eff_bs=64 (per_dev=2, ga=4, GPUs=8)                         β”‚
β”‚  Wall time: 13 Γ— (~8-14h on 8Γ— H100) sequential              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ STEP 3: PREDICT  (19 CSVs from 19 provided LoRA adapters)    β”‚
β”‚                                                              β”‚
β”‚  bash scripts/launch_all_predicts.sh                         β”‚
β”‚    (orchestrator runs all 19 in parallel/sequential)         β”‚
β”‚                                                              β”‚
β”‚  For each adapter in checkpoints/<descriptive_name>/:        β”‚
β”‚   vllm_predict_extra.py                                      β”‚
β”‚     --base <Qwen base model>                                 β”‚
β”‚     --adapter checkpoints/<descriptive_name>                 β”‚
β”‚     --rag_test data/msrh_rag_test_k3_AfriE5_TV*.json         β”‚
β”‚     --max_lora_rank 128 --max_new 512                        β”‚
β”‚     --max_model_len 6144/8192/10240 (per K) --no_think       β”‚
β”‚     --temperature 0.0 --best_of 1                            β”‚
β”‚                β”‚                                             β”‚
β”‚   jsonl_rowidx_to_csv.py β†’ candidate_csvs/<name>.csv         β”‚
β”‚                                                              β”‚
β”‚  Produces 19 prediction CSVs in candidate_csvs/              β”‚
β”‚  (the folder is empty in the shipped package β€” they          β”‚
β”‚   are GENERATED here from provided checkpoints)              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ STEP 4: ENSEMBLE  (V2 medoid_ngram on 19 cands)              β”‚
β”‚                                                              β”‚
β”‚  build_ensemble.py                                           β”‚
β”‚                                                              β”‚
β”‚   For each Test row:                                         β”‚
β”‚     1. Collect 19 candidate answer texts                     β”‚
β”‚     2. Compute pairwise ROUGE-1.F + ROUGE-2.F (171 pairs)    β”‚
β”‚     3. For each cand, sum similarity to all others           β”‚
β”‚     4. Pick candidate with HIGHEST sum (medoid)              β”‚
β”‚     5. Use its answer text                                   β”‚
β”‚                β”‚                                             β”‚
β”‚                β–Ό                                             β”‚
β”‚              go.csv                                          β”‚
β”‚   (2618 rows Γ— 4 target columns, all = same medoid pick)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚  Submit to Zindi   β”‚
                  β”‚  Public LB 0.7388  β”‚
                  β”‚  Private LB Top 1πŸ†β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜