From 7057937555c9d1ff7fff750e87d35e9e7e2f4da2 Mon Sep 17 00:00:00 2001 From: James LePage <36246732+Jameswlepage@users.noreply.github.com> Date: Mon, 26 Jan 2026 00:46:25 -0500 Subject: [PATCH] fix: pass full sequence to stopping criteria in generation loop The stopping criteria was incorrectly receiving $generatedInputIds (only the newly generated token from the current step) instead of $allInputIds (the full sequence including prompt and all generated tokens). This caused MaxLengthCriteria to never trigger because it was always checking a sequence of length 1, which would never exceed max_length. --- src/Models/Pretrained/PretrainedModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Models/Pretrained/PretrainedModel.php b/src/Models/Pretrained/PretrainedModel.php index d67f2e1..4188581 100644 --- a/src/Models/Pretrained/PretrainedModel.php +++ b/src/Models/Pretrained/PretrainedModel.php @@ -426,7 +426,7 @@ public function generate( $streamer?->put($generatedInputIds); - $stop = $stoppingCriteria($generatedInputIds, $scores); + $stop = $stoppingCriteria($allInputIds, $scores); if (array_every($stop, fn($x) => $x)) { break; }