import{s as he,o as be,n as z}from"../chunks/scheduler.bdbef820.js";import{S as je,i as _e,g as f,s as p,r as d,A as Me,h as u,f as e,c as i,j as ge,u as g,x as j,k as $e,y as ve,a as n,v as $,d as y,t as h,w as b}from"../chunks/index.33f81d56.js";import{T as Hs}from"../chunks/Tip.34194030.js";import{C as q}from"../chunks/CodeBlock.362b34a4.js";import{F as ye,M as Ht}from"../chunks/Markdown.03194dea.js";import{H as Q,E as Te}from"../chunks/EditOnGithub.a9246e21.js";function Ze(w){let a,c='configuration 파일을 딕셔너리로 저장하거나 사용자 정의 configuration 속성과 기본 configuration 속성의 차이점만 저장할 수도 있습니다! 자세한 내용은 <a href="main_classes/configuration">configuration</a> 문서를 참조하세요.';return{c(){a=f("p"),a.innerHTML=c},l(l){a=u(l,"P",{"data-svelte-h":!0}),j(a)!=="svelte-p4ht4o"&&(a.innerHTML=c)},m(l,o){n(l,a,o)},p:z,d(l){l&&e(a)}}}function we(w){let a,c="사용자 지정 configuration 속성을 모델에 가져옵니다:",l,o,_,M,C="이제 사전 학습된 가중치 대신 임의의 값을 가진 모델이 생성됩니다. 이 모델을 훈련하기 전까지는 유용하게 사용할 수 없습니다. 훈련은 비용과 시간이 많이 소요되는 프로세스입니다. 일반적으로 훈련에 필요한 리소스의 일부만 사용하면서 더 나은 결과를 더 빨리 얻으려면 사전 훈련된 모델을 사용하는 것이 좋습니다.",k,v,J='사전 학습된 모델을 <a href="/docs/transformers/main/ko/main_classes/model#transformers.PreTrainedModel.from_pretrained">from_pretrained()</a>로 생성합니다:',m,T,U,R,x="🤗 Transformers에서 제공한 모델의 사전 학습된 가중치를 사용하는 경우 기본 모델 configuration을 자동으로 불러옵니다. 그러나 원하는 경우 기본 모델 configuration 속성의 일부 또는 전부를 사용자 지정으로 바꿀 수 있습니다:",G,W,V;return o=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERpc3RpbEJlcnRNb2RlbCUwQSUwQW15X2NvbmZpZyUyMCUzRCUyMERpc3RpbEJlcnRDb25maWcuZnJvbV9wcmV0cmFpbmVkKCUyMi4lMkZ5b3VyX21vZGVsX3NhdmVfcGF0aCUyRmNvbmZpZy5qc29uJTIyKSUwQW1vZGVsJTIwJTNEJTIwRGlzdGlsQmVydE1vZGVsKG15X2NvbmZpZyk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DistilBertModel

<span class="hljs-meta">&gt;&gt;&gt; </span>my_config = DistilBertConfig.from_pretrained(<span class="hljs-string">&quot;./your_model_save_path/config.json&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = DistilBertModel(my_config)`,wrap:!1}}),T=new q({props:{code:"bW9kZWwlMjAlM0QlMjBEaXN0aWxCZXJ0TW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUyMmRpc3RpbGJlcnQlMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZCUyMik=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model = DistilBertModel.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)',wrap:!1}}),W=new q({props:{code:"bW9kZWwlMjAlM0QlMjBEaXN0aWxCZXJ0TW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUyMmRpc3RpbGJlcnQlMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZCUyMiUyQyUyMGNvbmZpZyUzRG15X2NvbmZpZyk=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model = DistilBertModel.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>, config=my_config)',wrap:!1}}),{c(){a=f("p"),a.textContent=c,l=p(),d(o.$$.fragment),_=p(),M=f("p"),M.textContent=C,k=p(),v=f("p"),v.innerHTML=J,m=p(),d(T.$$.fragment),U=p(),R=f("p"),R.textContent=x,G=p(),d(W.$$.fragment)},l(r){a=u(r,"P",{"data-svelte-h":!0}),j(a)!=="svelte-14tvdkn"&&(a.textContent=c),l=i(r),g(o.$$.fragment,r),_=i(r),M=u(r,"P",{"data-svelte-h":!0}),j(M)!=="svelte-1x90d88"&&(M.textContent=C),k=i(r),v=u(r,"P",{"data-svelte-h":!0}),j(v)!=="svelte-hbbf0e"&&(v.innerHTML=J),m=i(r),g(T.$$.fragment,r),U=i(r),R=u(r,"P",{"data-svelte-h":!0}),j(R)!=="svelte-yuz877"&&(R.textContent=x),G=i(r),g(W.$$.fragment,r)},m(r,Z){n(r,a,Z),n(r,l,Z),$(o,r,Z),n(r,_,Z),n(r,M,Z),n(r,k,Z),n(r,v,Z),n(r,m,Z),$(T,r,Z),n(r,U,Z),n(r,R,Z),n(r,G,Z),$(W,r,Z),V=!0},p:z,i(r){V||(y(o.$$.fragment,r),y(T.$$.fragment,r),y(W.$$.fragment,r),V=!0)},o(r){h(o.$$.fragment,r),h(T.$$.fragment,r),h(W.$$.fragment,r),V=!1},d(r){r&&(e(a),e(l),e(_),e(M),e(k),e(v),e(m),e(U),e(R),e(G)),b(o,r),b(T,r),b(W,r)}}}function qe(w){let a,c;return a=new Ht({props:{$$slots:{default:[we]},$$scope:{ctx:w}}}),{c(){d(a.$$.fragment)},l(l){g(a.$$.fragment,l)},m(l,o){$(a,l,o),c=!0},p(l,o){const _={};o&2&&(_.$$scope={dirty:o,ctx:l}),a.$set(_)},i(l){c||(y(a.$$.fragment,l),c=!0)},o(l){h(a.$$.fragment,l),c=!1},d(l){b(a,l)}}}function Je(w){let a,c="사용자 지정 configuration 속성을 모델에 불러옵니다:",l,o,_,M,C="이제 사전 학습된 가중치 대신 임의의 값을 가진 모델이 생성됩니다. 이 모델을 훈련하기 전까지는 유용하게 사용할 수 없습니다. 훈련은 비용과 시간이 많이 소요되는 프로세스입니다. 일반적으로 훈련에 필요한 리소스의 일부만 사용하면서 더 나은 결과를 더 빨리 얻으려면 사전 훈련된 모델을 사용하는 것이 좋습니다.",k,v,J='사전 학습된 모델을 <a href="/docs/transformers/main/ko/main_classes/model#transformers.TFPreTrainedModel.from_pretrained">from_pretrained()</a>로 생성합니다:',m,T,U,R,x="🤗 Transformers에서 제공한 모델의 사전 학습된 가중치를 사용하는 경우 기본 모델 configuration을 자동으로 불러옵니다. 그러나 원하는 경우 기본 모델 configuration 속성의 일부 또는 전부를 사용자 지정으로 바꿀 수 있습니다:",G,W,V;return o=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGRGlzdGlsQmVydE1vZGVsJTBBJTBBbXlfY29uZmlnJTIwJTNEJTIwRGlzdGlsQmVydENvbmZpZy5mcm9tX3ByZXRyYWluZWQoJTIyLiUyRnlvdXJfbW9kZWxfc2F2ZV9wYXRoJTJGbXlfY29uZmlnLmpzb24lMjIpJTBBdGZfbW9kZWwlMjAlM0QlMjBURkRpc3RpbEJlcnRNb2RlbChteV9jb25maWcp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFDistilBertModel

<span class="hljs-meta">&gt;&gt;&gt; </span>my_config = DistilBertConfig.from_pretrained(<span class="hljs-string">&quot;./your_model_save_path/my_config.json&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertModel(my_config)`,wrap:!1}}),T=new q({props:{code:"dGZfbW9kZWwlMjAlM0QlMjBURkRpc3RpbEJlcnRNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertModel.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)',wrap:!1}}),W=new q({props:{code:"dGZfbW9kZWwlMjAlM0QlMjBURkRpc3RpbEJlcnRNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyJTJDJTIwY29uZmlnJTNEbXlfY29uZmlnKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertModel.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>, config=my_config)',wrap:!1}}),{c(){a=f("p"),a.textContent=c,l=p(),d(o.$$.fragment),_=p(),M=f("p"),M.textContent=C,k=p(),v=f("p"),v.innerHTML=J,m=p(),d(T.$$.fragment),U=p(),R=f("p"),R.textContent=x,G=p(),d(W.$$.fragment)},l(r){a=u(r,"P",{"data-svelte-h":!0}),j(a)!=="svelte-1jf8wr"&&(a.textContent=c),l=i(r),g(o.$$.fragment,r),_=i(r),M=u(r,"P",{"data-svelte-h":!0}),j(M)!=="svelte-1x90d88"&&(M.textContent=C),k=i(r),v=u(r,"P",{"data-svelte-h":!0}),j(v)!=="svelte-x9rqi8"&&(v.innerHTML=J),m=i(r),g(T.$$.fragment,r),U=i(r),R=u(r,"P",{"data-svelte-h":!0}),j(R)!=="svelte-yuz877"&&(R.textContent=x),G=i(r),g(W.$$.fragment,r)},m(r,Z){n(r,a,Z),n(r,l,Z),$(o,r,Z),n(r,_,Z),n(r,M,Z),n(r,k,Z),n(r,v,Z),n(r,m,Z),$(T,r,Z),n(r,U,Z),n(r,R,Z),n(r,G,Z),$(W,r,Z),V=!0},p:z,i(r){V||(y(o.$$.fragment,r),y(T.$$.fragment,r),y(W.$$.fragment,r),V=!0)},o(r){h(o.$$.fragment,r),h(T.$$.fragment,r),h(W.$$.fragment,r),V=!1},d(r){r&&(e(a),e(l),e(_),e(M),e(k),e(v),e(m),e(U),e(R),e(G)),b(o,r),b(T,r),b(W,r)}}}function ke(w){let a,c;return a=new Ht({props:{$$slots:{default:[Je]},$$scope:{ctx:w}}}),{c(){d(a.$$.fragment)},l(l){g(a.$$.fragment,l)},m(l,o){$(a,l,o),c=!0},p(l,o){const _={};o&2&&(_.$$scope={dirty:o,ctx:l}),a.$set(_)},i(l){c||(y(a.$$.fragment,l),c=!0)},o(l){h(a.$$.fragment,l),c=!1},d(l){b(a,l)}}}function Re(w){let a,c="예를 들어, <code>DistilBertForSequenceClassification</code>은 시퀀스 분류 헤드가 있는 기본 DistilBERT 모델입니다. 시퀀스 분류 헤드는 풀링된 출력 위에 있는 선형 레이어입니다.",l,o,_,M,C="다른 모델 헤드로 전환하여 이 체크포인트를 다른 작업에 쉽게 재사용할 수 있습니다. 질의응답 작업의 경우, <code>DistilBertForQuestionAnswering</code> 모델 헤드를 사용할 수 있습니다. 질의응답 헤드는 숨겨진 상태 출력 위에 선형 레이어가 있다는 점을 제외하면 시퀀스 분류 헤드와 유사합니다.",k,v,J;return o=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERpc3RpbEJlcnRGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uJTBBJTBBbW9kZWwlMjAlM0QlMjBEaXN0aWxCZXJ0Rm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DistilBertForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model = DistilBertForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)`,wrap:!1}}),v=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERpc3RpbEJlcnRGb3JRdWVzdGlvbkFuc3dlcmluZyUwQSUwQW1vZGVsJTIwJTNEJTIwRGlzdGlsQmVydEZvclF1ZXN0aW9uQW5zd2VyaW5nLmZyb21fcHJldHJhaW5lZCglMjJkaXN0aWxiZXJ0JTJGZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQlMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DistilBertForQuestionAnswering

<span class="hljs-meta">&gt;&gt;&gt; </span>model = DistilBertForQuestionAnswering.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)`,wrap:!1}}),{c(){a=f("p"),a.innerHTML=c,l=p(),d(o.$$.fragment),_=p(),M=f("p"),M.innerHTML=C,k=p(),d(v.$$.fragment)},l(m){a=u(m,"P",{"data-svelte-h":!0}),j(a)!=="svelte-1d1i7tu"&&(a.innerHTML=c),l=i(m),g(o.$$.fragment,m),_=i(m),M=u(m,"P",{"data-svelte-h":!0}),j(M)!=="svelte-127ugzm"&&(M.innerHTML=C),k=i(m),g(v.$$.fragment,m)},m(m,T){n(m,a,T),n(m,l,T),$(o,m,T),n(m,_,T),n(m,M,T),n(m,k,T),$(v,m,T),J=!0},p:z,i(m){J||(y(o.$$.fragment,m),y(v.$$.fragment,m),J=!0)},o(m){h(o.$$.fragment,m),h(v.$$.fragment,m),J=!1},d(m){m&&(e(a),e(l),e(_),e(M),e(k)),b(o,m),b(v,m)}}}function We(w){let a,c;return a=new Ht({props:{$$slots:{default:[Re]},$$scope:{ctx:w}}}),{c(){d(a.$$.fragment)},l(l){g(a.$$.fragment,l)},m(l,o){$(a,l,o),c=!0},p(l,o){const _={};o&2&&(_.$$scope={dirty:o,ctx:l}),a.$set(_)},i(l){c||(y(a.$$.fragment,l),c=!0)},o(l){h(a.$$.fragment,l),c=!1},d(l){b(a,l)}}}function Ce(w){let a,c="예를 들어, <code>TFDistilBertForSequenceClassification</code>은 시퀀스 분류 헤드가 있는 기본 DistilBERT 모델입니다. 시퀀스 분류 헤드는 풀링된 출력 위에 있는 선형 레이어입니다.",l,o,_,M,C="다른 모델 헤드로 전환하여 이 체크포인트를 다른 작업에 쉽게 재사용할 수 있습니다. 질의응답 작업의 경우, <code>TFDistilBertForQuestionAnswering</code> 모델 헤드를 사용할 수 있습니다. 질의응답 헤드는 숨겨진 상태 출력 위에 선형 레이어가 있다는 점을 제외하면 시퀀스 분류 헤드와 유사합니다.",k,v,J;return o=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGRGlzdGlsQmVydEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEF0Zl9tb2RlbCUyMCUzRCUyMFRGRGlzdGlsQmVydEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKCUyMmRpc3RpbGJlcnQlMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZCUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFDistilBertForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)`,wrap:!1}}),v=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGRGlzdGlsQmVydEZvclF1ZXN0aW9uQW5zd2VyaW5nJTBBJTBBdGZfbW9kZWwlMjAlM0QlMjBURkRpc3RpbEJlcnRGb3JRdWVzdGlvbkFuc3dlcmluZy5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFDistilBertForQuestionAnswering

