Transformers documentation
ExecuTorch
Comenzar
Clases base
Modelos
Preprocesadores
Inferencia
API de Pipeline
Generar API
Optimización
Chatear con modelos
Servicio
Entrenamiento
Hardware
Cuantización
Integraciones del ecosistema
Motores de inferencia
Despliegue local
Preentrenamiento
Ajuste fino
Recursos
API
You are viewing main version, which requires installation from source. If you'd like
regular pip install, checkout the latest stable version (v5.23.0).
ExecuTorch
ExecuTorch es un runtime ligero para la inferencia de modelos en dispositivos de borde. Exporta un modelo de PyTorch a un formato portable y de compilación previa (ahead-of-time). Un pequeño runtime en C++ planifica la memoria y despacha las operaciones a backends específicos del hardware. El comportamiento de ejecución y memoria se conoce antes de que el modelo se ejecute en el dispositivo, por lo que la sobrecarga de inferencia es baja.
Exporta un modelo de Transformers con la biblioteca optimum-executorch.
CLI
Python
optimum-cli export executorch \
--model "HuggingFaceTB/SmolLM2-135M-Instruct" \
--task "text-generation" \
--recipe "xnnpack" \
--output_dir="./smollm2_exported"from transformers import AutoTokenizer
from optimum.executorch import ExecuTorchModelForCausalLM
model = ExecuTorchModelForCausalLM.from_pretrained(
"HuggingFaceTB/SmolLM2-135M-Instruct",
recipe="xnnpack",
)
model.save_pretrained("./smollm2_exported")
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-135M-Instruct")Integración con Transformers
El proceso de exportación utiliza varios componentes de Transformers.
- from_pretrained() carga los pesos del modelo en formato safetensors.
- Optimum aplica optimizaciones de grafo y ejecuta torch.export para crear un archivo
model.ptedirigido a tu backend de hardware. - AutoTokenizer o AutoProcessor carga los archivos del tokenizador o procesador y se ejecuta durante la inferencia.
- En tiempo de ejecución, una clase ejecutora de C++ ejecuta el archivo
.pteen el runtime de ExecuTorch.
#include <executorch/extension/llm/runner/text_llm_runner.h>
using namespace executorch::extension::llm;
int main() {
// Load tokenizer and create runner
auto tokenizer = load_tokenizer("path/to/tokenizer.json", nullptr, std::nullopt, 0, 0);
auto runner = create_text_llm_runner("path/to/model.pte", std::move(tokenizer));
// Load the model
runner->load();
// Configure generation
GenerationConfig config;
config.max_new_tokens = 100;
config.temperature = 0.8f;
// Generate text with streaming output
runner->generate("The capital of France is", config,
[](const std::string& token) { std::cout << token << std::flush; },
nullptr);
return 0;
}Recursos
- Documentación de ExecuTorch
- Documentación de torch.export
- guía de Exportación a producción