Commit 0aa321a
committed
Fix Falcon ALiBi bias when using the KV cache
The ALiBi bias was built from the query window instead of the cache, so
it was shorter than the attention scores whenever a cache was in use:
- With more than one token per step it fails to broadcast, raising an
error.
- With a single token it broadcasts silently and evaluates to all zeros,
because `cumsum(ones(1)) - 1 == 0`. Since `generate()` decodes one
token at a time, `FalconCausalLM.generate()` has been running with
ALiBi effectively disabled at every decode step.
Build the bias over the cache length when a cache is present. Unused
cache positions are already masked out by the causal attention mask, so
an all-ones mask yields the correct absolute positions.
Verified: cached decoding now matches a full forward pass (max abs diff
2.98e-07), and the no-cache path is bit-identical before and after, both
with and without a padding mask.1 parent d512b28 commit 0aa321a
2 files changed
Lines changed: 58 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 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 | + | |
151 | 193 | | |
152 | 194 | | |
153 | 195 | | |
| |||
Lines changed: 16 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
125 | 137 | | |
126 | 138 | | |
127 | 139 | | |
| |||
0 commit comments