<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertForQuestionAnswering.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)`,wrap:!1}}),{c(){a=f("p"),a.innerHTML=c,l=p(),d(o.$$.fragment),_=p(),M=f("p"),M.innerHTML=C,k=p(),d(v.$$.fragment)},l(m){a=u(m,"P",{"data-svelte-h":!0}),j(a)!=="svelte-io5rj8"&&(a.innerHTML=c),l=i(m),g(o.$$.fragment,m),_=i(m),M=u(m,"P",{"data-svelte-h":!0}),j(M)!=="svelte-87qals"&&(M.innerHTML=C),k=i(m),g(v.$$.fragment,m)},m(m,T){n(m,a,T),n(m,l,T),$(o,m,T),n(m,_,T),n(m,M,T),n(m,k,T),$(v,m,T),J=!0},p:z,i(m){J||(y(o.$$.fragment,m),y(v.$$.fragment,m),J=!0)},o(m){h(o.$$.fragment,m),h(v.$$.fragment,m),J=!1},d(m){m&&(e(a),e(l),e(_),e(M),e(k)),b(o,m),b(v,m)}}}function Ue(w){let a,c;return a=new Ht({props:{$$slots:{default:[Ce]},$$scope:{ctx:w}}}),{c(){d(a.$$.fragment)},l(l){g(a.$$.fragment,l)},m(l,o){$(a,l,o),c=!0},p(l,o){const _={};o&2&&(_.$$scope={dirty:o,ctx:l}),a.$set(_)},i(l){c||(y(a.$$.fragment,l),c=!0)},o(l){h(a.$$.fragment,l),c=!1},d(l){b(a,l)}}}function Ve(w){let a,c='모든 모델이 빠른 토크나이저를 지원하는 것은 아닙니다. 이 <a href="index#supported-frameworks">표</a>에서 모델의 빠른 토크나이저 지원 여부를 확인하세요.';return{c(){a=f("p"),a.innerHTML=c},l(l){a=u(l,"P",{"data-svelte-h":!0}),j(a)!=="svelte-w2xdht"&&(a.innerHTML=c)},m(l,o){n(l,a,o)},p:z,d(l){l&&e(a)}}}function xe(w){let a,c='<a href="/docs/transformers/main/ko/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>는 기본적으로 빠른 토크나이저를 가져오려고 합니다. 이 동작을 비활성화하려면 <code>from_pretrained</code>에서 <code>use_fast=False</code>를 설정하면 됩니다.';return{c(){a=f("p"),a.innerHTML=c},l(l){a=u(l,"P",{"data-svelte-h":!0}),j(a)!=="svelte-1dquxch"&&(a.innerHTML=c)},m(l,o){n(l,a,o)},p:z,d(l){l&&e(a)}}}function Ge(w){let a,c="사용자 지정을 원하지 않는 경우 <code>from_pretrained</code> 메소드를 사용하여 모델의 기본 이미지 프로세서 매개변수를 불러오면 됩니다.";return{c(){a=f("p"),a.innerHTML=c},l(l){a=u(l,"P",{"data-svelte-h":!0}),j(a)!=="svelte-f8vs2z"&&(a.innerHTML=c)},m(l,o){n(l,a,o)},p:z,d(l){l&&e(a)}}}function ze(w){let a,c="사용자 지정이 필요하지 않은 경우 <code>from_pretrained</code> 메소드를 사용하여 모델의 기본 특성 추출기 ㅁ개변수를 불러 오면 됩니다.";return{c(){a=f("p"),a.innerHTML=c},l(l){a=u(l,"P",{"data-svelte-h":!0}),j(a)!=="svelte-vnhffe"&&(a.innerHTML=c)},m(l,o){n(l,a,o)},p:z,d(l){l&&e(a)}}}function He(w){let a,c,l,o,_,M,C,k='<a href="model_doc/auto"><code>AutoClass</code></a>는 모델 아키텍처를 자동으로 추론하고 미리 학습된 configuration과 가중치를 다운로드합니다. 일반적으로 체크포인트에 구애받지 않는 코드를 생성하려면 <code>AutoClass</code>를 사용하는 것이 좋습니다. 하지만 특정 모델 파라미터를 보다 세밀하게 제어하고자 하는 사용자는 몇 가지 기본 클래스만으로 커스텀 🤗 Transformers 모델을 생성할 수 있습니다. 이는 🤗 Transformers 모델을 연구, 교육 또는 실험하는 데 관심이 있는 모든 사용자에게 특히 유용할 수 있습니다. 이 가이드에서는 ‘AutoClass’를 사용하지 않고 커스텀 모델을 만드는 방법에 대해 알아보겠습니다:',v,J,m="<li>모델 configuration을 가져오고 사용자 지정합니다.</li> <li>모델 아키텍처를 생성합니다.</li> <li>텍스트에 사용할 느리거나 빠른 토큰화기를 만듭니다.</li> <li>비전 작업을 위한 이미지 프로세서를 생성합니다.</li> <li>오디오 작업을 위한 특성 추출기를 생성합니다.</li> <li>멀티모달 작업용 프로세서를 생성합니다.</li>",T,U,R,x,G='<a href="main_classes/configuration">configuration</a>은 모델의 특정 속성을 나타냅니다. 각 모델 구성에는 서로 다른 속성이 있습니다. 예를 들어, 모든 NLP 모델에는 <code>hidden_size</code>, <code>num_attention_heads</code>, <code>num_hidden_layers</code> 및 <code>vocab_size</code> 속성이 공통으로 있습니다. 이러한 속성은 모델을 구성할 attention heads 또는 hidden layers의 수를 지정합니다.',W,V,r='<a href="model_doc/distilbert">DistilBERT</a> 속성을 검사하기 위해 <code>DistilBertConfig</code>에 접근하여 자세히 살펴봅니다:',Z,N,Fs,P,Ft="<code>DistilBertConfig</code>는 기본 <code>DistilBertModel</code>을 빌드하는 데 사용되는 모든 기본 속성을 표시합니다. 모든 속성은 커스터마이징이 가능하므로 실험을 위한 공간을 만들 수 있습니다. 예를 들어 기본 모델을 다음과 같이 커스터마이즈할 수 있습니다:",Xs,I,Xt="<li><code>activation</code> 파라미터로 다른 활성화 함수를 사용해 보세요.</li> <li><code>attention_dropout</code> 파라미터를 사용하여 어텐션 확률에 더 높은 드롭아웃 비율을 사용하세요.</li>",Bs,D,Es,S,Bt='사전 학습된 모델 속성은 <a href="/docs/transformers/main/ko/main_classes/configuration#transformers.PretrainedConfig.from_pretrained">from_pretrained()</a> 함수에서 수정할 수 있습니다:',Ys,A,Ls,K,Et='모델 구성이 만족스러우면 <a href="/docs/transformers/main/ko/main_classes/configuration#transformers.PretrainedConfig.save_pretrained">save_pretrained()</a>로 저장할 수 있습니다. 설정 파일은 지정된 작업 경로에 JSON 파일로 저장됩니다:',Qs,O,Ns,ss,Yt='configuration 파일을 재사용하려면 <a href="/docs/transformers/main/ko/main_classes/configuration#transformers.PretrainedConfig.from_pretrained">from_pretrained()</a>를 사용하여 가져오세요:',Ps,ts,Is,H,Ds,es,Ss,ns,Lt='다음 단계는 <a href="main_classes/models">모델(model)</a>을 만드는 것입니다. 느슨하게 아키텍처라고도 불리는 모델은 각 계층이 수행하는 동작과 발생하는 작업을 정의합니다. configuration의 <code>num_hidden_layers</code>와 같은 속성은 아키텍처를 정의하는 데 사용됩니다. 모든 모델은 기본 클래스 <a href="/docs/transformers/main/ko/main_classes/model#transformers.PreTrainedModel">PreTrainedModel</a>과 입력 임베딩 크기 조정 및 셀프 어텐션 헤드 가지 치기와 같은 몇 가지 일반적인 메소드를 공유합니다. 또한 모든 모델은 <a href="https://pytorch.org/docs/stable/generated/torch.nn.Module.html" rel="nofollow"><code>torch.nn.Module</code></a>, <a href="https://www.tensorflow.org/api_docs/python/tf/keras/Model" rel="nofollow"><code>tf.keras.Model</code></a> 또는 <a href="https://flax.readthedocs.io/en/latest/api_reference/flax.linen/module.html" rel="nofollow"><code>flax.linen.Module</code></a>의 서브클래스이기도 합니다. 즉, 모델은 각 프레임워크의 사용법과 호환됩니다.',As,F,Ks,as,Os,ls,Qt="이 시점에서 <em>은닉 상태(hidden state)</em>를 출력하는 기본 DistilBERT 모델을 갖게 됩니다. 은닉 상태는 최종 출력을 생성하기 위해 모델 헤드에 입력으로 전달됩니다. 🤗 Transformers는 모델이 해당 작업을 지원하는 한 각 작업마다 다른 모델 헤드를 제공합니다(즉, 번역과 같은 시퀀스 간 작업에는 DistilBERT를 사용할 수 없음).",st,X,tt,rs,et,ps,Nt='텍스트 데이터에 모델을 사용하기 전에 마지막으로 필요한 기본 클래스는 원시 텍스트를 텐서로 변환하는 <a href="main_classes/tokenizer">토크나이저</a>입니다. 🤗 Transformers에 사용할 수 있는 토크나이저는 두 가지 유형이 있습니다:',nt,is,Pt=`<li><code>PreTrainedTokenizer</code>: 파이썬으로 구현된 토크나이저입니다.</li> <li><code>PreTrainedTokenizerFast</code>: Rust 기반 <a href="https://huggingface.co/docs/tokenizers/python/latest/" rel="nofollow">🤗 Tokenizer</a> 라이브러리로 만들어진 토크나이저입니다. 이 토크나이저는 Rust로 구현되어 배치 토큰화에서 특히 빠릅니다. 빠른 토크나이저는 토큰을 원래 단어나 문자에 매핑하는 <em>오프셋 매핑</em>과 같은 추가 메소드도 제공합니다.
두 토크나이저 모두 인코딩 및 디코딩, 새 토큰 추가, 특수 토큰 관리와 같은 일반적인 방법을 지원합니다.</li>`,at,B,lt,os,It="토크나이저를 직접 학습한 경우, <em>어휘(vocabulary)</em> 파일에서 토크나이저를 만들 수 있습니다:",rt,ms,pt,cs,Dt="사용자 지정 토크나이저의 어휘는 사전 학습된 모델의 토크나이저에서 생성된 어휘와 다를 수 있다는 점을 기억하는 것이 중요합니다. 사전 학습된 모델을 사용하는 경우 사전 학습된 모델의 어휘를 사용해야 하며, 그렇지 않으면 입력이 의미를 갖지 못합니다. <code>DistilBertTokenizer</code> 클래스를 사용하여 사전 학습된 모델의 어휘로 토크나이저를 생성합니다:",it,fs,ot,us,St="<code>DistilBertTokenizerFast</code> 클래스로 빠른 토크나이저를 생성합니다:",mt,ds,ct,E,ft,gs,ut,$s,At='이미지 프로세서(image processor)는 비전 입력을 처리합니다. 기본 <a href="/docs/transformers/main/ko/internal/image_processing_utils#transformers.ImageProcessingMixin">ImageProcessingMixin</a> 클래스에서 상속합니다.',dt,ys,Kt='사용하려면 사용 중인 모델과 연결된 이미지 프로세서를 생성합니다. 예를 들어, 이미지 분류에 <a href="model_doc/vit">ViT</a>를 사용하는 경우 기본 <a href="/docs/transformers/main/ko/model_doc/vit#transformers.ViTImageProcessor">ViTImageProcessor</a>를 생성합니다:',gt,hs,$t,Y,yt,bs,Ot='사용자 지정 이미지 프로세서를 생성하려면 <a href="/docs/transformers/main/ko/model_doc/vit#transformers.ViTImageProcessor">ViTImageProcessor</a> 파라미터를 수정합니다:',ht,js,bt,_s,jt,Ms,se='특성 추출기(feature extractor)는 오디오 입력을 처리합니다. 기본 <a href="/docs/transformers/main/ko/main_classes/feature_extractor#transformers.FeatureExtractionMixin">FeatureExtractionMixin</a> 클래스에서 상속되며, 오디오 입력을 처리하기 위해 <a href="/docs/transformers/main/ko/main_classes/feature_extractor#transformers.SequenceFeatureExtractor">SequenceFeatureExtractor</a> 클래스에서 상속할 수도 있습니다.',_t,vs,te='사용하려면 사용 중인 모델과 연결된 특성 추출기를 생성합니다. 예를 들어, 오디오 분류에 <a href="model_doc/wav2vec2">Wav2Vec2</a>를 사용하는 경우 기본 <code>Wav2Vec2FeatureExtractor</code>를 생성합니다:',Mt,Ts,vt,L,Tt,Zs,ee="사용자 지정 특성 추출기를 만들려면 <code>Wav2Vec2FeatureExtractor</code> 매개변수를 수정합니다:",Zt,ws,wt,qs,qt,Js,ne="멀티모달 작업을 지원하는 모델의 경우, 🤗 Transformers는 특성 추출기 및 토크나이저와 같은 처리 클래스를 단일 객체로 편리하게 래핑하는 프로세서 클래스를 제공합니다. 예를 들어, 자동 음성 인식 작업(Automatic Speech Recognition task (ASR))에 <code>Wav2Vec2Processor</code>를 사용한다고 가정해 보겠습니다. 자동 음성 인식 작업은 오디오를 텍스트로 변환하므로 특성 추출기와 토크나이저가 필요합니다.",Jt,ks,ae="오디오 입력을 처리할 특성 추출기를 만듭니다:",kt,Rs,Rt,Ws,le="텍스트 입력을 처리할 토크나이저를 만듭니다:",Wt,Cs,Ct,Us,re="<code>Wav2Vec2Processor</code>에서 특성 추출기와 토크나이저를 결합합니다:",Ut,Vs,Vt,xs,pe="configuration과 모델이라는 두 가지 기본 클래스와 추가 전처리 클래스(토크나이저, 이미지 프로세서, 특성 추출기 또는 프로세서)를 사용하면 🤗 Transformers에서 지원하는 모든 모델을 만들 수 있습니다. 이러한 각 기본 클래스는 구성이 가능하므로 원하는 특정 속성을 사용할 수 있습니다. 학습을 위해 모델을 쉽게 설정하거나 기존의 사전 학습된 모델을 수정하여 미세 조정할 수 있습니다.",xt,Gs,Gt,zs,zt;return _=new Q({props:{title:"맞춤형 아키텍처 만들기",local:"create-a-custom-architecture",headingTag:"h1"}}),U=new Q({props:{title:"Configuration",local:"configuration",headingTag:"h2"}}),N=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERpc3RpbEJlcnRDb25maWclMEElMEFjb25maWclMjAlM0QlMjBEaXN0aWxCZXJ0Q29uZmlnKCklMEFwcmludChjb25maWcp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DistilBertConfig

<span class="hljs-meta">&gt;&gt;&gt; </span>config = DistilBertConfig()
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(config)
DistilBertConfig {
  <span class="hljs-string">&quot;activation&quot;</span>: <span class="hljs-string">&quot;gelu&quot;</span>,
  <span class="hljs-string">&quot;attention_dropout&quot;</span>: <span class="hljs-number">0.1</span>,
  <span class="hljs-string">&quot;dim&quot;</span>: <span class="hljs-number">768</span>,
  <span class="hljs-string">&quot;dropout&quot;</span>: <span class="hljs-number">0.1</span>,
  <span class="hljs-string">&quot;hidden_dim&quot;</span>: <span class="hljs-number">3072</span>,
  <span class="hljs-string">&quot;initializer_range&quot;</span>: <span class="hljs-number">0.02</span>,
  <span class="hljs-string">&quot;max_position_embeddings&quot;</span>: <span class="hljs-number">512</span>,
  <span class="hljs-string">&quot;model_type&quot;</span>: <span class="hljs-string">&quot;distilbert&quot;</span>,
  <span class="hljs-string">&quot;n_heads&quot;</span>: <span class="hljs-number">12</span>,
  <span class="hljs-string">&quot;n_layers&quot;</span>: <span class="hljs-number">6</span>,
  <span class="hljs-string">&quot;pad_token_id&quot;</span>: <span class="hljs-number">0</span>,
  <span class="hljs-string">&quot;qa_dropout&quot;</span>: <span class="hljs-number">0.1</span>,
  <span class="hljs-string">&quot;seq_classif_dropout&quot;</span>: <span class="hljs-number">0.2</span>,
  <span class="hljs-string">&quot;sinusoidal_pos_embds&quot;</span>: false,
  <span class="hljs-string">&quot;transformers_version&quot;</span>: <span class="hljs-string">&quot;4.16.2&quot;</span>,
  <span class="hljs-string">&quot;vocab_size&quot;</span>: <span class="hljs-number">30522</span>
}`,wrap:!1}}),D=new q({props:{code:"bXlfY29uZmlnJTIwJTNEJTIwRGlzdGlsQmVydENvbmZpZyhhY3RpdmF0aW9uJTNEJTIycmVsdSUyMiUyQyUyMGF0dGVudGlvbl9kcm9wb3V0JTNEMC40KSUwQXByaW50KG15X2NvbmZpZyk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>my_config = DistilBertConfig(activation=<span class="hljs-string">&quot;relu&quot;</span>, attention_dropout=<span class="hljs-number">0.4</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(my_config)
DistilBertConfig {
  <span class="hljs-string">&quot;activation&quot;</span>: <span class="hljs-string">&quot;relu&quot;</span>,
  <span class="hljs-string">&quot;attention_dropout&quot;</span>: <span class="hljs-number">0.4</span>,
  <span class="hljs-string">&quot;dim&quot;</span>: <span class="hljs-number">768</span>,
  <span class="hljs-string">&quot;dropout&quot;</span>: <span class="hljs-number">0.1</span>,
  <span class="hljs-string">&quot;hidden_dim&quot;</span>: <span class="hljs-number">3072</span>,
  <span class="hljs-string">&quot;initializer_range&quot;</span>: <span class="hljs-number">0.02</span>,
  <span class="hljs-string">&quot;max_position_embeddings&quot;</span>: <span class="hljs-number">512</span>,
  <span class="hljs-string">&quot;model_type&quot;</span>: <span class="hljs-string">&quot;distilbert&quot;</span>,
  <span class="hljs-string">&quot;n_heads&quot;</span>: <span class="hljs-number">12</span>,
  <span class="hljs-string">&quot;n_layers&quot;</span>: <span class="hljs-number">6</span>,
  <span class="hljs-string">&quot;pad_token_id&quot;</span>: <span class="hljs-number">0</span>,
  <span class="hljs-string">&quot;qa_dropout&quot;</span>: <span class="hljs-number">0.1</span>,
  <span class="hljs-string">&quot;seq_classif_dropout&quot;</span>: <span class="hljs-number">0.2</span>,
  <span class="hljs-string">&quot;sinusoidal_pos_embds&quot;</span>: false,
  <span class="hljs-string">&quot;transformers_version&quot;</span>: <span class="hljs-string">&quot;4.16.2&quot;</span>,
  <span class="hljs-string">&quot;vocab_size&quot;</span>: <span class="hljs-number">30522</span>
}`,wrap:!1}}),A=new q({props:{code:"bXlfY29uZmlnJTIwJTNEJTIwRGlzdGlsQmVydENvbmZpZy5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyJTJDJTIwYWN0aXZhdGlvbiUzRCUyMnJlbHUlMjIlMkMlMjBhdHRlbnRpb25fZHJvcG91dCUzRDAuNCk=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>my_config = DistilBertConfig.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>, activation=<span class="hljs-string">&quot;relu&quot;</span>, attention_dropout=<span class="hljs-number">0.4</span>)',wrap:!1}}),O=new q({props:{code:"bXlfY29uZmlnLnNhdmVfcHJldHJhaW5lZChzYXZlX2RpcmVjdG9yeSUzRCUyMi4lMkZ5b3VyX21vZGVsX3NhdmVfcGF0aCUyMik=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>my_config.save_pretrained(save_directory=<span class="hljs-string">&quot;./your_model_save_path&quot;</span>)',wrap:!1}}),ts=new q({props:{code:"bXlfY29uZmlnJTIwJTNEJTIwRGlzdGlsQmVydENvbmZpZy5mcm9tX3ByZXRyYWluZWQoJTIyLiUyRnlvdXJfbW9kZWxfc2F2ZV9wYXRoJTJGY29uZmlnLmpzb24lMjIp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>my_config = DistilBertConfig.from_pretrained(<span class="hljs-string">&quot;./your_model_save_path/config.json&quot;</span>)',wrap:!1}}),H=new Hs({props:{$$slots:{default:[Ze]},$$scope:{ctx:w}}}),es=new Q({props:{title:"모델",local:"model",headingTag:"h2"}}),F=new ye({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[ke],pytorch:[qe]},$$scope:{ctx:w}}}),as=new Q({props:{title:"모델 헤드",local:"model-heads",headingTag:"h3"}}),X=new ye({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Ue],pytorch:[We]},$$scope:{ctx:w}}}),rs=new Q({props:{title:"토크나이저",local:"tokenizer",headingTag:"h2"}}),B=new Hs({props:{warning:!0,$$slots:{default:[Ve]},$$scope:{ctx:w}}}),ms=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERpc3RpbEJlcnRUb2tlbml6ZXIlMEElMEFteV90b2tlbml6ZXIlMjAlM0QlMjBEaXN0aWxCZXJ0VG9rZW5pemVyKHZvY2FiX2ZpbGUlM0QlMjJteV92b2NhYl9maWxlLnR4dCUyMiUyQyUyMGRvX2xvd2VyX2Nhc2UlM0RGYWxzZSUyQyUyMHBhZGRpbmdfc2lkZSUzRCUyMmxlZnQlMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DistilBertTokenizer

<span class="hljs-meta">&gt;&gt;&gt; </span>my_tokenizer = DistilBertTokenizer(vocab_file=<span class="hljs-string">&quot;my_vocab_file.txt&quot;</span>, do_lower_case=<span class="hljs-literal">False</span>, padding_side=<span class="hljs-string">&quot;left&quot;</span>)`,wrap:!1}}),fs=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERpc3RpbEJlcnRUb2tlbml6ZXIlMEElMEFzbG93X3Rva2VuaXplciUyMCUzRCUyMERpc3RpbEJlcnRUb2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMmRpc3RpbGJlcnQlMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZCUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DistilBertTokenizer

