Transformers documentation

ExecuTorch

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ExecuTorch

ExecuTorch هو وقت تشغيل خفيف للاستدلال على النماذج في الأجهزة الطرفية. يقوم بتصدير نموذج PyTorch إلى صيغة محمولة تُنفَّذ مسبقًا. يخطط وقت تشغيل صغير بلغة C++ للذاكرة ويوجّه العمليات إلى واجهات خلفية مخصصة لكل قطعة من العتاد. تُعرف سلوكيات التنفيذ والذاكرة قبل تشغيل النموذج على الجهاز، مما يجعل تكلفة الاستدلال منخفضة.

تصدير نموذج Transformers باستخدام مكتبة optimum-executorch.

سطر الأوامر
Python
optimum-cli export executorch \
    --model "HuggingFaceTB/SmolLM2-135M-Instruct" \
    --task "text-generation" \
    --recipe "xnnpack" \
    --output_dir="./smollm2_exported"

تكامل Transformers

تستخدم عملية التصدير عدة مكونات من Transformers.

  1. تحمّل from_pretrained() أوزان النموذج بتنسيق safetensors.
  2. يطبّق Optimum تحسينات على الرسم البياني ويشغّل torch.export لإنشاء ملف model.pte يستهدف وحدة معالجة الخلفية لديك.
  3. يُحمّل AutoTokenizer أو AutoProcessor ملفات المُجزّئ أو المُعالِج ويُنفَّذ أثناء الاستدلال.
  4. عند التشغيل، تنفّذ فئة C++ المُشغِّلة ملف .pte على بيئة تشغيل 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;
}

الموارد

Update on GitHub