下载
中文
注册

def generate(self, model_name, prompt, model_version, request_id, parameters)

函数功能

实现全量文本生成。

函数原型

def generate(self, model_name, prompt, model_version, request_id, parameters)

参数说明

参数名

参数类型

输入/输出

说明

model_name

str

输入

模型名称。

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

prompt

str

输入

模型输入字符串,长度取值范围为[1, 512000] 。

model_version

str

输入

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

request_id

str

输入

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

parameters

dict

输入

额外的请求参数,默认为None;包括seed、temperature、top_k、top_p、do_sample、repetition_penalty、typical_p、batch_size、details和max_new_tokens,详情请参见表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,同时视模型而定。

typical_p

float

输入

解码输出概率分布指数,当前后处理不支持。

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

batch_size

int

输入

推理请求batch_size。

取值大于0,默认值为1。

details

bool

输入

是否返回推理详细输出结果,默认值false。

max_new_tokens

int

输入

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

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

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

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

返回值

Result对象表示全量文本推理结果。