提供文本/流式推理处理功能。
操作类型:POST
URL:https://{ip}:{port}/generate
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
prompt |
必选 |
推理请求文本。 |
非空,0<字符数<=16000,支持中英文。tokenizer之后的token数量<=maxSeqLen-maxIterTimes(配置文件读取)。 |
presence_penalty |
可选 |
存在惩罚介于-2.0和2.0之间,它影响模型如何根据到目前为止是否出现在文本中来惩罚新token。正值将通过惩罚已经使用的词,增加模型谈论新主题的可能性。 |
float类型,取值范围[-2.0, 2.0],默认值0。 |
frequency_penalty |
可选 |
频率惩罚介于-2.0和2.0之间,它影响模型如何根据文本中词汇(token)的现有频率惩罚新词汇(token)。正值将通过惩罚已经频繁使用的词来降低模型一行中重复用词的可能性。 |
float类型,取值范围[-2.0, 2.0],默认值0。 |
repetition_penalty |
可选 |
重复惩罚用于减少在文本生成过程中出现重复片段的概率。它对之前已经生成的文本进行惩罚,使得模型更倾向于选择新的、不重复的内容。 |
float类型,取值大于0,默认值1.0。
|
max_tokens |
可选 |
允许的最大新标记数目。控制从模型生成的文本中添加到最终输出中的最大词汇数量。该字段受到GIMIS配置文件maxIterTimes参数影响,推理token输出长度<=maxIterTimes。 |
int类型,取值范围(0, maxIterTimes]。默认值16。 |
temperature |
可选 |
控制生成的随机性,较高的值会产生更多样化的输出。1.0表示不进行计算,大于1.0表示输出随机性提高。temperature=0,即采用greedy sampling,该参数映射到后处理的1.0。 |
float类型,取值>=0,默认值1.0。 |
top_k |
可选 |
控制模型生成过程中考虑的词汇范围,只从概率最高的k个候选词中选择。-1表示不进行top k计算。使用限制请参见使用限制。 |
int类型,取值范围-1或者(0, vocabSize)&&(0, 2147483647],默认值-1。 vocabSize是从modelWeightPath路径下的config.json文件中读取的vocab_size值,若不存在则vocabSize取默认值0。 |
top_p |
可选 |
控制模型生成过程中考虑的词汇范围,使用累计概率选择候选词,直到累计概率超过给定的阈值。该参数也可以控制生成结果的多样性,它基于累积概率选择候选词,直到累计概率超过给定的阈值为止。 |
float类型,取值范围(0, 1],默认值1.0。 |
stream |
可选 |
指定返回结果是文本推理还是流式推理。 |
bool类型,默认值false。 |
请求样例:
POST https://<ip>:<port>/generate
请求消息体:
{ "prompt": "My name is Olivier and I", "max_tokens": 20, "repetition_penalty": 1.03, "presence_penalty": 1.2, "frequency_penalty": 1.2, "temperature": 0.5, "top_k": 10, "top_p": 0.95, "stream": false }
文本推理(stream=false)响应样例:
{"text":["My name is Olivier and I am a Frenchman living in the UK. I am a keen photographer and"]}
流式推理(stream=true)响应样例(使用sse格式返回):
{"text":["am"]}{"text":[" a"]}{"text":[" French"]}{"text":["man"]}{"text":[" living"]}{"text":[" in"]}"text":[" the"]}{"text":[" UK"]}{"text":["."]}{"text":[" I"]} {"text":[" am"]}{"text":[" a"]}"text":[" keen"]}{"text":[" photograph"]}{"text":["er"]}{"text":[" and"]}
返回值 |
类型 |
说明 |
---|---|---|
text |
string |
推理返回结果。 |
如果使用curl命令发送vLLM流式推理请求,需要在curl命令中增加--output -参数,curl命令才会正确显示结果。
请求实例如下:
curl -H "Accept: application/json" -H "Content-type: application/json" --cacert /home/runs/static_conf/ca/ca.pem --cert /home/runs/static_conf/cert/client.pem --key /home/runs/static_conf/cert/client.key.pem -X POST --output - -d '{ "prompt": "My name is Olivier and I", "stream": true, "repetition_penalty": 1.0, "top_p": 1.0, "top_k": 10, "max_tokens": 16, "temperature": 1.0 }' https://{ip}:{port}/generate