vllm.models.inkling.nvidia.logits_processor Âķ
Inkling logits processor (muP + LoRA aware).
Inkling divides the final logits by a muP width multiplier (logits_mup_width_multiplier). This applies it two ways, depending on whether an lm_head LoRA is attached:
- No LoRA: fold
1/mupinto the lm_head GEMM alpha (fp32 epilogue) -- no separate elementwise kernel, no extra rounding, no weight mutation. - LoRA attached: the LoRA manager wraps this layer in
LogitsProcessorWithLoRA, whoseforwardcallstype(base_layer).forward(self=wrapper)-- so thisforwardruns withselfbound to the wrapper. We detect that viabase_layerand take the LoRA path: run the wrapper's_get_logits(base logits + the lm_head LoRA delta), then divide the full logits by the multiplier so the delta is scaled too. muP thus composes with the LoRA delta, with the dispatch as the only model-side branching.
Classes:
-
InklingLogitsProcessorâLogitsProcessorthat applies Inkling's muP logits width multiplier.
InklingLogitsProcessor Âķ
Bases: LogitsProcessor
LogitsProcessor that applies Inkling's muP logits width multiplier.
Parameters:
-
(vocab_sizeÂķint) âPadded vocabulary size.
-
(org_vocab_sizeÂķint | None, default:None) âUnpadded vocabulary size (defaults to
vocab_size). -
(scaleÂķfloat, default:1.0) âBase logits scale (kept
1.0for the served checkpoint). -
(logits_as_inputÂķbool, default:False) âWhether the input is already logits.
-
(soft_capÂķfloat | None, default:None) âOptional logit soft cap (
Nonefor the served checkpoint). -
(logits_mup_width_multiplierÂķfloat | None, default:None) âmuP width divisor for the final logits;
Noneor0disables it.
Source code in vllm/models/inkling/nvidia/logits_processor.py
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 | |