<meta charset="utf-8" /><meta http-equiv="content-security-policy" content=""><meta name="hf:doc:metadata" content="{&quot;local&quot;:&quot;overview&quot;,&quot;sections&quot;:[{&quot;local&quot;:&quot;quickstart&quot;,&quot;sections&quot;:[{&quot;local&quot;:&quot;supported-models&quot;,&quot;title&quot;:&quot;Supported models&quot;},{&quot;local&quot;:&quot;quick-usage&quot;,&quot;title&quot;:&quot;Quick usage&quot;}],&quot;title&quot;:&quot;Quickstart&quot;}],&quot;title&quot;:&quot;Overview&quot;}" data-svelte="svelte-1phssyn">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/assets/pages/__layout.svelte-hf-doc-builder.css">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/start-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/chunks/vendor-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/chunks/paths-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/pages/__layout.svelte-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/pages/bettertransformer/overview.mdx-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/chunks/IconCopyLink-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/optimum/pr_476/en/_app/chunks/CodeBlock-hf-doc-builder.js"> 






<h1 class="relative group"><a id="overview" 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="#overview"><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>Overview
	</span></h1>

<p>🤗 Optimum provides an integration with <code>BetterTransformer</code>, a stable API from PyTorch to benefit from interesting speedups on CPU &amp; GPU through sparsity and fused kernels.</p>
<h2 class="relative group"><a id="quickstart" 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="#quickstart"><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>Quickstart
	</span></h2>

<p>Since its 1.13 version, PyTorch released the stable version of <code>BetterTransformer</code> in its library. You can benefit from interesting speedup on most consumer-type devices, including CPUs, older and newer versions of NIVIDIA GPUs.
You can now use this feature in 🤗 Optimum together with Transformers and use it for major models in the Hugging Face ecosystem.</p>
<h3 class="relative group"><a id="supported-models" 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="#supported-models"><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>Supported models
	</span></h3>

<p>The list of supported model below:</p>
<ul><li><a href="https://arxiv.org/abs/1909.11942" rel="nofollow">AlBERT</a></li>
<li><a href="https://arxiv.org/abs/1910.13461" rel="nofollow">BART</a></li>
<li><a href="https://arxiv.org/abs/1810.04805" rel="nofollow">BERT</a></li>
<li><a href="https://arxiv.org/abs/1907.12461" rel="nofollow">BERT-generation</a></li>
<li><a href="https://arxiv.org/abs/1911.03894" rel="nofollow">CamemBERT</a></li>
<li><a href="https://arxiv.org/abs/2202.03555" rel="nofollow">Data2VecText</a></li>
<li><a href="https://arxiv.org/abs/1910.01108" rel="nofollow">DistilBert</a></li>
<li><a href="https://arxiv.org/abs/2012.12877" rel="nofollow">DeiT</a></li>
<li><a href="https://arxiv.org/abs/2003.10555" rel="nofollow">Electra</a></li>
<li><a href="https://arxiv.org/abs/1904.09223" rel="nofollow">Ernie</a></li>
<li><a href="https://arxiv.org/pdf/2106.07447.pdf" rel="nofollow">HuBERT</a></li>
<li><a href="https://arxiv.org/abs/1912.13318" rel="nofollow">LayoutLM</a></li>
<li><a href="https://arxiv.org/abs/2110.08518" rel="nofollow">MarkupLM</a></li>
<li><a href="https://arxiv.org/abs/1907.11692" rel="nofollow">RoBERTa</a></li>
<li><a href="https://arxiv.org/abs/2101.00438" rel="nofollow">Splinter</a></li>
<li><a href="https://arxiv.org/abs/1911.02116" rel="nofollow">XLMRoberta</a></li>
<li><a href="https://cdn.openai.com/papers/whisper.pdf" rel="nofollow">Whisper</a></li>
<li><a href="https://arxiv.org/abs/2010.11929" rel="nofollow">ViT</a></li>
<li><a href="https://arxiv.org/abs/2111.06377" rel="nofollow">ViT-MAE</a></li>
<li><a href="https://arxiv.org/abs/2204.07141" rel="nofollow">ViT-MSN</a></li>
<li><a href="https://arxiv.org/abs/2006.11477" rel="nofollow">Wav2Vec2</a></li>
<li><a href="https://arxiv.org/abs/2106.00666" rel="nofollow">YOLOS</a></li></ul>
<p>Let us know by opening an issue in 🤗 Optimum if you want more models to be supported, or check out the contribution guideline if you want to add it by yourself!</p>
<h3 class="relative group"><a id="quick-usage" 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="#quick-usage"><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>Quick usage
	</span></h3>

<p>In order to use the <code>BetterTransformer</code> API just run the following commands:</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><!-- HTML_TAG_START --><span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> optimum.bettertransformer <span class="hljs-keyword">import</span> BetterTransformer
<span class="hljs-meta">&gt;&gt;&gt; </span>model_hf = AutoModelForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;bert-base-cased&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = BetterTransformer.transform(model_hf, keep_original_model=<span class="hljs-literal">True</span>)<!-- HTML_TAG_END --></pre></div>
<p>You can leave <code>keep_original_model=False</code> in case you want to overwrite the current model with its <code>BetterTransformer</code> version.</p>
<p>More details on <code>tutorials</code> section to deeply understand how to use it, or check the <a href="https://colab.research.google.com/drive/1Lv2RCG_AT6bZNdlL1oDDNNiwBBuirwI-?usp=sharing" rel="nofollow">Google colab demo</a>!</p>
<div class="mt-10"><div class="w-full flex flex-col space-y-4 md:space-y-0 md:grid md:grid-cols-2 md:gap-y-4 md:gap-x-5"><a class="!no-underline border dark:border-gray-700 p-5 rounded-lg shadow hover:shadow-lg" href="./tutorials/content"><div class="w-full text-center bg-gradient-to-br from-blue-400 to-blue-500 rounded-lg py-1.5 font-semibold mb-5 text-white text-lg leading-relaxed">Tutorials</div>
      <p class="text-gray-700">Learn the basics and become familiar with 🤗 and `BetterTransformer` integration. Start here if you are using 🤗 Optimum for the first time!</p></a>
    <a class="!no-underline border dark:border-gray-700 p-5 rounded-lg shadow hover:shadow-lg" href="./contribution/content"><div class="w-full text-center bg-gradient-to-br from-indigo-400 to-indigo-500 rounded-lg py-1.5 font-semibold mb-5 text-white text-lg leading-relaxed">How-to guides</div>
      <p class="text-gray-700">You want to add your own model for `BetterTransformer` support? Start here to check the contribution guideline!</p></a></div></div>


		<script type="module" data-hydrate="1msv4hg">
		import { start } from "/docs/optimum/pr_476/en/_app/start-hf-doc-builder.js";
		start({
			target: document.querySelector('[data-hydrate="1msv4hg"]').parentNode,
			paths: {"base":"/docs/optimum/pr_476/en","assets":"/docs/optimum/pr_476/en"},
			session: {},
			route: false,
			spa: false,
			trailing_slash: "never",
			hydrate: {
				status: 200,
				error: null,
				nodes: [
					import("/docs/optimum/pr_476/en/_app/pages/__layout.svelte-hf-doc-builder.js"),
						import("/docs/optimum/pr_476/en/_app/pages/bettertransformer/overview.mdx-hf-doc-builder.js")
				],
				params: {}
			}
		});
	</script>
