Buckets:

rtrm's picture
download
raw
28.3 kB
import{s as Fe,o as ze,n as Le}from"../chunks/scheduler.bdbef820.js";import{S as Qe,i as Oe,g as i,s as n,r as m,A as Ye,h as p,f as l,c as a,j as Ie,u as r,x as o,k as He,y as Ee,a as s,v as u,d as c,t as f,w as d}from"../chunks/index.33f81d56.js";import{T as Se}from"../chunks/Tip.34194030.js";import{C as M}from"../chunks/CodeBlock.362b34a4.js";import{H as dt,E as qe}from"../chunks/EditOnGithub.a9246e21.js";function Pe(Mt){let b,y="<code>tranformers.onnx</code>는 더 이상 유지되지 않습니다. 위에서 설명한 대로 🤗 Optimum을 사용하여 모델을 내보내세요. 이 섹션은 향후 버전에서 제거될 예정입니다.";return{c(){b=i("p"),b.innerHTML=y},l(T){b=p(T,"P",{"data-svelte-h":!0}),o(b)!=="svelte-xr1ro1"&&(b.innerHTML=y)},m(T,ft){s(T,b,ft)},p:Le,d(T){T&&l(b)}}}function Ae(Mt){let b,y,T,ft,h,Tt,w,ce="🤗 Transformers 모델을 제품 환경에서 배포하기 위해서는 모델을 직렬화된 형식으로 내보내고 특정 런타임과 하드웨어에서 로드하고 실행할 수 있으면 유용합니다.",gt,J,fe="🤗 Optimum은 Transformers의 확장으로, PyTorch 또는 TensorFlow에서 모델을 ONNX와 TFLite와 같은 직렬화된 형식으로 내보낼 수 있도록 하는 <code>exporters</code> 모듈을 통해 제공됩니다. 🤗 Optimum은 또한 성능 최적화 도구 세트를 제공하여 특정 하드웨어에서 모델을 훈련하고 실행할 때 최대 효율성을 달성할 수 있습니다.",yt,$,de='이 안내서는 🤗 Optimum을 사용하여 🤗 Transformers 모델을 ONNX로 내보내는 방법을 보여줍니다. TFLite로 모델을 내보내는 안내서는 <a href="tflite">TFLite로 내보내기 페이지</a>를 참조하세요.',ht,x,wt,N,be='<a href="http://onnx.ai" rel="nofollow">ONNX (Open Neural Network eXchange)</a>는 PyTorch와 TensorFlow를 포함한 다양한 프레임워크에서 심층 학습 모델을 나타내는 데 사용되는 공통 연산자 세트와 공통 파일 형식을 정의하는 오픈 표준입니다. 모델이 ONNX 형식으로 내보내지면 이러한 연산자를 사용하여 신경망을 통해 데이터가 흐르는 흐름을 나타내는 계산 그래프(일반적으로 <em>중간 표현</em>이라고 함)가 구성됩니다.',Jt,X,Me="표준화된 연산자와 데이터 유형을 가진 그래프를 노출함으로써, ONNX는 프레임워크 간에 쉽게 전환할 수 있습니다. 예를 들어, PyTorch에서 훈련된 모델을 ONNX 형식으로 내보내고 TensorFlow에서 가져올 수 있습니다(그 반대도 가능합니다).",$t,j,Te="ONNX 형식으로 내보낸 모델은 다음과 같이 사용할 수 있습니다:",xt,U,ge='<li><a href="https://huggingface.co/docs/optimum/onnxruntime/usage_guides/optimization" rel="nofollow">그래프 최적화</a> 및 <a href="https://huggingface.co/docs/optimum/onnxruntime/usage_guides/quantization" rel="nofollow">양자화</a>와 같은 기법을 사용하여 추론을 위해 최적화됩니다.</li> <li>ONNX Runtime을 통해 실행할 수 있습니다. <a href="https://huggingface.co/docs/optimum/onnxruntime/package_reference/modeling_ort" rel="nofollow"><code>ORTModelForXXX</code> 클래스들</a>을 통해 동일한 <code>AutoModel</code> API를 따릅니다. 이 API는 🤗 Transformers에서 사용하는 것과 동일합니다.</li> <li><a href="https://huggingface.co/docs/optimum/main/en/onnxruntime/usage_guides/pipelines" rel="nofollow">최적화된 추론 파이프라인</a>을 사용할 수 있습니다. 이는 🤗 Transformers의 <code>pipeline()</code> 함수와 동일한 API를 가지고 있습니다.</li>',Nt,C,ye="🤗 Optimum은 구성 객체를 활용하여 ONNX 내보내기를 지원합니다. 이러한 구성 객체는 여러 모델 아키텍처에 대해 미리 준비되어 있으며 다른 아키텍처에 쉽게 확장할 수 있도록 설계되었습니다.",Xt,Z,he='미리 준비된 구성 목록은 <a href="https://huggingface.co/docs/optimum/exporters/onnx/overview" rel="nofollow">🤗 Optimum 문서</a>를 참조하세요.',jt,v,we="🤗 Transformers 모델을 ONNX로 내보내는 두 가지 방법이 있습니다. 여기에서 두 가지 방법을 모두 보여줍니다:",Ut,_,Je="<li>🤗 Optimum을 사용하여 CLI로 내보내기</li> <li><code>optimum.onnxruntime</code>을 사용하여 🤗 Optimum으로 ONNX로 내보내기</li>",Ct,W,Zt,R,$e="🤗 Transformers 모델을 ONNX로 내보내려면 먼저 추가 종속성을 설치하세요:",vt,k,_t,B,xe='사용 가능한 모든 인수를 확인하려면 <a href="https://huggingface.co/docs/optimum/exporters/onnx/usage_guides/export_a_model#exporting-a-model-to-onnx-using-the-cli" rel="nofollow">🤗 Optimum 문서</a>를 참조하거나 명령줄에서 도움말을 보세요.',Wt,G,Rt,V,Ne="예를 들어, 🤗 Hub에서 <code>distilbert/distilbert-base-uncased-distilled-squad</code>와 같은 모델의 체크포인트를 내보내려면 다음 명령을 실행하세요:",kt,I,Bt,H,Xe="위와 같이 진행 상황을 나타내는 로그가 표시되고 결과인 <code>model.onnx</code>가 저장된 위치가 표시됩니다.",Gt,F,Vt,z,je='위의 예제는 🤗 Hub에서 체크포인트를 내보내는 것을 설명합니다. 로컬 모델을 내보낼 때에는 모델의 가중치와 토크나이저 파일을 동일한 디렉토리(<code>local_path</code>)에 저장했는지 확인하세요. CLI를 사용할 때에는 🤗 Hub의 체크포인트 이름 대신 <code>model</code> 인수에 <code>local_path</code>를 전달하고 <code>--task</code> 인수를 제공하세요. 지원되는 작업의 목록은 <a href="https://huggingface.co/docs/optimum/exporters/task_manager" rel="nofollow">🤗 Optimum 문서</a>를 참조하세요. <code>task</code> 인수가 제공되지 않으면 작업에 특화된 헤드 없이 모델 아키텍처로 기본 설정됩니다.',It,L,Ht,Q,Ue='그 결과로 생성된 <code>model.onnx</code> 파일은 ONNX 표준을 지원하는 많은 <a href="https://onnx.ai/supported-tools.html#deployModel" rel="nofollow">가속기</a> 중 하나에서 실행할 수 있습니다. 예를 들어, <a href="https://onnxruntime.ai/" rel="nofollow">ONNX Runtime</a>을 사용하여 모델을 로드하고 실행할 수 있습니다:',Ft,O,zt,Y,Ce='Hub의 TensorFlow 체크포인트에 대해서도 동일한 프로세스가 적용됩니다. 예를 들어, <a href="https://huggingface.co/keras-io" rel="nofollow">Keras organization</a>에서 순수한 TensorFlow 체크포인트를 내보내는 방법은 다음과 같습니다:',Lt,E,Qt,S,Ot,q,Ze="CLI 대신에 <code>optimum.onnxruntime</code>을 사용하여 프로그래밍 방식으로 🤗 Transformers 모델을 ONNX로 내보낼 수도 있습니다. 다음과 같이 진행하세요:",Yt,P,Et,A,St,K,ve='현재 내보낼 수 없는 모델을 지원하기 위해 기여하려면, 먼저 <a href="https://huggingface.co/docs/optimum/exporters/onnx/overview" rel="nofollow"><code>optimum.exporters.onnx</code></a>에서 지원되는지 확인한 후 지원되지 않는 경우에는 <a href="https://huggingface.co/docs/optimum/exporters/onnx/usage_guides/contribute" rel="nofollow">🤗 Optimum에 기여</a>하세요.',qt,D,Pt,g,At,tt,_e="🤗 Transformers 모델을 ONNX로 내보내려면 추가 종속성을 설치하세요:",Kt,et,Dt,lt,We="<code>transformers.onnx</code> 패키지를 Python 모듈로 사용하여 준비된 구성을 사용하여 체크포인트를 내보냅니다:",te,st,ee,nt,Re="이렇게 하면 <code>--model</code> 인수에 정의된 체크포인트의 ONNX 그래프가 내보내집니다. 🤗 Hub에서 제공하는 체크포인트나 로컬에 저장된 체크포인트를 전달할 수 있습니다. 결과로 생성된 <code>model.onnx</code> 파일은 ONNX 표준을 지원하는 많은 가속기 중 하나에서 실행할 수 있습니다. 예를 들어, 다음과 같이 ONNX Runtime을 사용하여 모델을 로드하고 실행할 수 있습니다:",le,at,se,it,ke="필요한 출력 이름(예: <code>[&quot;last_hidden_state&quot;]</code>)은 각 모델의 ONNX 구성을 확인하여 얻을 수 있습니다. 예를 들어, DistilBERT의 경우 다음과 같습니다:",ne,pt,ae,ot,Be="Hub의 TensorFlow 체크포인트에 대해서도 동일한 프로세스가 적용됩니다. 예를 들어, 다음과 같이 순수한 TensorFlow 체크포인트를 내보냅니다:",ie,mt,pe,rt,Ge="로컬에 저장된 모델을 내보내려면 모델의 가중치 파일과 토크나이저 파일을 동일한 디렉토리에 저장한 다음, transformers.onnx 패키지의 —model 인수를 원하는 디렉토리로 지정하여 ONNX로 내보냅니다:",oe,ut,me,ct,re,bt,ue;return h=new dt({props:{title:"ONNX로 내보내기",local:"export-to-onnx",headingTag:"h1"}}),x=new dt({props:{title:"ONNX로 내보내기",local:"export-to-onnx",headingTag:"h2"}}),W=new dt({props:{title:"CLI를 사용하여 🤗 Transformers 모델을 ONNX로 내보내기",local:"exporting-a-transformers-model-to-onnx-with-cli",headingTag:"h3"}}),k=new M({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9wdGltdW0lNUJleHBvcnRlcnMlNUQ=",highlighted:"pip install optimum[exporters]",wrap:!1}}),G=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1oZWxw",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --<span class="hljs-built_in">help</span>',wrap:!1}}),I=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1tb2RlbCUyMGRpc3RpbGJlcnQlMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1kaXN0aWxsZWQtc3F1YWQlMjBkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZF9vbm54JTJG",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --model distilbert/distilbert-base-uncased-distilled-squad distilbert_base_uncased_squad_onnx/',wrap:!1}}),F=new M({props:{code:"VmFsaWRhdGluZyUyME9OTlglMjBtb2RlbCUyMGRpc3RpbGJlcnRfYmFzZV91bmNhc2VkX3NxdWFkX29ubnglMkZtb2RlbC5vbm54Li4uJTBBJTA5LSU1QiVFMiU5QyU5MyU1RCUyME9OTlglMjBtb2RlbCUyMG91dHB1dCUyMG5hbWVzJTIwbWF0Y2glMjByZWZlcmVuY2UlMjBtb2RlbCUyMChzdGFydF9sb2dpdHMlMkMlMjBlbmRfbG9naXRzKSUwQSUwOS0lMjBWYWxpZGF0aW5nJTIwT05OWCUyME1vZGVsJTIwb3V0cHV0JTIwJTIyc3RhcnRfbG9naXRzJTIyJTNBJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMCgyJTJDJTIwMTYpJTIwbWF0Y2hlcyUyMCgyJTJDJTIwMTYpJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMGFsbCUyMHZhbHVlcyUyMGNsb3NlJTIwKGF0b2wlM0ElMjAwLjAwMDEpJTBBJTA5LSUyMFZhbGlkYXRpbmclMjBPTk5YJTIwTW9kZWwlMjBvdXRwdXQlMjAlMjJlbmRfbG9naXRzJTIyJTNBJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMCgyJTJDJTIwMTYpJTIwbWF0Y2hlcyUyMCgyJTJDJTIwMTYpJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMGFsbCUyMHZhbHVlcyUyMGNsb3NlJTIwKGF0b2wlM0ElMjAwLjAwMDEpJTBBVGhlJTIwT05OWCUyMGV4cG9ydCUyMHN1Y2NlZWRlZCUyMGFuZCUyMHRoZSUyMGV4cG9ydGVkJTIwbW9kZWwlMjB3YXMlMjBzYXZlZCUyMGF0JTNBJTIwZGlzdGlsYmVydF9iYXNlX3VuY2FzZWRfc3F1YWRfb25ueA==",highlighted:`Validating ONNX model distilbert_base_uncased_squad_onnx/model.onnx...
-[✓] ONNX model output names match reference model (start_logits, end_logits)
- Validating ONNX Model output <span class="hljs-string">&quot;start_logits&quot;</span>:
-[✓] (2, 16) matches (2, 16)
-[✓] all values close (atol: 0.0001)
- Validating ONNX Model output <span class="hljs-string">&quot;end_logits&quot;</span>:
-[✓] (2, 16) matches (2, 16)
-[✓] all values close (atol: 0.0001)
The ONNX <span class="hljs-built_in">export</span> succeeded and the exported model was saved at: distilbert_base_uncased_squad_onnx`,wrap:!1}}),L=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1tb2RlbCUyMGxvY2FsX3BhdGglMjAtLXRhc2slMjBxdWVzdGlvbi1hbnN3ZXJpbmclMjBkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZF9vbm54JTJG",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --model local_path --task question-answering distilbert_base_uncased_squad_onnx/',wrap:!1}}),O=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEFmcm9tJTIwb3B0aW11bS5vbm54cnVudGltZSUyMGltcG9ydCUyME9SVE1vZGVsRm9yUXVlc3Rpb25BbnN3ZXJpbmclMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZF9vbm54JTIyKSUwQW1vZGVsJTIwJTNEJTIwT1JUTW9kZWxGb3JRdWVzdGlvbkFuc3dlcmluZy5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydF9iYXNlX3VuY2FzZWRfc3F1YWRfb25ueCUyMiklMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoJTIyV2hhdCUyMGFtJTIwSSUyMHVzaW5nJTNGJTIyJTJDJTIwJTIyVXNpbmclMjBEaXN0aWxCRVJUJTIwd2l0aCUyME9OTlglMjBSdW50aW1lISUyMiUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBb3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> optimum.onnxruntime <span class="hljs-keyword">import</span> ORTModelForQuestionAnswering
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;distilbert_base_uncased_squad_onnx&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = ORTModelForQuestionAnswering.from_pretrained(<span class="hljs-string">&quot;distilbert_base_uncased_squad_onnx&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = tokenizer(<span class="hljs-string">&quot;What am I using?&quot;</span>, <span class="hljs-string">&quot;Using DistilBERT with ONNX Runtime!&quot;</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>outputs = model(**inputs)`,wrap:!1}}),E=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1tb2RlbCUyMGtlcmFzLWlvJTJGdHJhbnNmb3JtZXJzLXFhJTIwZGlzdGlsYmVydF9iYXNlX2Nhc2VkX3NxdWFkX29ubnglMkY=",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --model keras-io/transformers-qa distilbert_base_cased_squad_onnx/',wrap:!1}}),S=new dt({props:{title:"optimum.onnxruntime 을 사용하여 🤗 Transformers 모델을 ONNX로 내보내기",local:"exporting-a-transformers-model-to-onnx-with-optimumonnxruntime",headingTag:"h3"}}),P=new M({props:{code:"ZnJvbSUyMG9wdGltdW0ub25ueHJ1bnRpbWUlMjBpbXBvcnQlMjBPUlRNb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUwQSUwQW1vZGVsX2NoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZCUyMiUwQXNhdmVfZGlyZWN0b3J5JTIwJTNEJTIwJTIyb25ueCUyRiUyMiUwQSUwQSUyMyUyMExvYWQlMjBhJTIwbW9kZWwlMjBmcm9tJTIwdHJhbnNmb3JtZXJzJTIwYW5kJTIwZXhwb3J0JTIwaXQlMjB0byUyME9OTlglMEFvcnRfbW9kZWwlMjAlM0QlMjBPUlRNb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2NoZWNrcG9pbnQlMkMlMjBleHBvcnQlM0RUcnVlKSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2NoZWNrcG9pbnQpJTBBJTBBJTIzJTIwU2F2ZSUyMHRoZSUyMG9ubnglMjBtb2RlbCUyMGFuZCUyMHRva2VuaXplciUwQW9ydF9tb2RlbC5zYXZlX3ByZXRyYWluZWQoc2F2ZV9kaXJlY3RvcnkpJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZChzYXZlX2RpcmVjdG9yeSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> optimum.onnxruntime <span class="hljs-keyword">import</span> ORTModelForSequenceClassification
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
<span class="hljs-meta">&gt;&gt;&gt; </span>model_checkpoint = <span class="hljs-string">&quot;distilbert_base_uncased_squad&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>save_directory = <span class="hljs-string">&quot;onnx/&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Load a model from transformers and export it to ONNX</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>ort_model = ORTModelForSequenceClassification.from_pretrained(model_checkpoint, export=<span class="hljs-literal">True</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Save the onnx model and tokenizer</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>ort_model.save_pretrained(save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.save_pretrained(save_directory)`,wrap:!1}}),A=new dt({props:{title:"지원되지 않는 아키텍처의 모델 내보내기",local:"exporting-a-model-for-an-unsupported-architecture",headingTag:"h3"}}),D=new dt({props:{title:"transformers.onnx 를 사용하여 모델 내보내기",local:"exporting-a-model-with-transformersonnx",headingTag:"h3"}}),g=new Se({props:{warning:!0,$$slots:{default:[Pe]},$$scope:{ctx:Mt}}}),et=new M({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRyYW5zZm9ybWVycyU1Qm9ubnglNUQ=",highlighted:"pip install transformers[onnx]",wrap:!1}}),st=new M({props:{code:"cHl0aG9uJTIwLW0lMjB0cmFuc2Zvcm1lcnMub25ueCUyMC0tbW9kZWwlM0RkaXN0aWxiZXJ0JTJGZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQlMjBvbm54JTJG",highlighted:"python -m transformers.onnx --model=distilbert/distilbert-base-uncased onnx/",wrap:!1}}),at=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEFmcm9tJTIwb25ueHJ1bnRpbWUlMjBpbXBvcnQlMjBJbmZlcmVuY2VTZXNzaW9uJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyKSUwQXNlc3Npb24lMjAlM0QlMjBJbmZlcmVuY2VTZXNzaW9uKCUyMm9ubnglMkZtb2RlbC5vbm54JTIyKSUwQSUyMyUyME9OTlglMjBSdW50aW1lJTIwZXhwZWN0cyUyME51bVB5JTIwYXJyYXlzJTIwYXMlMjBpbnB1dCUwQWlucHV0cyUyMCUzRCUyMHRva2VuaXplciglMjJVc2luZyUyMERpc3RpbEJFUlQlMjB3aXRoJTIwT05OWCUyMFJ1bnRpbWUhJTIyJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJucCUyMiklMEFvdXRwdXRzJTIwJTNEJTIwc2Vzc2lvbi5ydW4ob3V0cHV0X25hbWVzJTNEJTVCJTIybGFzdF9oaWRkZW5fc3RhdGUlMjIlNUQlMkMlMjBpbnB1dF9mZWVkJTNEZGljdChpbnB1dHMpKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> onnxruntime <span class="hljs-keyword">import</span> InferenceSession
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>session = InferenceSession(<span class="hljs-string">&quot;onnx/model.onnx&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># ONNX Runtime expects NumPy arrays as input</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = tokenizer(<span class="hljs-string">&quot;Using DistilBERT with ONNX Runtime!&quot;</span>, return_tensors=<span class="hljs-string">&quot;np&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>outputs = session.run(output_names=[<span class="hljs-string">&quot;last_hidden_state&quot;</span>], input_feed=<span class="hljs-built_in">dict</span>(inputs))`,wrap:!1}}),pt=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycy5tb2RlbHMuZGlzdGlsYmVydCUyMGltcG9ydCUyMERpc3RpbEJlcnRDb25maWclMkMlMjBEaXN0aWxCZXJ0T25ueENvbmZpZyUwQSUwQWNvbmZpZyUyMCUzRCUyMERpc3RpbEJlcnRDb25maWcoKSUwQW9ubnhfY29uZmlnJTIwJTNEJTIwRGlzdGlsQmVydE9ubnhDb25maWcoY29uZmlnKSUwQXByaW50KGxpc3Qob25ueF9jb25maWcub3V0cHV0cy5rZXlzKCkpKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers.models.distilbert <span class="hljs-keyword">import</span> DistilBertConfig, DistilBertOnnxConfig
<span class="hljs-meta">&gt;&gt;&gt; </span>config = DistilBertConfig()
<span class="hljs-meta">&gt;&gt;&gt; </span>onnx_config = DistilBertOnnxConfig(config)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(<span class="hljs-built_in">list</span>(onnx_config.outputs.keys()))
[<span class="hljs-string">&quot;last_hidden_state&quot;</span>]`,wrap:!1}}),mt=new M({props:{code:"cHl0aG9uJTIwLW0lMjB0cmFuc2Zvcm1lcnMub25ueCUyMC0tbW9kZWwlM0RrZXJhcy1pbyUyRnRyYW5zZm9ybWVycy1xYSUyMG9ubnglMkY=",highlighted:"python -m transformers.onnx --model=keras-io/transformers-qa onnx/",wrap:!1}}),ut=new M({props:{code:"cHl0aG9uJTIwLW0lMjB0cmFuc2Zvcm1lcnMub25ueCUyMC0tbW9kZWwlM0Rsb2NhbC1wdC1jaGVja3BvaW50JTIwb25ueCUyRg==",highlighted:"python -m transformers.onnx --model=local-pt-checkpoint onnx/",wrap:!1}}),ct=new qe({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/serialization.md"}}),{c(){b=i("meta"),y=n(),T=i("p"),ft=n(),m(h.$$.fragment),Tt=n(),w=i("p"),w.textContent=ce,gt=n(),J=i("p"),J.innerHTML=fe,yt=n(),$=i("p"),$.innerHTML=de,ht=n(),m(x.$$.fragment),wt=n(),N=i("p"),N.innerHTML=be,Jt=n(),X=i("p"),X.textContent=Me,$t=n(),j=i("p"),j.textContent=Te,xt=n(),U=i("ul"),U.innerHTML=ge,Nt=n(),C=i("p"),C.textContent=ye,Xt=n(),Z=i("p"),Z.innerHTML=he,jt=n(),v=i("p"),v.textContent=we,Ut=n(),_=i("ul"),_.innerHTML=Je,Ct=n(),m(W.$$.fragment),Zt=n(),R=i("p"),R.textContent=$e,vt=n(),m(k.$$.fragment),_t=n(),B=i("p"),B.innerHTML=xe,Wt=n(),m(G.$$.fragment),Rt=n(),V=i("p"),V.innerHTML=Ne,kt=n(),m(I.$$.fragment),Bt=n(),H=i("p"),H.innerHTML=Xe,Gt=n(),m(F.$$.fragment),Vt=n(),z=i("p"),z.innerHTML=je,It=n(),m(L.$$.fragment),Ht=n(),Q=i("p"),Q.innerHTML=Ue,Ft=n(),m(O.$$.fragment),zt=n(),Y=i("p"),Y.innerHTML=Ce,Lt=n(),m(E.$$.fragment),Qt=n(),m(S.$$.fragment),Ot=n(),q=i("p"),q.innerHTML=Ze,Yt=n(),m(P.$$.fragment),Et=n(),m(A.$$.fragment),St=n(),K=i("p"),K.innerHTML=ve,qt=n(),m(D.$$.fragment),Pt=n(),m(g.$$.fragment),At=n(),tt=i("p"),tt.textContent=_e,Kt=n(),m(et.$$.fragment),Dt=n(),lt=i("p"),lt.innerHTML=We,te=n(),m(st.$$.fragment),ee=n(),nt=i("p"),nt.innerHTML=Re,le=n(),m(at.$$.fragment),se=n(),it=i("p"),it.innerHTML=ke,ne=n(),m(pt.$$.fragment),ae=n(),ot=i("p"),ot.textContent=Be,ie=n(),m(mt.$$.fragment),pe=n(),rt=i("p"),rt.textContent=Ge,oe=n(),m(ut.$$.fragment),me=n(),m(ct.$$.fragment),re=n(),bt=i("p"),this.h()},l(t){const e=Ye("svelte-u9bgzb",document.head);b=p(e,"META",{name:!0,content:!0}),e.forEach(l),y=a(t),T=p(t,"P",{}),Ie(T).forEach(l),ft=a(t),r(h.$$.fragment,t),Tt=a(t),w=p(t,"P",{"data-svelte-h":!0}),o(w)!=="svelte-aze92"&&(w.textContent=ce),gt=a(t),J=p(t,"P",{"data-svelte-h":!0}),o(J)!=="svelte-3cx834"&&(J.innerHTML=fe),yt=a(t),$=p(t,"P",{"data-svelte-h":!0}),o($)!=="svelte-mb67vh"&&($.innerHTML=de),ht=a(t),r(x.$$.fragment,t),wt=a(t),N=p(t,"P",{"data-svelte-h":!0}),o(N)!=="svelte-1b2u1gc"&&(N.innerHTML=be),Jt=a(t),X=p(t,"P",{"data-svelte-h":!0}),o(X)!=="svelte-1glfzyz"&&(X.textContent=Me),$t=a(t),j=p(t,"P",{"data-svelte-h":!0}),o(j)!=="svelte-1573zuq"&&(j.textContent=Te),xt=a(t),U=p(t,"UL",{"data-svelte-h":!0}),o(U)!=="svelte-156rzm1"&&(U.innerHTML=ge),Nt=a(t),C=p(t,"P",{"data-svelte-h":!0}),o(C)!=="svelte-14j10fa"&&(C.textContent=ye),Xt=a(t),Z=p(t,"P",{"data-svelte-h":!0}),o(Z)!=="svelte-1kj3x7c"&&(Z.innerHTML=he),jt=a(t),v=p(t,"P",{"data-svelte-h":!0}),o(v)!=="svelte-1ivz9lg"&&(v.textContent=we),Ut=a(t),_=p(t,"UL",{"data-svelte-h":!0}),o(_)!=="svelte-6mp210"&&(_.innerHTML=Je),Ct=a(t),r(W.$$.fragment,t),Zt=a(t),R=p(t,"P",{"data-svelte-h":!0}),o(R)!=="svelte-1f07m0b"&&(R.textContent=$e),vt=a(t),r(k.$$.fragment,t),_t=a(t),B=p(t,"P",{"data-svelte-h":!0}),o(B)!=="svelte-52xcpg"&&(B.innerHTML=xe),Wt=a(t),r(G.$$.fragment,t),Rt=a(t),V=p(t,"P",{"data-svelte-h":!0}),o(V)!=="svelte-14l0cnq"&&(V.innerHTML=Ne),kt=a(t),r(I.$$.fragment,t),Bt=a(t),H=p(t,"P",{"data-svelte-h":!0}),o(H)!=="svelte-5tiubv"&&(H.innerHTML=Xe),Gt=a(t),r(F.$$.fragment,t),Vt=a(t),z=p(t,"P",{"data-svelte-h":!0}),o(z)!=="svelte-n4znt9"&&(z.innerHTML=je),It=a(t),r(L.$$.fragment,t),Ht=a(t),Q=p(t,"P",{"data-svelte-h":!0}),o(Q)!=="svelte-lnydei"&&(Q.innerHTML=Ue),Ft=a(t),r(O.$$.fragment,t),zt=a(t),Y=p(t,"P",{"data-svelte-h":!0}),o(Y)!=="svelte-srud4c"&&(Y.innerHTML=Ce),Lt=a(t),r(E.$$.fragment,t),Qt=a(t),r(S.$$.fragment,t),Ot=a(t),q=p(t,"P",{"data-svelte-h":!0}),o(q)!=="svelte-1c9bubw"&&(q.innerHTML=Ze),Yt=a(t),r(P.$$.fragment,t),Et=a(t),r(A.$$.fragment,t),St=a(t),K=p(t,"P",{"data-svelte-h":!0}),o(K)!=="svelte-si8xut"&&(K.innerHTML=ve),qt=a(t),r(D.$$.fragment,t),Pt=a(t),r(g.$$.fragment,t),At=a(t),tt=p(t,"P",{"data-svelte-h":!0}),o(tt)!=="svelte-10vc2cl"&&(tt.textContent=_e),Kt=a(t),r(et.$$.fragment,t),Dt=a(t),lt=p(t,"P",{"data-svelte-h":!0}),o(lt)!=="svelte-1spy8c0"&&(lt.innerHTML=We),te=a(t),r(st.$$.fragment,t),ee=a(t),nt=p(t,"P",{"data-svelte-h":!0}),o(nt)!=="svelte-aeykkq"&&(nt.innerHTML=Re),le=a(t),r(at.$$.fragment,t),se=a(t),it=p(t,"P",{"data-svelte-h":!0}),o(it)!=="svelte-1g467oj"&&(it.innerHTML=ke),ne=a(t),r(pt.$$.fragment,t),ae=a(t),ot=p(t,"P",{"data-svelte-h":!0}),o(ot)!=="svelte-1fschrn"&&(ot.textContent=Be),ie=a(t),r(mt.$$.fragment,t),pe=a(t),rt=p(t,"P",{"data-svelte-h":!0}),o(rt)!=="svelte-md25sr"&&(rt.textContent=Ge),oe=a(t),r(ut.$$.fragment,t),me=a(t),r(ct.$$.fragment,t),re=a(t),bt=p(t,"P",{}),Ie(bt).forEach(l),this.h()},h(){He(b,"name","hf:doc:metadata"),He(b,"content",Ke)},m(t,e){Ee(document.head,b),s(t,y,e),s(t,T,e),s(t,ft,e),u(h,t,e),s(t,Tt,e),s(t,w,e),s(t,gt,e),s(t,J,e),s(t,yt,e),s(t,$,e),s(t,ht,e),u(x,t,e),s(t,wt,e),s(t,N,e),s(t,Jt,e),s(t,X,e),s(t,$t,e),s(t,j,e),s(t,xt,e),s(t,U,e),s(t,Nt,e),s(t,C,e),s(t,Xt,e),s(t,Z,e),s(t,jt,e),s(t,v,e),s(t,Ut,e),s(t,_,e),s(t,Ct,e),u(W,t,e),s(t,Zt,e),s(t,R,e),s(t,vt,e),u(k,t,e),s(t,_t,e),s(t,B,e),s(t,Wt,e),u(G,t,e),s(t,Rt,e),s(t,V,e),s(t,kt,e),u(I,t,e),s(t,Bt,e),s(t,H,e),s(t,Gt,e),u(F,t,e),s(t,Vt,e),s(t,z,e),s(t,It,e),u(L,t,e),s(t,Ht,e),s(t,Q,e),s(t,Ft,e),u(O,t,e),s(t,zt,e),s(t,Y,e),s(t,Lt,e),u(E,t,e),s(t,Qt,e),u(S,t,e),s(t,Ot,e),s(t,q,e),s(t,Yt,e),u(P,t,e),s(t,Et,e),u(A,t,e),s(t,St,e),s(t,K,e),s(t,qt,e),u(D,t,e),s(t,Pt,e),u(g,t,e),s(t,At,e),s(t,tt,e),s(t,Kt,e),u(et,t,e),s(t,Dt,e),s(t,lt,e),s(t,te,e),u(st,t,e),s(t,ee,e),s(t,nt,e),s(t,le,e),u(at,t,e),s(t,se,e),s(t,it,e),s(t,ne,e),u(pt,t,e),s(t,ae,e),s(t,ot,e),s(t,ie,e),u(mt,t,e),s(t,pe,e),s(t,rt,e),s(t,oe,e),u(ut,t,e),s(t,me,e),u(ct,t,e),s(t,re,e),s(t,bt,e),ue=!0},p(t,[e]){const Ve={};e&2&&(Ve.$$scope={dirty:e,ctx:t}),g.$set(Ve)},i(t){ue||(c(h.$$.fragment,t),c(x.$$.fragment,t),c(W.$$.fragment,t),c(k.$$.fragment,t),c(G.$$.fragment,t),c(I.$$.fragment,t),c(F.$$.fragment,t),c(L.$$.fragment,t),c(O.$$.fragment,t),c(E.$$.fragment,t),c(S.$$.fragment,t),c(P.$$.fragment,t),c(A.$$.fragment,t),c(D.$$.fragment,t),c(g.$$.fragment,t),c(et.$$.fragment,t),c(st.$$.fragment,t),c(at.$$.fragment,t),c(pt.$$.fragment,t),c(mt.$$.fragment,t),c(ut.$$.fragment,t),c(ct.$$.fragment,t),ue=!0)},o(t){f(h.$$.fragment,t),f(x.$$.fragment,t),f(W.$$.fragment,t),f(k.$$.fragment,t),f(G.$$.fragment,t),f(I.$$.fragment,t),f(F.$$.fragment,t),f(L.$$.fragment,t),f(O.$$.fragment,t),f(E.$$.fragment,t),f(S.$$.fragment,t),f(P.$$.fragment,t),f(A.$$.fragment,t),f(D.$$.fragment,t),f(g.$$.fragment,t),f(et.$$.fragment,t),f(st.$$.fragment,t),f(at.$$.fragment,t),f(pt.$$.fragment,t),f(mt.$$.fragment,t),f(ut.$$.fragment,t),f(ct.$$.fragment,t),ue=!1},d(t){t&&(l(y),l(T),l(ft),l(Tt),l(w),l(gt),l(J),l(yt),l($),l(ht),l(wt),l(N),l(Jt),l(X),l($t),l(j),l(xt),l(U),l(Nt),l(C),l(Xt),l(Z),l(jt),l(v),l(Ut),l(_),l(Ct),l(Zt),l(R),l(vt),l(_t),l(B),l(Wt),l(Rt),l(V),l(kt),l(Bt),l(H),l(Gt),l(Vt),l(z),l(It),l(Ht),l(Q),l(Ft),l(zt),l(Y),l(Lt),l(Qt),l(Ot),l(q),l(Yt),l(Et),l(St),l(K),l(qt),l(Pt),l(At),l(tt),l(Kt),l(Dt),l(lt),l(te),l(ee),l(nt),l(le),l(se),l(it),l(ne),l(ae),l(ot),l(ie),l(pe),l(rt),l(oe),l(me),l(re),l(bt)),l(b),d(h,t),d(x,t),d(W,t),d(k,t),d(G,t),d(I,t),d(F,t),d(L,t),d(O,t),d(E,t),d(S,t),d(P,t),d(A,t),d(D,t),d(g,t),d(et,t),d(st,t),d(at,t),d(pt,t),d(mt,t),d(ut,t),d(ct,t)}}}const Ke='{"title":"ONNX로 내보내기","local":"export-to-onnx","sections":[{"title":"ONNX로 내보내기","local":"export-to-onnx","sections":[{"title":"CLI를 사용하여 🤗 Transformers 모델을 ONNX로 내보내기","local":"exporting-a-transformers-model-to-onnx-with-cli","sections":[],"depth":3},{"title":"optimum.onnxruntime 을 사용하여 🤗 Transformers 모델을 ONNX로 내보내기","local":"exporting-a-transformers-model-to-onnx-with-optimumonnxruntime","sections":[],"depth":3},{"title":"지원되지 않는 아키텍처의 모델 내보내기","local":"exporting-a-model-for-an-unsupported-architecture","sections":[],"depth":3},{"title":"transformers.onnx 를 사용하여 모델 내보내기","local":"exporting-a-model-with-transformersonnx","sections":[],"depth":3}],"depth":2}],"depth":1}';function De(Mt){return ze(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class al extends Qe{constructor(b){super(),Oe(this,b,De,Ae,Fe,{})}}export{al as component};

Xet Storage Details

Size:
28.3 kB
·
Xet hash:
400df72e9f80fbc3e877fc0414b1493384faaf50b8404b7a425deb74f98ef2da

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