Skip to content

Commit 8266ed7

Browse files
committed
fix bug
1 parent 093614e commit 8266ed7

2 files changed

Lines changed: 31 additions & 7 deletions

File tree

llm/server/server/data/processor.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,37 @@ def get_pad_id(self):
338338
return self.tokenizer.eos_token
339339
return self.tokenizer.pad_token_id
340340

341+
def pad_batch_data(self, insts, pad_id=0, return_seq_len=False, return_array=True, pad_style="right"):
342+
"""Pad the instances to the max sequence length in batch."""
343+
if len(insts) == 0:
344+
padded_insts = np.array([[]], dtype=np.int64) if return_array else [[]]
345+
if return_seq_len:
346+
seq_len = np.array([], dtype=np.int64) if return_array else []
347+
return padded_insts, seq_len
348+
return padded_insts
349+
350+
max_len = max(map(len, insts))
351+
if pad_style == "left":
352+
padded_insts = [[pad_id] * (max_len - len(inst)) + list(inst) for inst in insts]
353+
else:
354+
padded_insts = [list(inst) + [pad_id] * (max_len - len(inst)) for inst in insts]
355+
if return_array:
356+
padded_insts = np.array(padded_insts, dtype=np.int64).reshape([-1, max_len])
357+
358+
if return_seq_len:
359+
seq_len = [len(inst) for inst in insts]
360+
if return_array:
361+
seq_len = np.array(seq_len, dtype=np.int64).reshape(-1, 1)
362+
return padded_insts, seq_len
363+
return padded_insts
364+
341365
def update_stop_seq(self, request):
342366
"""
343367
Update stop sequences from request.
344368
"""
345-
stop_seqs = [[2], [100273]]
369+
stop_seqs = []
346370
for seq in request.get("stop_sequences", []):
347-
if seq != self._get_eos_token_id():
371+
if seq != self.tokenizer.eos_token_id:
348372
stop_seqs.append(self.tokenizer.convert_tokens_to_ids(self.tokenizer.tokenize(seq)))
349373
request["stop_seqs"], request["stop_seqs_len"] = self.pad_batch_data(
350374
stop_seqs,

llm/server/server/engine/infer.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -251,10 +251,10 @@ def init_inputs(self):
251251
self.share_inputs['free_list_len'] = paddle.full(
252252
shape=[1], fill_value=self.free_list_len, dtype="int32")
253253

254-
self.share_inputs['stop_seqs_len'] = paddle.full(shape=[max_stop_seqs_num,],
254+
self.share_inputs['stop_seqs_len'] = paddle.full(shape=[self.max_stop_seqs_num,],
255255
fill_value=0,
256256
dtype="int32")
257-
self.share_inputs['stop_seqs'] = paddle.full(shape=[max_stop_seqs_num, stop_seqs_max_len],
257+
self.share_inputs['stop_seqs'] = paddle.full(shape=[self.max_stop_seqs_num, self.stop_seqs_max_len],
258258
fill_value=-1,
259259
dtype="int64")
260260

@@ -312,11 +312,11 @@ def dy_input_preprocess(self, tasks):
312312

313313
if "stop_seqs_len" in task:
314314
stop_seqs_num = len(task["stop_seqs_len"])
315-
for i in range(stop_seqs_num, max_stop_seqs_num):
315+
for i in range(stop_seqs_num, self.max_stop_seqs_num):
316316
task["stop_seqs_len"].append(0)
317-
share_inputs['stop_seqs_len'][:] = np.array(
317+
self.share_inputs['stop_seqs_len'][:] = np.array(
318318
task["stop_seqs_len"], dtype="int32")
319-
share_inputs['stop_seqs'][:stop_seqs_num, :len(task['stop_seqs'][0])] = np.array(
319+
self.share_inputs['stop_seqs'][:stop_seqs_num, :len(task['stop_seqs'][0])] = np.array(
320320
task["stop_seqs"], dtype="int64")
321321
def step_cuda(self, seq_lens_this_time):
322322
"""

0 commit comments

Comments
 (0)