|
19 | 19 | from typing import TYPE_CHECKING, Any, Optional, Union |
20 | 20 |
|
21 | 21 | import torch |
22 | | -from transformers import GenerationConfig, TextIteratorStreamer |
| 22 | +from transformers import GenerationConfig, TextIteratorStreamer, set_seed |
23 | 23 | from typing_extensions import override |
24 | 24 |
|
25 | 25 | from ..data import get_template_and_fix_tokenizer |
@@ -128,6 +128,7 @@ def _process_args( |
128 | 128 | skip_special_tokens: Optional[bool] = input_kwargs.pop("skip_special_tokens", None) |
129 | 129 | max_length: Optional[int] = input_kwargs.pop("max_length", None) |
130 | 130 | max_new_tokens: Optional[int] = input_kwargs.pop("max_new_tokens", None) |
| 131 | + seed: Optional[int] = input_kwargs.pop("seed", None) |
131 | 132 | stop: Optional[Union[str, list[str]]] = input_kwargs.pop("stop", None) |
132 | 133 |
|
133 | 134 | if stop is not None: |
@@ -177,6 +178,8 @@ def _process_args( |
177 | 178 | attention_mask=attention_mask, |
178 | 179 | generation_config=GenerationConfig(**generating_args), |
179 | 180 | ) |
| 181 | + if seed is not None: |
| 182 | + gen_kwargs["_seed"] = seed |
180 | 183 |
|
181 | 184 | mm_inputs = template.mm_plugin.get_mm_inputs(**mm_input_dict, batch_ids=[prompt_ids], processor=processor) |
182 | 185 | for key, value in mm_inputs.items(): |
@@ -237,6 +240,10 @@ def _chat( |
237 | 240 | audios, |
238 | 241 | input_kwargs, |
239 | 242 | ) |
| 243 | + seed = gen_kwargs.pop("_seed", None) |
| 244 | + if seed is not None: |
| 245 | + set_seed(seed) |
| 246 | + |
240 | 247 | generate_output = model.generate(**gen_kwargs) |
241 | 248 | if isinstance(generate_output, tuple): |
242 | 249 | generate_output = generate_output[1][0] # post-process the minicpm_o output |
@@ -292,6 +299,10 @@ def _stream_chat( |
292 | 299 | audios, |
293 | 300 | input_kwargs, |
294 | 301 | ) |
| 302 | + seed = gen_kwargs.pop("_seed", None) |
| 303 | + if seed is not None: |
| 304 | + set_seed(seed) |
| 305 | + |
295 | 306 | streamer = TextIteratorStreamer( |
296 | 307 | tokenizer, |
297 | 308 | skip_prompt=True, |
|
0 commit comments