<span class="hljs-meta">&gt;&gt;&gt; </span>slow_tokenizer = DistilBertTokenizer.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)`,wrap:!1}}),ds=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERpc3RpbEJlcnRUb2tlbml6ZXJGYXN0JTBBJTBBZmFzdF90b2tlbml6ZXIlMjAlM0QlMjBEaXN0aWxCZXJ0VG9rZW5pemVyRmFzdC5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DistilBertTokenizerFast

<span class="hljs-meta">&gt;&gt;&gt; </span>fast_tokenizer = DistilBertTokenizerFast.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)`,wrap:!1}}),E=new Hs({props:{$$slots:{default:[xe]},$$scope:{ctx:w}}}),gs=new Q({props:{title:"이미지 프로세서",local:"image-processor",headingTag:"h2"}}),hs=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFZpVEltYWdlUHJvY2Vzc29yJTBBJTBBdml0X2V4dHJhY3RvciUyMCUzRCUyMFZpVEltYWdlUHJvY2Vzc29yKCklMEFwcmludCh2aXRfZXh0cmFjdG9yKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> ViTImageProcessor

<span class="hljs-meta">&gt;&gt;&gt; </span>vit_extractor = ViTImageProcessor()
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(vit_extractor)
ViTImageProcessor {
  <span class="hljs-string">&quot;do_normalize&quot;</span>: true,
  <span class="hljs-string">&quot;do_resize&quot;</span>: true,
  <span class="hljs-string">&quot;feature_extractor_type&quot;</span>: <span class="hljs-string">&quot;ViTImageProcessor&quot;</span>,
  <span class="hljs-string">&quot;image_mean&quot;</span>: [
    <span class="hljs-number">0.5</span>,
    <span class="hljs-number">0.5</span>,
    <span class="hljs-number">0.5</span>
  ],
  <span class="hljs-string">&quot;image_std&quot;</span>: [
    <span class="hljs-number">0.5</span>,
    <span class="hljs-number">0.5</span>,
    <span class="hljs-number">0.5</span>
  ],
  <span class="hljs-string">&quot;resample&quot;</span>: <span class="hljs-number">2</span>,
  <span class="hljs-string">&quot;size&quot;</span>: <span class="hljs-number">224</span>
}`,wrap:!1}}),Y=new Hs({props:{$$slots:{default:[Ge]},$$scope:{ctx:w}}}),js=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFZpVEltYWdlUHJvY2Vzc29yJTBBJTBBbXlfdml0X2V4dHJhY3RvciUyMCUzRCUyMFZpVEltYWdlUHJvY2Vzc29yKHJlc2FtcGxlJTNEJTIyUElMLkltYWdlLkJPWCUyMiUyQyUyMGRvX25vcm1hbGl6ZSUzREZhbHNlJTJDJTIwaW1hZ2VfbWVhbiUzRCU1QjAuMyUyQyUyMDAuMyUyQyUyMDAuMyU1RCklMEFwcmludChteV92aXRfZXh0cmFjdG9yKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> ViTImageProcessor

<span class="hljs-meta">&gt;&gt;&gt; </span>my_vit_extractor = ViTImageProcessor(resample=<span class="hljs-string">&quot;PIL.Image.BOX&quot;</span>, do_normalize=<span class="hljs-literal">False</span>, image_mean=[<span class="hljs-number">0.3</span>, <span class="hljs-number">0.3</span>, <span class="hljs-number">0.3</span>])
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(my_vit_extractor)
ViTImageProcessor {
  <span class="hljs-string">&quot;do_normalize&quot;</span>: false,
  <span class="hljs-string">&quot;do_resize&quot;</span>: true,
  <span class="hljs-string">&quot;feature_extractor_type&quot;</span>: <span class="hljs-string">&quot;ViTImageProcessor&quot;</span>,
  <span class="hljs-string">&quot;image_mean&quot;</span>: [
    <span class="hljs-number">0.3</span>,
    <span class="hljs-number">0.3</span>,
    <span class="hljs-number">0.3</span>
  ],
  <span class="hljs-string">&quot;image_std&quot;</span>: [
    <span class="hljs-number">0.5</span>,
    <span class="hljs-number">0.5</span>,
    <span class="hljs-number">0.5</span>
  ],
  <span class="hljs-string">&quot;resample&quot;</span>: <span class="hljs-string">&quot;PIL.Image.BOX&quot;</span>,
  <span class="hljs-string">&quot;size&quot;</span>: <span class="hljs-number">224</span>
}`,wrap:!1}}),_s=new Q({props:{title:"특성 추출기",local:"feature-extractor",headingTag:"h2"}}),Ts=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFdhdjJWZWMyRmVhdHVyZUV4dHJhY3RvciUwQSUwQXcydjJfZXh0cmFjdG9yJTIwJTNEJTIwV2F2MlZlYzJGZWF0dXJlRXh0cmFjdG9yKCklMEFwcmludCh3MnYyX2V4dHJhY3Rvcik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Wav2Vec2FeatureExtractor

