模型说明里面需要传入max_length
参数,但是指定后输出的文本长度不受该参数控制。是否是参数错误?相关代码及输出如下:
In [1]: from modelscope.pipelines import pipeline
In [2]: from modelscope.utils.constant import Tasks
In [3]: model_id = 'damo/nlp_gpt3_text-generation_1.3B'
In [4]: pipe = pipeline(Tasks.text_generation, model=model_id)
In [5]: input = '月球距离地球'
In [6]: print(pipe(input))
{'text': '月球距离地球的平均距离为363千米,我们的南北半球的距离大约是2.2个地球。\n人类登月到了现在,探月工程发展得很快,全世界投入探月科学家队伍的有1500多人。我国在2002年3月就开始有计划地在月球上着手开展“绕月探测”。2003年5月,中国国家航天局和国家海洋'}
In [7]: res = pipe(input)['text']
In [8]: len(res)
Out[8]: 116
In [9]: res = pipe(input, max_length=30)['text']
In [10]: len(res)
Out[10]: 121
In [11]: res = pipe(input, max_length=256)['text']
In [12]: len(res)
Out[12]: 118
刚才发现没有显示完整输出,修改了一下。
文本长度可以通过设置 configuration.json 文件中 preprocessor 中的 sequence_length 来调整,下面是一个例子: "preprocessor": { "type": "text-gen-tokenizer", "sequence_length": 512 },