import{s as al,f as rl,o as il,n as We}from"../chunks/scheduler.bdbef820.js";import{S as pl,i as ml,g as $,s as r,r as h,A as fl,h as c,f as l,c as i,j as Ht,u as M,x as d,k as G,y as ol,a as s,v as _,d as b,t as w,w as T}from"../chunks/index.33f81d56.js";import{T as ul}from"../chunks/Tip.34194030.js";import{Y as $l}from"../chunks/Youtube.0e329b00.js";import{C as U}from"../chunks/CodeBlock.3bad7fc9.js";import{F as nl,M as xe}from"../chunks/Markdown.03194dea.js";import{H as R,E as cl}from"../chunks/index.e01163b6.js";function gl(C){let n,f='커뮤니티에 모델을 공유하려면, <a href="https://huggingface.co/join" rel="nofollow">huggingface.co</a>에 계정이 필요합니다. 기존 조직에 가입하거나 새로 만들 수도 있습니다.';return{c(){n=$("p"),n.innerHTML=f},l(a){n=c(a,"P",{"data-svelte-h":!0}),d(n)!=="svelte-1x1qpix"&&(n.innerHTML=f)},m(a,p){s(a,n,p)},p:We,d(a){a&&l(n)}}}function dl(C){let n,f="체크포인트를 TensorFlow에서 PyTorch로 변환하려면 <code>from_tf=True</code>를 지정하세요:",a,p,u;return p=new U({props:{code:"cHRfbW9kZWwlMjAlM0QlMjBEaXN0aWxCZXJ0Rm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoJTIycGF0aCUyRnRvJTJGYXdlc29tZS1uYW1lLXlvdS1waWNrZWQlMjIlMkMlMjBmcm9tX3RmJTNEVHJ1ZSklMEFwdF9tb2RlbC5zYXZlX3ByZXRyYWluZWQoJTIycGF0aCUyRnRvJTJGYXdlc29tZS1uYW1lLXlvdS1waWNrZWQlMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = DistilBertForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>, from_tf=<span class="hljs-literal">True</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.save_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>)`,wrap:!1}}),{c(){n=$("p"),n.innerHTML=f,a=r(),h(p.$$.fragment)},l(m){n=c(m,"P",{"data-svelte-h":!0}),d(n)!=="svelte-ulhn3k"&&(n.innerHTML=f),a=i(m),M(p.$$.fragment,m)},m(m,v){s(m,n,v),s(m,a,v),_(p,m,v),u=!0},p:We,i(m){u||(b(p.$$.fragment,m),u=!0)},o(m){w(p.$$.fragment,m),u=!1},d(m){m&&(l(n),l(a)),T(p,m)}}}function hl(C){let n,f;return n=new xe({props:{$$slots:{default:[dl]},$$scope:{ctx:C}}}),{c(){h(n.$$.fragment)},l(a){M(n.$$.fragment,a)},m(a,p){_(n,a,p),f=!0},p(a,p){const u={};p&2&&(u.$$scope={dirty:p,ctx:a}),n.$set(u)},i(a){f||(b(n.$$.fragment,a),f=!0)},o(a){w(n.$$.fragment,a),f=!1},d(a){T(n,a)}}}function Ml(C){let n,f="체크포인트를 PyTorch에서 TensorFlow로 변환하려면 <code>from_pt=True</code>를 지정하세요:",a,p,u,m,v="그런 다음 새로운 체크포인트와 함께 새로운 TensorFlow 모델을 저장할 수 있습니다:",W,j,Z;return p=new U({props:{code:"dGZfbW9kZWwlMjAlM0QlMjBURkRpc3RpbEJlcnRGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZCglMjJwYXRoJTJGdG8lMkZhd2Vzb21lLW5hbWUteW91LXBpY2tlZCUyMiUyQyUyMGZyb21fcHQlM0RUcnVlKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>, from_pt=<span class="hljs-literal">True</span>)',wrap:!1}}),j=new U({props:{code:"dGZfbW9kZWwuc2F2ZV9wcmV0cmFpbmVkKCUyMnBhdGglMkZ0byUyRmF3ZXNvbWUtbmFtZS15b3UtcGlja2VkJTIyKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.save_pretrained(<span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>)',wrap:!1}}),{c(){n=$("p"),n.innerHTML=f,a=r(),h(p.$$.fragment),u=r(),m=$("p"),m.textContent=v,W=r(),h(j.$$.fragment)},l(g){n=c(g,"P",{"data-svelte-h":!0}),d(n)!=="svelte-sn4jxc"&&(n.innerHTML=f),a=i(g),M(p.$$.fragment,g),u=i(g),m=c(g,"P",{"data-svelte-h":!0}),d(m)!=="svelte-eampn5"&&(m.textContent=v),W=i(g),M(j.$$.fragment,g)},m(g,k){s(g,n,k),s(g,a,k),_(p,g,k),s(g,u,k),s(g,m,k),s(g,W,k),_(j,g,k),Z=!0},p:We,i(g){Z||(b(p.$$.fragment,g),b(j.$$.fragment,g),Z=!0)},o(g){w(p.$$.fragment,g),w(j.$$.fragment,g),Z=!1},d(g){g&&(l(n),l(a),l(u),l(m),l(W)),T(p,g),T(j,g)}}}function _l(C){let n,f;return n=new xe({props:{$$slots:{default:[Ml]},$$scope:{ctx:C}}}),{c(){h(n.$$.fragment)},l(a){M(n.$$.fragment,a)},m(a,p){_(n,a,p),f=!0},p(a,p){const u={};p&2&&(u.$$scope={dirty:p,ctx:a}),n.$set(u)},i(a){f||(b(n.$$.fragment,a),f=!0)},o(a){w(n.$$.fragment,a),f=!1},d(a){T(n,a)}}}function bl(C){let n,f="Flax에서 모델을 사용하는 경우, PyTorch에서 Flax로 체크포인트를 변환할 수도 있습니다:",a,p,u;return p=new U({props:{code:"ZmxheF9tb2RlbCUyMCUzRCUyMEZsYXhEaXN0aWxCZXJ0Rm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIycGF0aCUyRnRvJTJGYXdlc29tZS1uYW1lLXlvdS1waWNrZWQlMjIlMkMlMjBmcm9tX3B0JTNEVHJ1ZSUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>flax_model = FlaxDistilBertForSequenceClassification.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;path/to/awesome-name-you-picked&quot;</span>, from_pt=<span class="hljs-literal">True</span>
<span class="hljs-meta">... </span>)`,wrap:!1}}),{c(){n=$("p"),n.textContent=f,a=r(),h(p.$$.fragment)},l(m){n=c(m,"P",{"data-svelte-h":!0}),d(n)!=="svelte-qsi1v0"&&(n.textContent=f),a=i(m),M(p.$$.fragment,m)},m(m,v){s(m,n,v),s(m,a,v),_(p,m,v),u=!0},p:We,i(m){u||(b(p.$$.fragment,m),u=!0)},o(m){w(p.$$.fragment,m),u=!1},d(m){m&&(l(n),l(a)),T(p,m)}}}function wl(C){let n,f;return n=new xe({props:{$$slots:{default:[bl]},$$scope:{ctx:C}}}),{c(){h(n.$$.fragment)},l(a){M(n.$$.fragment,a)},m(a,p){_(n,a,p),f=!0},p(a,p){const u={};p&2&&(u.$$scope={dirty:p,ctx:a}),n.$set(u)},i(a){f||(b(n.$$.fragment,a),f=!0)},o(a){w(n.$$.fragment,a),f=!1},d(a){T(n,a)}}}function Tl(C){let n,f,a,p='모델을 허브에 공유하는 것은 추가 매개변수나 콜백을 추가하는 것만큼 간단합니다. <a href="training">미세 조정 튜토리얼</a>에서 <a href="/docs/transformers/main/ko/main_classes/trainer#transformers.TrainingArguments">TrainingArguments</a> 클래스는 하이퍼파라미터와 추가 훈련 옵션을 지정하는 곳이라는 것을 기억하세요. 이러한 훈련 옵션 중 하나는 모델을 허브로 직접 푸시하는 기능을 포함합니다. <a href="/docs/transformers/main/ko/main_classes/trainer#transformers.TrainingArguments">TrainingArguments</a>에서 <code>push_to_hub=True</code>를 설정하세요:',u,m,v,W,j='평소와 같이 훈련 인수를 <a href="/docs/transformers/main/ko/main_classes/trainer#transformers.Trainer">Trainer</a>에 전달합니다:',Z,g,k,x,y='모델을 미세 조정한 후, <a href="/docs/transformers/main/ko/main_classes/trainer#transformers.Trainer">Trainer</a>에서 <a href="/docs/transformers/main/ko/main_classes/trainer#transformers.Trainer.push_to_hub">push_to_hub()</a>를 호출하여 훈련된 모델을 허브로 푸시하세요. 🤗 Transformers는 훈련 하이퍼파라미터, 훈련 결과 및 프레임워크 버전을 모델 카드에 자동으로 추가합니다!',L,J,P;return n=new $l({props:{id:"Z1-XMy-GNLQ"}}),m=new U({props:{code:"dHJhaW5pbmdfYXJncyUyMCUzRCUyMFRyYWluaW5nQXJndW1lbnRzKG91dHB1dF9kaXIlM0QlMjJteS1hd2Vzb21lLW1vZGVsJTIyJTJDJTIwcHVzaF90b19odWIlM0RUcnVlKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>training_args = TrainingArguments(output_dir=<span class="hljs-string">&quot;my-awesome-model&quot;</span>, push_to_hub=<span class="hljs-literal">True</span>)',wrap:!1}}),g=new U({props:{code:"dHJhaW5lciUyMCUzRCUyMFRyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTBBJTIwJTIwJTIwJTIwdHJhaW5fZGF0YXNldCUzRHNtYWxsX3RyYWluX2RhdGFzZXQlMkMlMEElMjAlMjAlMjAlMjBldmFsX2RhdGFzZXQlM0RzbWFsbF9ldmFsX2RhdGFzZXQlMkMlMEElMjAlMjAlMjAlMjBjb21wdXRlX21ldHJpY3MlM0Rjb21wdXRlX21ldHJpY3MlMkMlMEEp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>trainer = Trainer(
<span class="hljs-meta">... </span>    model=model,
<span class="hljs-meta">... </span>    args=training_args,
<span class="hljs-meta">... </span>    train_dataset=small_train_dataset,
<span class="hljs-meta">... </span>    eval_dataset=small_eval_dataset,
<span class="hljs-meta">... </span>    compute_metrics=compute_metrics,
<span class="hljs-meta">... </span>)`,wrap:!1}}),J=new U({props:{code:"dHJhaW5lci5wdXNoX3RvX2h1Yigp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.push_to_hub()',wrap:!1}}),{c(){h(n.$$.fragment),f=r(),a=$("p"),a.innerHTML=p,u=r(),h(m.$$.fragment),v=r(),W=$("p"),W.innerHTML=j,Z=r(),h(g.$$.fragment),k=r(),x=$("p"),x.innerHTML=y,L=r(),h(J.$$.fragment)},l(o){M(n.$$.fragment,o),f=i(o),a=c(o,"P",{"data-svelte-h":!0}),d(a)!=="svelte-1wjrx5t"&&(a.innerHTML=p),u=i(o),M(m.$$.fragment,o),v=i(o),W=c(o,"P",{"data-svelte-h":!0}),d(W)!=="svelte-q07e7m"&&(W.innerHTML=j),Z=i(o),M(g.$$.fragment,o),k=i(o),x=c(o,"P",{"data-svelte-h":!0}),d(x)!=="svelte-awg2u6"&&(x.innerHTML=y),L=i(o),M(J.$$.fragment,o)},m(o,H){_(n,o,H),s(o,f,H),s(o,a,H),s(o,u,H),_(m,o,H),s(o,v,H),s(o,W,H),s(o,Z,H),_(g,o,H),s(o,k,H),s(o,x,H),s(o,L,H),_(J,o,H),P=!0},p:We,i(o){P||(b(n.$$.fragment,o),b(m.$$.fragment,o),b(g.$$.fragment,o),b(J.$$.fragment,o),P=!0)},o(o){w(n.$$.fragment,o),w(m.$$.fragment,o),w(g.$$.fragment,o),w(J.$$.fragment,o),P=!1},d(o){o&&(l(f),l(a),l(u),l(v),l(W),l(Z),l(k),l(x),l(L)),T(n,o),T(m,o),T(g,o),T(J,o)}}}function yl(C){let n,f;return n=new xe({props:{$$slots:{default:[Tl]},$$scope:{ctx:C}}}),{c(){h(n.$$.fragment)},l(a){M(n.$$.fragment,a)},m(a,p){_(n,a,p),f=!0},p(a,p){const u={};p&2&&(u.$$scope={dirty:p,ctx:a}),n.$set(u)},i(a){f||(b(n.$$.fragment,a),f=!0)},o(a){w(n.$$.fragment,a),f=!1},d(a){T(n,a)}}}function vl(C){let n,f='<a href="/docs/transformers/main/ko/main_classes/keras_callbacks#transformers.PushToHubCallback">PushToHubCallback</a>을 사용하여 모델을 허브에 공유하려면, <a href="/docs/transformers/main/ko/main_classes/keras_callbacks#transformers.PushToHubCallback">PushToHubCallback</a>에 다음 인수를 정의하세요:',a,p,u="<li>출력된 모델의 파일 경로</li> <li>토크나이저</li> <li><code>{Hub 사용자 이름}/{모델 이름}</code> 형식의 <code>hub_model_id</code></li>",m,v,W,j,Z='<a href="https://keras.io/api/models/model_training_apis/" rel="nofollow"><code>fit</code></a>에 콜백을 추가하면, 🤗 Transformers가 훈련된 모델을 허브로 푸시합니다:',g,k,x;return v=new U({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFB1c2hUb0h1YkNhbGxiYWNrJTBBJTBBcHVzaF90b19odWJfY2FsbGJhY2slMjAlM0QlMjBQdXNoVG9IdWJDYWxsYmFjayglMEElMjAlMjAlMjAlMjBvdXRwdXRfZGlyJTNEJTIyLiUyRnlvdXJfbW9kZWxfc2F2ZV9wYXRoJTIyJTJDJTIwdG9rZW5pemVyJTNEdG9rZW5pemVyJTJDJTIwaHViX21vZGVsX2lkJTNEJTIyeW91ci11c2VybmFtZSUyRm15LWF3ZXNvbWUtbW9kZWwlMjIlMEEp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PushToHubCallback

<span class="hljs-meta">&gt;&gt;&gt; </span>push_to_hub_callback = PushToHubCallback(
<span class="hljs-meta">... </span>    output_dir=<span class="hljs-string">&quot;./your_model_save_path&quot;</span>, tokenizer=tokenizer, hub_model_id=<span class="hljs-string">&quot;your-username/my-awesome-model&quot;</span>
<span class="hljs-meta">... </span>)`,wrap:!1}}),k=new U({props:{code:"bW9kZWwuZml0KHRmX3RyYWluX2RhdGFzZXQlMkMlMjB2YWxpZGF0aW9uX2RhdGElM0R0Zl92YWxpZGF0aW9uX2RhdGFzZXQlMkMlMjBlcG9jaHMlM0QzJTJDJTIwY2FsbGJhY2tzJTNEcHVzaF90b19odWJfY2FsbGJhY2sp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model.fit(tf_train_dataset, validation_data=tf_validation_dataset, epochs=<span class="hljs-number">3</span>, callbacks=push_to_hub_callback)',wrap:!1}}),{c(){n=$("p"),n.innerHTML=f,a=r(),p=$("ul"),p.innerHTML=u,m=r(),h(v.$$.fragment),W=r(),j=$("p"),j.innerHTML=Z,g=r(),h(k.$$.fragment)},l(y){n=c(y,"P",{"data-svelte-h":!0}),d(n)!=="svelte-1qrykh"&&(n.innerHTML=f),a=i(y),p=c(y,"UL",{"data-svelte-h":!0}),d(p)!=="svelte-omd9uv"&&(p.innerHTML=u),m=i(y),M(v.$$.fragment,y),W=i(y),j=c(y,"P",{"data-svelte-h":!0}),d(j)!=="svelte-1u6bst"&&(j.innerHTML=Z),g=i(y),M(k.$$.fragment,y)},m(y,L){s(y,n,L),s(y,a,L),s(y,p,L),s(y,m,L),_(v,y,L),s(y,W,L),s(y,j,L),s(y,g,L),_(k,y,L),x=!0},p:We,i(y){x||(b(v.$$.fragment,y),b(k.$$.fragment,y),x=!0)},o(y){w(v.$$.fragment,y),w(k.$$.fragment,y),x=!1},d(y){y&&(l(n),l(a),l(p),l(m),l(W),l(j),l(g)),T(v,y),T(k,y)}}}function kl(C){let n,f;return n=new xe({props:{$$slots:{default:[vl]},$$scope:{ctx:C}}}),{c(){h(n.$$.fragment)},l(a){M(n.$$.fragment,a)},m(a,p){_(n,a,p),f=!0},p(a,p){const u={};p&2&&(u.$$scope={dirty:p,ctx:a}),n.$set(u)},i(a){f||(b(n.$$.fragment,a),f=!0)},o(a){w(n.$$.fragment,a),f=!1},d(a){T(n,a)}}}function jl(C){let n,f,a,p,u,m,v,W="지난 두 튜토리얼에서 분산 설정을 위해 PyTorch, Keras 및 🤗 Accelerate를 사용하여 모델을 미세 조정하는 방법을 보았습니다. 다음 단계는 모델을 커뮤니티와 공유하는 것입니다! Hugging Face는 인공지능의 민주화를 위해 모두에게 지식과 자원을 공개적으로 공유해야 한다고 믿습니다. 다른 사람들이 시간과 자원을 절약할 수 있도록 커뮤니티에 모델을 공유하는 것을 고려해 보세요.",j,Z,g='이 튜토리얼에서 <a href="https://huggingface.co/models" rel="nofollow">Model Hub</a>에서 훈련되거나 미세 조정 모델을 공유하는 두 가지 방법에 대해 알아봅시다:',k,x,y="<li>API를 통해 파일을 Hub에 푸시합니다.</li> <li>웹사이트를 통해 파일을 Hub로 끌어다 놓습니다.</li>",L,J,P,o,H,Le,Y,Ue,I,Ct="모델 허브의 각 저장소는 일반적인 GitHub 저장소처럼 작동합니다. 저장소는 버전 관리, 커밋 기록, 차이점 시각화 기능을 제공합니다.",Xe,V,Jt='모델 허브에 내장된 버전 관리는 git 및 <a href="https://git-lfs.github.com/" rel="nofollow">git-lfs</a>를 기반으로 합니다. 즉, 하나의 모델을 하나의 저장소로 취급하여 접근 제어 및 확장성이 향상됩니다. 버전 제어는 커밋 해시, 태그 또는 브랜치로 모델의 특정 버전을 고정하는 방법인 <em>revision</em>을 허용합니다.',Fe,E,Wt="따라서 <code>revision</code> 매개변수를 사용하여 특정 모델 버전을 가져올 수 있습니다:",Ge,z,Re,B,Zt="또한 저장소에서 파일을 쉽게 편집할 수 있으며, 커밋 기록과 차이를 볼 수 있습니다:",Pe,q,xt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/vis_diff.png" alt="vis_diff"/>',Ye,Q,Ie,N,Lt="모델을 허브에 공유하기 전에 Hugging Face 자격 증명이 필요합니다. 터미널에 액세스할 수 있는 경우, 🤗 Transformers가 설치된 가상 환경에서 다음 명령을 실행합니다. 그러면 Hugging Face 캐시 폴더(기본적으로 <code>~/.cache/</code>)에 액세스 토큰을 저장합니다:",Ve,A,Ee,S,Ut='Jupyter 또는 Colaboratory와 같은 노트북을 사용 중인 경우, <a href="https://huggingface.co/docs/hub/adding-a-library" rel="nofollow"><code>huggingface_hub</code></a> 라이브러리가 설치되었는지 확인하세요. 이 라이브러리를 사용하면 API로 허브와 상호 작용할 수 있습니다.',ze,D,Be,K,Xt='그런 다음 <code>notebook_login</code>로 허브에 로그인하고, <a href="https://huggingface.co/settings/token" rel="nofollow">여기</a> 링크에서 로그인할 토큰을 생성합니다:',qe,O,Qe,ee,Ne,te,Ft="다른 프레임워크로 작업하는 사용자가 모델을 사용할 수 있도록 하려면, PyTorch 및 TensorFlow 체크포인트를 모두 사용하여 모델을 변환하고 업로드하는 것이 좋습니다. 이 단계를 건너뛰어도 사용자는 다른 프레임워크에서 모델을 가져올 수 있지만, 🤗 Transformers가 체크포인트를 즉석에서 변환해야 하므로 속도가 느려질 수 있습니다.",Ae,le,Gt='체크포인트를 다른 프레임워크로 변환하는 것은 쉽습니다. PyTorch 및 TensorFlow가 설치되어 있는지 확인한 다음(설치 지침은 <a href="installation">여기</a> 참조) 다른 프레임워크에서 작업에 대한 특정 모델을 찾습니다.',Se,X,De,se,Ke,F,Oe,ne,et,ae,Rt="모델에서 직접 <code>push_to_hub</code>를 호출하여 허브에 업로드할 수도 있습니다.",tt,re,Pt="<code>push_to_hub</code>에 모델 이름을 지정하세요:",lt,ie,st,pe,Yt="이렇게 하면 사용자 이름 아래에 모델 이름 <code>my-awesome-model</code>로 저장소가 생성됩니다. 이제 사용자는 <code>from_pretrained</code> 함수를 사용하여 모델을 가져올 수 있습니다:",nt,me,at,fe,It="조직에 속하고 모델을 조직 이름으로 대신 푸시하려면 <code>repo_id</code>에 추가하세요:",rt,oe,it,ue,Vt="<code>push_to_hub</code> 함수는 모델 저장소에 다른 파일을 추가하는 데에도 사용할 수 있습니다. 예를 들어 모델 저장소에 토크나이저를 추가할 수 있습니다:",pt,$e,mt,ce,Et="또는 미세 조정된 PyTorch 모델의 TensorFlow 버전을 추가할 수도 있습니다:",ft,ge,ot,de,zt="이제 Hugging Face 프로필로 이동하면, 새로 생성한 모델 저장소가 표시됩니다. <strong>Files</strong> 탭을 클릭하면 저장소에 업로드한 모든 파일이 표시됩니다.",ut,he,Bt='저장소에 파일을 만들고 업로드하는 방법에 대한 자세한 내용은 허브 설명서 <a href="https://huggingface.co/docs/hub/how-to-upstream" rel="nofollow">여기</a>를 참조하세요.',$t,Me,ct,_e,qt='코드 없는 접근 방식을 선호하는 사용자는 허브의 웹 인터페이스를 통해 모델을 업로드할 수 있습니다. <a href="https://huggingface.co/new" rel="nofollow">huggingface.co/new</a>를 방문하여 새로운 저장소를 생성하세요:',gt,be,Qt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/new_model_repo.png" alt="new_model_repo"/>',dt,we,Nt="여기서 모델에 대한 몇 가지 정보를 추가하세요:",ht,Te,At="<li>저장소의 <strong>소유자</strong>를 선택합니다. 이는 사용자 또는 사용자가 속한 조직일 수 있습니다.</li> <li>저장소 이름이 될 모델의 이름을 선택합니다.</li> <li>모델이 공개인지 비공개인지 선택합니다.</li> <li>모델의 라이센스 사용을 지정합니다.</li>",Mt,ye,St="이제 <strong>Files</strong> 탭을 클릭하고 <strong>Add file</strong> 버튼을 클릭하여 새로운 파일을 저장소에 업로드합니다. 그런 다음 업로드할 파일을 끌어다 놓고 커밋 메시지를 추가하세요.",_t,ve,Dt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/upload_file.png" alt="upload_file"/>',bt,ke,wt,je,Kt="사용자가 모델의 기능, 제한, 잠재적 편향 및 윤리적 고려 사항을 이해할 수 있도록 저장소에 모델 카드를 추가하세요. 모델 카드는 <code>README.md</code> 파일에 정의되어 있습니다. 다음 방법으로 모델 카드를 추가할 수 있습니다:",Tt,He,Ot="<li><code>README.md</code> 파일을 수동으로 생성하여 업로드합니다.</li> <li>모델 저장소에서 <strong>Edit model card</strong> 버튼을 클릭합니다.</li>",yt,Ce,el='모델 카드에 포함할 정보 유형에 대한 좋은 예는 DistilBert <a href="https://huggingface.co/distilbert/distilbert-base-uncased" rel="nofollow">모델 카드</a>를 참조하세요. 모델의 탄소 발자국이나 위젯 예시 등 <code>README.md</code> 파일에서 제어할 수 있는 다른 옵션에 대한 자세한 내용은 <a href="https://huggingface.co/docs/hub/models-cards" rel="nofollow">여기</a> 문서를 참조하세요.',vt,Je,kt,Ze,jt;return u=new R({props:{title:"모델 공유하기",local:"share-a-model",headingTag:"h1"}}),H=new ul({props:{$$slots:{default:[gl]},$$scope:{ctx:C}}}),Y=new R({props:{title:"저장소 특징",local:"repository-features",headingTag:"h2"}}),z=new U({props:{code:"bW9kZWwlMjAlM0QlMjBBdXRvTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmp1bGllbi1jJTJGRXNwZXJCRVJUby1zbWFsbCUyMiUyQyUyMHJldmlzaW9uJTNEJTIyNGM3Nzk4MiUyMiUyMCUyMCUyMyUyMHRhZyUyMG5hbWUlMkMlMjBvciUyMGJyYW5jaCUyMG5hbWUlMkMlMjBvciUyMGNvbW1pdCUyMGhhc2glMEEp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModel.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;julien-c/EsperBERTo-small&quot;</span>, revision=<span class="hljs-string">&quot;4c77982&quot;</span>  <span class="hljs-comment"># tag name, or branch name, or commit hash</span>
<span class="hljs-meta">... </span>)`,wrap:!1}}),Q=new R({props:{title:"설정",local:"setup",headingTag:"h2"}}),A=new U({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),D=new U({props:{code:"cGlwJTIwaW5zdGFsbCUyMGh1Z2dpbmdmYWNlX2h1Yg==",highlighted:"pip install huggingface_hub",wrap:!1}}),O=new U({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

<span class="hljs-meta">&gt;&gt;&gt; </span>notebook_login()`,wrap:!1}}),ee=new R({props:{title:"프레임워크 간 모델 변환하기",local:"convert-a-model-for-all-frameworks",headingTag:"h2"}}),X=new nl({props:{pytorch:!0,tensorflow:!0,jax:!0,$$slots:{jax:[wl],tensorflow:[_l],pytorch:[hl]},$$scope:{ctx:C}}}),se=new R({props:{title:"훈련 중 모델 푸시하기",local:"push-a-model-during-training",headingTag:"h2"}}),F=new nl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[kl],pytorch:[yl]},$$scope:{ctx:C}}}),ne=new R({props:{title:"push_to_hub 함수 사용하기",local:"use-the-pushtohub-function",headingTag:"h2"}}),ie=new U({props:{code:"cHRfbW9kZWwucHVzaF90b19odWIoJTIybXktYXdlc29tZS1tb2RlbCUyMik=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.push_to_hub(<span class="hljs-string">&quot;my-awesome-model&quot;</span>)',wrap:!1}}),me=new U({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbCUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZCglMjJ5b3VyX3VzZXJuYW1lJTJGbXktYXdlc29tZS1tb2RlbCUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModel

<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModel.from_pretrained(<span class="hljs-string">&quot;your_username/my-awesome-model&quot;</span>)`,wrap:!1}}),oe=new U({props:{code:"cHRfbW9kZWwucHVzaF90b19odWIoJTIybXktYXdlc29tZS1vcmclMkZteS1hd2Vzb21lLW1vZGVsJTIyKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.push_to_hub(<span class="hljs-string">&quot;my-awesome-org/my-awesome-model&quot;</span>)',wrap:!1}}),$e=new U({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMm15LWF3ZXNvbWUtbW9kZWwlMjIp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.push_to_hub(<span class="hljs-string">&quot;my-awesome-model&quot;</span>)',wrap:!1}}),ge=new U({props:{code:"dGZfbW9kZWwucHVzaF90b19odWIoJTIybXktYXdlc29tZS1tb2RlbCUyMik=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.push_to_hub(<span class="hljs-string">&quot;my-awesome-model&quot;</span>)',wrap:!1}}),Me=new R({props:{title:"웹 인터페이스로 업로드하기",local:"upload-with-the-web-interface",headingTag:"h2"}}),ke=new R({props:{title:"모델 카드 추가하기",local:"add-a-model-card",headingTag:"h2"}}),Je=new cl({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/model_sharing.md"}}),{c(){n=$("meta"),f=r(),a=$("p"),p=r(),h(u.$$.fragment),m=r(),v=$("p"),v.textContent=W,j=r(),Z=$("p"),Z.innerHTML=g,k=r(),x=$("ul"),x.innerHTML=y,L=r(),J=$("iframe"),o=r(),h(H.$$.fragment),Le=r(),h(Y.$$.fragment),Ue=r(),I=$("p"),I.textContent=Ct,Xe=r(),V=$("p"),V.innerHTML=Jt,Fe=r(),E=$("p"),E.innerHTML=Wt,Ge=r(),h(z.$$.fragment),Re=r(),B=$("p"),B.textContent=Zt,Pe=r(),q=$("p"),q.innerHTML=xt,Ye=r(),h(Q.$$.fragment),Ie=r(),N=$("p"),N.innerHTML=Lt,Ve=r(),h(A.$$.fragment),Ee=r(),S=$("p"),S.innerHTML=Ut,ze=r(),h(D.$$.fragment),Be=r(),K=$("p"),K.innerHTML=Xt,qe=r(),h(O.$$.fragment),Qe=r(),h(ee.$$.fragment),Ne=r(),te=$("p"),te.textContent=Ft,Ae=r(),le=$("p"),le.innerHTML=Gt,Se=r(),h(X.$$.fragment),De=r(),h(se.$$.fragment),Ke=r(),h(F.$$.fragment),Oe=r(),h(ne.$$.fragment),et=r(),ae=$("p"),ae.innerHTML=Rt,tt=r(),re=$("p"),re.innerHTML=Pt,lt=r(),h(ie.$$.fragment),st=r(),pe=$("p"),pe.innerHTML=Yt,nt=r(),h(me.$$.fragment),at=r(),fe=$("p"),fe.innerHTML=It,rt=r(),h(oe.$$.fragment),it=r(),ue=$("p"),ue.innerHTML=Vt,pt=r(),h($e.$$.fragment),mt=r(),ce=$("p"),ce.textContent=Et,ft=r(),h(ge.$$.fragment),ot=r(),de=$("p"),de.innerHTML=zt,ut=r(),he=$("p"),he.innerHTML=Bt,$t=r(),h(Me.$$.fragment),ct=r(),_e=$("p"),_e.innerHTML=qt,gt=r(),be=$("p"),be.innerHTML=Qt,dt=r(),we=$("p"),we.textContent=Nt,ht=r(),Te=$("ul"),Te.innerHTML=At,Mt=r(),ye=$("p"),ye.innerHTML=St,_t=r(),ve=$("p"),ve.innerHTML=Dt,bt=r(),h(ke.$$.fragment),wt=r(),je=$("p"),je.innerHTML=Kt,Tt=r(),He=$("ul"),He.innerHTML=Ot,yt=r(),Ce=$("p"),Ce.innerHTML=el,vt=r(),h(Je.$$.fragment),kt=r(),Ze=$("p"),this.h()},l(e){const t=fl("svelte-u9bgzb",document.head);n=c(t,"META",{name:!0,content:!0}),t.forEach(l),f=i(e),a=c(e,"P",{}),Ht(a).forEach(l),p=i(e),M(u.$$.fragment,e),m=i(e),v=c(e,"P",{"data-svelte-h":!0}),d(v)!=="svelte-eg5xq6"&&(v.textContent=W),j=i(e),Z=c(e,"P",{"data-svelte-h":!0}),d(Z)!=="svelte-17tx3z4"&&(Z.innerHTML=g),k=i(e),x=c(e,"UL",{"data-svelte-h":!0}),d(x)!=="svelte-1913196"&&(x.innerHTML=y),L=i(e),J=c(e,"IFRAME",{width:!0,height:!0,src:!0,title:!0,frameborder:!0,allow:!0}),Ht(J).forEach(l),o=i(e),M(H.$$.fragment,e),Le=i(e),M(Y.$$.fragment,e),Ue=i(e),I=c(e,"P",{"data-svelte-h":!0}),d(I)!=="svelte-1yck4lf"&&(I.textContent=Ct),Xe=i(e),V=c(e,"P",{"data-svelte-h":!0}),d(V)!=="svelte-1xcyu3z"&&(V.innerHTML=Jt),Fe=i(e),E=c(e,"P",{"data-svelte-h":!0}),d(E)!=="svelte-akumrw"&&(E.innerHTML=Wt),Ge=i(e),M(z.$$.fragment,e),Re=i(e),B=c(e,"P",{"data-svelte-h":!0}),d(B)!=="svelte-3nuli4"&&(B.textContent=Zt),Pe=i(e),q=c(e,"P",{"data-svelte-h":!0}),d(q)!=="svelte-hnu2bf"&&(q.innerHTML=xt),Ye=i(e),M(Q.$$.fragment,e),Ie=i(e),N=c(e,"P",{"data-svelte-h":!0}),d(N)!=="svelte-evny8e"&&(N.innerHTML=Lt),Ve=i(e),M(A.$$.fragment,e),Ee=i(e),S=c(e,"P",{"data-svelte-h":!0}),d(S)!=="svelte-1uxou9a"&&(S.innerHTML=Ut),ze=i(e),M(D.$$.fragment,e),Be=i(e),K=c(e,"P",{"data-svelte-h":!0}),d(K)!=="svelte-1lap8j6"&&(K.innerHTML=Xt),qe=i(e),M(O.$$.fragment,e),Qe=i(e),M(ee.$$.fragment,e),Ne=i(e),te=c(e,"P",{"data-svelte-h":!0}),d(te)!=="svelte-1kz5bkl"&&(te.textContent=Ft),Ae=i(e),le=c(e,"P",{"data-svelte-h":!0}),d(le)!=="svelte-6bxxuk"&&(le.innerHTML=Gt),Se=i(e),M(X.$$.fragment,e),De=i(e),M(se.$$.fragment,e),Ke=i(e),M(F.$$.fragment,e),Oe=i(e),M(ne.$$.fragment,e),et=i(e),ae=c(e,"P",{"data-svelte-h":!0}),d(ae)!=="svelte-l63k2v"&&(ae.innerHTML=Rt),tt=i(e),re=c(e,"P",{"data-svelte-h":!0}),d(re)!=="svelte-1ag42ds"&&(re.innerHTML=Pt),lt=i(e),M(ie.$$.fragment,e),st=i(e),pe=c(e,"P",{"data-svelte-h":!0}),d(pe)!=="svelte-19mcadk"&&(pe.innerHTML=Yt),nt=i(e),M(me.$$.fragment,e),at=i(e),fe=c(e,"P",{"data-svelte-h":!0}),d(fe)!=="svelte-1lkkl7a"&&(fe.innerHTML=It),rt=i(e),M(oe.$$.fragment,e),it=i(e),ue=c(e,"P",{"data-svelte-h":!0}),d(ue)!=="svelte-1d58pos"&&(ue.innerHTML=Vt),pt=i(e),M($e.$$.fragment,e),mt=i(e),ce=c(e,"P",{"data-svelte-h":!0}),d(ce)!=="svelte-j0zg2m"&&(ce.textContent=Et),ft=i(e),M(ge.$$.fragment,e),ot=i(e),de=c(e,"P",{"data-svelte-h":!0}),d(de)!=="svelte-jxiox6"&&(de.innerHTML=zt),ut=i(e),he=c(e,"P",{"data-svelte-h":!0}),d(he)!=="svelte-fl28jn"&&(he.innerHTML=Bt),$t=i(e),M(Me.$$.fragment,e),ct=i(e),_e=c(e,"P",{"data-svelte-h":!0}),d(_e)!=="svelte-1od290y"&&(_e.innerHTML=qt),gt=i(e),be=c(e,"P",{"data-svelte-h":!0}),d(be)!=="svelte-ahj3l9"&&(be.innerHTML=Qt),dt=i(e),we=c(e,"P",{"data-svelte-h":!0}),d(we)!=="svelte-1fz97na"&&(we.textContent=Nt),ht=i(e),Te=c(e,"UL",{"data-svelte-h":!0}),d(Te)!=="svelte-os9pn9"&&(Te.innerHTML=At),Mt=i(e),ye=c(e,"P",{"data-svelte-h":!0}),d(ye)!=="svelte-15xpzd"&&(ye.innerHTML=St),_t=i(e),ve=c(e,"P",{"data-svelte-h":!0}),d(ve)!=="svelte-32sxm9"&&(ve.innerHTML=Dt),bt=i(e),M(ke.$$.fragment,e),wt=i(e),je=c(e,"P",{"data-svelte-h":!0}),d(je)!=="svelte-1gk60ou"&&(je.innerHTML=Kt),Tt=i(e),He=c(e,"UL",{"data-svelte-h":!0}),d(He)!=="svelte-1vhd2ja"&&(He.innerHTML=Ot),yt=i(e),Ce=c(e,"P",{"data-svelte-h":!0}),d(Ce)!=="svelte-5p89ov"&&(Ce.innerHTML=el),vt=i(e),M(Je.$$.fragment,e),kt=i(e),Ze=c(e,"P",{}),Ht(Ze).forEach(l),this.h()},h(){G(n,"name","hf:doc:metadata"),G(n,"content",Hl),G(J,"width","560"),G(J,"height","315"),rl(J.src,P="https://www.youtube.com/embed/XvSGPZFEjDY")||G(J,"src",P),G(J,"title","YouTube video player"),G(J,"frameborder","0"),G(J,"allow",`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope;
picture-in-picture`),J.allowFullscreen=""},m(e,t){ol(document.head,n),s(e,f,t),s(e,a,t),s(e,p,t),_(u,e,t),s(e,m,t),s(e,v,t),s(e,j,t),s(e,Z,t),s(e,k,t),s(e,x,t),s(e,L,t),s(e,J,t),s(e,o,t),_(H,e,t),s(e,Le,t),_(Y,e,t),s(e,Ue,t),s(e,I,t),s(e,Xe,t),s(e,V,t),s(e,Fe,t),s(e,E,t),s(e,Ge,t),_(z,e,t),s(e,Re,t),s(e,B,t),s(e,Pe,t),s(e,q,t),s(e,Ye,t),_(Q,e,t),s(e,Ie,t),s(e,N,t),s(e,Ve,t),_(A,e,t),s(e,Ee,t),s(e,S,t),s(e,ze,t),_(D,e,t),s(e,Be,t),s(e,K,t),s(e,qe,t),_(O,e,t),s(e,Qe,t),_(ee,e,t),s(e,Ne,t),s(e,te,t),s(e,Ae,t),s(e,le,t),s(e,Se,t),_(X,e,t),s(e,De,t),_(se,e,t),s(e,Ke,t),_(F,e,t),s(e,Oe,t),_(ne,e,t),s(e,et,t),s(e,ae,t),s(e,tt,t),s(e,re,t),s(e,lt,t),_(ie,e,t),s(e,st,t),s(e,pe,t),s(e,nt,t),_(me,e,t),s(e,at,t),s(e,fe,t),s(e,rt,t),_(oe,e,t),s(e,it,t),s(e,ue,t),s(e,pt,t),_($e,e,t),s(e,mt,t),s(e,ce,t),s(e,ft,t),_(ge,e,t),s(e,ot,t),s(e,de,t),s(e,ut,t),s(e,he,t),s(e,$t,t),_(Me,e,t),s(e,ct,t),s(e,_e,t),s(e,gt,t),s(e,be,t),s(e,dt,t),s(e,we,t),s(e,ht,t),s(e,Te,t),s(e,Mt,t),s(e,ye,t),s(e,_t,t),s(e,ve,t),s(e,bt,t),_(ke,e,t),s(e,wt,t),s(e,je,t),s(e,Tt,t),s(e,He,t),s(e,yt,t),s(e,Ce,t),s(e,vt,t),_(Je,e,t),s(e,kt,t),s(e,Ze,t),jt=!0},p(e,[t]){const tl={};t&2&&(tl.$$scope={dirty:t,ctx:e}),H.$set(tl);const ll={};t&2&&(ll.$$scope={dirty:t,ctx:e}),X.$set(ll);const sl={};t&2&&(sl.$$scope={dirty:t,ctx:e}),F.$set(sl)},i(e){jt||(b(u.$$.fragment,e),b(H.$$.fragment,e),b(Y.$$.fragment,e),b(z.$$.fragment,e),b(Q.$$.fragment,e),b(A.$$.fragment,e),b(D.$$.fragment,e),b(O.$$.fragment,e),b(ee.$$.fragment,e),b(X.$$.fragment,e),b(se.$$.fragment,e),b(F.$$.fragment,e),b(ne.$$.fragment,e),b(ie.$$.fragment,e),b(me.$$.fragment,e),b(oe.$$.fragment,e),b($e.$$.fragment,e),b(ge.$$.fragment,e),b(Me.$$.fragment,e),b(ke.$$.fragment,e),b(Je.$$.fragment,e),jt=!0)},o(e){w(u.$$.fragment,e),w(H.$$.fragment,e),w(Y.$$.fragment,e),w(z.$$.fragment,e),w(Q.$$.fragment,e),w(A.$$.fragment,e),w(D.$$.fragment,e),w(O.$$.fragment,e),w(ee.$$.fragment,e),w(X.$$.fragment,e),w(se.$$.fragment,e),w(F.$$.fragment,e),w(ne.$$.fragment,e),w(ie.$$.fragment,e),w(me.$$.fragment,e),w(oe.$$.fragment,e),w($e.$$.fragment,e),w(ge.$$.fragment,e),w(Me.$$.fragment,e),w(ke.$$.fragment,e),w(Je.$$.fragment,e),jt=!1},d(e){e&&(l(f),l(a),l(p),l(m),l(v),l(j),l(Z),l(k),l(x),l(L),l(J),l(o),l(Le),l(Ue),l(I),l(Xe),l(V),l(Fe),l(E),l(Ge),l(Re),l(B),l(Pe),l(q),l(Ye),l(Ie),l(N),l(Ve),l(Ee),l(S),l(ze),l(Be),l(K),l(qe),l(Qe),l(Ne),l(te),l(Ae),l(le),l(Se),l(De),l(Ke),l(Oe),l(et),l(ae),l(tt),l(re),l(lt),l(st),l(pe),l(nt),l(at),l(fe),l(rt),l(it),l(ue),l(pt),l(mt),l(ce),l(ft),l(ot),l(de),l(ut),l(he),l($t),l(ct),l(_e),l(gt),l(be),l(dt),l(we),l(ht),l(Te),l(Mt),l(ye),l(_t),l(ve),l(bt),l(wt),l(je),l(Tt),l(He),l(yt),l(Ce),l(vt),l(kt),l(Ze)),l(n),T(u,e),T(H,e),T(Y,e),T(z,e),T(Q,e),T(A,e),T(D,e),T(O,e),T(ee,e),T(X,e),T(se,e),T(F,e),T(ne,e),T(ie,e),T(me,e),T(oe,e),T($e,e),T(ge,e),T(Me,e),T(ke,e),T(Je,e)}}}const Hl='{"title":"모델 공유하기","local":"share-a-model","sections":[{"title":"저장소 특징","local":"repository-features","sections":[],"depth":2},{"title":"설정","local":"setup","sections":[],"depth":2},{"title":"프레임워크 간 모델 변환하기","local":"convert-a-model-for-all-frameworks","sections":[],"depth":2},{"title":"훈련 중 모델 푸시하기","local":"push-a-model-during-training","sections":[],"depth":2},{"title":"push_to_hub 함수 사용하기","local":"use-the-pushtohub-function","sections":[],"depth":2},{"title":"웹 인터페이스로 업로드하기","local":"upload-with-the-web-interface","sections":[],"depth":2},{"title":"모델 카드 추가하기","local":"add-a-model-card","sections":[],"depth":2}],"depth":1}';function Cl(C){return il(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Fl extends pl{constructor(n){super(),ml(this,n,Cl,jl,al,{})}}export{Fl as component};
