# Üretime dışa aktarma

Transformers modellerini optimize edilmiş çalışma zamanları ve cihazlar için farklı formatlara dışa aktarın. Aynı modeli bulut sağlayıcılarına dağıtın veya mobil ve kenar cihazlarında çalıştırın. Her dağıtım ortamı için modeli sıfırdan yeniden yazmanıza gerek yoktur. Herhangi bir çıkarım ekosisteminde özgürce dağıtım yapın.

## ExecuTorch

[ExecuTorch](https://pytorch.org/executorch/stable/index.html), PyTorch modellerini mobil ve kenar cihazlarında çalıştırır. Bir modeli standartlaştırılmış operatörlerden oluşan bir grafa dışa aktarır, bu grafi bir ExecuTorch programına derler ve hedef cihazda çalıştırır. Çalışma zamanı hafiftir ve çalışma planını önceden hesaplar.

[Optimum ExecuTorch](https://huggingface.co/docs/optimum-executorch/en/index) bileşenini kaynak kodundan yükleyin.

```bash
git clone https://github.com/huggingface/optimum-executorch.git
cd optimum-executorch
pip install '.[dev]'
```

Bir Transformers modelini CLI aracıyla ExecuTorch'e dışa aktarın.

```bash
optimum-cli export executorch \
    --model "Qwen/Qwen3-8B" \
    --task "text-generation" \
    --recipe "xnnpack" \
    --use_custom_sdpa \
    --use_custom_kv_cache \
    --qlinear 8da4w \
    --qembedding 8w \
    --output_dir="hf_smollm2"
```

Tüm dışa aktarma seçeneklerini görüntülemek için aşağıdaki komutu çalıştırın.

```bash
optimum-cli export executorch --help
```

## ONNX

[ONNX](http://onnx.ai), farklı framework'lerden gelen modelleri tanımlamak için kullanılan ortak bir dildir. Modelleri, iyi tanımlanmış tiplere, şekillere ve meta verilere sahip standartlaştırılmış operatörlerden oluşan bir graf olarak temsil eder. Modeller, optimize edilmiş çalışma zamanları ve motorlar arasında dağıtabileceğiniz kompakt protobuf dosyalarına serileştirilir.

[Optimum ONNX](https://huggingface.co/docs/optimum-onnx/index), yapılandırma nesneleriyle modelleri ONNX formatına dışa aktarır. Birçok [mimariyi](https://huggingface.co/docs/optimum-onnx/onnx/overview) destekler ve kolayca genişletilebilir. Modelleri CLI aracı üzerinden veya programatik olarak dışa aktarın.

[Optimum ONNX](https://huggingface.co/docs/optimum-onnx/index) kurun.

```bash
uv pip install optimum-onnx
```

### optimum-cli

Dışa aktarılacak modeli ve çıktı dizinini `--model` argümanı ile belirtin.

```bash
optimum-cli export onnx --model Qwen/Qwen3-8B Qwen/Qwen3-8b-onnx/
```

Tüm kullanılabilir argümanları görüntülemek için aşağıdaki komutu çalıştırın veya daha fazla ayrıntı için [Export a model to ONNX with optimum.exporters.onnx](https://huggingface.co/docs/optimum-onnx/onnx/usage_guides/export_a_model) kılavuzuna başvurun.

```bash
optimum-cli export onnx --help
```

Yerel bir modeli dışa aktarmak için ağırlık ve tokenizer dosyalarını aynı dizinde kaydedin. Dizin yolunu `--model` argümanına iletin ve [görevi](https://huggingface.co/docs/optimum/exporters/task_manager#transformers) belirtmek için `--task` argümanını kullanın. `--task` belirtmezseniz, sistem bunu modelden otomatik olarak çıkarır veya görev özel bir başlık içermeyen bir mimari kullanır.

```bash
optimum-cli export onnx --model path/to/local/model --task text-generation Qwen/Qwen3-8b-onnx/
```

ONNX Runtime dahil olmak üzere ONNX'i destekleyen herhangi bir [çalışma zamanı](https://onnx.ai/supported-tools.html#deployModel) ile modeli dağıtın.

```py
from transformers import AutoTokenizer
from optimum.onnxruntime import ORTModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8b-onnx")
model = ORTModelForCausalLM.from_pretrained("Qwen/Qwen3-8b-onnx")
inputs = tokenizer("Plants generate energy through a process known as ", return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs))
```

### optimum.onnxruntime

Optimum ONNX ile Transformers modellerini programatik olarak dışa aktarın. Bir modelle `ORTModel` örneği oluşturun ve `export=True` olarak ayarlayın. ONNX modelini `save_pretrained` ile kaydedin.

```py
from optimum.onnxruntime import ORTModelForCausalLM
from transformers import AutoTokenizer

ort_model = ORTModelForCausalLM.from_pretrained("Qwen/Qwen3-8b", export=True)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8b")

ort_model.save_pretrained("onnx/")
tokenizer.save_pretrained("onnx/")
```

