ModelScope中,我在推理的时候我每次只输入了一个问题,代码会自动再输一次,是为什么?

ModelScope中,我在推理的时候是人工输入问题,我每次只输入了一个问题,但是代码会自动再输入一个问题ccdfc6e634dc7e685d076b9a4f496518.png
其实我只输入了,我感冒了是internlm-20b-chat这个模型
以下是我的推理启动脚本:class InferArguments:
model_type: str = field(
default='internlm-20b-chat',
metadata={'choices': list(MODEL_MAPPING.keys())})
sft_type: str = field(
default='lora', metadata={'choices': ['lora', 'full']})
template_type: str = field(
default= 'internlm', metadata={'choices': list(TEMPLATE_MAPPING.keys())})
ckpt_dir: str = 'output/internlm-20b-chat/v0-20231024-170814/checkpoint-140'
eval_human: bool = True # False: eval val_dataset

seed: int = 42
dtype: str = field(
    default='bf16', metadata={'choices': ['bf16', 'fp16', 'fp32']})
ignore_args_error: bool = False  # True: notebook compatibility

dataset: str = field(
    default='QA-gen',
    metadata={'help': f'dataset choices: {list(DATASET_MAPPING.keys())}'})
dataset_split_seed: int = 42
dataset_test_ratio: float = 0.2
show_dataset_sample: int = 10
system: str = 'you are a helpful assistant!'
max_length: Optional[int] = 2048

quantization_bit: int = field(default=0, metadata={'choices': [0, 4, 8]})
bnb_4bit_comp_dtype: str = field(
    default=None, metadata={'choices': ['fp16', 'bf16', 'fp32']})
bnb_4bit_quant_type: str = field(
    default='nf4', metadata={'choices': ['fp4', 'nf4']})
bnb_4bit_use_double_quant: bool = True

max_new_tokens: int = 1024
do_sample: bool = True
temperature: float = 0.9
top_k: int = 20
top_p: float = 0.9
repetition_penalty: float = 1.

# other
use_flash_attn: Optional[bool] = field(
    default=None,
    metadata={
        'help':
        "This parameter is used only when model_type.startswith('qwen')"
    })
use_streamer: bool = True
merge_lora_and_save: bool = True
save_generation_config: bool = True

def init_argument(self):
    # Can be manually initialized, unlike __post_init__
    if self.template_type is None:
        self.template_type = MODEL_MAPPING[self.model_type].get(
            'template', 'default')
        logger.info(f'Setting template_type: {self.template_type}')

    self.torch_dtype, _, _ = select_dtype(self)
    if self.bnb_4bit_comp_dtype is None:
        self.bnb_4bit_comp_dtype = self.dtype
    self.bnb_4bit_compute_dtype, self.load_in_4bit, self.load_in_8bit = select_bnb(
        self)

    if self.use_flash_attn is None:
        self.use_flash_attn = 'auto'

展开
收起
多麻辣哦 2023-11-08 19:55:49 110 分享 版权
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在ModelScope中,当您进行推理时,模型可能需要接收两个输入,一个是文本序列(即问题),另一个是词汇表ID序列(即词汇表的索引)。因此,即使您每次仅输入一个问题,代码仍然会自动再输入一次词汇表ID序列,以满足模型的需求。
    通常情况下,词汇表ID序列可以通过将文本转换为词汇表ID的方式来生成。为此,您可以使用Python编程语言中的tokenizer库来进行转换,例如Hugging Face的transformers库。

    2023-11-10 14:03:42
    赞同 展开评论
  • 从你提供的信息来看,你在推理时遇到的问题可能与你的代码逻辑有关。在你的推理启动脚本中,你定义了一个InferArguments类,其中包含许多参数,如模型类型、数据集等。然而,你没有明确说明这些参数的具体作用,以及它们是如何影响推理过程的。

    2023-11-09 15:18:44
    赞同 展开评论
  • template用 internlm,--template_type internlm——此回答整理自钉群:魔搭ModelScope开发者联盟群 ①

    2023-11-08 21:15:30
    赞同 展开评论

包含图像分类、图像生成、人体人脸识别、动作识别、目标分割、视频生成、卡通画、视觉评价、三维视觉等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理