Namespace: LLama.Sampling
An implementation of ISamplePipeline which mimics the default llama.cpp sampling
public sealed class DefaultSamplingPipeline : BaseSamplingPipeline, ISamplingPipeline, System.IDisposable
Inheritance Object → BaseSamplingPipeline → DefaultSamplingPipeline
Implements ISamplingPipeline, IDisposable
Bias values to add to certain logits
public Dictionary<int, float> LogitBias { get; }
Repetition penalty, as described in https://arxiv.org/abs/1909.05858
public float RepeatPenalty { get; set; }
Frequency penalty as described by OpenAI: https://platform.openai.com/docs/api-reference/chat/create
Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text
so far, decreasing the model's likelihood to repeat the same line verbatim.
public float AlphaFrequency { get; set; }
Presence penalty as described by OpenAI: https://platform.openai.com/docs/api-reference/chat/create
Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the
text so far, increasing the model's likelihood to talk about new topics.
public float AlphaPresence { get; set; }
Temperature to apply (higher temperature is more "creative")
public float Temperature { get; set; }
Number of tokens to keep in TopK sampling
public int TopK { get; set; }
Z value for tail free sampling
public float TailFreeZ { get; set; }
P value for locally typical sampling
public float TypicalP { get; set; }
P value for TopP sampling
public float TopP { get; set; }
P value for MinP sampling
public float MinP { get; set; }
Whether the newline value should be protected from being modified by logit bias and repeat penalty
public bool PenalizeNewline { get; set; }
Grammar to constrain valid tokens
public SafeLLamaGrammarHandle Grammar { get; set; }
public DefaultSamplingPipeline()
protected void ProcessLogits(SafeLLamaContextHandle ctx, Span<float> logits, ReadOnlySpan<LLamaToken> lastTokens)
logits Span<Single>
lastTokens ReadOnlySpan<LLamaToken>
protected LLamaToken ProcessTokenDataArray(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, ReadOnlySpan<LLamaToken> lastTokens)
candidates LLamaTokenDataArray
lastTokens ReadOnlySpan<LLamaToken>
public void Accept(SafeLLamaContextHandle ctx, LLamaToken token)
token LLamaToken
public ISamplingPipeline Clone()