下载
中文
注册

def infer(self, model_name, inputs, model_version, outputs, request_id, parameters)

函数功能

实现同步推理。

函数原型

def infer(self, model_name, inputs, model_version, outputs, request_id, parameters)

参数说明

参数名

参数类型

输入/输出

说明

model_name

str

输入

模型名称。

模型名称支持大小写字母、数字、点号、中横线和下划线中一种或任意几种字符组成,最大长度为1000。

inputs

list

输入

模型输入。

目前只支持输入1个Input实例,该实例中的参数取值如下所示:

  • name:支持自定义,默认为"input0"。
  • shape:取值为[1,n](n <= 16000)。
  • dataType:只支持UINT32。

model_version

str

输入

模型版本,默认为""。该字段暂不支持,不传递。

outputs

list

输入

指定需要返回的模型输出,默认值为None。如果为None则全部返回。目前只支持指定一个输出,name支持自定义,默认为“output0”。

request_id

str

输入

请求ID,默认为"";为空时会随机初始化一个值。如果为非空,长度需满足[1,1000]。

parameters

dict

输入

额外的请求参数,包括seed、temperature、top_k、top_p、do_sample、repetition_penalty和max_new_tokens,默认None,详情请参见表1

表1 parameters参数说明

参数名

参数类型

输入/输出

说明

seed

int64

输入

随机种子数。

取值(0,18446744073709551615],不传递该参数,系统会产生一个随机seed值。

temperature

float

输入

控制生成的随机性,较高的值会产生更多样化的输出。

取值范围大于0,默认值为1.0。

取值越大,结果的随机性越大。推荐使用大于或等于0.001的值,小于0.001可能会导致文本质量不佳。

建议最大值取2.0,同时视模型而定。

top_k

int32

输入

控制模型生成过程中考虑的词汇范围,只从概率最高的 k 个候选词中选择,0表示不做top_k。

取值范围[0, 2147483647]&&[0, vocabSize),默认值为0。

vocabSize是从modelWeightPath路径下的config.json文件中读取的vocab_size或者padded_vocab_size的值,若不存在则vocabSize取默认值0。建议用户在config.json文件中添加vocab_size或者padded_vocab_size参数,否则可能导致推理失败。

top_p

float

输入

控制模型生成过程中考虑的词汇范围,使用累计概率选择候选词,直到累计概率超过给定的阈值。该参数也可以控制生成结果的多样性,它基于累积概率选择候选词,直到累计概率超过给定的阈值为止。

取值范围:(0.0,1.0],默认值为1.0。

do_sample

bool

输入

是否做sampling,默认值为false。

repetition_penalty

float

输入

重复惩罚用于减少在文本生成过程中出现重复片段的概率。它对之前已经生成的文本进行惩罚,使得模型更倾向于选择新的、不重复的内容。

取值范围大于0,默认值为1.0。

  • 小于1.0表示对重复进行奖励。
  • 1.0表示不进行重复度惩罚。
  • 大于1.0表示对重复进行惩罚。

建议最大值取2,同时视模型而定。

max_new_tokens

int

输入

允许推理生成的最大token个数。该字段受到配置文件maxIterTimes参数影响,推理token个数<=maxIterTimes。

取值范围(0, maxIterTimes],默认值为20。

maxIterTimes是MindIE Server配置文件config.json中的参数,详情请参见ScheduleConfig参数说明中的maxIterTimes。

当参数不满足限制条件或者response返回状态码不等于200时会抛异常。

返回值

Result对象表示同步推理结果。