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。 |
参数名 |
参数类型 |
输入/输出 |
说明 |
---|---|---|---|
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。
建议最大值取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对象表示全量文本推理结果。