LordofMonarchs commited on
Commit
7583033
·
verified ·
1 Parent(s): 6b5c528

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +2 -77
README.md CHANGED
@@ -32,83 +32,8 @@ A ranking system built purely on heuristic scoring rules tends to reward whateve
32
 
33
  The pipeline is split into two phases. The offline phase has no time limit and produces a set of precomputed artifacts. The online phase is what actually runs during the competition's 300 second window, and only touches those artifacts plus the live candidate pool.
34
 
35
- ```mermaid
36
- flowchart TD
37
- %% Define classes with light pastel fills, complementary borders, and dark text for contrast
38
- classDef data fill:#e0f2fe,stroke:#0284c7,stroke-width:1px,color:#0f172a;
39
- classDef llm fill:#f3e8ff,stroke:#7e22ce,stroke-width:1px,color:#0f172a;
40
- classDef offline fill:#ffedd5,stroke:#c2410c,stroke-width:1px,color:#0f172a;
41
- classDef online fill:#dcfce7,stroke:#15803d,stroke-width:1px,color:#0f172a;
42
-
43
- candidates_jsonl["candidates.jsonl<br/>(100,000 records)"]:::data
44
- submission_csv["submission.csv<br/>(100 ranked candidates)"]:::data
45
-
46
- subgraph offline_phase [OFFLINE PHASE]
47
- subgraph gemma3_annotation [GEMMA3 PAIRWISE ANNOTATION]
48
- stratified_sample["Stratified Sample of<br/>500 Candidates"]:::llm
49
- pairwise_comparisons["2,500 Pairwise Comparisons<br/>(Local Gemma3 LLM)"]:::llm
50
- elo_ratings["Laplace-smoothed<br/>Elo Ratings"]:::llm
51
- relevance_labels["Quartile Thresholding to<br/>Relevance Labels 0-3"]:::llm
52
-
53
- stratified_sample --> pairwise_comparisons
54
- pairwise_comparisons --> elo_ratings
55
- elo_ratings --> relevance_labels
56
- end
57
-
58
- bm25_index_build["BM25 Index Build<br/>(NumPy CSR matrix)"]:::offline
59
- static_feature_precompute["Static Feature Precompute<br/>(18 JD-independent features)"]:::offline
60
-
61
- lightgbm_training["LIGHTGBM TRAINING<br/>Objective: lambdarank<br/>early stop on NDCG@5"]:::offline
62
-
63
- bm25_index_build --> precomputed_artifacts_box
64
- static_feature_precompute --> precomputed_artifacts_box
65
- relevance_labels --> lightgbm_training
66
- static_feature_precompute --> lightgbm_training
67
- bm25_index_build --> lightgbm_training
68
-
69
- lightgbm_training --> precomputed_artifacts_box
70
-
71
- precomputed_artifacts_box["PRECOMPUTED ARTIFACTS<br/>lgbm_model.txt<br/>bm25_matrix.npz<br/>static_features.pkl"]:::data
72
- end
73
-
74
- subgraph online_ranking_phase [ONLINE RANKING PHASE]
75
- stage_0["Stage 0: Load Precomputed Artifacts<br/>(BM25, LightGBM, static features)"]:::online
76
-
77
- stage_1["Stage 1: Dual-pass BM25 Retrieval<br/>Pass A: JD skills on skills array<br/>Pass B: production keywords on career descriptions<br/>Narrow to ~8,500 candidates"]:::online
78
-
79
- stage_2["Stage 2: Load Stage 1 Records<br/>(Byte-offset index, O(1))"]:::online
80
-
81
- stage_2b["Stage 2b: Feature Engineering<br/>(22 features, adversarial detection,<br/>consistency score)"]:::online
82
-
83
- stage_4["Stage 4: LightGBM Inference<br/>(final_score = raw_score * consistency_score)"]:::online
84
-
85
- stage_5["Stage 5: Reasoning Compiler<br/>(Deterministic grammar, 4 templates,<br/>priority concerns, numeric audit)"]:::online
86
-
87
- stage_6["Stage 6: Blocking Audits + CSV Write<br/>(Honeypot, diversity, monotonicity checks)"]:::online
88
-
89
- stage_0 --> stage_1
90
- stage_1 --> stage_2
91
- stage_2 --> stage_2b
92
- stage_2b --> stage_4
93
- stage_4 --> stage_5
94
- stage_5 --> stage_6
95
- stage_6 --> submission_csv
96
- end
97
-
98
- candidates_jsonl --> offline_phase
99
- candidates_jsonl --> stage_1
100
-
101
- precomputed_artifacts_box --> stage_0
102
- precomputed_artifacts_box -.-> stage_2
103
- precomputed_artifacts_box -.-> stage_2b
104
- precomputed_artifacts_box -.-> stage_4
105
-
106
- %% Use transparent fills (none) so it inherits GitHub's native dark/light themes seamlessly
107
- style offline_phase fill:none,stroke:#777,stroke-width:2px,stroke-dasharray: 5 5
108
- style online_ranking_phase fill:none,stroke:#777,stroke-width:2px,stroke-dasharray: 5 5
109
- style gemma3_annotation fill:none,stroke:#555,stroke-width:1px
110
-
111
- ```
112
  ---
113
 
114
  ## Quick Start
 
32
 
33
  The pipeline is split into two phases. The offline phase has no time limit and produces a set of precomputed artifacts. The online phase is what actually runs during the competition's 300 second window, and only touches those artifacts plus the live candidate pool.
34
 
35
+ ![App Architecture](model_training_architecture.png)
36
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  ---
38
 
39
  ## Quick Start