SamplingParams结构体

结构体功能

推理采样相关的参数。

结构体格式

struct SamplingParams {
    float temperature;
    uint32_t topK;
    float topP;
    float typicalP;
    bool doSample;
    uint32_t seed;
    float repetitionPenalty;
    bool watermark;
    float frequencyPenalty;
    float presencePenalty;
};

结构体参数

参数

参数类型

说明

取值要求

temperature

float

控制生成的随机性,较高的值会产生更多样化的输出。

-

topK

uint32_t

控制模型生成过程中考虑的词汇范围,只从概率最高的k个候选词中选择。使用限制请参见使用限制

-

topP

float

控制模型生成过程中考虑的词汇范围,使用累计概率选择候选词,直到累计概率超过给定的阈值。该参数也可以控制生成结果的多样性,它基于累积概率选择候选词,直到累计概率超过给定的阈值为止。

(0, 1)

typicalP

float

每个单词被选择为下一个单词的概率大小。

(0, 1)

doSample

bool

是否做sampling。

-

seed

uint32_t

于指定推理过程的随机种子,相同的seed值可以确保推理结果的可重现性,不同的seed值会提升推理结果的随机性。

-

repetitionPenalty

float

重复惩罚用于减少在文本生成过程中出现重复片段的概率。它对之前已经生成的文本进行惩罚,使得模型更倾向于选择新的、不重复的内容。

-

watermark

bool

水印。

-

frequencyPenalty

float

它影响模型如何根据文本中词汇(token)的现有频率惩罚新词汇(token)。正值将通过惩罚已经频繁使用的词来降低模型一行中重复用词的可能性。

-

presencePenalty

float

它影响模型如何根据到目前为止是否出现在文本中来惩罚新token。正值将通过惩罚已经使用的词,增加模型谈论新主题的可能性。

-

使用样例

llm::engine::SamplingParams param;
param.temperature = 1.0;
param.topK = 0;
param.topP = 1.0;

返回值