Commit d5d381f
authored
#1261 added a logit cache, which was being concatenated to in a loop.
This PR never caches any logits except for the final one, but if
`include_all_uncached_tokens` is `True`, then `get_logits` will return
an array of shape `(len(tokens)-num_cached, vocab_size)`. Otherwise, it
will return an array of shape `(1, vocab_size)`
This "should" include all tokens being fast-forwarded (unless the
fast-forwarded tokens are somehow already in the kv, e.g. if a notebook
cell is re-run). If any are missing, I just call the probabilities `nan`
here, which could in principle cause some artifacts in the widget.
Note that an alternative implementation would have been to keep the full
logit cache, pre-allocating the buffer in advance with shape `(n_ctx,
vocab_size)`, but this feels really unnecessary. Happy to revisit after
we get this merged and the big performance issues are gone.
@nopdive would you mind re-running the repro? Note that you shouldn't
see a speedup for the prompt part (as this PR does not concern
pre-filling), but you should see a speedup for the rest of the
completion. Side note, but we can get rid of the (relatively small, mind
you) prompt slowdown by simply deciding to omit probabilities from
"input" tokens. Lmk if you want that, and I can open a follow-up PR.
Edit:
Intended to fix #1275
1 parent 9346abe commit d5d381f
4 files changed
Lines changed: 68 additions & 72 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
215 | | - | |
| 215 | + | |
216 | 216 | | |
217 | 217 | | |
218 | | - | |
219 | 218 | | |
220 | 219 | | |
221 | 220 | | |
| |||
229 | 228 | | |
230 | 229 | | |
231 | 230 | | |
232 | | - | |
| 231 | + | |
233 | 232 | | |
234 | | - | |
| 233 | + | |
235 | 234 | | |
236 | | - | |
| 235 | + | |
237 | 236 | | |
238 | | - | |
239 | | - | |
| 237 | + | |
| 238 | + | |
240 | 239 | | |
241 | | - | |
242 | | - | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
243 | 249 | | |
244 | 250 | | |
| 251 | + | |
245 | 252 | | |
246 | 253 | | |
247 | 254 | | |
| |||
448 | 455 | | |
449 | 456 | | |
450 | 457 | | |
451 | | - | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
452 | 468 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
174 | 175 | | |
175 | 176 | | |
176 | 177 | | |
177 | 178 | | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | 179 | | |
183 | | - | |
| 180 | + | |
184 | 181 | | |
185 | 182 | | |
186 | 183 | | |
| |||
199 | 196 | | |
200 | 197 | | |
201 | 198 | | |
202 | | - | |
| 199 | + | |
203 | 200 | | |
204 | 201 | | |
205 | 202 | | |
206 | | - | |
| 203 | + | |
207 | 204 | | |
208 | 205 | | |
209 | 206 | | |
210 | 207 | | |
211 | 208 | | |
212 | 209 | | |
213 | 210 | | |
| 211 | + | |
214 | 212 | | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
225 | 220 | | |
226 | | - | |
| 221 | + | |
| 222 | + | |
227 | 223 | | |
228 | 224 | | |
229 | 225 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
| 115 | + | |
130 | 116 | | |
131 | 117 | | |
132 | 118 | | |
| |||
154 | 140 | | |
155 | 141 | | |
156 | 142 | | |
157 | | - | |
| 143 | + | |
158 | 144 | | |
159 | 145 | | |
160 | 146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
459 | 459 | | |
460 | 460 | | |
461 | 461 | | |
462 | | - | |
| 462 | + | |
463 | 463 | | |
464 | 464 | | |
465 | 465 | | |
| |||
478 | 478 | | |
479 | 479 | | |
480 | 480 | | |
481 | | - | |
482 | | - | |
483 | | - | |
484 | | - | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
485 | 486 | | |
486 | 487 | | |
487 | 488 | | |
| |||
558 | 559 | | |
559 | 560 | | |
560 | 561 | | |
561 | | - | |
562 | | - | |
563 | | - | |
564 | | - | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
565 | 566 | | |
566 | 567 | | |
567 | | - | |
568 | | - | |
| 568 | + | |
569 | 569 | | |
570 | 570 | | |
571 | | - | |
| 571 | + | |
572 | 572 | | |
573 | 573 | | |
574 | 574 | | |
| |||
628 | 628 | | |
629 | 629 | | |
630 | 630 | | |
| 631 | + | |
631 | 632 | | |
632 | | - | |
633 | | - | |
634 | | - | |
635 | | - | |
636 | | - | |
637 | | - | |
638 | | - | |
639 | | - | |
640 | | - | |
641 | | - | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
642 | 640 | | |
643 | | - | |
| 641 | + | |
644 | 642 | | |
645 | 643 | | |
646 | 644 | | |
| |||
0 commit comments