def generate_stream(self, model_name, prompt, model_version, request_id, parameters)
函数功能
实现流式文本生成。
函数原型
def generate_stream(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时会抛异常。
返回值
每次推理返回当前生成的文本。