import{s as al,f as pl,o as rl,n as We}from"../chunks/scheduler.9bc65507.js";import{S as il,i as ml,g as $,s as p,r as h,A as ol,h as c,f as l,c as r,j as jt,u as w,x as d,k as G,y as fl,a as s,v as M,d as _,t as b,w as T}from"../chunks/index.707bf1b6.js";import{T as ul}from"../chunks/Tip.c2ecdbf4.js";import{Y as $l}from"../chunks/Youtube.e1129c6f.js";import{C as F}from"../chunks/CodeBlock.54a9f38d.js";import{F as nl,M as xe}from"../chunks/Markdown.fef84341.js";import{H as R,E as cl}from"../chunks/EditOnGithub.922df6ba.js";function gl(H){let n,o='커뮤니티에 모델을 공유하려면, <a href="https://huggingface.co/join" rel="nofollow">huggingface.co</a>에 계정이 필요합니다. 기존 조직에 가입하거나 새로 만들 수도 있습니다.';return{c(){n=$("p"),n.innerHTML=o},l(a){n=c(a,"P",{"data-svelte-h":!0}),d(n)!=="svelte-1x1qpix"&&(n.innerHTML=o)},m(a,i){s(a,n,i)},p:We,d(a){a&&l(n)}}}function dl(H){let n,o="체크포인트를 TensorFlow에서 PyTorch로 변환하려면 <code>from_tf=True</code>를 지정하세요:",a,i,u;return i=new F({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=o,a=p(),h(i.$$.fragment)},l(m){n=c(m,"P",{"data-svelte-h":!0}),d(n)!=="svelte-ulhn3k"&&(n.innerHTML=o),a=r(m),w(i.$$.fragment,m)},m(m,v){s(m,n,v),s(m,a,v),M(i,m,v),u=!0},p:We,i(m){u||(_(i.$$.fragment,m),u=!0)},o(m){b(i.$$.fragment,m),u=!1},d(m){m&&(l(n),l(a)),T(i,m)}}}function hl(H){let n,o;return n=new xe({props:{$$slots:{default:[dl]},$$scope:{ctx:H}}}),{c(){h(n.$$.fragment)},l(a){w(n.$$.fragment,a)},m(a,i){M(n,a,i),o=!0},p(a,i){const u={};i&2&&(u.$$scope={dirty:i,ctx:a}),n.$set(u)},i(a){o||(_(n.$$.fragment,a),o=!0)},o(a){b(n.$$.fragment,a),o=!1},d(a){T(n,a)}}}function wl(H){let n,o="체크포인트를 PyTorch에서 TensorFlow로 변환하려면 <code>from_pt=True</code>를 지정하세요:",a,i,u,m,v="그런 다음 새로운 체크포인트와 함께 새로운 TensorFlow 모델을 저장할 수 있습니다:",W,k,Z;return i=new F({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}}),k=new F({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=o,a=p(),h(i.$$.fragment),u=p(),m=$("p"),m.textContent=v,W=p(),h(k.$$.fragment)},l(g){n=c(g,"P",{"data-svelte-h":!0}),d(n)!=="svelte-sn4jxc"&&(n.innerHTML=o),a=r(g),w(i.$$.fragment,g),u=r(g),m=c(g,"P",{"data-svelte-h":!0}),d(m)!=="svelte-eampn5"&&(m.textContent=v),W=r(g),w(k.$$.fragment,g)},m(g,J){s(g,n,J),s(g,a,J),M(i,g,J),s(g,u,J),s(g,m,J),s(g,W,J),M(k,g,J),Z=!0},p:We,i(g){Z||(_(i.$$.fragment,g),_(k.$$.fragment,g),Z=!0)},o(g){b(i.$$.fragment,g),b(k.$$.fragment,g),Z=!1},d(g){g&&(l(n),l(a),l(u),l(m),l(W)),T(i,g),T(k,g)}}}function Ml(H){let n,o;return n=new xe({props:{$$slots:{default:[wl]},$$scope:{ctx:H}}}),{c(){h(n.$$.fragment)},l(a){w(n.$$.fragment,a)},m(a,i){M(n,a,i),o=!0},p(a,i){const u={};i&2&&(u.$$scope={dirty:i,ctx:a}),n.$set(u)},i(a){o||(_(n.$$.fragment,a),o=!0)},o(a){b(n.$$.fragment,a),o=!1},d(a){T(n,a)}}}function _l(H){let n,o="Flax에서 모델을 사용하는 경우, PyTorch에서 Flax로 체크포인트를 변환할 수도 있습니다:",a,i,u;return i=new F({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=o,a=p(),h(i.$$.fragment)},l(m){n=c(m,"P",{"data-svelte-h":!0}),d(n)!=="svelte-qsi1v0"&&(n.textContent=o),a=r(m),w(i.$$.fragment,m)},m(m,v){s(m,n,v),s(m,a,v),M(i,m,v),u=!0},p:We,i(m){u||(_(i.$$.fragment,m),u=!0)},o(m){b(i.$$.fragment,m),u=!1},d(m){m&&(l(n),l(a)),T(i,m)}}}function bl(H){let n,o;return n=new xe({props:{$$slots:{default:[_l]},$$scope:{ctx:H}}}),{c(){h(n.$$.fragment)},l(a){w(n.$$.fragment,a)},m(a,i){M(n,a,i),o=!0},p(a,i){const u={};i&2&&(u.$$scope={dirty:i,ctx:a}),n.$set(u)},i(a){o||(_(n.$$.fragment,a),o=!0)},o(a){b(n.$$.fragment,a),o=!1},d(a){T(n,a)}}}function Tl(H){let n,o,a,i='모델을 허브에 공유하는 것은 추가 매개변수나 콜백을 추가하는 것만큼 간단합니다. <a href="training">미세 조정 튜토리얼</a>에서 <code>TrainingArguments</code> 클래스는 하이퍼파라미터와 추가 훈련 옵션을 지정하는 곳이라는 것을 기억하세요. 이러한 훈련 옵션 중 하나는 모델을 허브로 직접 푸시하는 기능을 포함합니다. <code>TrainingArguments</code>에서 <code>push_to_hub=True</code>를 설정하세요:',u,m,v,W,k="평소와 같이 훈련 인수를 <code>Trainer</code>에 전달합니다:",Z,g,J,x,y="모델을 미세 조정한 후, <code>Trainer</code>에서 <code>push_to_hub()</code>를 호출하여 훈련된 모델을 허브로 푸시하세요. 🤗 Transformers는 훈련 하이퍼파라미터, 훈련 결과 및 프레임워크 버전을 모델 카드에 자동으로 추가합니다!",L,C,I;return n=new $l({props:{id:"Z1-XMy-GNLQ"}}),m=new F({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 F({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}}),C=new F({props:{code:"dHJhaW5lci5wdXNoX3RvX2h1Yigp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.push_to_hub()',wrap:!1}}),{c(){h(n.$$.fragment),o=p(),a=$("p"),a.innerHTML=i,u=p(),h(m.$$.fragment),v=p(),W=$("p"),W.innerHTML=k,Z=p(),h(g.$$.fragment),J=p(),x=$("p"),x.innerHTML=y,L=p(),h(C.$$.fragment)},l(f){w(n.$$.fragment,f),o=r(f),a=c(f,"P",{"data-svelte-h":!0}),d(a)!=="svelte-1ivzhup"&&(a.innerHTML=i),u=r(f),w(m.$$.fragment,f),v=r(f),W=c(f,"P",{"data-svelte-h":!0}),d(W)!=="svelte-wl6tpp"&&(W.innerHTML=k),Z=r(f),w(g.$$.fragment,f),J=r(f),x=c(f,"P",{"data-svelte-h":!0}),d(x)!=="svelte-147nj48"&&(x.innerHTML=y),L=r(f),w(C.$$.fragment,f)},m(f,j){M(n,f,j),s(f,o,j),s(f,a,j),s(f,u,j),M(m,f,j),s(f,v,j),s(f,W,j),s(f,Z,j),M(g,f,j),s(f,J,j),s(f,x,j),s(f,L,j),M(C,f,j),I=!0},p:We,i(f){I||(_(n.$$.fragment,f),_(m.$$.fragment,f),_(g.$$.fragment,f),_(C.$$.fragment,f),I=!0)},o(f){b(n.$$.fragment,f),b(m.$$.fragment,f),b(g.$$.fragment,f),b(C.$$.fragment,f),I=!1},d(f){f&&(l(o),l(a),l(u),l(v),l(W),l(Z),l(J),l(x),l(L)),T(n,f),T(m,f),T(g,f),T(C,f)}}}function yl(H){let n,o;return n=new xe({props:{$$slots:{default:[Tl]},$$scope:{ctx:H}}}),{c(){h(n.$$.fragment)},l(a){w(n.$$.fragment,a)},m(a,i){M(n,a,i),o=!0},p(a,i){const u={};i&2&&(u.$$scope={dirty:i,ctx:a}),n.$set(u)},i(a){o||(_(n.$$.fragment,a),o=!0)},o(a){b(n.$$.fragment,a),o=!1},d(a){T(n,a)}}}function vl(H){let n,o="<code>PushToHubCallback</code>을 사용하여 모델을 허브에 공유하려면, <code>PushToHubCallback</code>에 다음 인수를 정의하세요:",a,i,u="<li>출력된 모델의 파일 경로</li> <li>토크나이저</li> <li><code>{Hub 사용자 이름}/{모델 이름}</code> 형식의 <code>hub_model_id</code></li>",m,v,W,k,Z='<a href="https://keras.io/api/models/model_training_apis/" rel="nofollow"><code>fit</code></a>에 콜백을 추가하면, 🤗 Transformers가 훈련된 모델을 허브로 푸시합니다:',g,J,x;return v=new F({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}}),J=new F({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=o,a=p(),i=$("ul"),i.innerHTML=u,m=p(),h(v.$$.fragment),W=p(),k=$("p"),k.innerHTML=Z,g=p(),h(J.$$.fragment)},l(y){n=c(y,"P",{"data-svelte-h":!0}),d(n)!=="svelte-1m85w97"&&(n.innerHTML=o),a=r(y),i=c(y,"UL",{"data-svelte-h":!0}),d(i)!=="svelte-omd9uv"&&(i.innerHTML=u),m=r(y),w(v.$$.fragment,y),W=r(y),k=c(y,"P",{"data-svelte-h":!0}),d(k)!=="svelte-1u6bst"&&(k.innerHTML=Z),g=r(y),w(J.$$.fragment,y)},m(y,L){s(y,n,L),s(y,a,L),s(y,i,L),s(y,m,L),M(v,y,L),s(y,W,L),s(y,k,L),s(y,g,L),M(J,y,L),x=!0},p:We,i(y){x||(_(v.$$.fragment,y),_(J.$$.fragment,y),x=!0)},o(y){b(v.$$.fragment,y),b(J.$$.fragment,y),x=!1},d(y){y&&(l(n),l(a),l(i),l(m),l(W),l(k),l(g)),T(v,y),T(J,y)}}}function Jl(H){let n,o;return n=new xe({props:{$$slots:{default:[vl]},$$scope:{ctx:H}}}),{c(){h(n.$$.fragment)},l(a){w(n.$$.fragment,a)},m(a,i){M(n,a,i),o=!0},p(a,i){const u={};i&2&&(u.$$scope={dirty:i,ctx:a}),n.$set(u)},i(a){o||(_(n.$$.fragment,a),o=!0)},o(a){b(n.$$.fragment,a),o=!1},d(a){T(n,a)}}}function kl(H){let n,o,a,i,u,m,v,W="지난 두 튜토리얼에서 분산 설정을 위해 PyTorch, Keras 및 🤗 Accelerate를 사용하여 모델을 미세 조정하는 방법을 보았습니다. 다음 단계는 모델을 커뮤니티와 공유하는 것입니다! Hugging Face는 인공지능의 민주화를 위해 모두에게 지식과 자원을 공개적으로 공유해야 한다고 믿습니다. 다른 사람들이 시간과 자원을 절약할 수 있도록 커뮤니티에 모델을 공유하는 것을 고려해 보세요.",k,Z,g='이 튜토리얼에서 <a href="https://huggingface.co/models" rel="nofollow">Model Hub</a>에서 훈련되거나 미세 조정 모델을 공유하는 두 가지 방법에 대해 알아봅시다:',J,x,y="<li>API를 통해 파일을 Hub에 푸시합니다.</li> <li>웹사이트를 통해 파일을 Hub로 끌어다 놓습니다.</li>",L,C,I,f,j,Le,Y,Fe,P,Ht="모델 허브의 각 저장소는 일반적인 GitHub 저장소처럼 작동합니다. 저장소는 버전 관리, 커밋 기록, 차이점 시각화 기능을 제공합니다.",Xe,V,Ct='모델 허브에 내장된 버전 관리는 git 및 <a href="https://git-lfs.github.com/" rel="nofollow">git-lfs</a>를 기반으로 합니다. 즉, 하나의 모델을 하나의 저장소로 취급하여 접근 제어 및 확장성이 향상됩니다. 버전 제어는 커밋 해시, 태그 또는 브랜치로 모델의 특정 버전을 고정하는 방법인 <em>revision</em>을 허용합니다.',Ue,z,Wt="따라서 <code>revision</code> 매개변수를 사용하여 특정 모델 버전을 가져올 수 있습니다:",Ge,E,Re,B,Zt="또한 저장소에서 파일을 쉽게 편집할 수 있으며, 커밋 기록과 차이를 볼 수 있습니다:",Ie,q,xt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/vis_diff.png" alt="vis_diff"/>',Ye,Q,Pe,S,Lt="모델을 허브에 공유하기 전에 Hugging Face 자격 증명이 필요합니다. 터미널에 액세스할 수 있는 경우, 🤗 Transformers가 설치된 가상 환경에서 다음 명령을 실행합니다. 그러면 Hugging Face 캐시 폴더(기본적으로 <code>~/.cache/</code>)에 액세스 토큰을 저장합니다:",Ve,N,ze,A,Ft='Jupyter 또는 Colaboratory와 같은 노트북을 사용 중인 경우, <a href="https://huggingface.co/docs/hub/adding-a-library" rel="nofollow"><code>huggingface_hub</code></a> 라이브러리가 설치되었는지 확인하세요. 이 라이브러리를 사용하면 API로 허브와 상호 작용할 수 있습니다.',Ee,D,Be,K,Xt='그런 다음 <code>notebook_login</code>로 허브에 로그인하고, <a href="https://huggingface.co/settings/token" rel="nofollow">여기</a> 링크에서 로그인할 토큰을 생성합니다:',qe,O,Qe,ee,Se,te,Ut="다른 프레임워크로 작업하는 사용자가 모델을 사용할 수 있도록 하려면, PyTorch 및 TensorFlow 체크포인트를 모두 사용하여 모델을 변환하고 업로드하는 것이 좋습니다. 이 단계를 건너뛰어도 사용자는 다른 프레임워크에서 모델을 가져올 수 있지만, 🤗 Transformers가 체크포인트를 즉석에서 변환해야 하므로 속도가 느려질 수 있습니다.",Ne,le,Gt='체크포인트를 다른 프레임워크로 변환하는 것은 쉽습니다. PyTorch 및 TensorFlow가 설치되어 있는지 확인한 다음(설치 지침은 <a href="installation">여기</a> 참조) 다른 프레임워크에서 작업에 대한 특정 모델을 찾습니다.',Ae,X,De,se,Ke,U,Oe,ne,et,ae,Rt="모델에서 직접 <code>push_to_hub</code>를 호출하여 허브에 업로드할 수도 있습니다.",tt,pe,It="<code>push_to_hub</code>에 모델 이름을 지정하세요:",lt,re,st,ie,Yt="이렇게 하면 사용자 이름 아래에 모델 이름 <code>my-awesome-model</code>로 저장소가 생성됩니다. 이제 사용자는 <code>from_pretrained</code> 함수를 사용하여 모델을 가져올 수 있습니다:",nt,me,at,oe,Pt="조직에 속하고 모델을 조직 이름으로 대신 푸시하려면 <code>repo_id</code>에 추가하세요:",pt,fe,rt,ue,Vt="<code>push_to_hub</code> 함수는 모델 저장소에 다른 파일을 추가하는 데에도 사용할 수 있습니다. 예를 들어 모델 저장소에 토크나이저를 추가할 수 있습니다:",it,$e,mt,ce,zt="또는 미세 조정된 PyTorch 모델의 TensorFlow 버전을 추가할 수도 있습니다:",ot,ge,ft,de,Et="이제 Hugging Face 프로필로 이동하면, 새로 생성한 모델 저장소가 표시됩니다. <strong>Files</strong> 탭을 클릭하면 저장소에 업로드한 모든 파일이 표시됩니다.",ut,he,Bt='저장소에 파일을 만들고 업로드하는 방법에 대한 자세한 내용은 허브 설명서 <a href="https://huggingface.co/docs/hub/how-to-upstream" rel="nofollow">여기</a>를 참조하세요.',$t,we,ct,Me,qt='코드 없는 접근 방식을 선호하는 사용자는 허브의 웹 인터페이스를 통해 모델을 업로드할 수 있습니다. <a href="https://huggingface.co/new" rel="nofollow">huggingface.co/new</a>를 방문하여 새로운 저장소를 생성하세요:',gt,_e,Qt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/new_model_repo.png" alt="new_model_repo"/>',dt,be,St="여기서 모델에 대한 몇 가지 정보를 추가하세요:",ht,Te,Nt="<li>저장소의 <strong>소유자</strong>를 선택합니다. 이는 사용자 또는 사용자가 속한 조직일 수 있습니다.</li> <li>저장소 이름이 될 모델의 이름을 선택합니다.</li> <li>모델이 공개인지 비공개인지 선택합니다.</li> <li>모델의 라이센스 사용을 지정합니다.</li>",wt,ye,At="이제 <strong>Files</strong> 탭을 클릭하고 <strong>Add file</strong> 버튼을 클릭하여 새로운 파일을 저장소에 업로드합니다. 그런 다음 업로드할 파일을 끌어다 놓고 커밋 메시지를 추가하세요.",Mt,ve,Dt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/upload_file.png" alt="upload_file"/>',_t,Je,bt,ke,Kt="사용자가 모델의 기능, 제한, 잠재적 편향 및 윤리적 고려 사항을 이해할 수 있도록 저장소에 모델 카드를 추가하세요. 모델 카드는 <code>README.md</code> 파일에 정의되어 있습니다. 다음 방법으로 모델 카드를 추가할 수 있습니다:",Tt,je,Ot="<li><code>README.md</code> 파일을 수동으로 생성하여 업로드합니다.</li> <li>모델 저장소에서 <strong>Edit model card</strong> 버튼을 클릭합니다.</li>",yt,He,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,Ce,Jt,Ze,kt;return u=new R({props:{title:"모델 공유하기",local:"share-a-model",headingTag:"h1"}}),j=new ul({props:{$$slots:{default:[gl]},$$scope:{ctx:H}}}),Y=new R({props:{title:"저장소 특징",local:"repository-features",headingTag:"h2"}}),E=new F({props:{code:"bW9kZWwlMjAlM0QlMjBBdXRvTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmp1bGllbi1jJTJGRXNwZXJCRVJUby1zbWFsbCUyMiUyQyUyMHJldmlzaW9uJTNEJTIydjIuMC4xJTIyJTIwJTIwJTIzJTIwdGFnJTIwbmFtZSUyQyUyMG9yJTIwYnJhbmNoJTIwbmFtZSUyQyUyMG9yJTIwY29tbWl0JTIwaGFzaCUwQSk=",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;v2.0.1&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"}}),N=new F({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),D=new F({props:{code:"cGlwJTIwaW5zdGFsbCUyMGh1Z2dpbmdmYWNlX2h1Yg==",highlighted:"pip install huggingface_hub",wrap:!1}}),O=new F({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:[bl],tensorflow:[Ml],pytorch:[hl]},$$scope:{ctx:H}}}),se=new R({props:{title:"훈련 중 모델 푸시하기",local:"push-a-model-during-training",headingTag:"h2"}}),U=new nl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Jl],pytorch:[yl]},$$scope:{ctx:H}}}),ne=new R({props:{title:"push_to_hub 함수 사용하기",local:"use-the-pushtohub-function",headingTag:"h2"}}),re=new F({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 F({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}}),fe=new F({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 F({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 F({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}}),we=new R({props:{title:"웹 인터페이스로 업로드하기",local:"upload-with-the-web-interface",headingTag:"h2"}}),Je=new R({props:{title:"모델 카드 추가하기",local:"add-a-model-card",headingTag:"h2"}}),Ce=new cl({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/model_sharing.md"}}),{c(){n=$("meta"),o=p(),a=$("p"),i=p(),h(u.$$.fragment),m=p(),v=$("p"),v.textContent=W,k=p(),Z=$("p"),Z.innerHTML=g,J=p(),x=$("ul"),x.innerHTML=y,L=p(),C=$("iframe"),f=p(),h(j.$$.fragment),Le=p(),h(Y.$$.fragment),Fe=p(),P=$("p"),P.textContent=Ht,Xe=p(),V=$("p"),V.innerHTML=Ct,Ue=p(),z=$("p"),z.innerHTML=Wt,Ge=p(),h(E.$$.fragment),Re=p(),B=$("p"),B.textContent=Zt,Ie=p(),q=$("p"),q.innerHTML=xt,Ye=p(),h(Q.$$.fragment),Pe=p(),S=$("p"),S.innerHTML=Lt,Ve=p(),h(N.$$.fragment),ze=p(),A=$("p"),A.innerHTML=Ft,Ee=p(),h(D.$$.fragment),Be=p(),K=$("p"),K.innerHTML=Xt,qe=p(),h(O.$$.fragment),Qe=p(),h(ee.$$.fragment),Se=p(),te=$("p"),te.textContent=Ut,Ne=p(),le=$("p"),le.innerHTML=Gt,Ae=p(),h(X.$$.fragment),De=p(),h(se.$$.fragment),Ke=p(),h(U.$$.fragment),Oe=p(),h(ne.$$.fragment),et=p(),ae=$("p"),ae.innerHTML=Rt,tt=p(),pe=$("p"),pe.innerHTML=It,lt=p(),h(re.$$.fragment),st=p(),ie=$("p"),ie.innerHTML=Yt,nt=p(),h(me.$$.fragment),at=p(),oe=$("p"),oe.innerHTML=Pt,pt=p(),h(fe.$$.fragment),rt=p(),ue=$("p"),ue.innerHTML=Vt,it=p(),h($e.$$.fragment),mt=p(),ce=$("p"),ce.textContent=zt,ot=p(),h(ge.$$.fragment),ft=p(),de=$("p"),de.innerHTML=Et,ut=p(),he=$("p"),he.innerHTML=Bt,$t=p(),h(we.$$.fragment),ct=p(),Me=$("p"),Me.innerHTML=qt,gt=p(),_e=$("p"),_e.innerHTML=Qt,dt=p(),be=$("p"),be.textContent=St,ht=p(),Te=$("ul"),Te.innerHTML=Nt,wt=p(),ye=$("p"),ye.innerHTML=At,Mt=p(),ve=$("p"),ve.innerHTML=Dt,_t=p(),h(Je.$$.fragment),bt=p(),ke=$("p"),ke.innerHTML=Kt,Tt=p(),je=$("ul"),je.innerHTML=Ot,yt=p(),He=$("p"),He.innerHTML=el,vt=p(),h(Ce.$$.fragment),Jt=p(),Ze=$("p"),this.h()},l(e){const t=ol("svelte-u9bgzb",document.head);n=c(t,"META",{name:!0,content:!0}),t.forEach(l),o=r(e),a=c(e,"P",{}),jt(a).forEach(l),i=r(e),w(u.$$.fragment,e),m=r(e),v=c(e,"P",{"data-svelte-h":!0}),d(v)!=="svelte-eg5xq6"&&(v.textContent=W),k=r(e),Z=c(e,"P",{"data-svelte-h":!0}),d(Z)!=="svelte-17tx3z4"&&(Z.innerHTML=g),J=r(e),x=c(e,"UL",{"data-svelte-h":!0}),d(x)!=="svelte-1913196"&&(x.innerHTML=y),L=r(e),C=c(e,"IFRAME",{width:!0,height:!0,src:!0,title:!0,frameborder:!0,allow:!0}),jt(C).forEach(l),f=r(e),w(j.$$.fragment,e),Le=r(e),w(Y.$$.fragment,e),Fe=r(e),P=c(e,"P",{"data-svelte-h":!0}),d(P)!=="svelte-1yck4lf"&&(P.textContent=Ht),Xe=r(e),V=c(e,"P",{"data-svelte-h":!0}),d(V)!=="svelte-1xcyu3z"&&(V.innerHTML=Ct),Ue=r(e),z=c(e,"P",{"data-svelte-h":!0}),d(z)!=="svelte-akumrw"&&(z.innerHTML=Wt),Ge=r(e),w(E.$$.fragment,e),Re=r(e),B=c(e,"P",{"data-svelte-h":!0}),d(B)!=="svelte-3nuli4"&&(B.textContent=Zt),Ie=r(e),q=c(e,"P",{"data-svelte-h":!0}),d(q)!=="svelte-hnu2bf"&&(q.innerHTML=xt),Ye=r(e),w(Q.$$.fragment,e),Pe=r(e),S=c(e,"P",{"data-svelte-h":!0}),d(S)!=="svelte-evny8e"&&(S.innerHTML=Lt),Ve=r(e),w(N.$$.fragment,e),ze=r(e),A=c(e,"P",{"data-svelte-h":!0}),d(A)!=="svelte-1uxou9a"&&(A.innerHTML=Ft),Ee=r(e),w(D.$$.fragment,e),Be=r(e),K=c(e,"P",{"data-svelte-h":!0}),d(K)!=="svelte-1lap8j6"&&(K.innerHTML=Xt),qe=r(e),w(O.$$.fragment,e),Qe=r(e),w(ee.$$.fragment,e),Se=r(e),te=c(e,"P",{"data-svelte-h":!0}),d(te)!=="svelte-1kz5bkl"&&(te.textContent=Ut),Ne=r(e),le=c(e,"P",{"data-svelte-h":!0}),d(le)!=="svelte-6bxxuk"&&(le.innerHTML=Gt),Ae=r(e),w(X.$$.fragment,e),De=r(e),w(se.$$.fragment,e),Ke=r(e),w(U.$$.fragment,e),Oe=r(e),w(ne.$$.fragment,e),et=r(e),ae=c(e,"P",{"data-svelte-h":!0}),d(ae)!=="svelte-l63k2v"&&(ae.innerHTML=Rt),tt=r(e),pe=c(e,"P",{"data-svelte-h":!0}),d(pe)!=="svelte-1ag42ds"&&(pe.innerHTML=It),lt=r(e),w(re.$$.fragment,e),st=r(e),ie=c(e,"P",{"data-svelte-h":!0}),d(ie)!=="svelte-19mcadk"&&(ie.innerHTML=Yt),nt=r(e),w(me.$$.fragment,e),at=r(e),oe=c(e,"P",{"data-svelte-h":!0}),d(oe)!=="svelte-1lkkl7a"&&(oe.innerHTML=Pt),pt=r(e),w(fe.$$.fragment,e),rt=r(e),ue=c(e,"P",{"data-svelte-h":!0}),d(ue)!=="svelte-1d58pos"&&(ue.innerHTML=Vt),it=r(e),w($e.$$.fragment,e),mt=r(e),ce=c(e,"P",{"data-svelte-h":!0}),d(ce)!=="svelte-j0zg2m"&&(ce.textContent=zt),ot=r(e),w(ge.$$.fragment,e),ft=r(e),de=c(e,"P",{"data-svelte-h":!0}),d(de)!=="svelte-jxiox6"&&(de.innerHTML=Et),ut=r(e),he=c(e,"P",{"data-svelte-h":!0}),d(he)!=="svelte-fl28jn"&&(he.innerHTML=Bt),$t=r(e),w(we.$$.fragment,e),ct=r(e),Me=c(e,"P",{"data-svelte-h":!0}),d(Me)!=="svelte-1od290y"&&(Me.innerHTML=qt),gt=r(e),_e=c(e,"P",{"data-svelte-h":!0}),d(_e)!=="svelte-ahj3l9"&&(_e.innerHTML=Qt),dt=r(e),be=c(e,"P",{"data-svelte-h":!0}),d(be)!=="svelte-1fz97na"&&(be.textContent=St),ht=r(e),Te=c(e,"UL",{"data-svelte-h":!0}),d(Te)!=="svelte-os9pn9"&&(Te.innerHTML=Nt),wt=r(e),ye=c(e,"P",{"data-svelte-h":!0}),d(ye)!=="svelte-15xpzd"&&(ye.innerHTML=At),Mt=r(e),ve=c(e,"P",{"data-svelte-h":!0}),d(ve)!=="svelte-32sxm9"&&(ve.innerHTML=Dt),_t=r(e),w(Je.$$.fragment,e),bt=r(e),ke=c(e,"P",{"data-svelte-h":!0}),d(ke)!=="svelte-1gk60ou"&&(ke.innerHTML=Kt),Tt=r(e),je=c(e,"UL",{"data-svelte-h":!0}),d(je)!=="svelte-1vhd2ja"&&(je.innerHTML=Ot),yt=r(e),He=c(e,"P",{"data-svelte-h":!0}),d(He)!=="svelte-5p89ov"&&(He.innerHTML=el),vt=r(e),w(Ce.$$.fragment,e),Jt=r(e),Ze=c(e,"P",{}),jt(Ze).forEach(l),this.h()},h(){G(n,"name","hf:doc:metadata"),G(n,"content",jl),G(C,"width","560"),G(C,"height","315"),pl(C.src,I="https://www.youtube.com/embed/XvSGPZFEjDY")||G(C,"src",I),G(C,"title","YouTube video player"),G(C,"frameborder","0"),G(C,"allow",`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope;
picture-in-picture`),C.allowFullscreen=""},m(e,t){fl(document.head,n),s(e,o,t),s(e,a,t),s(e,i,t),M(u,e,t),s(e,m,t),s(e,v,t),s(e,k,t),s(e,Z,t),s(e,J,t),s(e,x,t),s(e,L,t),s(e,C,t),s(e,f,t),M(j,e,t),s(e,Le,t),M(Y,e,t),s(e,Fe,t),s(e,P,t),s(e,Xe,t),s(e,V,t),s(e,Ue,t),s(e,z,t),s(e,Ge,t),M(E,e,t),s(e,Re,t),s(e,B,t),s(e,Ie,t),s(e,q,t),s(e,Ye,t),M(Q,e,t),s(e,Pe,t),s(e,S,t),s(e,Ve,t),M(N,e,t),s(e,ze,t),s(e,A,t),s(e,Ee,t),M(D,e,t),s(e,Be,t),s(e,K,t),s(e,qe,t),M(O,e,t),s(e,Qe,t),M(ee,e,t),s(e,Se,t),s(e,te,t),s(e,Ne,t),s(e,le,t),s(e,Ae,t),M(X,e,t),s(e,De,t),M(se,e,t),s(e,Ke,t),M(U,e,t),s(e,Oe,t),M(ne,e,t),s(e,et,t),s(e,ae,t),s(e,tt,t),s(e,pe,t),s(e,lt,t),M(re,e,t),s(e,st,t),s(e,ie,t),s(e,nt,t),M(me,e,t),s(e,at,t),s(e,oe,t),s(e,pt,t),M(fe,e,t),s(e,rt,t),s(e,ue,t),s(e,it,t),M($e,e,t),s(e,mt,t),s(e,ce,t),s(e,ot,t),M(ge,e,t),s(e,ft,t),s(e,de,t),s(e,ut,t),s(e,he,t),s(e,$t,t),M(we,e,t),s(e,ct,t),s(e,Me,t),s(e,gt,t),s(e,_e,t),s(e,dt,t),s(e,be,t),s(e,ht,t),s(e,Te,t),s(e,wt,t),s(e,ye,t),s(e,Mt,t),s(e,ve,t),s(e,_t,t),M(Je,e,t),s(e,bt,t),s(e,ke,t),s(e,Tt,t),s(e,je,t),s(e,yt,t),s(e,He,t),s(e,vt,t),M(Ce,e,t),s(e,Jt,t),s(e,Ze,t),kt=!0},p(e,[t]){const tl={};t&2&&(tl.$$scope={dirty:t,ctx:e}),j.$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}),U.$set(sl)},i(e){kt||(_(u.$$.fragment,e),_(j.$$.fragment,e),_(Y.$$.fragment,e),_(E.$$.fragment,e),_(Q.$$.fragment,e),_(N.$$.fragment,e),_(D.$$.fragment,e),_(O.$$.fragment,e),_(ee.$$.fragment,e),_(X.$$.fragment,e),_(se.$$.fragment,e),_(U.$$.fragment,e),_(ne.$$.fragment,e),_(re.$$.fragment,e),_(me.$$.fragment,e),_(fe.$$.fragment,e),_($e.$$.fragment,e),_(ge.$$.fragment,e),_(we.$$.fragment,e),_(Je.$$.fragment,e),_(Ce.$$.fragment,e),kt=!0)},o(e){b(u.$$.fragment,e),b(j.$$.fragment,e),b(Y.$$.fragment,e),b(E.$$.fragment,e),b(Q.$$.fragment,e),b(N.$$.fragment,e),b(D.$$.fragment,e),b(O.$$.fragment,e),b(ee.$$.fragment,e),b(X.$$.fragment,e),b(se.$$.fragment,e),b(U.$$.fragment,e),b(ne.$$.fragment,e),b(re.$$.fragment,e),b(me.$$.fragment,e),b(fe.$$.fragment,e),b($e.$$.fragment,e),b(ge.$$.fragment,e),b(we.$$.fragment,e),b(Je.$$.fragment,e),b(Ce.$$.fragment,e),kt=!1},d(e){e&&(l(o),l(a),l(i),l(m),l(v),l(k),l(Z),l(J),l(x),l(L),l(C),l(f),l(Le),l(Fe),l(P),l(Xe),l(V),l(Ue),l(z),l(Ge),l(Re),l(B),l(Ie),l(q),l(Ye),l(Pe),l(S),l(Ve),l(ze),l(A),l(Ee),l(Be),l(K),l(qe),l(Qe),l(Se),l(te),l(Ne),l(le),l(Ae),l(De),l(Ke),l(Oe),l(et),l(ae),l(tt),l(pe),l(lt),l(st),l(ie),l(nt),l(at),l(oe),l(pt),l(rt),l(ue),l(it),l(mt),l(ce),l(ot),l(ft),l(de),l(ut),l(he),l($t),l(ct),l(Me),l(gt),l(_e),l(dt),l(be),l(ht),l(Te),l(wt),l(ye),l(Mt),l(ve),l(_t),l(bt),l(ke),l(Tt),l(je),l(yt),l(He),l(vt),l(Jt),l(Ze)),l(n),T(u,e),T(j,e),T(Y,e),T(E,e),T(Q,e),T(N,e),T(D,e),T(O,e),T(ee,e),T(X,e),T(se,e),T(U,e),T(ne,e),T(re,e),T(me,e),T(fe,e),T($e,e),T(ge,e),T(we,e),T(Je,e),T(Ce,e)}}}const jl='{"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 Hl(H){return rl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ul extends il{constructor(n){super(),ml(this,n,Hl,kl,al,{})}}export{Ul as component};
