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