import{s as Ct,n as xt,o as ct}from"../chunks/scheduler.bdbef820.js";import{S as ht,i as vt,g as f,s as i,r as G,A as Ut,h as r,f as n,c as a,j as Pt,u as y,x as p,k as ot,y as gt,a as l,v as L,d as H,t as M,w as A}from"../chunks/index.33f81d56.js";import{H as j,E as Tt}from"../chunks/index.e01163b6.js";function dt(nt){let s,I,E,q,m,z,u,lt=`大規模なトランスフォーマーモデルのトレーニングおよび本番環境への展開はさまざまな課題を提起します。
トレーニング中には、モデルが利用可能なGPUメモリよりも多くを必要としたり、トレーニング速度が遅かったりする可能性があります。
デプロイフェーズでは、モデルが本番環境で必要なスループットを処理するのに苦労することがあります。`,k,_,it=`このドキュメンテーションは、これらの課題を克服し、ユースケースに最適な設定を見つけるのに役立つことを目的としています。
ガイドはトレーニングと推論のセクションに分かれており、それぞれ異なる課題と解決策が存在します。
各セクション内には、トレーニング用のシングルGPU対マルチGPU、推論用のCPU対GPUなど、異なるハードウェア構成用の別々のガイドが用意されています。`,F,$,at="このドキュメントを出発点として、シナリオに合った方法に進むための情報源としてご利用ください。",R,P,X,o,ft=`大規模なトランスフォーマーモデルを効率的にトレーニングするには、GPUやTPUなどのアクセラレータが必要です。
最も一般的なケースは、シングルGPUがある場合です。シングルGPUでのトレーニング効率を最適化するための一般的なアプローチを学ぶには、以下を参照してください。`,B,C,rt='<li><a href="perf_train_gpu_one">シングルGPUでの効率的なトレーニングのための方法とツール</a>: GPUメモリの効果的な利用、トレーニングの高速化などを支援する共通のアプローチを学ぶためにここから始めてください。</li> <li><a href="perf_train_gpu_many">マルチGPUトレーニングセクション</a>: マルチGPU環境に適用されるデータ、テンソル、パイプライン並列性など、さらなる最適化方法について詳細に学びます。</li> <li><a href="perf_train_cpu">CPUトレーニングセクション</a>: CPU上での混合精度トレーニングについて学びます。</li> <li><a href="perf_train_cpu_many">複数CPUでの効率的なトレーニング</a>: 分散CPUトレーニングについて学びます。</li> <li><a href="perf_train_tpu_tf">TensorFlowでTPUを使用したトレーニング</a>: TPUに慣れていない場合は、TPUでのトレーニングとXLAの使用についてのセクションを参照してください。</li> <li><a href="perf_hardware">トレーニングのためのカスタムハードウェア</a>: 独自のディープラーニング環境を構築する際のヒントやトリックを見つけます。</li> <li><a href="hpo_train">Trainer APIを使用したハイパーパラメーター検索</a></li>',O,x,D,c,pt=`本番環境で大規模なモデルを効率的に推論することは、それらをトレーニングすることと同じくらい難しいことがあります。
以下のセクションでは、CPUおよびシングル/マルチGPU環境で推論を実行する手順について説明します。`,J,h,st='<li><a href="perf_infer_cpu">シングルCPUでの推論</a></li> <li><a href="perf_infer_gpu_one">シングルGPUでの推論</a></li> <li><a href="perf_infer_gpu_many">マルチGPU推論</a></li> <li><a href="tf_xla">TensorFlowモデルのXLA統合</a></li>',K,v,N,U,mt="モデルをトレーニングするか、それを使用して推論を実行するかに関係なく適用されるテクニック、ヒント、トリックがここにあります。",Q,g,ut='<li><a href="big_models">大規模モデルのインスタンス化</a></li> <li><a href="debugging">パフォーマンスの問題のトラブルシューティング</a></li>',V,T,W,d,_t=`このドキュメントはまだ完全ではなく、さらに追加する必要がある項目がたくさんあります。
追加や訂正が必要な場合は、遠慮せずにPRをオープンするか、詳細を議論するためにIssueを開始してください。`,Y,b,$t="AがBよりも優れているという貢献を行う際には、再現可能なベンチマークやその情報の出典へのリンクを含めてみてください（あなた自身の情報である場合を除く）。",Z,w,tt,S,et;return m=new j({props:{title:"Performance and Scalability",local:"performance-and-scalability",headingTag:"h1"}}),P=new j({props:{title:"Training",local:"training",headingTag:"h2"}}),x=new j({props:{title:"Inference",local:"inference",headingTag:"h2"}}),v=new j({props:{title:"Training and inference",local:"training-and-inference",headingTag:"h2"}}),T=new j({props:{title:"Contribute",local:"contribute",headingTag:"h2"}}),w=new Tt({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ja/performance.md"}}),{c(){s=f("meta"),I=i(),E=f("p"),q=i(),G(m.$$.fragment),z=i(),u=f("p"),u.textContent=lt,k=i(),_=f("p"),_.textContent=it,F=i(),$=f("p"),$.textContent=at,R=i(),G(P.$$.fragment),X=i(),o=f("p"),o.textContent=ft,B=i(),C=f("ul"),C.innerHTML=rt,O=i(),G(x.$$.fragment),D=i(),c=f("p"),c.textContent=pt,J=i(),h=f("ul"),h.innerHTML=st,K=i(),G(v.$$.fragment),N=i(),U=f("p"),U.textContent=mt,Q=i(),g=f("ul"),g.innerHTML=ut,V=i(),G(T.$$.fragment),W=i(),d=f("p"),d.textContent=_t,Y=i(),b=f("p"),b.textContent=$t,Z=i(),G(w.$$.fragment),tt=i(),S=f("p"),this.h()},l(t){const e=Ut("svelte-u9bgzb",document.head);s=r(e,"META",{name:!0,content:!0}),e.forEach(n),I=a(t),E=r(t,"P",{}),Pt(E).forEach(n),q=a(t),y(m.$$.fragment,t),z=a(t),u=r(t,"P",{"data-svelte-h":!0}),p(u)!=="svelte-1ba1wy3"&&(u.textContent=lt),k=a(t),_=r(t,"P",{"data-svelte-h":!0}),p(_)!=="svelte-1v7sbcj"&&(_.textContent=it),F=a(t),$=r(t,"P",{"data-svelte-h":!0}),p($)!=="svelte-11kz8me"&&($.textContent=at),R=a(t),y(P.$$.fragment,t),X=a(t),o=r(t,"P",{"data-svelte-h":!0}),p(o)!=="svelte-l3gevf"&&(o.textContent=ft),B=a(t),C=r(t,"UL",{"data-svelte-h":!0}),p(C)!=="svelte-1xio3b8"&&(C.innerHTML=rt),O=a(t),y(x.$$.fragment,t),D=a(t),c=r(t,"P",{"data-svelte-h":!0}),p(c)!=="svelte-1s7en6c"&&(c.textContent=pt),J=a(t),h=r(t,"UL",{"data-svelte-h":!0}),p(h)!=="svelte-di2vlx"&&(h.innerHTML=st),K=a(t),y(v.$$.fragment,t),N=a(t),U=r(t,"P",{"data-svelte-h":!0}),p(U)!=="svelte-bx4mq5"&&(U.textContent=mt),Q=a(t),g=r(t,"UL",{"data-svelte-h":!0}),p(g)!=="svelte-14t6nld"&&(g.innerHTML=ut),V=a(t),y(T.$$.fragment,t),W=a(t),d=r(t,"P",{"data-svelte-h":!0}),p(d)!=="svelte-1672qac"&&(d.textContent=_t),Y=a(t),b=r(t,"P",{"data-svelte-h":!0}),p(b)!=="svelte-jhia4z"&&(b.textContent=$t),Z=a(t),y(w.$$.fragment,t),tt=a(t),S=r(t,"P",{}),Pt(S).forEach(n),this.h()},h(){ot(s,"name","hf:doc:metadata"),ot(s,"content",bt)},m(t,e){gt(document.head,s),l(t,I,e),l(t,E,e),l(t,q,e),L(m,t,e),l(t,z,e),l(t,u,e),l(t,k,e),l(t,_,e),l(t,F,e),l(t,$,e),l(t,R,e),L(P,t,e),l(t,X,e),l(t,o,e),l(t,B,e),l(t,C,e),l(t,O,e),L(x,t,e),l(t,D,e),l(t,c,e),l(t,J,e),l(t,h,e),l(t,K,e),L(v,t,e),l(t,N,e),l(t,U,e),l(t,Q,e),l(t,g,e),l(t,V,e),L(T,t,e),l(t,W,e),l(t,d,e),l(t,Y,e),l(t,b,e),l(t,Z,e),L(w,t,e),l(t,tt,e),l(t,S,e),et=!0},p:xt,i(t){et||(H(m.$$.fragment,t),H(P.$$.fragment,t),H(x.$$.fragment,t),H(v.$$.fragment,t),H(T.$$.fragment,t),H(w.$$.fragment,t),et=!0)},o(t){M(m.$$.fragment,t),M(P.$$.fragment,t),M(x.$$.fragment,t),M(v.$$.fragment,t),M(T.$$.fragment,t),M(w.$$.fragment,t),et=!1},d(t){t&&(n(I),n(E),n(q),n(z),n(u),n(k),n(_),n(F),n($),n(R),n(X),n(o),n(B),n(C),n(O),n(D),n(c),n(J),n(h),n(K),n(N),n(U),n(Q),n(g),n(V),n(W),n(d),n(Y),n(b),n(Z),n(tt),n(S)),n(s),A(m,t),A(P,t),A(x,t),A(v,t),A(T,t),A(w,t)}}}const bt='{"title":"Performance and Scalability","local":"performance-and-scalability","sections":[{"title":"Training","local":"training","sections":[],"depth":2},{"title":"Inference","local":"inference","sections":[],"depth":2},{"title":"Training and inference","local":"training-and-inference","sections":[],"depth":2},{"title":"Contribute","local":"contribute","sections":[],"depth":2}],"depth":1}';function wt(nt){return ct(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ht extends ht{constructor(s){super(),vt(this,s,wt,dt,Ct,{})}}export{Ht as component};
