View Source Bumblebee.Text.GenerationConfig (Bumblebee v0.4.2)
A set of configuration options controlling text generation.
This struct is expected by Bumblebee.Text.Generation.build_generate/3.
Configuration
Options controlling length
:max_new_tokens- the maximum number of tokens to be generated, ignoring the number of tokens in the prompt. Defaults to20:min_new_tokens- the minimum number of tokens to be generated, ignoring the number of tokens in the prompt:max_length- the maximum length of the sequence to be generated. Note that this length includes the length of the input prompt (including padding). In general, prefer:max_new_tokens, which ignores the number of tokens in the prompt:min_length- the minimum length of the sequence to be generated. Note that this length includes the length of the input prompt (including padding). In general, prefer:min_new_tokens, which ignores the number of tokens in the prompt
Options controlling strategy
:strategy- the method deciding how tokens are selected, it has a significant impact on the quality of the generated sequence. Should be a map with:typeand strategy-specific options.:greedy_search- the most straightforward approach, where in every iteration the most probable token (as given by the model) is taken.Example:
%{type: :greedy_search}.:contrastive_search- state-of-the-art decoding method, capable of producing high quality, coherent sequences. The results are deterministic. See this article for more details.:top_k(required) - the number of highest probability vocabulary tokens considered as a continuation:alpha(required) - the weight of degeneration penalty. It balances the model confidence and the penalty
Example:
%{type: :contrastive_search, top_k: 4, alpha: 0.6}.:multinomial_sampling- this method samples tokens according to the probability distribution given by the model. The results are nondeterministic, unless a seed is specified.:top_k(optional) - when specified, restricts sampling to top-k most probable candidates:top_p(optional) - when specified, restricts sampling to tokens which probabilities add up to top-p
. Defaults to
%{type: :greedy_search}
Options controlling generated tokens
:decoder_start_token_id- the id of the initial token when generating from scratch, in case of encoder-decoder models:forced_bos_token_id- the id of the token to force as the first generated token:forced_eos_token_id- the id of the token to force as the last generated token when:max_lengthis reached:forced_token_ids- a list of{index, token_id}pairs forcingtoken_idto appear atindexin the generated sequence. Defaults to[]:suppressed_token_ids- a list of token ids to suppress during generation. Defaults to[]:no_repeat_ngram_length- when set, n-grams of the given length can occur only once in the generated sequence
Special tokens used during generation
:bos_token_id- the id of the beginning-of-sequence token:eos_token_id- the id of the end-of-sequence token:pad_token_id- the id of the padding token
Summary
Types
@type t() :: %Bumblebee.Text.GenerationConfig{ bos_token_id: term(), decoder_start_token_id: term(), eos_token_id: term(), extra_config: term(), forced_bos_token_id: term(), forced_eos_token_id: term(), forced_token_ids: term(), max_length: term(), max_new_tokens: term(), min_length: term(), min_new_tokens: term(), no_repeat_ngram_length: term(), pad_token_id: term(), strategy: term(), suppressed_token_ids: term() }