import{s as Ht,o as qt,n as Xt}from"../chunks/scheduler.0cf4ef2e.js";import{S as St,i as Nt,e as o,s as a,c as f,h as Ft,a as r,d as s,b as n,f as et,g as u,j as _,k as B,l,m as i,n as M,t as T,o as w,p as j}from"../chunks/index.abc433bf.js";import{C as Yt,H as K,E as Dt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.c5e6f579.js";import{D as It}from"../chunks/Docstring.d25cce65.js";import{C as Qt}from"../chunks/CodeBlock.0951eb7c.js";import{E as Pt}from"../chunks/ExampleCodeBlock.51f0b6db.js";function Ot(st){let d,A="Example:",$,b,J;return b=new Qt({props:{code:"aW1wb3J0JTIwanNvbiUwQWltcG9ydCUyMG9zJTBBZnJvbSUyMHNhZmV0ZW5zb3JzLnRvcmNoJTIwaW1wb3J0JTIwc2F2ZV9maWxlJTIwYXMlMjBzYWZlX3NhdmVfZmlsZSUwQWZyb20lMjBodWdnaW5nZmFjZV9odWIlMjBpbXBvcnQlMjBzcGxpdF90b3JjaF9zdGF0ZV9kaWN0X2ludG9fc2hhcmRzJTBBJTBBZGVmJTIwc2F2ZV9zdGF0ZV9kaWN0KHN0YXRlX2RpY3QlM0ElMjBkaWN0JTVCc3RyJTJDJTIwdG9yY2guVGVuc29yJTVEJTJDJTIwc2F2ZV9kaXJlY3RvcnklM0ElMjBzdHIpJTNBJTBBJTIwJTIwJTIwJTIwc3RhdGVfZGljdF9zcGxpdCUyMCUzRCUyMHNwbGl0X3RvcmNoX3N0YXRlX2RpY3RfaW50b19zaGFyZHMoc3RhdGVfZGljdCklMEElMjAlMjAlMjAlMjBmb3IlMjBmaWxlbmFtZSUyQyUyMHRlbnNvcnMlMjBpbiUyMHN0YXRlX2RpY3Rfc3BsaXQuZmlsZW5hbWVfdG9fdGVuc29ycy5pdGVtcygpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2hhcmQlMjAlM0QlMjAlN0J0ZW5zb3IlM0ElMjBzdGF0ZV9kaWN0JTVCdGVuc29yJTVEJTIwZm9yJTIwdGVuc29yJTIwaW4lMjB0ZW5zb3JzJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2FmZV9zYXZlX2ZpbGUoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2hhcmQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvcy5wYXRoLmpvaW4oc2F2ZV9kaXJlY3RvcnklMkMlMjBmaWxlbmFtZSklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtZXRhZGF0YSUzRCU3QiUyMmZvcm1hdCUyMiUzQSUyMCUyMnB0JTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMGlmJTIwc3RhdGVfZGljdF9zcGxpdC5pc19zaGFyZGVkJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaW5kZXglMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJtZXRhZGF0YSUyMiUzQSUyMHN0YXRlX2RpY3Rfc3BsaXQubWV0YWRhdGElMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ3ZWlnaHRfbWFwJTIyJTNBJTIwc3RhdGVfZGljdF9zcGxpdC50ZW5zb3JfdG9fZmlsZW5hbWUlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aXRoJTIwb3Blbihvcy5wYXRoLmpvaW4oc2F2ZV9kaXJlY3RvcnklMkMlMjAlMjJtb2RlbC5zYWZldGVuc29ycy5pbmRleC5qc29uJTIyKSUyQyUyMCUyMnclMjIpJTIwYXMlMjBmJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZi53cml0ZShqc29uLmR1bXBzKGluZGV4JTJDJTIwaW5kZW50JTNEMikp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> json
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> os
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> safetensors.torch <span class="hljs-keyword">import</span> save_file <span class="hljs-keyword">as</span> safe_save_file
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> split_torch_state_dict_into_shards

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">save_state_dict</span>(<span class="hljs-params">state_dict: <span class="hljs-built_in">dict</span>[<span class="hljs-built_in">str</span>, torch.Tensor], save_directory: <span class="hljs-built_in">str</span></span>):
<span class="hljs-meta">... </span>    state_dict_split = split_torch_state_dict_into_shards(state_dict)
<span class="hljs-meta">... </span>    <span class="hljs-keyword">for</span> filename, tensors <span class="hljs-keyword">in</span> state_dict_split.filename_to_tensors.items():
<span class="hljs-meta">... </span>        shard = {tensor: state_dict[tensor] <span class="hljs-keyword">for</span> tensor <span class="hljs-keyword">in</span> tensors}
<span class="hljs-meta">... </span>        safe_save_file(
<span class="hljs-meta">... </span>            shard,
<span class="hljs-meta">... </span>            os.path.join(save_directory, filename),
<span class="hljs-meta">... </span>            metadata={<span class="hljs-string">&quot;format&quot;</span>: <span class="hljs-string">&quot;pt&quot;</span>},
<span class="hljs-meta">... </span>        )
<span class="hljs-meta">... </span>    <span class="hljs-keyword">if</span> state_dict_split.is_sharded:
<span class="hljs-meta">... </span>        index = {
<span class="hljs-meta">... </span>            <span class="hljs-string">&quot;metadata&quot;</span>: state_dict_split.metadata,
<span class="hljs-meta">... </span>            <span class="hljs-string">&quot;weight_map&quot;</span>: state_dict_split.tensor_to_filename,
<span class="hljs-meta">... </span>        }
<span class="hljs-meta">... </span>        <span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(os.path.join(save_directory, <span class="hljs-string">&quot;model.safetensors.index.json&quot;</span>), <span class="hljs-string">&quot;w&quot;</span>) <span class="hljs-keyword">as</span> f:
<span class="hljs-meta">... </span>            f.write(json.dumps(index, indent=<span class="hljs-number">2</span>))`,wrap:!1}}),{c(){d=o("p"),d.textContent=A,$=a(),f(b.$$.fragment)},l(c){d=r(c,"P",{"data-svelte-h":!0}),_(d)!=="svelte-11lpom8"&&(d.textContent=A),$=n(c),u(b.$$.fragment,c)},m(c,y){i(c,d,y),i(c,$,y),M(b,c,y),J=!0},p:Xt,i(c){J||(T(b.$$.fragment,c),J=!0)},o(c){w(b.$$.fragment,c),J=!1},d(c){c&&(s(d),s($)),j(b,c)}}}function Kt(st){let d,A,$,b,J,c,y,at,G,Bt="<code>huggingface_hub</code>에는 ML 라이브러리가 모델 가중치를 표준화된 방식으로 직렬화 할 수 있도록 돕는 헬퍼를 포함하고 있습니다. 라이브러리의 이 부분은 아직 개발 중이며 향후 버전에서 개선될 예정입니다. 개선 목표는 Hub에서 가중치의 직렬화 방식을 통일하고, 라이브러리 간 코드 중복을 줄이며, Hub에서의 규약을 촉진하는 것입니다.",nt,z,it,k,At="현재 이 모듈은 상태 딕셔너리(예: 레이어 이름과 관련 텐서 간의 매핑)를 받아 여러 샤드로 나누고, 이 과정에서 적절한 인덱스를 생성하는 단일 헬퍼를 포함하고 있습니다. 이 헬퍼는 <code>torch</code> 텐서에 사용 가능하며, 다른 ML 프레임워크로 쉽게 확장될 수 있도록 설계되었습니다.",lt,C,ot,h,Z,ut,N,Gt="Split a model state dictionary in shards so that each shard is smaller than a given size.",Mt,F,zt=`The shards are determined by iterating through the <code>state_dict</code> in the order of its keys. There is no optimization
made to make each shard as close as possible to the maximum size passed. For example, if the limit is 10GB and we
have tensors of sizes [6GB, 6GB, 2GB, 6GB, 2GB, 2GB] they will get sharded as [6GB], [6+2GB], [6+2+2GB] and not
[6+2+2GB], [6+2GB], [6GB].`,Tt,E,kt=`<p>To save a model state dictionary to the disk, see <code>save_torch_state_dict()</code>. This helper uses
<code>split_torch_state_dict_into_shards</code> under the hood.</p>`,wt,R,Ct=`<p>If one of the model’s tensor is bigger than <code>max_shard_size</code>, it will end up in its own shard which will have a
size greater than <code>max_shard_size</code>.</p>`,jt,x,rt,U,ct,L,Zt='이것은 각 프레임워크별 헬퍼가 파생되는 기본 틀입니다. 실제로는 아직 지원되지 않는 프레임워크에 맞게 조정할 필요가 있는 경우가 아니면 이 틀을 직접 사용할 것으로 예상되지 않습니다. 그런 경우가 있다면, <code>huggingface_hub</code> 리포지토리에 <a href="https://github.com/huggingface/huggingface_hub/issues/new" rel="nofollow">새로운 이슈를 개설</a> 하여 알려주세요.',dt,g,V,bt,Y,Et="Split a model state dictionary in shards so that each shard is smaller than a given size.",Jt,D,Rt=`The shards are determined by iterating through the <code>state_dict</code> in the order of its keys. There is no optimization
made to make each shard as close as possible to the maximum size passed. For example, if the limit is 10GB and we
have tensors of sizes [6GB, 6GB, 2GB, 6GB, 2GB, 2GB] they will get sharded as [6GB], [6+2GB], [6+2+2GB] and not
[6+2+2GB], [6+2GB], [6GB].`,yt,W,Ut=`<p>If one of the model’s tensor is bigger than <code>max_shard_size</code>, it will end up in its own shard which will have a
size greater than <code>max_shard_size</code>.</p>`,ht,H,pt,q,_t,m,X,$t,Q,Lt="Return unique identifier to a tensor storage.",xt,P,Vt=`Multiple different tensors can share the same underlying storage. This identifier is
guaranteed to be unique and constant for this tensor’s storage during its lifetime. Two tensor storages with
non-overlapping lifetimes may have the same id.
In the case of meta tensors, we return None since we can’t tell if they share the same storage.`,vt,O,Wt='Taken from <a href="https://github.com/huggingface/transformers/blob/1ecf5f7c982d761b4daaa96719d162c324187c64/src/transformers/pytorch_utils.py#L278" rel="nofollow">https://github.com/huggingface/transformers/blob/1ecf5f7c982d761b4daaa96719d162c324187c64/src/transformers/pytorch_utils.py#L278</a>.',gt,S,mt,tt,ft;return J=new Yt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),y=new K({props:{title:"직렬화",local:"serialization",headingTag:"h1"}}),z=new K({props:{title:"상태 사전을 샤드로 나누기",local:"split-state-dict-into-shards",headingTag:"h2"}}),C=new K({props:{title:"split_torch_state_dict_into_shards",local:"huggingface_hub.split_torch_state_dict_into_shards ][ huggingface_hub.split_torch_state_dict_into_shards",headingTag:"h3"}}),Z=new It({props:{name:"huggingface_hub.split_torch_state_dict_into_shards",anchor:"huggingface_hub.split_torch_state_dict_into_shards",parameters:[{name:"state_dict",val:": dict"},{name:"filename_pattern",val:": str = 'model{suffix}.safetensors'"},{name:"max_shard_size",val:": typing.Union[int, str] = '5GB'"}],parametersDescription:[{anchor:"huggingface_hub.split_torch_state_dict_into_shards.state_dict",description:`<strong>state_dict</strong> (<code>dict[str, torch.Tensor]</code>) &#x2014;
The state dictionary to save.`,name:"state_dict"},{anchor:"huggingface_hub.split_torch_state_dict_into_shards.filename_pattern",description:`<strong>filename_pattern</strong> (<code>str</code>, <em>optional</em>) &#x2014;
The pattern to generate the files names in which the model will be saved. Pattern must be a string that
can be formatted with <code>filename_pattern.format(suffix=...)</code> and must contain the keyword <code>suffix</code>
Defaults to <code>&quot;model{suffix}.safetensors&quot;</code>.`,name:"filename_pattern"},{anchor:"huggingface_hub.split_torch_state_dict_into_shards.max_shard_size",description:`<strong>max_shard_size</strong> (<code>int</code> or <code>str</code>, <em>optional</em>) &#x2014;
The maximum size of each shard, in bytes. Defaults to 5GB.`,name:"max_shard_size"}],source:"https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/serialization/_torch.py#L290",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>A <code>StateDictSplit</code> object containing the shards and the index to retrieve them.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>StateDictSplit</code></p>
`}}),x=new Pt({props:{anchor:"huggingface_hub.split_torch_state_dict_into_shards.example",$$slots:{default:[Ot]},$$scope:{ctx:st}}}),U=new K({props:{title:"split_state_dict_into_shards_factory",local:"huggingface_hub.split_state_dict_into_shards_factory ][ huggingface_hub.split_state_dict_into_shards_factory",headingTag:"h3"}}),V=new It({props:{name:"huggingface_hub.split_state_dict_into_shards_factory",anchor:"huggingface_hub.split_state_dict_into_shards_factory",parameters:[{name:"state_dict",val:": dict"},{name:"get_storage_size",val:": typing.Callable[[~TensorT], int]"},{name:"filename_pattern",val:": str"},{name:"get_storage_id",val:": typing.Callable[[~TensorT], typing.Optional[typing.Any]] = <function <lambda> at 0x7f8f91143c70>"},{name:"max_shard_size",val:": typing.Union[int, str] = '5GB'"}],parametersDescription:[{anchor:"huggingface_hub.split_state_dict_into_shards_factory.state_dict",description:`<strong>state_dict</strong> (<code>dict[str, Tensor]</code>) &#x2014;
The state dictionary to save.`,name:"state_dict"},{anchor:"huggingface_hub.split_state_dict_into_shards_factory.get_storage_size",description:`<strong>get_storage_size</strong> (<code>Callable[[Tensor], int]</code>) &#x2014;
A function that returns the size of a tensor when saved on disk in bytes.`,name:"get_storage_size"},{anchor:"huggingface_hub.split_state_dict_into_shards_factory.get_storage_id",description:`<strong>get_storage_id</strong> (<code>Callable[[Tensor], Optional[Any]]</code>, <em>optional</em>) &#x2014;
A function that returns a unique identifier to a tensor storage. Multiple different tensors can share the
same underlying storage. This identifier is guaranteed to be unique and constant for this tensor&#x2019;s storage
during its lifetime. Two tensor storages with non-overlapping lifetimes may have the same id.`,name:"get_storage_id"},{anchor:"huggingface_hub.split_state_dict_into_shards_factory.filename_pattern",description:`<strong>filename_pattern</strong> (<code>str</code>, <em>optional</em>) &#x2014;
The pattern to generate the files names in which the model will be saved. Pattern must be a string that
can be formatted with <code>filename_pattern.format(suffix=...)</code> and must contain the keyword <code>suffix</code>`,name:"filename_pattern"},{anchor:"huggingface_hub.split_state_dict_into_shards_factory.max_shard_size",description:`<strong>max_shard_size</strong> (<code>int</code> or <code>str</code>, <em>optional</em>) &#x2014;
The maximum size of each shard, in bytes. Defaults to 5GB.`,name:"max_shard_size"}],source:"https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/serialization/_base.py#L49",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>A <code>StateDictSplit</code> object containing the shards and the index to retrieve them.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>StateDictSplit</code></p>
`}}),H=new K({props:{title:"도우미",local:"도우미",headingTag:"h2"}}),q=new K({props:{title:"get_torch_storage_id",local:"huggingface_hub.get_torch_storage_id ][ huggingface_hub.get_torch_storage_id",headingTag:"h3"}}),X=new It({props:{name:"huggingface_hub.get_torch_storage_id",anchor:"huggingface_hub.get_torch_storage_id",parameters:[{name:"tensor",val:": torch.Tensor"}],source:"https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/serialization/_torch.py#L726"}}),S=new Dt({props:{source:"https://github.com/huggingface/huggingface_hub/blob/main/docs/source/ko/package_reference/serialization.md"}}),{c(){d=o("meta"),A=a(),$=o("p"),b=a(),f(J.$$.fragment),c=a(),f(y.$$.fragment),at=a(),G=o("p"),G.innerHTML=Bt,nt=a(),f(z.$$.fragment),it=a(),k=o("p"),k.innerHTML=At,lt=a(),f(C.$$.fragment),ot=a(),h=o("div"),f(Z.$$.fragment),ut=a(),N=o("p"),N.textContent=Gt,Mt=a(),F=o("p"),F.innerHTML=zt,Tt=a(),E=o("blockquote"),E.innerHTML=kt,wt=a(),R=o("blockquote"),R.innerHTML=Ct,jt=a(),f(x.$$.fragment),rt=a(),f(U.$$.fragment),ct=a(),L=o("p"),L.innerHTML=Zt,dt=a(),g=o("div"),f(V.$$.fragment),bt=a(),Y=o("p"),Y.textContent=Et,Jt=a(),D=o("p"),D.innerHTML=Rt,yt=a(),W=o("blockquote"),W.innerHTML=Ut,ht=a(),f(H.$$.fragment),pt=a(),f(q.$$.fragment),_t=a(),m=o("div"),f(X.$$.fragment),$t=a(),Q=o("p"),Q.textContent=Lt,xt=a(),P=o("p"),P.textContent=Vt,vt=a(),O=o("p"),O.innerHTML=Wt,gt=a(),f(S.$$.fragment),mt=a(),tt=o("p"),this.h()},l(t){const e=Ft("svelte-u9bgzb",document.head);d=r(e,"META",{name:!0,content:!0}),e.forEach(s),A=n(t),$=r(t,"P",{}),et($).forEach(s),b=n(t),u(J.$$.fragment,t),c=n(t),u(y.$$.fragment,t),at=n(t),G=r(t,"P",{"data-svelte-h":!0}),_(G)!=="svelte-1t3dxwg"&&(G.innerHTML=Bt),nt=n(t),u(z.$$.fragment,t),it=n(t),k=r(t,"P",{"data-svelte-h":!0}),_(k)!=="svelte-1gz5h2q"&&(k.innerHTML=At),lt=n(t),u(C.$$.fragment,t),ot=n(t),h=r(t,"DIV",{class:!0});var p=et(h);u(Z.$$.fragment,p),ut=n(p),N=r(p,"P",{"data-svelte-h":!0}),_(N)!=="svelte-1q1pe7b"&&(N.textContent=Gt),Mt=n(p),F=r(p,"P",{"data-svelte-h":!0}),_(F)!=="svelte-17rio2z"&&(F.innerHTML=zt),Tt=n(p),E=r(p,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),_(E)!=="svelte-1py8mlg"&&(E.innerHTML=kt),wt=n(p),R=r(p,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),_(R)!=="svelte-xsnrgo"&&(R.innerHTML=Ct),jt=n(p),u(x.$$.fragment,p),p.forEach(s),rt=n(t),u(U.$$.fragment,t),ct=n(t),L=r(t,"P",{"data-svelte-h":!0}),_(L)!=="svelte-70bx2r"&&(L.innerHTML=Zt),dt=n(t),g=r(t,"DIV",{class:!0});var v=et(g);u(V.$$.fragment,v),bt=n(v),Y=r(v,"P",{"data-svelte-h":!0}),_(Y)!=="svelte-1q1pe7b"&&(Y.textContent=Et),Jt=n(v),D=r(v,"P",{"data-svelte-h":!0}),_(D)!=="svelte-17rio2z"&&(D.innerHTML=Rt),yt=n(v),W=r(v,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),_(W)!=="svelte-xsnrgo"&&(W.innerHTML=Ut),v.forEach(s),ht=n(t),u(H.$$.fragment,t),pt=n(t),u(q.$$.fragment,t),_t=n(t),m=r(t,"DIV",{class:!0});var I=et(m);u(X.$$.fragment,I),$t=n(I),Q=r(I,"P",{"data-svelte-h":!0}),_(Q)!=="svelte-lfv2l4"&&(Q.textContent=Lt),xt=n(I),P=r(I,"P",{"data-svelte-h":!0}),_(P)!=="svelte-1o86t9o"&&(P.textContent=Vt),vt=n(I),O=r(I,"P",{"data-svelte-h":!0}),_(O)!=="svelte-akggeo"&&(O.innerHTML=Wt),I.forEach(s),gt=n(t),u(S.$$.fragment,t),mt=n(t),tt=r(t,"P",{}),et(tt).forEach(s),this.h()},h(){B(d,"name","hf:doc:metadata"),B(d,"content",te),B(E,"class","tip"),B(R,"class","warning"),B(h,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),B(W,"class","warning"),B(g,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),B(m,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(t,e){l(document.head,d),i(t,A,e),i(t,$,e),i(t,b,e),M(J,t,e),i(t,c,e),M(y,t,e),i(t,at,e),i(t,G,e),i(t,nt,e),M(z,t,e),i(t,it,e),i(t,k,e),i(t,lt,e),M(C,t,e),i(t,ot,e),i(t,h,e),M(Z,h,null),l(h,ut),l(h,N),l(h,Mt),l(h,F),l(h,Tt),l(h,E),l(h,wt),l(h,R),l(h,jt),M(x,h,null),i(t,rt,e),M(U,t,e),i(t,ct,e),i(t,L,e),i(t,dt,e),i(t,g,e),M(V,g,null),l(g,bt),l(g,Y),l(g,Jt),l(g,D),l(g,yt),l(g,W),i(t,ht,e),M(H,t,e),i(t,pt,e),M(q,t,e),i(t,_t,e),i(t,m,e),M(X,m,null),l(m,$t),l(m,Q),l(m,xt),l(m,P),l(m,vt),l(m,O),i(t,gt,e),M(S,t,e),i(t,mt,e),i(t,tt,e),ft=!0},p(t,[e]){const p={};e&2&&(p.$$scope={dirty:e,ctx:t}),x.$set(p)},i(t){ft||(T(J.$$.fragment,t),T(y.$$.fragment,t),T(z.$$.fragment,t),T(C.$$.fragment,t),T(Z.$$.fragment,t),T(x.$$.fragment,t),T(U.$$.fragment,t),T(V.$$.fragment,t),T(H.$$.fragment,t),T(q.$$.fragment,t),T(X.$$.fragment,t),T(S.$$.fragment,t),ft=!0)},o(t){w(J.$$.fragment,t),w(y.$$.fragment,t),w(z.$$.fragment,t),w(C.$$.fragment,t),w(Z.$$.fragment,t),w(x.$$.fragment,t),w(U.$$.fragment,t),w(V.$$.fragment,t),w(H.$$.fragment,t),w(q.$$.fragment,t),w(X.$$.fragment,t),w(S.$$.fragment,t),ft=!1},d(t){t&&(s(A),s($),s(b),s(c),s(at),s(G),s(nt),s(it),s(k),s(lt),s(ot),s(h),s(rt),s(ct),s(L),s(dt),s(g),s(ht),s(pt),s(_t),s(m),s(gt),s(mt),s(tt)),s(d),j(J,t),j(y,t),j(z,t),j(C,t),j(Z),j(x),j(U,t),j(V),j(H,t),j(q,t),j(X),j(S,t)}}}const te='{"title":"직렬화","local":"serialization","sections":[{"title":"상태 사전을 샤드로 나누기","local":"split-state-dict-into-shards","sections":[{"title":"split_torch_state_dict_into_shards","local":"huggingface_hub.split_torch_state_dict_into_shards ][ huggingface_hub.split_torch_state_dict_into_shards","sections":[],"depth":3},{"title":"split_state_dict_into_shards_factory","local":"huggingface_hub.split_state_dict_into_shards_factory ][ huggingface_hub.split_state_dict_into_shards_factory","sections":[],"depth":3}],"depth":2},{"title":"도우미","local":"도우미","sections":[{"title":"get_torch_storage_id","local":"huggingface_hub.get_torch_storage_id ][ huggingface_hub.get_torch_storage_id","sections":[],"depth":3}],"depth":2}],"depth":1}';function ee(st){return qt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class re extends St{constructor(d){super(),Nt(this,d,ee,Kt,Ht,{})}}export{re as component};
