提供文本/流式推理处理功能。
操作类型:POST
URL:https://{ip}:{port}/v1/completions
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
model |
必选 |
模型名。 |
与MindIE Server配置文件中modelName的取值保持一致。 |
prompt |
必选 |
推理请求消息结构。 |
string:非空,0KB<字符数<=4MB,支持中英文。prompt经过tokenizer之后的token数量小于或等于maxInputTokenLen、maxSeqLen-1、max_position_embeddings和1MB之间的最小值。其中,max_position_embeddings从权重文件config.json中获取,其他相关参数从配置文件中获取。 |
best_of |
可选 |
推理生成best_of个序列。与n联合使用时,表现为从best_of个序列中,选取n个返回给用户。 |
int类型,取值范围为[1, 128],默认值为1。当与参数n联合使用时,选取概率最高的前n个;流式推理场景下n和best_of必须相等。未设置参数best_of但设置参数n时,best_of将自动设置为n。 该参数不支持与Splitfuse、Prefix Cache、并行解码、PD分离等特性叠加使用。 |
n |
可选 |
推理生成n个序列。 |
int类型,取值范围为[1, 128],默认值为1。可与best_of联合使用;流式推理场景下n和best_of相等。未设置参数best_of但设置参数n时,best_of将自动设置为n。 该参数不支持与Splitfuse、Prefix Cache、并行解码、PD分离等特性叠加使用。 |
logprobs |
可选 |
推理结果中每个token携带的logprobs的数量。 |
int类型,取值范围为[0, 5],默认为null。 该参数不支持与Splitfuse、Prefix Cache、并行解码、PD分离等特性叠加使用。 |
max_tokens |
可选 |
允许推理生成的最大token个数。实际产生的token数量同时受到配置文件maxIterTimes参数影响,推理token个数小于或等于Min(maxIterTimes, max_tokens)。 |
int类型,取值范围(0,2147483647],默认值为MindIE Server配置文件中的maxIterTimes参数。 |
seed |
可选 |
用于指定推理过程的随机种子,相同的seed值可以确保推理结果的可重现性,不同的seed值会提升推理结果的随机性。 |
uint_64类型,取值范围(0, 18446744073709551615],不传递该参数,系统会产生一个随机seed值。 当seed取到临近最大值时,会有WARNING,但并不会影响使用。若想去掉WARNING,可以减小seed取值。 |
stop |
可选 |
停止推理的文本。输出结果中默认不包含停止词列表文本。 |
List[string]类型或者string类型;默认为null。
PD分离场景暂不支持该参数。 |
stream |
可选 |
指定返回结果是文本推理还是流式推理。 |
bool类型,默认值false。
|
repetition_penalty |
可选 |
重复惩罚用于减少在文本生成过程中出现重复片段的概率。它对之前已经生成的文本进行惩罚,使得模型更倾向于选择新的、不重复的内容。 |
float类型,取值范围(0.0, 2.0],默认值1.0。
|
presence_penalty |
可选 |
存在惩罚介于-2.0和2.0之间,它影响模型如何根据到目前为止是否出现在文本中来惩罚新token。正值将通过惩罚已经使用的词,增加模型谈论新主题的可能性。 |
float类型,取值范围[-2.0, 2.0],默认值0.0。 |
frequency_penalty |
可选 |
频率惩罚介于-2.0和2.0之间,它影响模型如何根据文本中词汇的现有频率惩罚新词汇。正值将通过惩罚已经频繁使用的词来降低模型一行中重复用词的可能性。 |
float类型,取值范围[-2.0, 2.0],默认值0.0。 |
temperature |
可选 |
控制生成的随机性,较高的值会产生更多样化的输出。1.0表示不进行计算,大于1.0表示输出随机性提高。temperature=0.0,即采用greedy sampling。 |
float类型,取值大于或等于0.0。 取0.0时将忽略其他后处理参数做greedysearch。推荐使用大于或等于0.001的值,小于0.001可能会导致文本质量不佳。建议最大值取2.0,同时视模型而定。 |
top_p |
可选 |
控制模型生成过程中考虑的词汇范围,使用累计概率选择候选词,直到累计概率超过给定的阈值。该参数也可以控制生成结果的多样性,它基于累积概率选择候选词,直到累计概率超过给定的阈值为止。 |
float类型,取值范围(1e-6, 1.0],默认值1.0。 |
top_k |
可选 |
控制模型生成过程中考虑的词汇范围,只从概率最高的k个候选词中选择。 |
uint32_t类型,取值范围-1或者(0, 2147483647],字段未设置时,默认值由后端模型确定,详情请参见说明。取值大于或等于vocabSize时,默认值为vocabSize。 vocabSize是从modelWeightPath路径下的config.json文件中读取的vocab_size或者padded_vocab_size的值,若不存在则vocabSize取默认值0。建议用户在config.json文件中添加vocab_size或者padded_vocab_size参数,否则可能导致推理失败。 |
stop_token_ids |
可选 |
停止推理的token id列表。输出结果中默认不包含停止推理列表中的token id。 |
List[int32]类型,超出int32的元素将会被忽略。 默认为null。 |
include_stop_str_in_output |
可选 |
决定是否在生成的推理文本中包含停止字符串。 |
bool类型,默认值为false。PD分离场景暂不支持此参数。
不传入stop或stop_token_ids时,此字段会被忽略。 |
ignore_eos |
可选 |
指定在推理文本生成过程中是否忽略eos_token结束符 |
bool类型,默认值为false。
|
skip_special_tokens |
可选 |
指定在推理生成的文本中是否跳过特殊tokens。 |
bool类型,默认值为true。
|
请求样例:
POST https://{ip}:{port}/v1/completions
请求消息体:
{ "prompt": "How is your holiday?", "model": "llama", "max_tokens": 20, "stream": false, "frequency_penalty": 1.0, "presence_penalty": 1.1, "repetition_penalty": 1.2, "temperature": 1.0, "top_p": 0.9, "top_k": 100, "ignore_eos": false, "stop_token_ids": [2, 3], "stop": [""], "include_stop_str_in_output": false, "seed":1, "skip_special_tokens": true }
{ "prompt": "How is your holiday?", "model": "llama", "max_tokens": 2, "best_of": 5, "n" : 3, "logprobs": 1 }
响应样例:
{ "id": "endpoint_common_8", "object": "text_completion", "created": 1740496393, "model": "llama", "choices": [ { "index": 0, "text": " Hope the festive period has been a safe and happy one for you all. Today I’ll be bringing", "stop_reason": null, "finish_reason": "length" } ], "usage": { "prompt_tokens": 6, "completion_tokens": 20, "total_tokens": 26 } }
{ "id": "endpoint_common_10", "object": "text_completion", "created": 1740496661, "model": "llama", "choices": [ { "index": 0, "text": " I hope", "logprobs": { "text_offset": [ 0, 2 ], "token_logprobs": [ -1.4375, -1.234375 ], "tokens": [ " I", " hope" ], "top_logprobs": [ { " I": -1.4375 }, { " hope": -1.234375 } ] }, "stop_reason": null, "finish_reason": "length" }, { "index": 1, "text": " I hope", "logprobs": { "text_offset": [ 7, 9 ], "token_logprobs": [ -1.4375, -1.234375 ], "tokens": [ " I", " hope" ], "top_logprobs": [ { " I": -1.4375 }, { " hope": -1.234375 } ] }, "stop_reason": null, "finish_reason": "length" }, { "index": 2, "text": " I hope", "logprobs": { "text_offset": [ 14, 16 ], "token_logprobs": [ -1.4375, -1.234375 ], "tokens": [ " I", " hope" ], "top_logprobs": [ { " I": -1.4375 }, { " hope": -1.234375 } ] }, "stop_reason": null, "finish_reason": "length" } ], "usage": { "prompt_tokens": 6, "completion_tokens": 10, "total_tokens": 16 } }
返回值 |
类型 |
说明 |
---|---|---|
id |
string |
请求ID。 |
object |
string |
表示返回对象的类型,通常是text_completion,表示这是一个文本生成的结果。 |
created |
int |
生成文本的时间戳,单位为秒。 |
model |
string |
使用的模型推理名称。 |
choices |
array |
推理结果列表。 |
index |
int |
每个选择的索引,表示该选择在列表中的位置(从0开始)。 |
text |
string |
模型生成的文本内容。 |
logprobs |
object |
包含有关该选择的详细logprobs信息。 |
stop_reason |
string |
表示生成停止的原因。为null表示没有显式的停止原因。 |
finish_reason |
string |
表示生成停止的原因,常见值为length(因为生成达到了最大长度)或stop(遇到停止符号)。 |
text_offset |
list(int[]) |
表示生成文本的位置偏移量。 |
token_logprobs |
list(float[]) |
对应生成文本中每个token的对数概率值。 |
tokens |
list (string[]) |
生成的token。 |
top_logprobs |
list(object[]) |
每个token的可能性,通常表示生成文本的最可能token和对应的logprobs。 |
usage |
object |
包含了有关请求中使用的令牌(tokens)的统计信息。令牌是模型输入和输出的基本单元。 |
prompt_tokens |
int |
输入文本(提示语)所使用的令牌数量。 |
completion_tokens |
int |
模型生成的文本(响应)的令牌数量。 |
total_tokens |
int |
请求中总共使用的令牌数量(prompt_tokens + completion_tokens)。 |