Skip to content

Commit a372fe1

Browse files
committed
Skip superfluous set creation when possible, even if multiple filters used
1 parent aadc454 commit a372fe1

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

exllamav2/generator/sampler.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -400,12 +400,18 @@ def prep_logit_filter(lf):
400400

401401
pass_tokens = None
402402
end_tokens = None
403-
for f in filters:
404403

404+
pts = []
405+
ets = []
406+
for f in filters:
405407
pt, et = f.get_next()
406-
if len(filters) > 1 and not isinstance(pt, set):
407-
if pt is not None: pt = set(pt)
408-
if et is not None: et = set(et)
408+
if pt is not None:
409+
pts.append(pt)
410+
ets.append(et)
411+
412+
for pt, et in zip(pts, ets):
413+
if len(pts) > 1 and not isinstance(pt, set):
414+
pt, et = set(pt), set(et)
409415

410416
if pt is not None: pass_tokens = pt if pass_tokens is None else pass_tokens & pt
411417
if et is not None: end_tokens = et if end_tokens is None else end_tokens | et

0 commit comments

Comments
 (0)