MCPcopy Create free account
hub / github.com/Luce-Org/lucebox-hub / build_cross_layer_pairs

Function build_cross_layer_pairs

scripts/train_predictor.py:285–311  ·  view source on GitHub ↗

Build Fate-style cross-layer training pairs: (h[l], experts[l+1]). Records are token-major: layers 0..num_layers-1 per token in sequence. For each token t and each layer l in 0..num_layers-2, we pair: input: hiddens[t, l] (gate input at layer l) target: experts[t, l+1] (

(layers, hiddens, experts, num_layers)

Source from the content-addressed store, hash-verified

283
284
285def build_cross_layer_pairs(layers, hiddens, experts, num_layers):
286 """Build Fate-style cross-layer training pairs: (h[l], experts[l+1]).
287
288 Records are token-major: layers 0..num_layers-1 per token in sequence.
289 For each token t and each layer l in 0..num_layers-2, we pair:
290 input: hiddens[t, l] (gate input at layer l)
291 target: experts[t, l+1] (expert activations at layer l+1)
292 label: l+1 (target layer index for layer embedding)
293
294 Returns (X, L, E) arrays with shape (N_tokens*(num_layers-1), ...).
295 """
296 n_total = len(layers)
297 assert n_total % num_layers == 0, \
298 f"Expected multiple of {num_layers} records, got {n_total}"
299 n_tokens = n_total // num_layers
300
301 X_list, L_list, E_list = [], [], []
302 for t in range(n_tokens):
303 base = t * num_layers
304 for l in range(num_layers - 1):
305 X_list.append(hiddens[base + l]) # h[l]
306 L_list.append(layers[base + l + 1]) # target layer l+1
307 E_list.append(experts[base + l + 1]) # experts at l+1
308
309 return (np.stack(X_list),
310 np.array(L_list, dtype=np.int32),
311 np.stack(E_list))
312
313
314def analyze_cosine_similarity(layers, hiddens, num_layers):

Callers 1

train_and_evaluateFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected