开发者社区 > ModelScope模型即服务 > 自然语言处理 > 正文

使用pipeline进行推理时无法指定输出文本长度

模型说明里面需要传入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

刚才发现没有显示完整输出,修改了一下。

展开
收起
revived 2023-03-06 09:45:42 910 0
1 条回答
写回答
取消 提交回答
  • 文本长度可以通过设置 configuration.json 文件中 preprocessor 中的 sequence_length 来调整,下面是一个例子: "preprocessor": { "type": "text-gen-tokenizer", "sequence_length": 512 },

    2023-03-08 11:26:55
    赞同 1 展开评论 打赏

包含命名实体识别、文本分类、分词、关系抽取、问答、推理、文本摘要、情感分析、机器翻译等多个领域

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载