File size: 7,271 Bytes
08646a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
{
  "name": "recICL",
  "model_type": "icl-recommender",
  "architecture": "RecPFN",
  "architecture_source": "https://github.com/SAP-samples/tabular-ai-recpfn (upstream commit 1af320c, Apache-2.0)",
  "paper": "arXiv:2608.19735 (SIGIR '26), doi:10.1145/3805712.3809696",
  "embedding_dim": 1536,
  "n_parameters": 169918464,
  "dtype": "float32",
  "model_config": {
    "n_layers": 4,
    "n_heads": 8,
    "dropout": 0.2,
    "icl_module_type": "alternating",
    "positional_embedding_scheme": "hard-alibi",
    "max_sequence_len": 15,
    "train_with_icl": true,
    "num_icl_examples": 8,
    "icl_k": 2,
    "weighted_icl_sampling": true,
    "weighted_decay_rate": 1.0,
    "normalize_embs": true,
    "llm": "qwen1b",
    "baseline_config": "balanced"
  },
  "inference": {
    "history_items_used": 14,
    "context_sequence_max_len": 15,
    "num_context_sequences": 8,
    "context_retrieval": "SAP InvertedIndexMatcher: pool sequences cut into windows of 15 (step 7); candidates share one of the query's last 2 items; top 8 by recency-weighted Jaccard (decay 1.0)",
    "score": "dot product of the output at the last history position with each L2-normalised item embedding"
  },
  "item_embeddings": {
    "model_id": "Alibaba-NLP/gte-Qwen2-1.5B-instruct",
    "revision": "a9af15a6372d7d6b25e9fb07c2ccb9e1fe645644",
    "dim": 1536,
    "trust_remote_code": true,
    "compute_dtype": "bf16",
    "max_seq_length": 512,
    "prompt": null,
    "pooling": "last token (<|endoftext|> appended by the remote-code tokenizer), right padding",
    "normalization": "L2 in fp32",
    "amazon_item_text_format": "Title: {title}; Brand: {brand}; Categories: {c1, c2, ...}"
  },
  "training": {
    "code": "SAP-samples/tabular-ai-recpfn src/ at 1af320c + infrastructure patches (resume, logging, NaN diagnostics; opt-in fixes all OFF) - training math as released",
    "config": {
      "train_with_icl": true,
      "num_icl_examples": 128,
      "train_with_synthetic_data": true,
      "n_layers": 4,
      "batch_size": 16,
      "reg_lambda": 0.0001,
      "warmup_epochs": 6,
      "baseline_config": "balanced",
      "learning_rate": 0.0001,
      "early_stopping_patience": 20,
      "positional_embedding_scheme": "hard-alibi",
      "optimizer": "adamw",
      "llm": "qwen1b",
      "max_sequence_len": 15,
      "num_epochs": 120,
      "use_cached_embeddings": true,
      "num_gradient_accumulation_steps": 2,
      "early_stopping_metric": "hr@10",
      "loss": "sce",
      "train_epoch_size": 500,
      "val_epoch_size": 200,
      "num_sdg_items": 1000,
      "normalize_embs": true,
      "n_heads": 8,
      "dropout": 0.2,
      "icl_module_type": "alternating",
      "val_k": 10
    },
    "training_seed": 0,
    "optimizer": "AdamW (torch defaults besides lr), linear warmup for warmup_epochs, then cosine annealing to 0.01*lr",
    "data": "synthetic sequences only (no real user data); each batch = one synthetic environment of 1000 items whose embeddings are sampled from the embedding store below",
    "embedding_store": {
      "rows": 800000,
      "composition": {
        "fiqa": 64248,
        "quora": 200000,
        "fever": 200000,
        "msmarco": 335752
      },
      "sources": "BEIR (FiQA-2018, Quora, FEVER, MS MARCO), sampled with seed 0",
      "encoder": "same as item_embeddings",
      "sha256": "fb9374462837c1b41188d15d50c55faf04096373f918ea31be57ddcdd6a29620"
    },
    "stages": {
      "stage1": {
        "synthetic_prior": "random graph",
        "sdg_params": {
          "transition_matrix_prior": [
            "random_graph"
          ],
          "popularity_bias": [
            0.0,
            0.1,
            0.2,
            0.3,
            0.5
          ],
          "window_size": [
            1,
            2,
            3
          ],
          "decay_coeff": [
            0.5,
            0.8
          ],
          "repeated_items": [
            true
          ]
        },
        "init": "random (seed 0)",
        "epochs_run": 120,
        "best_epoch": 101,
        "early_stopped": false,
        "best_synthetic_ratio_hr@10": 7.974883964010977,
        "gpu": [
          "NVIDIA H200"
        ],
        "wall_hours": 2.573,
        "first_epoch_end": "2026-09-29T07:33:10Z",
        "finished": "2026-09-29T10:05:54Z"
      },
      "stage2": {
        "synthetic_prior": "random graph + latent factor",
        "sdg_params": {
          "transition_matrix_prior": [
            "random_graph",
            "latent_factor"
          ],
          "num_latent_concepts": [
            20,
            40,
            60
          ],
          "mean_num_concepts_per_item": [
            2,
            3,
            5
          ],
          "mean_num_concepts_per_user": [
            2,
            3,
            5
          ],
          "popularity_bias": [
            0.0,
            0.1,
            0.2
          ],
          "window_size": [
            1,
            2,
            3
          ],
          "decay_coeff": [
            0.5,
            0.8
          ],
          "logit_scale": [
            9.0,
            12.0
          ],
          "concept_matrix_diagonal_deviation_rate": [
            0.0,
            0.1,
            0.3
          ],
          "repeated_items": [
            true
          ],
          "mean_num_related_items": [
            1,
            3,
            5,
            7
          ],
          "repeated_item_probability": [
            0.1,
            0.2,
            0.3
          ]
        },
        "init": "stage-1 best checkpoint (epoch 101)",
        "epochs_run": 47,
        "best_epoch": 27,
        "early_stopped": true,
        "best_synthetic_ratio_hr@10": 3.9308144874246915,
        "gpu": [
          "NVIDIA H100 80GB HBM3"
        ],
        "wall_hours": 1.099,
        "first_epoch_end": "2026-09-29T10:07:51Z",
        "finished": "2026-09-29T11:11:55Z"
      }
    },
    "early_stopping": "hr@10 ratio (model / EmbKNN-balanced) on synthetic validation batches, patience 20",
    "selection": {
      "note": "best of our 9 training runs by mean validation HR@10 over the 7 Amazon validation splits",
      "amazon7_val_hr@10": 0.13147873010138936,
      "amazon7_val_hr@10_rank": 1,
      "amazon7_val_mrr@10": 0.0884027748063644,
      "amazon7_val_mrr@10_rank": 2,
      "n_runs": 9
    }
  },
  "evaluation_protocol": {
    "split": "user-level 70/10/20, seed 42; at most 10,000 users sampled into the test split, then users with a single interaction dropped",
    "target": "each test user's last item; input = up to 14 preceding items",
    "context": "8 sequences from train-split users (retrieval as in 'inference')",
    "batch_size": 1,
    "ranking": "full item catalog, no candidate sampling, repeated items allowed",
    "metrics": [
      "HR@10",
      "MRR@10"
    ],
    "hardware": "NVIDIA L4, fp32, TF32 off"
  },
  "checkpoint": {
    "source": "release_k4_s0/stage2/model.pth",
    "source_sha256": "661fd3415a0b8f2d727898006e6314dcd273e15f59da3383668f7bc1a3997a3a",
    "safetensors_sha256": "02c4edc3a4944a9e7a0b6025217b3ea7af16e53c9483e85e9a573074a228a60c",
    "safetensors_bytes": 679680696,
    "n_tensors": 64,
    "src_fingerprint": "6c3ca6431e028e27"
  }
}