Buckets:

rtrm's picture
download
raw
23.1 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Export a model to ExecuTorch with optimum.exporters.executorch&quot;,&quot;local&quot;:&quot;export-a-model-to-executorch-with-optimumexportersexecutorch&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Why ExecuTorch?&quot;,&quot;local&quot;:&quot;why-executorch&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Summary&quot;,&quot;local&quot;:&quot;summary&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Exporting a model to ExecuTorch using the CLI&quot;,&quot;local&quot;:&quot;exporting-a-model-to-executorch-using-the-cli&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}">
<link href="/docs/optimum.executorch/pr_71/en/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/entry/start.bc332b8a.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/chunks/scheduler.b108d059.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/chunks/singletons.1ce2053b.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/chunks/paths.7613eb12.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/entry/app.102c0a63.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/chunks/index.008de539.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/nodes/0.e8bcc7f9.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/nodes/3.1400defd.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/chunks/CodeBlock.7b00c886.js">
<link rel="modulepreload" href="/docs/optimum.executorch/pr_71/en/_app/immutable/chunks/getInferenceSnippets.51e5e199.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Export a model to ExecuTorch with optimum.exporters.executorch&quot;,&quot;local&quot;:&quot;export-a-model-to-executorch-with-optimumexportersexecutorch&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Why ExecuTorch?&quot;,&quot;local&quot;:&quot;why-executorch&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Summary&quot;,&quot;local&quot;:&quot;summary&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Exporting a model to ExecuTorch using the CLI&quot;,&quot;local&quot;:&quot;exporting-a-model-to-executorch-using-the-cli&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="export-a-model-to-executorch-with-optimumexportersexecutorch" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#export-a-model-to-executorch-with-optimumexportersexecutorch"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Export a model to ExecuTorch with optimum.exporters.executorch</span></h1> <p data-svelte-h="svelte-1fbk8i5">If you need to deploy 🤗 Transformers models for on-device use cases, we recommend
exporting them to a serialized format that can be distributed and executed on specialized
runtimes and hardware. In this guide, we’ll show you how to export these
models to <a href="https://pytorch.org/executorch/main/intro-overview.html" rel="nofollow">ExecuTorch</a>.</p> <h2 class="relative group"><a id="why-executorch" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#why-executorch"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Why ExecuTorch?</span></h2> <p data-svelte-h="svelte-iomsxm">ExecuTorch is the ideal solution for deploying PyTorch models on edge devices, offering a streamlined process from
export to deployment without leaving PyTorch ecosystem.</p> <p data-svelte-h="svelte-1veo8t7">Supporting on-device AI presents unique challenges with diverse hardware, critical power requirements, low/no internet
connectivity, and realtime processing needs. These constraints have historically prevented or slowed down the creation
of scalable and performant on-device AI solutions. We designed ExecuTorch, backed by our industry partners like Meta,
Arm, Apple, Qualcomm, MediaTek, etc. to be highly portable and provide superior developer productivity without losing on
performance.</p> <h2 class="relative group"><a id="summary" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#summary"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Summary</span></h2> <p data-svelte-h="svelte-yv2dgc">Exporting a PyTorch model to ExecuTorch is as simple as</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->optimum-cli <span class="hljs-built_in">export</span> executorch \
--model HuggingFaceTB/SmolLM2-135M \
--task text-generation \
--recipe xnnpack \
--output_dir hf_smollm2 \
--use_custom_sdpa<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-b35baa">Check out the help for more options:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->optimum-cli <span class="hljs-built_in">export</span> executorch --<span class="hljs-built_in">help</span><!-- HTML_TAG_END --></pre></div> <h2 class="relative group"><a id="exporting-a-model-to-executorch-using-the-cli" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#exporting-a-model-to-executorch-using-the-cli"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Exporting a model to ExecuTorch using the CLI</span></h2> <p data-svelte-h="svelte-1h7jnae">The Optimum ExecuTorch export can be used through Optimum command-line:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->optimum-cli <span class="hljs-built_in">export</span> executorch --<span class="hljs-built_in">help</span>
usage: optimum-cli <span class="hljs-built_in">export</span> executorch [-h] -m MODEL [-o OUTPUT_DIR] [--task TASK] [--recipe RECIPE]
options:
-h, --<span class="hljs-built_in">help</span> show this <span class="hljs-built_in">help</span> message and <span class="hljs-built_in">exit</span>
Required arguments:
-m MODEL, --model MODEL
Model ID on huggingface.co or path on disk to load model from.
-o OUTPUT_DIR, --output_dir OUTPUT_DIR
Path indicating the directory <span class="hljs-built_in">where</span> to store the generated ExecuTorch model.
--task TASK The task to <span class="hljs-built_in">export</span> the model <span class="hljs-keyword">for</span>. Available tasks depend on the model, but are among: [<span class="hljs-string">&#x27;audio-classification&#x27;</span>, <span class="hljs-string">&#x27;feature-extraction&#x27;</span>, <span class="hljs-string">&#x27;image-to-text&#x27;</span>,
<span class="hljs-string">&#x27;sentence-similarity&#x27;</span>, <span class="hljs-string">&#x27;depth-estimation&#x27;</span>, <span class="hljs-string">&#x27;image-segmentation&#x27;</span>, <span class="hljs-string">&#x27;audio-frame-classification&#x27;</span>, <span class="hljs-string">&#x27;masked-im&#x27;</span>, <span class="hljs-string">&#x27;semantic-segmentation&#x27;</span>, <span class="hljs-string">&#x27;text-classification&#x27;</span>,
<span class="hljs-string">&#x27;audio-xvector&#x27;</span>, <span class="hljs-string">&#x27;mask-generation&#x27;</span>, <span class="hljs-string">&#x27;question-answering&#x27;</span>, <span class="hljs-string">&#x27;text-to-audio&#x27;</span>, <span class="hljs-string">&#x27;automatic-speech-recognition&#x27;</span>, <span class="hljs-string">&#x27;image-to-image&#x27;</span>, <span class="hljs-string">&#x27;multiple-choice&#x27;</span>, <span class="hljs-string">&#x27;image-
classification&#x27;</span>, <span class="hljs-string">&#x27;text2text-generation&#x27;</span>, <span class="hljs-string">&#x27;token-classification&#x27;</span>, <span class="hljs-string">&#x27;object-detection&#x27;</span>, <span class="hljs-string">&#x27;zero-shot-object-detection&#x27;</span>, <span class="hljs-string">&#x27;zero-shot-image-classification&#x27;</span>, <span class="hljs-string">&#x27;text-
generation&#x27;</span>, <span class="hljs-string">&#x27;fill-mask&#x27;</span>].
--recipe RECIPE Pre-defined recipes <span class="hljs-keyword">for</span> <span class="hljs-built_in">export</span> to ExecuTorch. Defaults to <span class="hljs-string">&quot;xnnpack&quot;</span>.
--use_custom_sdpa For decoder-only models to use custom sdpa with static kv cache to boost performance. Defaults to False.
<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-1162q3v">You should see a <code>model.pte</code> file is stored under “./hf_smollm2/“:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->hf_smollm2/
└── model.pte<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-6yddcz">This will fetch the model on the Hub and exports the PyTorch model with the specialized recipe. The resulting <code>model.pte</code> file can then be run on the <a href="https://pytorch.org/executorch/main/tutorial-xnnpack-delegate-lowering.html" rel="nofollow">XNNPACK backend</a>, or on many
other ExecuTorh supported backends if exports with different recipes, e.g. Apple’s <a href="https://pytorch.org/executorch/main/build-run-coreml.html" rel="nofollow">Core ML</a> or <a href="https://pytorch.org/executorch/main/build-run-mps.html" rel="nofollow">MPS</a>, <a href="https://pytorch.org/executorch/main/build-run-qualcomm-ai-engine-direct-backend.html" rel="nofollow">Qualcomm’s SoCs</a>, <a href="https://pytorch.org/executorch/main/executorch-arm-delegate-tutorial.html" rel="nofollow">ARM’s Ethos-U</a>, <a href="https://pytorch.org/executorch/main/build-run-xtensa.html" rel="nofollow">Xtensa HiFi4 DSP</a>, <a href="https://pytorch.org/executorch/main/build-run-vulkan.html" rel="nofollow">Vulkan GPU</a>, <a href="https://pytorch.org/executorch/main/build-run-mediatek-backend.html" rel="nofollow">MediaTek</a>, etc.</p> <p data-svelte-h="svelte-1ss0ywk">For example, we can load and run the model with <a href="https://pytorch.org/executorch/main/runtime-overview.html" rel="nofollow">ExecuTorch Runtime</a> using the <code>optimum.executorch</code> package as follows:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
<span class="hljs-keyword">from</span> optimum.executorch <span class="hljs-keyword">import</span> ExecuTorchModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;HuggingFaceTB/SmolLM2-135M&quot;</span>)
model = ExecuTorchModelForCausalLM.from_pretrained(<span class="hljs-string">&quot;hf_smollm2/&quot;</span>)
prompt = <span class="hljs-string">&quot;Simply put, the theory of relativity states that&quot;</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;\nGenerated texts:\n\t<span class="hljs-subst">{model.text_generation(tokenizer=tokenizer, prompt=prompt, max_seq_len=<span class="hljs-number">45</span>)}</span>&quot;</span>)<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-wzt3ch">As you can see, converting a model to ExecuTorch does not mean leaving the Hugging Face ecosystem. You end up with a similar API as regular 🤗 Transformers models!</p> <p data-svelte-h="svelte-o488cl">In case your model wasn’t already exported to ExecuTorch, it can also be converted on-the-fly when loading your model:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-keyword">from</span> optimum.executorch <span class="hljs-keyword">import</span> ExecuTorchModelForCausalLM
model = ExecuTorchModelForCausalLM.from_pretrained(<span class="hljs-string">&quot;HuggingFaceTB/SmolLM2-135M&quot;</span>, recipe=<span class="hljs-string">&quot;xnnpack&quot;</span>, attn_implementation=<span class="hljs-string">&quot;custom_sdpa&quot;</span>)<!-- HTML_TAG_END --></pre></div> <p></p>
<script>
{
__sveltekit_xd0x4o = {
assets: "/docs/optimum.executorch/pr_71/en",
base: "/docs/optimum.executorch/pr_71/en",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/optimum.executorch/pr_71/en/_app/immutable/entry/start.bc332b8a.js"),
import("/docs/optimum.executorch/pr_71/en/_app/immutable/entry/app.102c0a63.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 3],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
23.1 kB
·
Xet hash:
a3231d871760c0505121c77e54a9515a228daed7dd09a1cc4045979f5d3e5261

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.