Hugging Face transformers
La biblioteca transformers carga y ejecuta modelos de código abierto del Hugging Face Hub. Usa pipeline para inferencia rápida o AutoModel para bucles de generación personalizados.
Busca en todas las páginas de la documentación
La biblioteca transformers carga y ejecuta modelos de código abierto del Hugging Face Hub. Usa pipeline para inferencia rápida o AutoModel para bucles de generación personalizados.
Tarjeta de referencia rápida - lista para copiar y pegar.
from transformers import pipeline
generator = pipeline("text-generation", model="meta-llama/Llama-3.2-1B-Instruct")
output = generator("Explica los decoradores de Python:", max_new_tokens=100)
print(output[0]["generated_text"])Cuándo usar esto:
"""hugging_face_transformers.py - pipeline y generación manual."""
from __future__ import annotations
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model_id = "meta-llama/Llama-3.2-1B-Instruct"
# Inferencia rápida con pipeline
gen = pipeline("text-generation", model=model_id, torch_dtype=torch.float16, device_map="auto")
result = gen("¿Qué es pytest?", max_new_tokens=80, do_sample=True, temperature=0.7)
print("pipeline:", result[0]["generated_text"][-200:])
# Bucle de generación manual
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16, device_map="auto")
messages = [{"role": "user", "content": "Escribe un hola mundo de Python en una línea."}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model.generate(**inputs, max_new_tokens=60, temperature=0.7, do_sample=True)
response = tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print("manual:", response)Lo que esto demuestra:
pipeline para generación de texto sin configuración.AutoTokenizer y AutoModelForCausalLM para control manual.apply_chat_template para modelos ajustados a instrucciones.device_map="auto" para asignación automática de GPU.config.json.| API | Usar cuándo | Complejidad |
|---|---|---|
pipeline() | Prototipado rápido | Bajo |
model.generate() | Parámetros de generación personalizados | Medio |
Trainer | Ajuste fino | Medio |
trl (SFT, DPO) | Alineación estilo RLHF | Alto |
# Cuantización de 4 bits para memoria de GPU limitada
from transformers import BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16)
model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, device_map="auto")tokenizer.apply_chat_template.device_map="auto", o modelos más pequeños.huggingface-cli login y aceptar la licencia en la página del modelo.tokenizer.pad_token = tokenizer.eos_token.HF_HOME; usar local_files_only=True en producción.torch_dtype=torch.float16 o bfloat16.| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
pipeline | Inferencia rápida | Lógica de decodificación personalizada |
| vLLM | Servicio de alto rendimiento | Experimentos locales sencillos |
| Ollama | Gestión local sencilla de modelos | Ajuste fino |
| Proveedores de API | Sin infraestructura de GPU | La privacidad de los datos requiere local |
pip install huggingface_hub
huggingface-cli loginfrom transformers import TrainingArguments, Trainer
args = TrainingArguments(output_dir="./out", num_train_epochs=3, per_device_train_batch_size=4)
trainer = Trainer(model=model, args=args, train_dataset=dataset)
trainer.train()max_new_tokens limita los nuevos tokens (preferido sobre max_length).min_new_tokens asegura una longitud mínima de respuesta.do_sample=False para decodificación greedy (determinista).generate.torch.compile puede acelerar la generación en modelos compatibles.export HF_HOME=/data/hf_cachefrom transformers import AutoModel
embedder = pipeline("feature-extraction", model="sentence-transformers/all-MiniLM-L6-v2")sentence-transformers directamente.Versiones de Stack: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.
Revisado por Chris St. John·Última actualización: 19 jul 2026