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