提供流式推理处理功能。
操作类型:POST
URL:https://{ip}:{port}/generate_stream
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
inputs |
必选 |
推理请求文本。 |
非空,0<字符数<=16000,支持中英文。tokenizer之后的token数量<=maxSeqLen-maxIterTimes(配置文件读取)。 |
details |
可选 |
是否返回推理详细输出结果。根据TGI 0.9.4接口行为,“details”=“true”,即返回所有的details信息。 |
bool类型参数,默认值false。 |
do_sample |
可选 |
是否做sampling。 |
bool类型,默认值false。 |
max_new_tokens |
可选 |
允许的最大新标记数目。控制从模型生成的文本中添加到最终输出中的最大词汇数量。该字段受到GIMIS配置文件maxIterTimes参数影响,推理token输出长度<=maxIterTimes。 |
int类型,取值范围(0, maxIterTimes]。默认值20。 |
repetition_penalty |
可选 |
重复惩罚用于减少在文本生成过程中出现重复片段的概率。它对之前已经生成的文本进行惩罚,使得模型更倾向于选择新的、不重复的内容。 |
float类型,大于0,默认值1.0。
|
return_full_text |
可选 |
是否将推理请求文本(inputs参数)添加到推理结果前面。 |
bool类型,默认值false。
|
seed |
可选 |
用于指定推理过程的随机种子,相同的seed值可以确保推理结果的可重现性,不同的seed值会提升推理结果的随机性。 |
uint_64类型,取值范围(0, 18446744073709551615],不传递该参数,系统会产生一个随机seed值。 |
temperature |
可选 |
控制生成的随机性,较高的值会产生更多样化的输出。 |
float类型,大于0,默认值1.0。
|
top_k |
可选 |
控制模型生成过程中考虑的词汇范围,只从概率最高的k个候选词中选择。使用限制请参见使用限制。 |
int类型,取值范围(0, vocabSize)&&(0, 2147483647],默认值0。 vocabSize是从modelWeightPath路径下的config.json文件中读取的vocab_size值,若不存在则vocabSize取默认值0。 |
top_p |
可选 |
控制模型生成过程中考虑的词汇范围,使用累计概率选择候选词,直到累计概率超过给定的阈值。该参数也可以控制生成结果的多样性,它基于累积概率选择候选词,直到累计概率超过给定的阈值为止。 |
float类型,取值范围(0, 1),默认值1.0。 |
truncate |
可选 |
输入文本做tokenizer之后,将token数量截断到该长度。读取截断后的n个token。 |
int类型,取值范围(0, maxSeqLen-maxIterTimes],默认值0(表示不做truncate)。 |
请求样例:
POST https://<ip>:<port>/generate_stream
请求消息体:
{ "inputs": "My name is Olivier and I", "parameters": { "details": true, "do_sample": true, "max_new_tokens": 20, "repetition_penalty": 1.03, "return_full_text": false, "seed": null, "temperature": 0.5, "top_k": 10, "top_p": 0.95, "truncate": null } }
响应样例(使用sse格式返回):
data: {"token":{"id":626,"text":"am","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":263,"text":" a","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":5176,"text":" French","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":1171,"text":"man","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":8471,"text":" living","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":297,"text":" in","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":278,"text":" the","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":10261,"text":" UK","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":29889,"text":".","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":306,"text":" I","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":505,"text":" have","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":1063,"text":" been","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":1985,"text":" working","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":408,"text":" as","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":385,"text":" an","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":13315,"text":" IT","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":8799,"text":" consult","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":424,"text":"ant","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":363,"text":" for","logprob":null,"special":null},"generated_text":null,"details":null} data: {"token":{"id":29871,"text":" ","logprob":null,"special":null},"generated_text":"am a Frenchman living in the UK. I have been working as an IT consultant for ","details":null} data: {"token":{"id":2,"text":"","logprob":null,"special":null},"generated_text":"\nJanet makes $104 a day at the farmers' market.\nThe number of eggs that Janet sells at the farmers' market each day is 16 - 3 - 4 = 7.\nShe makes $2 for each egg that she sells.\nThe total amount that she makes is $2 * 7 = $14.\nThe total amount that she makes is $14 + $104 = $118.\nThe total amount that she makes is $118.","details":{"finish_reason":"eos_token","generated_tokens":116,"seed":8756727004129248931}}
返回值 |
类型 |
说明 |
---|---|---|
generated_text |
string |
推理文本返回结果,只在最后一次推理结果才返回。 |
details |
object |
推理details结果,只在最后一次推理结果返回,并且请求参数“details”=“True”才返回details结果。 |
finish_reason |
string |
结束原因。 |
generated_tokens |
int |
推理结果token数量。 |
seed |
int |
返回推理请求的seed值,如果请求参数没有指定seed参数,则返回系统随机生成的seed值。 |
token |
object |
每一次推理的token。 |
id |
int |
token id。 |
text |
string |
token对应文本。 |
logprob |
概率对数 |
当前不支持,默认返回null。 |
special |
bool |
表明该token是否是special,如果是“special”=True,该token在做连接的时候可以被忽略。当前不支持,默认返回null。 |