Buckets:
| import{s as rt,n as it,o as ft}from"../chunks/scheduler.bdbef820.js";import{S as dt,i as mt,g as p,s as a,r,A as ot,h as c,f as l,c as n,j as pt,u as i,x as f,k as ct,y as ht,a as s,v as d,d as m,t as o,w as h}from"../chunks/index.33f81d56.js";import{C as J}from"../chunks/CodeBlock.362b34a4.js";import{H as T,E as Ut}from"../chunks/EditOnGithub.a9246e21.js";function Tt(Qe){let U,le,ee,se,u,ae,_,Ne='<a href="https://pytorch.org/blog/introducing-pytorch-fully-sharded-data-parallel-api/" rel="nofollow">Fully Sharded Data Parallel (FSDP)</a>은 모델의 매개변수, 그레이디언트 및 옵티마이저 상태를 사용 가능한 GPU(작업자 또는 <em>랭크</em>라고도 함) 수에 따라 분할하는 데이터 병렬 처리 방식입니다. <a href="https://pytorch.org/docs/stable/generated/torch.nn.parallel.DistributedDataParallel.html" rel="nofollow">DistributedDataParallel (DDP)</a>와 달리, FSDP는 각 GPU에 모델을 복제하기 때문에 메모리 사용량을 줄입니다. 이는 GPU 메모리 효율성을 향상시키며 적은 수의 GPU로 훨씬 더 큰 모델을 훈련할 수 있게 합니다. FSDP는 분산 환경에서의 훈련을 쉽게 관리할 수 있는 라이브러리인 Accelerate와 통합되어 있으며, 따라서 <a href="/docs/transformers/pr_34598/ko/main_classes/trainer#transformers.Trainer">Trainer</a> 클래스에서 사용할 수 있습니다.',ne,$,ve="시작하기 전에 Accelerate가 설치되어 있고 최소 PyTorch 2.1.0 이상의 버전이 설치되어 있는지 확인하세요.",pe,g,ce,y,re,M,Ge='시작하려면 <a href="https://huggingface.co/docs/accelerate/package_reference/cli#accelerate-config" rel="nofollow"><code>accelerate config</code></a> 명령을 실행하여 훈련 환경에 대한 구성 파일을 생성하세요. Accelerate는 이 구성 파일을 사용하여 <code>accelerate config</code>에서 선택한 훈련 옵션에 따라 자동으로 올바른 훈련 환경을 설정합니다.',ie,j,fe,w,We='<code>accelerate config</code>를 실행하면 훈련 환경을 구성하기 위한 일련의 옵션들이 나타납니다. 이 섹션에서는 가장 중요한 FSDP 옵션 중 일부를 다룹니다. 다른 사용 가능한 FSDP 옵션에 대해 더 알아보고 싶다면 <a href="https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments.fsdp_config" rel="nofollow">fsdp_config</a> 매개변수를 참조하세요.',de,F,me,B,Xe="FSDP는 여러 가지 분할 전략을 제공합니다:",oe,Z,Le="<li><code>FULL_SHARD</code> - 모델 매개변수, 그레이디언트 및 옵티마이저 상태를 작업자 간에 분할; 이 옵션을 선택하려면 <code>1</code>을 선택하세요</li> <li><code>SHARD_GRAD_OP</code> - 그레이디언트 및 옵티마이저 상태를 작업자 간에 분할; 이 옵션을 선택하려면 <code>2</code>를 선택하세요</li> <li><code>NO_SHARD</code> - 아무 것도 분할하지 않음 (DDP와 동일); 이 옵션을 선택하려면 <code>3</code>을 선택하세요</li> <li><code>HYBRID_SHARD</code> - 각 작업자가 전체 복사본을 가지고 있는 상태에서 모델 매개변수, 그레이디언트 및 옵티마이저 상태를 작업자 내에서 분할; 이 옵션을 선택하려면 <code>4</code>를 선택하세요</li> <li><code>HYBRID_SHARD_ZERO2</code> - 각 작업자가 전체 복사본을 가지고 있는 상태에서 그레이디언트 및 옵티마이저 상태를 작업자 내에서 분할; 이 옵션을 선택하려면 <code>5</code>를 선택하세요</li>",he,C,ze="이것은 <code>fsdp_sharding_strategy</code> 플래그로 활성화됩니다.",Ue,P,Te,S,Ae="사용하지 않는 매개변수와 그레이디언트를 CPU로 오프로드하여 더 많은 GPU 메모리를 절약하고 FSDP로도 충분하지 않은 큰 모델을 GPU에 적재할 수 있도록 할 수 있습니다. 이는 <code>accelerate config</code>를 실행할 때 <code>fsdp_offload_params: true</code>로 설정하여 활성화됩니다.",Je,V,ue,D,Ye="FSDP는 네트워크의 각 레이어를 래핑하여 적용됩니다. 래핑은 일반적으로 중첩 방식으로 적용되며 각각 순방향으로 지나간 후 전체 가중치를 삭제하여 다음 레이어에서 사용할 메모리를 절약합니다. <em>자동 래핑</em> 정책은 이를 구현하는 가장 간단한 방법이며 코드를 변경할 필요가 없습니다. Transformer 레이어를 래핑하려면 <code>fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP</code>를 선택하고 래핑할 레이어를 지정하려면 <code>fsdp_transformer_layer_cls_to_wrap</code>를 선택하세요 (예: <code>BertLayer</code>).",_e,H,Oe="또는 특정 매개변수 수를 초과할 경우 FSDP가 레이어에 적용되는 크기 기반 래핑 정책을 선택할 수 있습니다. 이는 <code>fsdp_wrap_policy: SIZE_BASED_WRAP</code> 및 <code>min_num_param</code>을 원하는 크기의 임계값으로 설정하여 활성화됩니다.",$e,b,ge,R,qe="중간 체크포인트는 <code>fsdp_state_dict_type: SHARDED_STATE_DICT</code>로 저장해야 합니다. CPU 오프로드가 활성화된 랭크 0에서 전체 상태 딕셔너리를 저장하는 데 시간이 많이 걸리고, 브로드캐스팅 중 무기한 대기하여 <code>NCCL Timeout</code> 오류가 발생할 수 있기 때문입니다. <code>load_state</code> 메서드를 사용하여 분할된 상태 딕셔너리로 훈련을 재개할 수 있습니다.",ye,x,Me,E,Ke="그러나 훈련이 끝나면 전체 상태 딕셔너리를 저장해야 합니다. 분할된 상태 딕셔너리는 FSDP와만 호환되기 때문입니다.",je,I,we,k,Fe,Q,et='<a href="https://pytorch.org/xla/release/2.1/index.html" rel="nofollow">PyTorch XLA</a>는 TPU에 대한 FSDP 훈련을 지원하며 <code>accelerate config</code>로 생성된 FSDP 구성 파일을 수정하여 활성화할 수 있습니다. 위에서 지정한 분할 전략 및 래핑 옵션 외에도 아래에 표시된 매개변수를 파일에 추가할 수 있습니다.',Be,N,Ze,v,tt='<a href="https://github.com/pytorch/xla/blob/2e6e183e0724818f137c8135b34ef273dea33318/torch_xla/distributed/fsdp/xla_fully_sharded_data_parallel.py#L128" rel="nofollow"><code>xla_fsdp_settings</code></a>는 FSDP에 대한 추가적인 XLA 특정 매개변수를 구성할 수 있게 합니다.',Ce,G,Pe,W,lt="예시 FSDP 구성 파일은 다음과 같을 수 있습니다:",Se,X,Ve,L,st='훈련을 시작하려면 <a href="https://huggingface.co/docs/accelerate/package_reference/cli#accelerate-launch" rel="nofollow"><code>accelerate launch</code></a> 명령을 실행하세요. 이 때 전에 <code>accelerate config</code>로 생성한 구성 파일을 자동으로 사용합니다.',De,z,He,A,be,Y,Re,O,at="FSDP는 매우 큰 모델을 훈련할 때 강력한 도구가 될 수 있으며, 여러 개의 GPU나 TPU를 사용할 수 있습니다. 모델 매개변수, 옵티마이저 및 그레이디언트 상태를 분할하고 비활성 상태일 때, CPU로 오프로드하면 FSDP는 대규모 훈련의 높은 연산 비용을 줄일 수 있습니다. 더 알아보고 싶다면 다음 자료가 도움이 될 수 있습니다:",xe,q,nt='<li><a href="https://huggingface.co/docs/accelerate/usage_guides/fsdp" rel="nofollow">FSDP</a>에 대한 더 깊이 있는 Accelerate 가이드를 따라가 보세요.</li> <li><a href="https://pytorch.org/blog/introducing-pytorch-fully-sharded-data-parallel-api/" rel="nofollow">PyTorch의 완전 분할 데이터 병렬 처리 (FSDP) API를 소개합니다</a> 블로그 글을 읽어보세요.</li> <li><a href="https://pytorch.org/blog/scaling-pytorch-models-on-cloud-tpus-with-fsdp/" rel="nofollow">FSDP를 사용하여 클라우드 TPU에서 PyTorch 모델 크기 조절하기</a> 블로그 글을 읽어보세요.</li>',Ee,K,Ie,te,ke;return u=new T({props:{title:"완전 분할 데이터 병렬 처리(FSDP)",local:"fully-sharded-data-parallel",headingTag:"h1"}}),g=new J({props:{code:"cGlwJTIwaW5zdGFsbCUyMGFjY2VsZXJhdGU=",highlighted:"pip install accelerate",wrap:!1}}),y=new T({props:{title:"FSDP 구성",local:"fsdp-configuration",headingTag:"h2"}}),j=new J({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config",wrap:!1}}),F=new T({props:{title:"분할 전략",local:"sharding-strategy",headingTag:"h3"}}),P=new T({props:{title:"CPU 오프로드",local:"cpu-offload",headingTag:"h3"}}),V=new T({props:{title:"래핑 정책",local:"wrapping-policy",headingTag:"h3"}}),b=new T({props:{title:"체크포인트",local:"checkpointing",headingTag:"h3"}}),x=new J({props:{code:"JTIzJTIwJUVBJUIyJUJEJUVCJUExJTlDJUVBJUIwJTgwJTIwJUVCJTgyJUI0JUVDJTlFJUFDJUVCJTkwJTlDJTIwJUVDJUIyJUI0JUVEJTgxJUFDJUVEJThGJUFDJUVDJTlEJUI4JUVEJThBJUI4JTBBYWNjZWxlcmF0b3IubG9hZF9zdGF0ZSglMjJja3B0JTIyKQ==",highlighted:`<span class="hljs-comment"># 경로가 내재된 체크포인트</span> | |
| accelerator.load_state(<span class="hljs-string">"ckpt"</span>)`,wrap:!1}}),I=new J({props:{code:"aWYlMjB0cmFpbmVyLmlzX2ZzZHBfZW5hYmxlZCUzQSUwQSUyMCUyMCUyMCUyMHRyYWluZXIuYWNjZWxlcmF0b3Iuc3RhdGUuZnNkcF9wbHVnaW4uc2V0X3N0YXRlX2RpY3RfdHlwZSglMjJGVUxMX1NUQVRFX0RJQ1QlMjIpJTBBJTBBdHJhaW5lci5zYXZlX21vZGVsKHNjcmlwdF9hcmdzLm91dHB1dF9kaXIp",highlighted:`<span class="hljs-keyword">if</span> trainer.is_fsdp_enabled: | |
| trainer.accelerator.state.fsdp_plugin.set_state_dict_type(<span class="hljs-string">"FULL_STATE_DICT"</span>) | |
| trainer.save_model(script_args.output_dir)`,wrap:!1}}),k=new T({props:{title:"TPU",local:"tpu",headingTag:"h3"}}),N=new J({props:{code:"eGxhJTNBJTIwVHJ1ZSUyMCUyMyUyMFB5VG9yY2glMkZYTEElRUIlQTUlQkMlMjAlRUQlOTklOUMlRUMlODQlQjElRUQlOTklOTQlRUQlOTUlOTglRUIlQTAlQTQlRUIlQTklQjQlMjBUcnVlJUVCJUExJTlDJTIwJUVDJTg0JUE0JUVDJUEwJTk1JUVEJTk1JUI0JUVDJTk1JUJDJTIwJUVEJTk1JUE5JUVCJThCJTg4JUVCJThCJUE0JTBBeGxhX2ZzZHBfc2V0dGluZ3MlM0ElMjAlMjMlMjBYTEElMjAlRUQlOEElQjklRUMlQTAlOTUlMjBGU0RQJTIwJUVCJUE3JUE0JUVBJUIwJTlDJUVCJUIzJTgwJUVDJTg4JTk4JTBBeGxhX2ZzZHBfZ3JhZF9ja3B0JTNBJTIwVHJ1ZSUyMCUyMyUyMGdyYWRpZW50JTIwY2hlY2twb2ludGluZyVFQyU5RCU4NCUyMCVFQyU4MiVBQyVFQyU5QSVBOSVFRCU5NSVBOSVFQiU4QiU4OCVFQiU4QiVBNA==",highlighted:`<span class="hljs-attr">xla:</span> <span class="hljs-literal">True</span> <span class="hljs-comment"># PyTorch/XLA를 활성화하려면 True로 설정해야 합니다</span> | |
| <span class="hljs-attr">xla_fsdp_settings:</span> <span class="hljs-comment"># XLA 특정 FSDP 매개변수</span> | |
| <span class="hljs-attr">xla_fsdp_grad_ckpt:</span> <span class="hljs-literal">True</span> <span class="hljs-comment"># gradient checkpointing을 사용합니다</span>`,wrap:!1}}),G=new T({props:{title:"훈련 시작",local:"launch-training",headingTag:"h2"}}),X=new J({props:{code:"Y29tcHV0ZV9lbnZpcm9ubWVudCUzQSUyMExPQ0FMX01BQ0hJTkUlMEFkZWJ1ZyUzQSUyMGZhbHNlJTBBZGlzdHJpYnV0ZWRfdHlwZSUzQSUyMEZTRFAlMEFkb3duY2FzdF9iZjE2JTNBJTIwJ25vJyUwQWZzZHBfY29uZmlnJTNBJTBBJTIwJTIwZnNkcF9hdXRvX3dyYXBfcG9saWN5JTNBJTIwVFJBTlNGT1JNRVJfQkFTRURfV1JBUCUwQSUyMCUyMGZzZHBfYmFja3dhcmRfcHJlZmV0Y2hfcG9saWN5JTNBJTIwQkFDS1dBUkRfUFJFJTBBJTIwJTIwZnNkcF9jcHVfcmFtX2VmZmljaWVudF9sb2FkaW5nJTNBJTIwdHJ1ZSUwQSUyMCUyMGZzZHBfZm9yd2FyZF9wcmVmZXRjaCUzQSUyMGZhbHNlJTBBJTIwJTIwZnNkcF9vZmZsb2FkX3BhcmFtcyUzQSUyMHRydWUlMEElMjAlMjBmc2RwX3NoYXJkaW5nX3N0cmF0ZWd5JTNBJTIwMSUwQSUyMCUyMGZzZHBfc3RhdGVfZGljdF90eXBlJTNBJTIwU0hBUkRFRF9TVEFURV9ESUNUJTBBJTIwJTIwZnNkcF9zeW5jX21vZHVsZV9zdGF0ZXMlM0ElMjB0cnVlJTBBJTIwJTIwZnNkcF90cmFuc2Zvcm1lcl9sYXllcl9jbHNfdG9fd3JhcCUzQSUyMEJlcnRMYXllciUwQSUyMCUyMGZzZHBfdXNlX29yaWdfcGFyYW1zJTNBJTIwdHJ1ZSUwQW1hY2hpbmVfcmFuayUzQSUyMDAlMEFtYWluX3RyYWluaW5nX2Z1bmN0aW9uJTNBJTIwbWFpbiUwQW1peGVkX3ByZWNpc2lvbiUzQSUyMGJmMTYlMEFudW1fbWFjaGluZXMlM0ElMjAxJTBBbnVtX3Byb2Nlc3NlcyUzQSUyMDIlMEFyZHp2X2JhY2tlbmQlM0ElMjBzdGF0aWMlMEFzYW1lX25ldHdvcmslM0ElMjB0cnVlJTBBdHB1X2VudiUzQSUyMCU1QiU1RCUwQXRwdV91c2VfY2x1c3RlciUzQSUyMGZhbHNlJTBBdHB1X3VzZV9zdWRvJTNBJTIwZmFsc2UlMEF1c2VfY3B1JTNBJTIwZmFsc2U=",highlighted:`<span class="hljs-attr">compute_environment:</span> <span class="hljs-string">LOCAL_MACHINE</span> | |
| <span class="hljs-attr">debug:</span> <span class="hljs-literal">false</span> | |
| <span class="hljs-attr">distributed_type:</span> <span class="hljs-string">FSDP</span> | |
| <span class="hljs-attr">downcast_bf16:</span> <span class="hljs-string">'no'</span> | |
| <span class="hljs-attr">fsdp_config:</span> | |
| <span class="hljs-attr">fsdp_auto_wrap_policy:</span> <span class="hljs-string">TRANSFORMER_BASED_WRAP</span> | |
| <span class="hljs-attr">fsdp_backward_prefetch_policy:</span> <span class="hljs-string">BACKWARD_PRE</span> | |
| <span class="hljs-attr">fsdp_cpu_ram_efficient_loading:</span> <span class="hljs-literal">true</span> | |
| <span class="hljs-attr">fsdp_forward_prefetch:</span> <span class="hljs-literal">false</span> | |
| <span class="hljs-attr">fsdp_offload_params:</span> <span class="hljs-literal">true</span> | |
| <span class="hljs-attr">fsdp_sharding_strategy:</span> <span class="hljs-number">1</span> | |
| <span class="hljs-attr">fsdp_state_dict_type:</span> <span class="hljs-string">SHARDED_STATE_DICT</span> | |
| <span class="hljs-attr">fsdp_sync_module_states:</span> <span class="hljs-literal">true</span> | |
| <span class="hljs-attr">fsdp_transformer_layer_cls_to_wrap:</span> <span class="hljs-string">BertLayer</span> | |
| <span class="hljs-attr">fsdp_use_orig_params:</span> <span class="hljs-literal">true</span> | |
| <span class="hljs-attr">machine_rank:</span> <span class="hljs-number">0</span> | |
| <span class="hljs-attr">main_training_function:</span> <span class="hljs-string">main</span> | |
| <span class="hljs-attr">mixed_precision:</span> <span class="hljs-string">bf16</span> | |
| <span class="hljs-attr">num_machines:</span> <span class="hljs-number">1</span> | |
| <span class="hljs-attr">num_processes:</span> <span class="hljs-number">2</span> | |
| <span class="hljs-attr">rdzv_backend:</span> <span class="hljs-string">static</span> | |
| <span class="hljs-attr">same_network:</span> <span class="hljs-literal">true</span> | |
| <span class="hljs-attr">tpu_env:</span> [] | |
| <span class="hljs-attr">tpu_use_cluster:</span> <span class="hljs-literal">false</span> | |
| <span class="hljs-attr">tpu_use_sudo:</span> <span class="hljs-literal">false</span> | |
| <span class="hljs-attr">use_cpu:</span> <span class="hljs-literal">false</span>`,wrap:!1}}),z=new J({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMG15LXRyYWluZXItc2NyaXB0LnB5",highlighted:"accelerate launch my-trainer-script.py",wrap:!1}}),A=new J({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMC0tZnNkcCUzRCUyMmZ1bGwlMjBzaGFyZCUyMiUyMC0tZnNkcF9jb25maWclM0QlMjJwYXRoJTJGdG8lMkZmc2RwX2NvbmZpZyUyRiUyMG15LXRyYWluZXItc2NyaXB0LnB5",highlighted:'accelerate launch --fsdp=<span class="hljs-string">"full shard"</span> --fsdp_config=<span class="hljs-string">"path/to/fsdp_config/ my-trainer-script.py</span>',wrap:!1}}),Y=new T({props:{title:"다음 단계",local:"next-steps",headingTag:"h2"}}),K=new Ut({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ko/fsdp.md"}}),{c(){U=p("meta"),le=a(),ee=p("p"),se=a(),r(u.$$.fragment),ae=a(),_=p("p"),_.innerHTML=Ne,ne=a(),$=p("p"),$.textContent=ve,pe=a(),r(g.$$.fragment),ce=a(),r(y.$$.fragment),re=a(),M=p("p"),M.innerHTML=Ge,ie=a(),r(j.$$.fragment),fe=a(),w=p("p"),w.innerHTML=We,de=a(),r(F.$$.fragment),me=a(),B=p("p"),B.textContent=Xe,oe=a(),Z=p("ul"),Z.innerHTML=Le,he=a(),C=p("p"),C.innerHTML=ze,Ue=a(),r(P.$$.fragment),Te=a(),S=p("p"),S.innerHTML=Ae,Je=a(),r(V.$$.fragment),ue=a(),D=p("p"),D.innerHTML=Ye,_e=a(),H=p("p"),H.innerHTML=Oe,$e=a(),r(b.$$.fragment),ge=a(),R=p("p"),R.innerHTML=qe,ye=a(),r(x.$$.fragment),Me=a(),E=p("p"),E.textContent=Ke,je=a(),r(I.$$.fragment),we=a(),r(k.$$.fragment),Fe=a(),Q=p("p"),Q.innerHTML=et,Be=a(),r(N.$$.fragment),Ze=a(),v=p("p"),v.innerHTML=tt,Ce=a(),r(G.$$.fragment),Pe=a(),W=p("p"),W.textContent=lt,Se=a(),r(X.$$.fragment),Ve=a(),L=p("p"),L.innerHTML=st,De=a(),r(z.$$.fragment),He=a(),r(A.$$.fragment),be=a(),r(Y.$$.fragment),Re=a(),O=p("p"),O.textContent=at,xe=a(),q=p("ul"),q.innerHTML=nt,Ee=a(),r(K.$$.fragment),Ie=a(),te=p("p"),this.h()},l(e){const t=ot("svelte-u9bgzb",document.head);U=c(t,"META",{name:!0,content:!0}),t.forEach(l),le=n(e),ee=c(e,"P",{}),pt(ee).forEach(l),se=n(e),i(u.$$.fragment,e),ae=n(e),_=c(e,"P",{"data-svelte-h":!0}),f(_)!=="svelte-8b2zuz"&&(_.innerHTML=Ne),ne=n(e),$=c(e,"P",{"data-svelte-h":!0}),f($)!=="svelte-f8eogy"&&($.textContent=ve),pe=n(e),i(g.$$.fragment,e),ce=n(e),i(y.$$.fragment,e),re=n(e),M=c(e,"P",{"data-svelte-h":!0}),f(M)!=="svelte-1jn9m2a"&&(M.innerHTML=Ge),ie=n(e),i(j.$$.fragment,e),fe=n(e),w=c(e,"P",{"data-svelte-h":!0}),f(w)!=="svelte-1np5hll"&&(w.innerHTML=We),de=n(e),i(F.$$.fragment,e),me=n(e),B=c(e,"P",{"data-svelte-h":!0}),f(B)!=="svelte-7yt1de"&&(B.textContent=Xe),oe=n(e),Z=c(e,"UL",{"data-svelte-h":!0}),f(Z)!=="svelte-b0gcj8"&&(Z.innerHTML=Le),he=n(e),C=c(e,"P",{"data-svelte-h":!0}),f(C)!=="svelte-1vk1mpw"&&(C.innerHTML=ze),Ue=n(e),i(P.$$.fragment,e),Te=n(e),S=c(e,"P",{"data-svelte-h":!0}),f(S)!=="svelte-1g9qhjc"&&(S.innerHTML=Ae),Je=n(e),i(V.$$.fragment,e),ue=n(e),D=c(e,"P",{"data-svelte-h":!0}),f(D)!=="svelte-1az6mpj"&&(D.innerHTML=Ye),_e=n(e),H=c(e,"P",{"data-svelte-h":!0}),f(H)!=="svelte-j4we5z"&&(H.innerHTML=Oe),$e=n(e),i(b.$$.fragment,e),ge=n(e),R=c(e,"P",{"data-svelte-h":!0}),f(R)!=="svelte-13ijsgz"&&(R.innerHTML=qe),ye=n(e),i(x.$$.fragment,e),Me=n(e),E=c(e,"P",{"data-svelte-h":!0}),f(E)!=="svelte-g42e39"&&(E.textContent=Ke),je=n(e),i(I.$$.fragment,e),we=n(e),i(k.$$.fragment,e),Fe=n(e),Q=c(e,"P",{"data-svelte-h":!0}),f(Q)!=="svelte-hluba"&&(Q.innerHTML=et),Be=n(e),i(N.$$.fragment,e),Ze=n(e),v=c(e,"P",{"data-svelte-h":!0}),f(v)!=="svelte-fzepmk"&&(v.innerHTML=tt),Ce=n(e),i(G.$$.fragment,e),Pe=n(e),W=c(e,"P",{"data-svelte-h":!0}),f(W)!=="svelte-lsugsg"&&(W.textContent=lt),Se=n(e),i(X.$$.fragment,e),Ve=n(e),L=c(e,"P",{"data-svelte-h":!0}),f(L)!=="svelte-uzfcnn"&&(L.innerHTML=st),De=n(e),i(z.$$.fragment,e),He=n(e),i(A.$$.fragment,e),be=n(e),i(Y.$$.fragment,e),Re=n(e),O=c(e,"P",{"data-svelte-h":!0}),f(O)!=="svelte-h8735t"&&(O.textContent=at),xe=n(e),q=c(e,"UL",{"data-svelte-h":!0}),f(q)!=="svelte-1fay4bz"&&(q.innerHTML=nt),Ee=n(e),i(K.$$.fragment,e),Ie=n(e),te=c(e,"P",{}),pt(te).forEach(l),this.h()},h(){ct(U,"name","hf:doc:metadata"),ct(U,"content",Jt)},m(e,t){ht(document.head,U),s(e,le,t),s(e,ee,t),s(e,se,t),d(u,e,t),s(e,ae,t),s(e,_,t),s(e,ne,t),s(e,$,t),s(e,pe,t),d(g,e,t),s(e,ce,t),d(y,e,t),s(e,re,t),s(e,M,t),s(e,ie,t),d(j,e,t),s(e,fe,t),s(e,w,t),s(e,de,t),d(F,e,t),s(e,me,t),s(e,B,t),s(e,oe,t),s(e,Z,t),s(e,he,t),s(e,C,t),s(e,Ue,t),d(P,e,t),s(e,Te,t),s(e,S,t),s(e,Je,t),d(V,e,t),s(e,ue,t),s(e,D,t),s(e,_e,t),s(e,H,t),s(e,$e,t),d(b,e,t),s(e,ge,t),s(e,R,t),s(e,ye,t),d(x,e,t),s(e,Me,t),s(e,E,t),s(e,je,t),d(I,e,t),s(e,we,t),d(k,e,t),s(e,Fe,t),s(e,Q,t),s(e,Be,t),d(N,e,t),s(e,Ze,t),s(e,v,t),s(e,Ce,t),d(G,e,t),s(e,Pe,t),s(e,W,t),s(e,Se,t),d(X,e,t),s(e,Ve,t),s(e,L,t),s(e,De,t),d(z,e,t),s(e,He,t),d(A,e,t),s(e,be,t),d(Y,e,t),s(e,Re,t),s(e,O,t),s(e,xe,t),s(e,q,t),s(e,Ee,t),d(K,e,t),s(e,Ie,t),s(e,te,t),ke=!0},p:it,i(e){ke||(m(u.$$.fragment,e),m(g.$$.fragment,e),m(y.$$.fragment,e),m(j.$$.fragment,e),m(F.$$.fragment,e),m(P.$$.fragment,e),m(V.$$.fragment,e),m(b.$$.fragment,e),m(x.$$.fragment,e),m(I.$$.fragment,e),m(k.$$.fragment,e),m(N.$$.fragment,e),m(G.$$.fragment,e),m(X.$$.fragment,e),m(z.$$.fragment,e),m(A.$$.fragment,e),m(Y.$$.fragment,e),m(K.$$.fragment,e),ke=!0)},o(e){o(u.$$.fragment,e),o(g.$$.fragment,e),o(y.$$.fragment,e),o(j.$$.fragment,e),o(F.$$.fragment,e),o(P.$$.fragment,e),o(V.$$.fragment,e),o(b.$$.fragment,e),o(x.$$.fragment,e),o(I.$$.fragment,e),o(k.$$.fragment,e),o(N.$$.fragment,e),o(G.$$.fragment,e),o(X.$$.fragment,e),o(z.$$.fragment,e),o(A.$$.fragment,e),o(Y.$$.fragment,e),o(K.$$.fragment,e),ke=!1},d(e){e&&(l(le),l(ee),l(se),l(ae),l(_),l(ne),l($),l(pe),l(ce),l(re),l(M),l(ie),l(fe),l(w),l(de),l(me),l(B),l(oe),l(Z),l(he),l(C),l(Ue),l(Te),l(S),l(Je),l(ue),l(D),l(_e),l(H),l($e),l(ge),l(R),l(ye),l(Me),l(E),l(je),l(we),l(Fe),l(Q),l(Be),l(Ze),l(v),l(Ce),l(Pe),l(W),l(Se),l(Ve),l(L),l(De),l(He),l(be),l(Re),l(O),l(xe),l(q),l(Ee),l(Ie),l(te)),l(U),h(u,e),h(g,e),h(y,e),h(j,e),h(F,e),h(P,e),h(V,e),h(b,e),h(x,e),h(I,e),h(k,e),h(N,e),h(G,e),h(X,e),h(z,e),h(A,e),h(Y,e),h(K,e)}}}const Jt='{"title":"완전 분할 데이터 병렬 처리(FSDP)","local":"fully-sharded-data-parallel","sections":[{"title":"FSDP 구성","local":"fsdp-configuration","sections":[{"title":"분할 전략","local":"sharding-strategy","sections":[],"depth":3},{"title":"CPU 오프로드","local":"cpu-offload","sections":[],"depth":3},{"title":"래핑 정책","local":"wrapping-policy","sections":[],"depth":3},{"title":"체크포인트","local":"checkpointing","sections":[],"depth":3},{"title":"TPU","local":"tpu","sections":[],"depth":3}],"depth":2},{"title":"훈련 시작","local":"launch-training","sections":[],"depth":2},{"title":"다음 단계","local":"next-steps","sections":[],"depth":2}],"depth":1}';function ut(Qe){return ft(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Mt extends dt{constructor(U){super(),mt(this,U,ut,Tt,rt,{})}}export{Mt as component}; | |
Xet Storage Details
- Size:
- 21 kB
- Xet hash:
- 9f676d7618f6ec40627117180b891dc4b4c3f79057b7bfe73014825672c972c5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.