<span class="hljs-meta">&gt;&gt;&gt; </span>w2v2_extractor = Wav2Vec2FeatureExtractor()
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(w2v2_extractor)
Wav2Vec2FeatureExtractor {
  <span class="hljs-string">&quot;do_normalize&quot;</span>: true,
  <span class="hljs-string">&quot;feature_extractor_type&quot;</span>: <span class="hljs-string">&quot;Wav2Vec2FeatureExtractor&quot;</span>,
  <span class="hljs-string">&quot;feature_size&quot;</span>: <span class="hljs-number">1</span>,
  <span class="hljs-string">&quot;padding_side&quot;</span>: <span class="hljs-string">&quot;right&quot;</span>,
  <span class="hljs-string">&quot;padding_value&quot;</span>: <span class="hljs-number">0.0</span>,
  <span class="hljs-string">&quot;return_attention_mask&quot;</span>: false,
  <span class="hljs-string">&quot;sampling_rate&quot;</span>: <span class="hljs-number">16000</span>
}`,wrap:!1}}),L=new Hs({props:{$$slots:{default:[ze]},$$scope:{ctx:w}}}),ws=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFdhdjJWZWMyRmVhdHVyZUV4dHJhY3RvciUwQSUwQXcydjJfZXh0cmFjdG9yJTIwJTNEJTIwV2F2MlZlYzJGZWF0dXJlRXh0cmFjdG9yKHNhbXBsaW5nX3JhdGUlM0Q4MDAwJTJDJTIwZG9fbm9ybWFsaXplJTNERmFsc2UpJTBBcHJpbnQodzJ2Ml9leHRyYWN0b3Ip",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Wav2Vec2FeatureExtractor

<span class="hljs-meta">&gt;&gt;&gt; </span>w2v2_extractor = Wav2Vec2FeatureExtractor(sampling_rate=<span class="hljs-number">8000</span>, do_normalize=<span class="hljs-literal">False</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(w2v2_extractor)
Wav2Vec2FeatureExtractor {
  <span class="hljs-string">&quot;do_normalize&quot;</span>: false,
  <span class="hljs-string">&quot;feature_extractor_type&quot;</span>: <span class="hljs-string">&quot;Wav2Vec2FeatureExtractor&quot;</span>,
  <span class="hljs-string">&quot;feature_size&quot;</span>: <span class="hljs-number">1</span>,
  <span class="hljs-string">&quot;padding_side&quot;</span>: <span class="hljs-string">&quot;right&quot;</span>,
  <span class="hljs-string">&quot;padding_value&quot;</span>: <span class="hljs-number">0.0</span>,
  <span class="hljs-string">&quot;return_attention_mask&quot;</span>: false,
  <span class="hljs-string">&quot;sampling_rate&quot;</span>: <span class="hljs-number">8000</span>
}`,wrap:!1}}),qs=new Q({props:{title:"프로세서",local:"processor",headingTag:"h2"}}),Rs=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFdhdjJWZWMyRmVhdHVyZUV4dHJhY3RvciUwQSUwQWZlYXR1cmVfZXh0cmFjdG9yJTIwJTNEJTIwV2F2MlZlYzJGZWF0dXJlRXh0cmFjdG9yKHBhZGRpbmdfdmFsdWUlM0QxLjAlMkMlMjBkb19ub3JtYWxpemUlM0RUcnVlKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Wav2Vec2FeatureExtractor

