Text Generation Models
Using Text Generation Models
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
import torch
class TextGenerator:
def __init__(self, model_name="gpt2"):
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForCausalLM.from_pretrained(model_name)
def generate(self, prompt, max_length=100, temperature=0.7,
top_k=50, top_p=0.95, do_sample=True):
inputs = self.tokenizer.encode(prompt, return_tensors="pt")
with torch.no_grad():
outputs = self.model.generate(
inputs,
max_length=max_length,
temperature=temperature,
top_k=top_k,
top_p=top_p,
do_sample=do_sample,
pad_token_id=self.tokenizer.eos_token_id
)
return self.tokenizer.decode(outputs[0], skip_special_tokens=True)
# Usage
generator = TextGenerator("gpt2")
text = generator.generate("The future of AI is")
print(text)
Decoding Strategies
Model Selection Guide
| Use Case | Recommended Model | Why |
|---|---|---|
| General chat | GPT-4, Claude | Best reasoning |
| Code generation | CodeLlama, StarCoder | Code-specialized |
| Cost-sensitive | LLaMA, Mistral | Open source |
| Low latency | DistilGPT, Phi | Smaller models |
Summary
Text generation models vary in size, capability, and accessibility. Choose based on your specific requirements for quality, cost, and deployment constraints.
Next: We'll explore instruction tuning techniques.