[{"data":1,"prerenderedAt":104},["ShallowReactive",2],{"doc-\u002Fdocs\u002Frlcd":3},{"id":4,"title":5,"body":6,"description":96,"extension":97,"meta":98,"navigation":99,"path":100,"seo":101,"stem":102,"__hash__":103},"content\u002Fdocs\u002Frlcd.md","RLCD implementation",{"type":7,"value":8,"toc":91},"minimark",[9,13,30,50,53,56,63,70,73,76],[10,11,5],"h1",{"id":12},"rlcd-implementation",[14,15,16,17,21,22,25,26,29],"p",{},"The Linnaeus training recipe keeps the Qwen3.5-2B vision encoder frozen and trains language LoRA adapters\n(rank 8, alpha 16) plus a shared candidate scorer.\nThe pinned base is ",[18,19,20],"code",{},"Qwen\u002FQwen3.5-2B"," revision\n",[18,23,24],{},"15852e8c16360a2fea060d615a32b45270f8a8fc",". (Upstream pinned\n",[18,27,28],{},"Qwen\u002FQwen3.5-0.8B","; the only deliberate recipe change in this fork is the backbone.)",[14,31,32,33,43,44,49],{},"The numerical reference is ",[34,35,39,40],"a",{"href":36,"rel":37},"https:\u002F\u002Fgithub.com\u002Fr33drichards\u002Flaya-vision\u002Fblob\u002F86ccec115ef3d72d1851168fc9b7194e8dbed35a\u002Flaya\u002Fvlm_train.py",[38],"nofollow","Laya Vision ",[18,41,42],{},"vlm_loss","\nand ",[34,45,48],{"href":46,"rel":47},"https:\u002F\u002Fgithub.com\u002FNandhaKishorM\u002Flaya\u002Fblob\u002Fd113dca2512fb3eaca313534bc54c7162d87c1d4\u002Fnotebooks\u002Flaya_finetune_typed_decisions_2xT4_kaggle.ipynb",[38],"Laya's typed-decisions training notebook",".",[14,51,52],{},"Shared prefixes and parallel question suffixes produce candidate logits without\nautoregressive generation. Draw four\nGaussian perturbations with sigma 0.3, center each over valid candidates, and\nscore their softmax distributions. The reward adds log score (floor −9.21) and\n0.75 times spherical score; ordinal questions also subtract RPS divided by K−1.\nSubtract the group mean reward for each question, then divide all advantages by\none sample standard deviation across groups and questions, plus 1e−6. Both the\nsampled logits and rewards are detached in the policy-gradient calculation.",[14,54,55],{},"The training loss is this policy-gradient loss plus soft cross-entropy with\nweight 1. This is one joint training path, following Laya; there is no separate\nSFT warm-up, reward model, critic, or autoregressive rollout. Policy loss can be\nnegative and noisy, so cross-entropy, reward, and held-out accuracy are logged\nseparately. Clipping and this gradient estimator do not prove calibration.",[14,57,58,59,62],{},"Candidate-selection (",[18,60,61],{},"choice",") candidates are shuffled during training with their targets. Binary\nfalse\u002Ftrue order and ordinal level order stay fixed. Soft labels are normalized\nwithin tolerance; VQAv2 yes\u002Fno votes and typed-decisions distributions retain\nuncertainty rather than being converted to hard labels.",[14,64,65,66,69],{},"The training recipe is defined in ",[18,67,68],{},"src\u002Flinnaeus\u002Frecipe.py",": equal probability per\nsource\u002Flanguage\u002Ftask group, deterministic sampling with replacement, at most\n6,000 eligible source rows in each group's training pool, batch 8 with four\naccumulation steps, a default budget of 3,600 updates, LoRA LR 1e−4 and head LR 5e−4,\n72 warm-up updates, cosine decay to 10% through update 2,400, then a fixed\n10% floor through update 3,600; weight decay 0.01 and gradient clip 1.\nThe default run processes 115,200 sampled examples. Each run freezes the eligible\nIDs and source hashes; sampling with replacement can revisit an example.",[14,71,72],{},"Every 400 updates, evaluate the same deterministic development subset of up to\n256 examples per group. Select by unweighted group macro top-1 accuracy; test\nlabels never select a checkpoint. Save trainable parameters, optimizer, step,\nRNG state, recipe, and selected score. Sampling depends on seed and absolute\nmicrobatch index, so restarting does not restart the data stream.\nExtending the total budget retains the original decay horizon and uses its final\nlearning-rate floor for the additional updates; optimizer moments are preserved.",[14,74,75],{},"Merge LoRA, then fit three temperatures, one per decision type, on the independent calibration\npartition using LBFGS (100 iterations, LR 0.1, temperature range 0.1–10). Final\nreports retain both raw and calibrated metrics. Raw predictions include IDs,\ntarget distributions and logits so plots and metrics can be regenerated.",[14,77,78,79,82,83,86,87,90],{},"Only ",[18,80,81],{},"sigma"," and ",[18,84,85],{},"ce_weight"," configure RLCD; ",[18,88,89],{},"--steps"," controls the training budget.\nThe default values above match\nthe pinned upstream objective; the remaining estimator and reward settings are fixed.",{"title":92,"searchDepth":93,"depth":94,"links":95},"",2,3,[],"The Linnaeus training recipe keeps the Qwen3.5-2B vision encoder frozen and trains language LoRA adapters\n(rank 8, alpha 16) plus a shared candidate scorer.\nThe pinned base is Qwen\u002FQwen3.5-2B revision\n15852e8c16360a2fea060d615a32b45270f8a8fc. (Upstream pinned\nQwen\u002FQwen3.5-0.8B; the only deliberate recipe change in this fork is the backbone.)","md",{},true,"\u002Fdocs\u002Frlcd",{"title":5,"description":96},"docs\u002Frlcd","niiPcgAE_9c99DUnLk7UIdzbI9f6gfzInc6PraDs0R4",1790560641966]