Triton Token推理接口
接口功能
提供Token推理处理功能。
接口格式
操作类型:POST
URL:https://{ip}:{port}/v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]/infer
 
 - {ip}优先取启动命令参数中的{predict_ip};如果没有配置该命令行参数,则取配置文件ms_coordinator.json的“predict_ip”参数。
- {port}优先取启动命令参数中的{predict_port};如果没有配置该命令行参数,则取配置文件ms_coordinator.json的“predict_port”参数。
- ${MODEL_NAME}字段指定需要查询的模型名称。
- [/versions/${MODEL_VERSION}]字段暂不支持,不传递。
- 当ms_coordinator.json的"algorithm_type"参数配置为"cache_affinity"时,该接口不支持使用。
请求参数
| 参数 | 是否必选 | 说明 | 取值范围 | 
|---|---|---|---|
| id | 可选 | 推理请求ID。 | 长度不超过256的非空字符串。只允许包含下划线、中划线、大写英文字母、小写英文字母和数字。 | 
| inputs | 必选 | 只有一个元素的数组。 | 长度为1。 | 
| inputs.name | 必选 | 输入名称,固定"input0"。 | 字符串长度小于或等于256。 | 
| inputs.shape | 必选 | 参数维度,一维时代表data长度,二维时代表1行n列,n为data长度。 | data长度范围为(0, min(1024*1024, maxInputTokenLen, maxSeqLen-1, max_position_embeddings)]。其中max_position_embeddings从权重文件config.json中获取,其他相关参数从配置文件中获取。 | 
| inputs.datatype | 必选 | data数据类型,目前场景仅支持UINT32,传递tokenid。 | “UINT32”。 | 
| inputs.data | 必选 | 数组,代表输入的tokenId值。 | data长度和shape中传入的data长度一致。 tokenId的值需要在模型词表范围内。 | 
| outputs | 必选 | 推理结果输出结构。 | outputs长度需要和inputs的长度保持一致。 | 
| outputs.name | 必选 | 推理结果输出名。 | 字符串。 | 
| parameters | 可选 | 模型推理后处理相关参数。 | - | 
| temperature | 可选 | 控制生成的随机性,较高的值会产生更多样化的输出。 | float类型,大于0.0,默认值1.0。 取值越大,结果的随机性越大。推荐使用大于或等于0.001的值,小于0.001可能会导致文本质量不佳。 建议最大值取2.0,同时视模型而定。 | 
| top_k | 可选 | 控制模型生成过程中考虑的词汇范围,只从概率最高的k个候选词中选择。 | int类型,取值范围[0, 2147483647],字段未设置时,默认值由后端模型确定,详情请参见说明。取值大于或等于vocabSize时,默认值为vocabSize。 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 | 可选 | 是否做sampling。 | bool类型,不传递该参数时,将由其他后处理参数决定是否做sampling。 
 | 
| seed | 可选 | 用于指定推理过程的随机种子,相同的seed值可以确保推理结果的可重现性,不同的seed值会提升推理结果的随机性。 | uint_64类型,取值范围,(0, 18446744073709551615],不传递该参数,系统会产生一个随机seed值。 当seed取到临近最大值时,会有WARNING,但并不会影响使用。若想去掉WARNING,可以减小seed取值。 | 
| repetition_penalty | 可选 | 重复惩罚用于减少在文本生成过程中出现重复片段的概率。它对之前已经生成的文本进行惩罚,使得模型更倾向于选择新的、不重复的内容。 | float类型,大于0.0,默认值1.0。 
 建议最大值取2.0,同时视模型而定。 | 
| max_new_tokens | 可选 | 允许推理生成的最大token个数。实际产生的token数量同时受到配置文件maxIterTimes参数影响,推理token个数小于或等于Min(maxIterTimes, max_new_tokens)。 | int类型,取值范围(0,2147483647],默认值20。 | 
| watermark | 可选 | 是否带模型水印。 当前后处理不支持。 | bool类型,默认值false。 
 | 
| details | 可选 | 是否返回推理详细输出结果。 此配置项为Triton文本推理所使用参数,在Triton Token推理无效,不建议传输。 | bool类型,默认值false。 | 
| perf_stat | 可选 | 是否打开性能统计。 此配置项为Triton文本推理所使用参数,在Triton Token推理无效,不建议传输。 | bool类型,默认值false。 
 | 
| batch_size | 可选 | 推理请求batch_size。 此配置项为Triton文本推理所使用参数,在Triton Token推理无效,不建议传输。 | int类型,取值范围(0,2147483647],默认值1。 | 
| priority | 可选 | 设置请求优先级。 | uint64_t类型,取值范围[1, 5],默认值5。 值越低优先级越高,最高优先级为1。 | 
| timeout | 可选 | 设置等待时间,超时则断开请求。 | uint64_t类型,取值范围(0, 3600],默认值600,单位:秒。 | 
使用样例
请求样例:
POST https://{ip}:{port}/v2/models/llama_65b/infer
请求消息体:
{
    "id": "42",
    "inputs": [{
        "name": "input0",
        "shape": [
            1,
            10
        ],
        "datatype": "UINT32",
        "data": [
            396, 319, 13996, 29877, 29901, 29907, 3333, 20718, 316, 23924
        ]
    }],
    "outputs": [{
        "name": "output0"
    }],
    "parameters": {
        "temperature": 0.5,
        "top_k": 10,
        "top_p": 0.95,
        "do_sample": true,
        "seed": null,
        "repetition_penalty": 1.03,
        "max_new_tokens": 20,
        "watermark": true,
        "priority": 5,
        "timeout": 10
    }
}
响应样例:
{
    "id": "42",
    "outputs": [
        {
            "name": "output0",
            "shape": [
                1,
                20
            ],
            "datatype": "UINT32",
            "data": [
                1,
                396,
                319,
                13996,
                29877,
                29901,
                29907,
                3333,
                20718,
                316,
                23924,
                562,
                2142,
                1702,
                425,
                14015,
                16060,
                316,
                383,
                19498
            ]
        }
    ]
}
输出说明
| 返回值 | 类型 | 说明 | 
|---|---|---|
| id | string | 请求ID。 | 
| outputs | list | 推理结果列表。 | 
| name | string | 默认"output0"。 | 
| shape | list | 结构为[1, n],1表示1维数组,n表示data字段中token结果长度。 | 
| datatype | string | "UINT32"。 | 
| data | list | 推理后生成的token ID集合。 |