<span class="hljs-meta">&gt;&gt;&gt; </span>feature_extractor = Wav2Vec2FeatureExtractor(padding_value=<span class="hljs-number">1.0</span>, do_normalize=<span class="hljs-literal">True</span>)`,wrap:!1}}),Cs=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFdhdjJWZWMyQ1RDVG9rZW5pemVyJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwV2F2MlZlYzJDVENUb2tlbml6ZXIodm9jYWJfZmlsZSUzRCUyMm15X3ZvY2FiX2ZpbGUudHh0JTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Wav2Vec2CTCTokenizer

<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = Wav2Vec2CTCTokenizer(vocab_file=<span class="hljs-string">&quot;my_vocab_file.txt&quot;</span>)`,wrap:!1}}),Vs=new q({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFdhdjJWZWMyUHJvY2Vzc29yJTBBJTBBcHJvY2Vzc29yJTIwJTNEJTIwV2F2MlZlYzJQcm9jZXNzb3IoZmVhdHVyZV9leHRyYWN0b3IlM0RmZWF0dXJlX2V4dHJhY3RvciUyQyUyMHRva2VuaXplciUzRHRva2VuaXplcik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Wav2Vec2Processor

<span class="hljs-meta">&gt;&gt;&gt; </span>processor = Wav2Vec2Processor(feature_extractor=feature_extractor, tokenizer=tokenizer)`,wrap:!1}}),Gs=new Te({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/create_a_model.md"}}),{c(){a=f("meta"),c=p(),l=f("p"),o=p(),d(_.$$.fragment),M=p(),C=f("p"),C.innerHTML=k,v=p(),J=f("ul"),J.innerHTML=m,T=p(),d(U.$$.fragment),R=p(),x=f("p"),x.innerHTML=G,W=p(),V=f("p"),V.innerHTML=r,Z=p(),d(N.$$.fragment),Fs=p(),P=f("p"),P.innerHTML=Ft,Xs=p(),I=f("ul"),I.innerHTML=Xt,Bs=p(),d(D.$$.fragment),Es=p(),S=f("p"),S.innerHTML=Bt,Ys=p(),d(A.$$.fragment),Ls=p(),K=f("p"),K.innerHTML=Et,Qs=p(),d(O.$$.fragment),Ns=p(),ss=f("p"),ss.innerHTML=Yt,Ps=p(),d(ts.$$.fragment),Is=p(),d(H.$$.fragment),Ds=p(),d(es.$$.fragment),Ss=p(),ns=f("p"),ns.innerHTML=Lt,As=p(),d(F.$$.fragment),Ks=p(),d(as.$$.fragment),Os=p(),ls=f("p"),ls.innerHTML=Qt,st=p(),d(X.$$.fragment),tt=p(),d(rs.$$.fragment),et=p(),ps=f("p"),ps.innerHTML=Nt,nt=p(),is=f("ul"),is.innerHTML=Pt,at=p(),d(B.$$.fragment),lt=p(),os=f("p"),os.innerHTML=It,rt=p(),d(ms.$$.fragment),pt=p(),cs=f("p"),cs.innerHTML=Dt,it=p(),d(fs.$$.fragment),ot=p(),us=f("p"),us.innerHTML=St,mt=p(),d(ds.$$.fragment),ct=p(),d(E.$$.fragment),ft=p(),d(gs.$$.fragment),ut=p(),$s=f("p"),$s.innerHTML=At,dt=p(),ys=f("p"),ys.innerHTML=Kt,gt=p(),d(hs.$$.fragment),$t=p(),d(Y.$$.fragment),yt=p(),bs=f("p"),bs.innerHTML=Ot,ht=p(),d(js.$$.fragment),bt=p(),d(_s.$$.fragment),jt=p(),Ms=f("p"),Ms.innerHTML=se,_t=p(),vs=f("p"),vs.innerHTML=te,Mt=p(),d(Ts.$$.fragment),vt=p(),d(L.$$.fragment),Tt=p(),Zs=f("p"),Zs.innerHTML=ee,Zt=p(),d(ws.$$.fragment),wt=p(),d(qs.$$.fragment),qt=p(),Js=f("p"),Js.innerHTML=ne,Jt=p(),ks=f("p"),ks.textContent=ae,kt=p(),d(Rs.$$.fragment),Rt=p(),Ws=f("p"),Ws.textContent=le,Wt=p(),d(Cs.$$.fragment),Ct=p(),Us=f("p"),Us.innerHTML=re,Ut=p(),d(Vs.$$.fragment),Vt=p(),xs=f("p"),xs.textContent=pe,xt=p(),d(Gs.$$.fragment),Gt=p(),zs=f("p"),this.h()},l(s){const t=Me("svelte-u9bgzb",document.head);a=u(t,"META",{name:!0,content:!0}),t.forEach(e),c=i(s),l=u(s,"P",{}),ge(l).forEach(e),o=i(s),g(_.$$.fragment,s),M=i(s),C=u(s,"P",{"data-svelte-h":!0}),j(C)!=="svelte-19ve0b1"&&(C.innerHTML=k),v=i(s),J=u(s,"UL",{"data-svelte-h":!0}),j(J)!=="svelte-1ebb2km"&&(J.innerHTML=m),T=i(s),g(U.$$.fragment,s),R=i(s),x=u(s,"P",{"data-svelte-h":!0}),j(x)!=="svelte-1u7e78i"&&(x.innerHTML=G),W=i(s),V=u(s,"P",{"data-svelte-h":!0}),j(V)!=="svelte-1ujadwn"&&(V.innerHTML=r),Z=i(s),g(N.$$.fragment,s),Fs=i(s),P=u(s,"P",{"data-svelte-h":!0}),j(P)!=="svelte-ipet8t"&&(P.innerHTML=Ft),Xs=i(s),I=u(s,"UL",{"data-svelte-h":!0}),j(I)!=="svelte-oc0ep3"&&(I.innerHTML=Xt),Bs=i(s),g(D.$$.fragment,s),Es=i(s),S=u(s,"P",{"data-svelte-h":!0}),j(S)!=="svelte-1qitskv"&&(S.innerHTML=Bt),Ys=i(s),g(A.$$.fragment,s),Ls=i(s),K=u(s,"P",{"data-svelte-h":!0}),j(K)!=="svelte-1aoygtu"&&(K.innerHTML=Et),Qs=i(s),g(O.$$.fragment,s),Ns=i(s),ss=u(s,"P",{"data-svelte-h":!0}),j(ss)!=="svelte-fc4ac7"&&(ss.innerHTML=Yt),Ps=i(s),g(ts.$$.fragment,s),Is=i(s),g(H.$$.fragment,s),Ds=i(s),g(es.$$.fragment,s),Ss=i(s),ns=u(s,"P",{"data-svelte-h":!0}),j(ns)!=="svelte-1du1qu8"&&(ns.innerHTML=Lt),As=i(s),g(F.$$.fragment,s),Ks=i(s),g(as.$$.fragment,s),Os=i(s),ls=u(s,"P",{"data-svelte-h":!0}),j(ls)!=="svelte-x49xse"&&(ls.innerHTML=Qt),st=i(s),g(X.$$.fragment,s),tt=i(s),g(rs.$$.fragment,s),et=i(s),ps=u(s,"P",{"data-svelte-h":!0}),j(ps)!=="svelte-tr0od4"&&(ps.innerHTML=Nt),nt=i(s),is=u(s,"UL",{"data-svelte-h":!0}),j(is)!=="svelte-1s73745"&&(is.innerHTML=Pt),at=i(s),g(B.$$.fragment,s),lt=i(s),os=u(s,"P",{"data-svelte-h":!0}),j(os)!=="svelte-1ydtv7o"&&(os.innerHTML=It),rt=i(s),g(ms.$$.fragment,s),pt=i(s),cs=u(s,"P",{"data-svelte-h":!0}),j(cs)!=="svelte-hd5xug"&&(cs.innerHTML=Dt),it=i(s),g(fs.$$.fragment,s),ot=i(s),us=u(s,"P",{"data-svelte-h":!0}),j(us)!=="svelte-1vv93q7"&&(us.innerHTML=St),mt=i(s),g(ds.$$.fragment,s),ct=i(s),g(E.$$.fragment,s),ft=i(s),g(gs.$$.fragment,s),ut=i(s),$s=u(s,"P",{"data-svelte-h":!0}),j($s)!=="svelte-1947ii2"&&($s.innerHTML=At),dt=i(s),ys=u(s,"P",{"data-svelte-h":!0}),j(ys)!=="svelte-1bs2o1w"&&(ys.innerHTML=Kt),gt=i(s),g(hs.$$.fragment,s),$t=i(s),g(Y.$$.fragment,s),yt=i(s),bs=u(s,"P",{"data-svelte-h":!0}),j(bs)!=="svelte-z4x597"&&(bs.innerHTML=Ot),ht=i(s),g(js.$$.fragment,s),bt=i(s),g(_s.$$.fragment,s),jt=i(s),Ms=u(s,"P",{"data-svelte-h":!0}),j(Ms)!=="svelte-g7zzq9"&&(Ms.innerHTML=se),_t=i(s),vs=u(s,"P",{"data-svelte-h":!0}),j(vs)!=="svelte-mindlu"&&(vs.innerHTML=te),Mt=i(s),g(Ts.$$.fragment,s),vt=i(s),g(L.$$.fragment,s),Tt=i(s),Zs=u(s,"P",{"data-svelte-h":!0}),j(Zs)!=="svelte-1hh3a05"&&(Zs.innerHTML=ee),Zt=i(s),g(ws.$$.fragment,s),wt=i(s),g(qs.$$.fragment,s),qt=i(s),Js=u(s,"P",{"data-svelte-h":!0}),j(Js)!=="svelte-m80yeb"&&(Js.innerHTML=ne),Jt=i(s),ks=u(s,"P",{"data-svelte-h":!0}),j(ks)!=="svelte-rxz7k7"&&(ks.textContent=ae),kt=i(s),g(Rs.$$.fragment,s),Rt=i(s),Ws=u(s,"P",{"data-svelte-h":!0}),j(Ws)!=="svelte-1pis3oo"&&(Ws.textContent=le),Wt=i(s),g(Cs.$$.fragment,s),Ct=i(s),Us=u(s,"P",{"data-svelte-h":!0}),j(Us)!=="svelte-1ou4ndv"&&(Us.innerHTML=re),Ut=i(s),g(Vs.$$.fragment,s),Vt=i(s),xs=u(s,"P",{"data-svelte-h":!0}),j(xs)!=="svelte-wnze"&&(xs.textContent=pe),xt=i(s),g(Gs.$$.fragment,s),Gt=i(s),zs=u(s,"P",{}),ge(zs).forEach(e),this.h()},h(){$e(a,"name","hf:doc:metadata"),$e(a,"content",Fe)},m(s,t){ve(document.head,a),n(s,c,t),n(s,l,t),n(s,o,t),$(_,s,t),n(s,M,t),n(s,C,t),n(s,v,t),n(s,J,t),n(s,T,t),$(U,s,t),n(s,R,t),n(s,x,t),n(s,W,t),n(s,V,t),n(s,Z,t),$(N,s,t),n(s,Fs,t),n(s,P,t),n(s,Xs,t),n(s,I,t),n(s,Bs,t),$(D,s,t),n(s,Es,t),n(s,S,t),n(s,Ys,t),$(A,s,t),n(s,Ls,t),n(s,K,t),n(s,Qs,t),$(O,s,t),n(s,Ns,t),n(s,ss,t),n(s,Ps,t),$(ts,s,t),n(s,Is,t),$(H,s,t),n(s,Ds,t),$(es,s,t),n(s,Ss,t),n(s,ns,t),n(s,As,t),$(F,s,t),n(s,Ks,t),$(as,s,t),n(s,Os,t),n(s,ls,t),n(s,st,t),$(X,s,t),n(s,tt,t),$(rs,s,t),n(s,et,t),n(s,ps,t),n(s,nt,t),n(s,is,t),n(s,at,t),$(B,s,t),n(s,lt,t),n(s,os,t),n(s,rt,t),$(ms,s,t),n(s,pt,t),n(s,cs,t),n(s,it,t),$(fs,s,t),n(s,ot,t),n(s,us,t),n(s,mt,t),$(ds,s,t),n(s,ct,t),$(E,s,t),n(s,ft,t),$(gs,s,t),n(s,ut,t),n(s,$s,t),n(s,dt,t),n(s,ys,t),n(s,gt,t),$(hs,s,t),n(s,$t,t),$(Y,s,t),n(s,yt,t),n(s,bs,t),n(s,ht,t),$(js,s,t),n(s,bt,t),$(_s,s,t),n(s,jt,t),n(s,Ms,t),n(s,_t,t),n(s,vs,t),n(s,Mt,t),$(Ts,s,t),n(s,vt,t),$(L,s,t),n(s,Tt,t),n(s,Zs,t),n(s,Zt,t),$(ws,s,t),n(s,wt,t),$(qs,s,t),n(s,qt,t),n(s,Js,t),n(s,Jt,t),n(s,ks,t),n(s,kt,t),$(Rs,s,t),n(s,Rt,t),n(s,Ws,t),n(s,Wt,t),$(Cs,s,t),n(s,Ct,t),n(s,Us,t),n(s,Ut,t),$(Vs,s,t),n(s,Vt,t),n(s,xs,t),n(s,xt,t),$(Gs,s,t),n(s,Gt,t),n(s,zs,t),zt=!0},p(s,[t]){const ie={};t&2&&(ie.$$scope={dirty:t,ctx:s}),H.$set(ie);const oe={};t&2&&(oe.$$scope={dirty:t,ctx:s}),F.$set(oe);const me={};t&2&&(me.$$scope={dirty:t,ctx:s}),X.$set(me);const ce={};t&2&&(ce.$$scope={dirty:t,ctx:s}),B.$set(ce);const fe={};t&2&&(fe.$$scope={dirty:t,ctx:s}),E.$set(fe);const ue={};t&2&&(ue.$$scope={dirty:t,ctx:s}),Y.$set(ue);const de={};t&2&&(de.$$scope={dirty:t,ctx:s}),L.$set(de)},i(s){zt||(y(_.$$.fragment,s),y(U.$$.fragment,s),y(N.$$.fragment,s),y(D.$$.fragment,s),y(A.$$.fragment,s),y(O.$$.fragment,s),y(ts.$$.fragment,s),y(H.$$.fragment,s),y(es.$$.fragment,s),y(F.$$.fragment,s),y(as.$$.fragment,s),y(X.$$.fragment,s),y(rs.$$.fragment,s),y(B.$$.fragment,s),y(ms.$$.fragment,s),y(fs.$$.fragment,s),y(ds.$$.fragment,s),y(E.$$.fragment,s),y(gs.$$.fragment,s),y(hs.$$.fragment,s),y(Y.$$.fragment,s),y(js.$$.fragment,s),y(_s.$$.fragment,s),y(Ts.$$.fragment,s),y(L.$$.fragment,s),y(ws.$$.fragment,s),y(qs.$$.fragment,s),y(Rs.$$.fragment,s),y(Cs.$$.fragment,s),y(Vs.$$.fragment,s),y(Gs.$$.fragment,s),zt=!0)},o(s){h(_.$$.fragment,s),h(U.$$.fragment,s),h(N.$$.fragment,s),h(D.$$.fragment,s),h(A.$$.fragment,s),h(O.$$.fragment,s),h(ts.$$.fragment,s),h(H.$$.fragment,s),h(es.$$.fragment,s),h(F.$$.fragment,s),h(as.$$.fragment,s),h(X.$$.fragment,s),h(rs.$$.fragment,s),h(B.$$.fragment,s),h(ms.$$.fragment,s),h(fs.$$.fragment,s),h(ds.$$.fragment,s),h(E.$$.fragment,s),h(gs.$$.fragment,s),h(hs.$$.fragment,s),h(Y.$$.fragment,s),h(js.$$.fragment,s),h(_s.$$.fragment,s),h(Ts.$$.fragment,s),h(L.$$.fragment,s),h(ws.$$.fragment,s),h(qs.$$.fragment,s),h(Rs.$$.fragment,s),h(Cs.$$.fragment,s),h(Vs.$$.fragment,s),h(Gs.$$.fragment,s),zt=!1},d(s){s&&(e(c),e(l),e(o),e(M),e(C),e(v),e(J),e(T),e(R),e(x),e(W),e(V),e(Z),e(Fs),e(P),e(Xs),e(I),e(Bs),e(Es),e(S),e(Ys),e(Ls),e(K),e(Qs),e(Ns),e(ss),e(Ps),e(Is),e(Ds),e(Ss),e(ns),e(As),e(Ks),e(Os),e(ls),e(st),e(tt),e(et),e(ps),e(nt),e(is),e(at),e(lt),e(os),e(rt),e(pt),e(cs),e(it),e(ot),e(us),e(mt),e(ct),e(ft),e(ut),e($s),e(dt),e(ys),e(gt),e($t),e(yt),e(bs),e(ht),e(bt),e(jt),e(Ms),e(_t),e(vs),e(Mt),e(vt),e(Tt),e(Zs),e(Zt),e(wt),e(qt),e(Js),e(Jt),e(ks),e(kt),e(Rt),e(Ws),e(Wt),e(Ct),e(Us),e(Ut),e(Vt),e(xs),e(xt),e(Gt),e(zs)),e(a),b(_,s),b(U,s),b(N,s),b(D,s),b(A,s),b(O,s),b(ts,s),b(H,s),b(es,s),b(F,s),b(as,s),b(X,s),b(rs,s),b(B,s),b(ms,s),b(fs,s),b(ds,s),b(E,s),b(gs,s),b(hs,s),b(Y,s),b(js,s),b(_s,s),b(Ts,s),b(L,s),b(ws,s),b(qs,s),b(Rs,s),b(Cs,s),b(Vs,s),b(Gs,s)}}}const Fe='{"title":"맞춤형 아키텍처 만들기","local":"create-a-custom-architecture","sections":[{"title":"Configuration","local":"configuration","sections":[],"depth":2},{"title":"모델","local":"model","sections":[{"title":"모델 헤드","local":"model-heads","sections":[],"depth":3}],"depth":2},{"title":"토크나이저","local":"tokenizer","sections":[],"depth":2},{"title":"이미지 프로세서","local":"image-processor","sections":[],"depth":2},{"title":"특성 추출기","local":"feature-extractor","sections":[],"depth":2},{"title":"프로세서","local":"processor","sections":[],"depth":2}],"depth":1}';function Xe(w){return be(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Pe extends je{constructor(a){super(),_e(this,a,Xe,He,he,{})}}export{Pe as component};
