Views
No views yet
temperature (float): Sampling temperature (default: 1.0, higher = more random)top_k (int): Only consider top-k most probable tokens (default: None)top_p (float): Only consider tokens with cumulative probability <= top_p (default: None)do_sample (bool): Whether to use sampling (True, default) or greedy decoding (False)temperature → softmax → top_k → top_p (same as HuggingFace's LogitProcessor system). Temperature scaling occurs before top-p filtering, affecting the probability distribution that top-p operates on.temperature=1.0, top_p=0.9 might include tokens A, B, C. With temperature=0.5, probability mass is much more concentrated, so top_p=0.9 might only include token A.return_dict_in_generate=True, returns a dictionary with:sequences: Generated token IDsscores: Log probabilities of sampled tokens (with temperature/sampling modifications)logprobs: Original model log probabilities (T=1, no modifications)
Otherwise, returns a tensor of generated token IDs.1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct")
4model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct", device_map="auto")
5
6inputs = tokenizer(["The quick brown"], return_tensors="pt").to(model.device)
7
8# Basic sampling
9gen_out = model.generate(**inputs, custom_generate="manueldeprada/sampling", trust_remote_code=True)
10
11# With temperature
12gen_out = model.generate(**inputs, custom_generate="manueldeprada/sampling", temperature=0.8, trust_remote_code=True)
13
14# With top-k
15gen_out = model.generate(**inputs, custom_generate="manueldeprada/sampling", top_k=50, trust_remote_code=True)
16
17# With top-p (nucleus sampling)
18gen_out = model.generate(**inputs, custom_generate="manueldeprada/sampling", top_p=0.9, trust_remote_code=True)
19
20# Greedy decoding (no sampling)
21gen_out = model.generate(**inputs, custom_generate="manueldeprada/sampling", do_sample=False, trust_remote_code=True)
22
23# Get detailed output with probabilities
24gen_out = model.generate(
25 **inputs,
26 custom_generate="manueldeprada/sampling",
27 return_dict_in_generate=True,
28 trust_remote_code=True
29)
30print(f"Generated text: {tokenizer.batch_decode(gen_out['sequences'], skip_special_tokens=True)}")
31print(f"Sampling scores: {gen_out['scores']}")
32print(f"Model log probabilities: {gen_out['logprobs']}")