import{S as Kl,i as Vl,s as Xl,e as n,k as c,t as r,w as m,M as Zl,c as i,d as t,m as d,a as p,h as l,x as u,b as k,G as s,g as o,y as f,q as _,o as h,B as b,v as eo}from"../../chunks/vendor-hf-doc-builder.js";import{T as Jl}from"../../chunks/Tip-hf-doc-builder.js";import{Y as Yl}from"../../chunks/Youtube-hf-doc-builder.js";import{I as Ql}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as v}from"../../chunks/CodeBlock-hf-doc-builder.js";import{C as to}from"../../chunks/CourseFloatingBanner-hf-doc-builder.js";function so(We){let $,w,j,te,U;return{c(){$=n("p"),w=r("\u270F\uFE0F "),j=n("strong"),te=r("\u0E25\u0E2D\u0E07\u0E40\u0E25\u0E22!"),U=r(" \u0E41\u0E01\u0E49\u0E44\u0E02\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E33\u0E01\u0E32\u0E23 fine-tune \u0E42\u0E21\u0E40\u0E14\u0E25\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22 SST-2 dataset.")},l(q){$=i(q,"P",{});var C=p($);w=l(C,"\u270F\uFE0F "),j=i(C,"STRONG",{});var D=p(j);te=l(D,"\u0E25\u0E2D\u0E07\u0E40\u0E25\u0E22!"),D.forEach(t),U=l(C," \u0E41\u0E01\u0E49\u0E44\u0E02\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E33\u0E01\u0E32\u0E23 fine-tune \u0E42\u0E21\u0E40\u0E14\u0E25\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22 SST-2 dataset."),C.forEach(t)},m(q,C){o(q,$,C),s($,w),s($,j),s(j,te),s($,U)},d(q){q&&t($)}}}function ao(We){let $;return{c(){$=r('\u26A0\uFE0F \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E35\u0E48\u0E08\u0E30\u0E44\u0E14\u0E49\u0E1B\u0E23\u0E30\u0E42\u0E22\u0E0A\u0E19\u0E4C\u0E08\u0E32\u0E01\u0E04\u0E27\u0E32\u0E21\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E02\u0E36\u0E49\u0E19\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 Cloud TPUs \u0E40\u0E23\u0E32\u0E41\u0E19\u0E30\u0E19\u0E33\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13\u0E40\u0E15\u0E34\u0E21\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27\u0E17\u0E35\u0E48\u0E04\u0E07\u0E17\u0E35\u0E48\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E2D\u0E32\u0E01\u0E34\u0E27\u0E40\u0E21\u0E19\u0E15\u0E4C `padding="max_length"` \u0E41\u0E25\u0E30 `max_length` \u0E43\u0E2B\u0E49\u0E01\u0E31\u0E1A tokenizer')},l(w){$=l(w,'\u26A0\uFE0F \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E35\u0E48\u0E08\u0E30\u0E44\u0E14\u0E49\u0E1B\u0E23\u0E30\u0E42\u0E22\u0E0A\u0E19\u0E4C\u0E08\u0E32\u0E01\u0E04\u0E27\u0E32\u0E21\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E02\u0E36\u0E49\u0E19\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 Cloud TPUs \u0E40\u0E23\u0E32\u0E41\u0E19\u0E30\u0E19\u0E33\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13\u0E40\u0E15\u0E34\u0E21\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27\u0E17\u0E35\u0E48\u0E04\u0E07\u0E17\u0E35\u0E48\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E2D\u0E32\u0E01\u0E34\u0E27\u0E40\u0E21\u0E19\u0E15\u0E4C `padding="max_length"` \u0E41\u0E25\u0E30 `max_length` \u0E43\u0E2B\u0E49\u0E01\u0E31\u0E1A tokenizer')},m(w,j){o(w,$,j)},d(w){w&&t($)}}}function ro(We){let $,w,j,te,U,q,C,D,Tt,F,Qs,Ve,Ks,Vs,Ot,se,Wt,ae,Xs,Mt,S,Zs,Xe,ea,ta,Ze,sa,aa,Ut,x,O,ra,et,la,oa,tt,na,ia,pa,P,ca,st,da,ma,at,ua,fa,rt,_a,ha,ba,lt,$a,Ft,re,ot,va,ka,Lt,le,Gt,Me,ga,Nt,oe,Ht,Ue,ja,It,ne,Bt,Fe,wa,Rt,ie,Jt,pe,Yt,L,za,nt,Ea,qa,Qt,Le,ya,Kt,ce,Vt,Ge,Aa,Xt,de,Zt,me,es,G,Ca,it,Pa,Da,ts,z,Sa,pt,xa,Ta,ct,Oa,Wa,dt,Ma,Ua,ue,Fa,La,ss,fe,as,N,Ga,mt,Na,Ha,rs,_e,ls,he,os,be,Ia,ns,H,Ba,ut,Ra,Ja,is,$e,ps,ve,cs,I,Ya,ft,Qa,Ka,ds,ke,ms,Ne,Va,us,W,B,_t,ge,Xa,ht,Za,fs,y,er,bt,tr,sr,$t,ar,rr,vt,lr,or,_s,je,hs,we,bs,He,nr,$s,R,vs,M,J,kt,ze,ir,gt,pr,ks,Ee,gs,Y,cr,qe,dr,mr,js,ye,ws,Ie,ur,zs,Ae,Es,A,fr,jt,_r,hr,wt,br,$r,zt,vr,kr,qs,g,gr,Et,jr,wr,qt,zr,Er,yt,qr,yr,At,Ar,Cr,Ct,Pr,Dr,Pt,Sr,xr,ys,Q,As,Be,Tr,Cs,Ce,Ps,K,Or,Dt,Wr,Mr,Ds,Pe,Ss,Re,Ur,xs,De,Ts,Je,Fr,Os,V,Lr,St,Gr,Nr,Ws,Se,Ms,xe,Hr,Te,Ir,Us;return q=new to({props:{chapter:3,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/th/chapter3/section4.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/th/chapter3/section4.ipynb"}]}}),D=new Yl({props:{id:"Dh9CL8fyG80"}}),se=new v({props:{code:`from datasets import load_dataset
from transformers import AutoTokenizer, DataCollatorWithPadding

raw_datasets = load_dataset("glue", "mrpc")
checkpoint = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)


def tokenize_function(example):
    return tokenizer(example["sentence1"], example["sentence2"], truncation=True)


tokenized_datasets = raw_datasets.map(tokenize_function, batched=True)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)`,highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, DataCollatorWithPadding

raw_datasets = load_dataset(<span class="hljs-string">&quot;glue&quot;</span>, <span class="hljs-string">&quot;mrpc&quot;</span>)
checkpoint = <span class="hljs-string">&quot;bert-base-uncased&quot;</span>
tokenizer = AutoTokenizer.from_pretrained(checkpoint)


<span class="hljs-keyword">def</span> <span class="hljs-title function_">tokenize_function</span>(<span class="hljs-params">example</span>):
    <span class="hljs-keyword">return</span> tokenizer(example[<span class="hljs-string">&quot;sentence1&quot;</span>], example[<span class="hljs-string">&quot;sentence2&quot;</span>], truncation=<span class="hljs-literal">True</span>)


tokenized_datasets = raw_datasets.<span class="hljs-built_in">map</span>(tokenize_function, batched=<span class="hljs-literal">True</span>)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)`}}),le=new v({props:{code:`tokenized_datasets = tokenized_datasets.remove_columns(["sentence1", "sentence2", "idx"])
tokenized_datasets = tokenized_datasets.rename_column("label", "labels")
tokenized_datasets.set_format("torch")
tokenized_datasets["train"].column_names`,highlighted:`tokenized_datasets = tokenized_datasets.remove_columns([<span class="hljs-string">&quot;sentence1&quot;</span>, <span class="hljs-string">&quot;sentence2&quot;</span>, <span class="hljs-string">&quot;idx&quot;</span>])
tokenized_datasets = tokenized_datasets.rename_column(<span class="hljs-string">&quot;label&quot;</span>, <span class="hljs-string">&quot;labels&quot;</span>)
tokenized_datasets.set_format(<span class="hljs-string">&quot;torch&quot;</span>)
tokenized_datasets[<span class="hljs-string">&quot;train&quot;</span>].column_names`}}),oe=new v({props:{code:'["attention_mask", "input_ids", "labels", "token_type_ids"]',highlighted:'[<span class="hljs-string">&quot;attention_mask&quot;</span>, <span class="hljs-string">&quot;input_ids&quot;</span>, <span class="hljs-string">&quot;labels&quot;</span>, <span class="hljs-string">&quot;token_type_ids&quot;</span>]'}}),ne=new v({props:{code:`from torch.utils.data import DataLoader

train_dataloader = DataLoader(
    tokenized_datasets["train"], shuffle=True, batch_size=8, collate_fn=data_collator
)
eval_dataloader = DataLoader(
    tokenized_datasets["validation"], batch_size=8, collate_fn=data_collator
)`,highlighted:`<span class="hljs-keyword">from</span> torch.utils.data <span class="hljs-keyword">import</span> DataLoader

train_dataloader = DataLoader(
    tokenized_datasets[<span class="hljs-string">&quot;train&quot;</span>], shuffle=<span class="hljs-literal">True</span>, batch_size=<span class="hljs-number">8</span>, collate_fn=data_collator
)
eval_dataloader = DataLoader(
    tokenized_datasets[<span class="hljs-string">&quot;validation&quot;</span>], batch_size=<span class="hljs-number">8</span>, collate_fn=data_collator
)`}}),ie=new v({props:{code:`for batch in train_dataloader:
    break
{k: v.shape for k, v in batch.items()}`,highlighted:`<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader:
    <span class="hljs-keyword">break</span>
{k: v.shape <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}`}}),pe=new v({props:{code:`{'attention_mask': torch.Size([8, 65]),
 'input_ids': torch.Size([8, 65]),
 'labels': torch.Size([8]),
 'token_type_ids': torch.Size([8, 65])}`,highlighted:`{<span class="hljs-string">&#x27;attention_mask&#x27;</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]),
 <span class="hljs-string">&#x27;input_ids&#x27;</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>]),
 <span class="hljs-string">&#x27;labels&#x27;</span>: torch.Size([<span class="hljs-number">8</span>]),
 <span class="hljs-string">&#x27;token_type_ids&#x27;</span>: torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">65</span>])}`}}),ce=new v({props:{code:`from transformers import AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>)`}}),de=new v({props:{code:`outputs = model(**batch)
print(outputs.loss, outputs.logits.shape)`,highlighted:`outputs = model(**batch)
<span class="hljs-built_in">print</span>(outputs.loss, outputs.logits.shape)`}}),me=new v({props:{code:"tensor(0.5441, grad_fn=<NllLossBackward>) torch.Size([8, 2])",highlighted:'tensor(<span class="hljs-number">0.5441</span>, grad_fn=&lt;NllLossBackward&gt;) torch.Size([<span class="hljs-number">8</span>, <span class="hljs-number">2</span>])'}}),fe=new v({props:{code:`from transformers import AdamW

optimizer = AdamW(model.parameters(), lr=5e-5)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AdamW

optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">5e-5</span>)`}}),_e=new v({props:{code:`from transformers import get_scheduler

num_epochs = 3
num_training_steps = num_epochs * len(train_dataloader)
lr_scheduler = get_scheduler(
    "linear",
    optimizer=optimizer,
    num_warmup_steps=0,
    num_training_steps=num_training_steps,
)
print(num_training_steps)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> get_scheduler

num_epochs = <span class="hljs-number">3</span>
num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dataloader)
lr_scheduler = get_scheduler(
    <span class="hljs-string">&quot;linear&quot;</span>,
    optimizer=optimizer,
    num_warmup_steps=<span class="hljs-number">0</span>,
    num_training_steps=num_training_steps,
)
<span class="hljs-built_in">print</span>(num_training_steps)`}}),he=new v({props:{code:"1377",highlighted:'<span class="hljs-number">1377</span>'}}),$e=new v({props:{code:`import torch

device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model.to(device)
device`,highlighted:`<span class="hljs-keyword">import</span> torch

device = torch.device(<span class="hljs-string">&quot;cuda&quot;</span>) <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> torch.device(<span class="hljs-string">&quot;cpu&quot;</span>)
model.to(device)
device`}}),ve=new v({props:{code:"device(type='cuda')",highlighted:'device(<span class="hljs-built_in">type</span>=<span class="hljs-string">&#x27;cuda&#x27;</span>)'}}),ke=new v({props:{code:`from tqdm.auto import tqdm

progress_bar = tqdm(range(num_training_steps))

model.train()
for epoch in range(num_epochs):
    for batch in train_dataloader:
        batch = {k: v.to(device) for k, v in batch.items()}
        outputs = model(**batch)
        loss = outputs.loss
        loss.backward()

        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        progress_bar.update(1)`,highlighted:`<span class="hljs-keyword">from</span> tqdm.auto <span class="hljs-keyword">import</span> tqdm

progress_bar = tqdm(<span class="hljs-built_in">range</span>(num_training_steps))

model.train()
<span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs):
    <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader:
        batch = {k: v.to(device) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}
        outputs = model(**batch)
        loss = outputs.loss
        loss.backward()

        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        progress_bar.update(<span class="hljs-number">1</span>)`}}),ge=new Ql({}),je=new v({props:{code:`import evaluate

metric = evaluate.load("glue", "mrpc")
model.eval()
for batch in eval_dataloader:
    batch = {k: v.to(device) for k, v in batch.items()}
    with torch.no_grad():
        outputs = model(**batch)

    logits = outputs.logits
    predictions = torch.argmax(logits, dim=-1)
    metric.add_batch(predictions=predictions, references=batch["labels"])

metric.compute()`,highlighted:`<span class="hljs-keyword">import</span> evaluate

metric = evaluate.load(<span class="hljs-string">&quot;glue&quot;</span>, <span class="hljs-string">&quot;mrpc&quot;</span>)
model.<span class="hljs-built_in">eval</span>()
<span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> eval_dataloader:
    batch = {k: v.to(device) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}
    <span class="hljs-keyword">with</span> torch.no_grad():
        outputs = model(**batch)

    logits = outputs.logits
    predictions = torch.argmax(logits, dim=-<span class="hljs-number">1</span>)
    metric.add_batch(predictions=predictions, references=batch[<span class="hljs-string">&quot;labels&quot;</span>])

metric.compute()`}}),we=new v({props:{code:"{'accuracy': 0.8431372549019608, 'f1': 0.8907849829351535}",highlighted:'{<span class="hljs-string">&#x27;accuracy&#x27;</span>: <span class="hljs-number">0.8431372549019608</span>, <span class="hljs-string">&#x27;f1&#x27;</span>: <span class="hljs-number">0.8907849829351535</span>}'}}),R=new Jl({props:{$$slots:{default:[so]},$$scope:{ctx:We}}}),ze=new Ql({}),Ee=new Yl({props:{id:"s7dy8QRgjJ0"}}),ye=new v({props:{code:`from transformers import AdamW, AutoModelForSequenceClassification, get_scheduler

model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
optimizer = AdamW(model.parameters(), lr=3e-5)

device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model.to(device)

num_epochs = 3
num_training_steps = num_epochs * len(train_dataloader)
lr_scheduler = get_scheduler(
    "linear",
    optimizer=optimizer,
    num_warmup_steps=0,
    num_training_steps=num_training_steps,
)

progress_bar = tqdm(range(num_training_steps))

model.train()
for epoch in range(num_epochs):
    for batch in train_dataloader:
        batch = {k: v.to(device) for k, v in batch.items()}
        outputs = model(**batch)
        loss = outputs.loss
        loss.backward()

        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        progress_bar.update(1)`,highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AdamW, AutoModelForSequenceClassification, get_scheduler

model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>)
optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">3e-5</span>)

device = torch.device(<span class="hljs-string">&quot;cuda&quot;</span>) <span class="hljs-keyword">if</span> torch.cuda.is_available() <span class="hljs-keyword">else</span> torch.device(<span class="hljs-string">&quot;cpu&quot;</span>)
model.to(device)

num_epochs = <span class="hljs-number">3</span>
num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dataloader)
lr_scheduler = get_scheduler(
    <span class="hljs-string">&quot;linear&quot;</span>,
    optimizer=optimizer,
    num_warmup_steps=<span class="hljs-number">0</span>,
    num_training_steps=num_training_steps,
)

progress_bar = tqdm(<span class="hljs-built_in">range</span>(num_training_steps))

model.train()
<span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs):
    <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dataloader:
        batch = {k: v.to(device) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> batch.items()}
        outputs = model(**batch)
        loss = outputs.loss
        loss.backward()

        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        progress_bar.update(<span class="hljs-number">1</span>)`}}),Ae=new v({props:{code:`+ from accelerate import Accelerator
  from transformers import AdamW, AutoModelForSequenceClassification, get_scheduler

+ accelerator = Accelerator()

  model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
  optimizer = AdamW(model.parameters(), lr=3e-5)

- device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
- model.to(device)

+ train_dataloader, eval_dataloader, model, optimizer = accelerator.prepare(
+     train_dataloader, eval_dataloader, model, optimizer
+ )

  num_epochs = 3
  num_training_steps = num_epochs * len(train_dataloader)
  lr_scheduler = get_scheduler(
      "linear",
      optimizer=optimizer,
      num_warmup_steps=0,
      num_training_steps=num_training_steps
  )

  progress_bar = tqdm(range(num_training_steps))

  model.train()
  for epoch in range(num_epochs):
      for batch in train_dataloader:
-         batch = {k: v.to(device) for k, v in batch.items()}
          outputs = model(**batch)
          loss = outputs.loss
-         loss.backward()
+         accelerator.backward(loss)

          optimizer.step()
          lr_scheduler.step()
          optimizer.zero_grad()
          progress_bar.update(1)`,highlighted:`<span class="hljs-addition">+ from accelerate import Accelerator</span>
  from transformers import AdamW, AutoModelForSequenceClassification, get_scheduler

<span class="hljs-addition">+ accelerator = Accelerator()</span>

  model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
  optimizer = AdamW(model.parameters(), lr=3e-5)

<span class="hljs-deletion">- device = torch.device(&quot;cuda&quot;) if torch.cuda.is_available() else torch.device(&quot;cpu&quot;)</span>
<span class="hljs-deletion">- model.to(device)</span>

<span class="hljs-addition">+ train_dataloader, eval_dataloader, model, optimizer = accelerator.prepare(</span>
<span class="hljs-addition">+     train_dataloader, eval_dataloader, model, optimizer</span>
<span class="hljs-addition">+ )</span>

  num_epochs = 3
  num_training_steps = num_epochs * len(train_dataloader)
  lr_scheduler = get_scheduler(
      &quot;linear&quot;,
      optimizer=optimizer,
      num_warmup_steps=0,
      num_training_steps=num_training_steps
  )

  progress_bar = tqdm(range(num_training_steps))

  model.train()
  for epoch in range(num_epochs):
      for batch in train_dataloader:
<span class="hljs-deletion">-         batch = {k: v.to(device) for k, v in batch.items()}</span>
          outputs = model(**batch)
          loss = outputs.loss
<span class="hljs-deletion">-         loss.backward()</span>
<span class="hljs-addition">+         accelerator.backward(loss)</span>

          optimizer.step()
          lr_scheduler.step()
          optimizer.zero_grad()
          progress_bar.update(1)`}}),Q=new Jl({props:{$$slots:{default:[ao]},$$scope:{ctx:We}}}),Ce=new v({props:{code:`from accelerate import Accelerator
from transformers import AdamW, AutoModelForSequenceClassification, get_scheduler

accelerator = Accelerator()

model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
optimizer = AdamW(model.parameters(), lr=3e-5)

train_dl, eval_dl, model, optimizer = accelerator.prepare(
    train_dataloader, eval_dataloader, model, optimizer
)

num_epochs = 3
num_training_steps = num_epochs * len(train_dl)
lr_scheduler = get_scheduler(
    "linear",
    optimizer=optimizer,
    num_warmup_steps=0,
    num_training_steps=num_training_steps,
)

progress_bar = tqdm(range(num_training_steps))

model.train()
for epoch in range(num_epochs):
    for batch in train_dl:
        outputs = model(**batch)
        loss = outputs.loss
        accelerator.backward(loss)

        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        progress_bar.update(1)`,highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AdamW, AutoModelForSequenceClassification, get_scheduler

accelerator = Accelerator()

model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=<span class="hljs-number">2</span>)
optimizer = AdamW(model.parameters(), lr=<span class="hljs-number">3e-5</span>)

train_dl, eval_dl, model, optimizer = accelerator.prepare(
    train_dataloader, eval_dataloader, model, optimizer
)

num_epochs = <span class="hljs-number">3</span>
num_training_steps = num_epochs * <span class="hljs-built_in">len</span>(train_dl)
lr_scheduler = get_scheduler(
    <span class="hljs-string">&quot;linear&quot;</span>,
    optimizer=optimizer,
    num_warmup_steps=<span class="hljs-number">0</span>,
    num_training_steps=num_training_steps,
)

progress_bar = tqdm(<span class="hljs-built_in">range</span>(num_training_steps))

model.train()
<span class="hljs-keyword">for</span> epoch <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_epochs):
    <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> train_dl:
        outputs = model(**batch)
        loss = outputs.loss
        accelerator.backward(loss)

        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        progress_bar.update(<span class="hljs-number">1</span>)`}}),Pe=new v({props:{code:"accelerate config",highlighted:"accelerate config"}}),De=new v({props:{code:"accelerate launch train.py",highlighted:'accelerate <span class="hljs-built_in">launch</span> train.py'}}),Se=new v({props:{code:`from accelerate import notebook_launcher

notebook_launcher(training_function)`,highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> notebook_launcher

notebook_launcher(training_function)`}}),{c(){$=n("meta"),w=c(),j=n("h1"),te=r("\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E09\u0E1A\u0E31\u0E1A\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C"),U=c(),m(q.$$.fragment),C=c(),m(D.$$.fragment),Tt=c(),F=n("p"),Qs=r("\u0E04\u0E23\u0E32\u0E27\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E08\u0E30\u0E21\u0E32\u0E14\u0E39\u0E01\u0E31\u0E19\u0E27\u0E48\u0E32\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E2D\u0E22\u0E32\u0E01\u0E40\u0E02\u0E35\u0E22\u0E19\u0E42\u0E04\u0E49\u0E14\u0E43\u0E2B\u0E49\u0E44\u0E14\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E41\u0E1A\u0E1A\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19\u0E01\u0E31\u0E1A\u0E43\u0E19 section \u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27\u0E42\u0E14\u0E22\u0E44\u0E21\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 "),Ve=n("code"),Ks=r("Trainer"),Vs=r(" class \u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E44\u0E23 \u0E40\u0E23\u0E32\u0E2A\u0E31\u0E19\u0E19\u0E34\u0E29\u0E10\u0E32\u0E19\u0E27\u0E48\u0E32\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E43\u0E19 section 2 \u0E21\u0E32\u0E41\u0E25\u0E49\u0E27 \u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E38\u0E1B\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E22\u0E48\u0E2D\u0E04\u0E23\u0E2D\u0E1A\u0E04\u0E25\u0E38\u0E21\u0E16\u0E36\u0E07\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E17\u0E38\u0E01\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E08\u0E33\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33:"),Ot=c(),m(se.$$.fragment),Wt=c(),ae=n("h3"),Xs=r("\u0E40\u0E15\u0E23\u0E35\u0E22\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E01\u0E48\u0E2D\u0E19\u0E40\u0E17\u0E23\u0E19"),Mt=c(),S=n("p"),Zs=r("\u0E01\u0E48\u0E2D\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E02\u0E35\u0E22\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E1A\u0E32\u0E07\u0E15\u0E31\u0E27\u0E01\u0E48\u0E2D\u0E19 \u0E42\u0E14\u0E22\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E0A\u0E38\u0E14\u0E41\u0E23\u0E01\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E01\u0E47\u0E04\u0E37\u0E2D dataloaders (\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E42\u0E2B\u0E25\u0E14\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25) \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E43\u0E19\u0E01\u0E32\u0E23\u0E42\u0E2B\u0E25\u0E14\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E17\u0E33\u0E0B\u0E49\u0E33\u0E01\u0E31\u0E1A\u0E2B\u0E25\u0E32\u0E22 \u0E46 batch \u0E02\u0E2D\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E41\u0E15\u0E48\u0E01\u0E48\u0E2D\u0E19\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E08\u0E30\u0E01\u0E33\u0E2B\u0E19\u0E14 dataloaders \u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23 postprocessing \u0E1A\u0E32\u0E07\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E31\u0E1A "),Xe=n("code"),ea=r("tokenized_datasets"),ta=r(" \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E01\u0E48\u0E2D\u0E19 \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E1A\u0E32\u0E07\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E35\u0E48 "),Ze=n("code"),sa=r("Trainer"),aa=r(" \u0E44\u0E14\u0E49\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E42\u0E14\u0E22\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34 \u0E0B\u0E36\u0E48\u0E07\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19\u0E44\u0E14\u0E49\u0E41\u0E01\u0E48:"),Ut=c(),x=n("ul"),O=n("li"),ra=r("\u0E25\u0E1A\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E44\u0E21\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 (\u0E40\u0E0A\u0E48\u0E19 \u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C "),et=n("code"),la=r("sentence1"),oa=r(" \u0E41\u0E25\u0E30  "),tt=n("code"),na=r("sentence2"),ia=r(")"),pa=c(),P=n("li"),ca=r("\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E0A\u0E37\u0E48\u0E2D\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C "),st=n("code"),da=r("label"),ma=r(" \u0E40\u0E1B\u0E47\u0E19 "),at=n("code"),ua=r("labels"),fa=r(" (\u0E40\u0E1E\u0E23\u0E32\u0E30\u0E27\u0E48\u0E32\u0E42\u0E21\u0E40\u0E14\u0E25\u0E04\u0E32\u0E14\u0E2B\u0E27\u0E31\u0E07\u0E2D\u0E32\u0E01\u0E34\u0E27\u0E40\u0E21\u0E19\u0E15\u0E4C\u0E0A\u0E37\u0E48\u0E2D\u0E27\u0E48\u0E32 "),rt=n("code"),_a=r("labels"),ha=r(")"),ba=c(),lt=n("li"),$a=r("\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E02\u0E2D\u0E07 datasets \u0E43\u0E2B\u0E49\u0E2A\u0E48\u0E07\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 PyTorach tensors \u0E41\u0E17\u0E19\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19 lists"),Ft=c(),re=n("p"),ot=n("code"),va=r("tokenized_datasets"),ka=r(" \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E21\u0E35\u0E40\u0E21\u0E18\u0E2D\u0E14\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E41\u0E15\u0E48\u0E25\u0E30\u0E02\u0E31\u0E49\u0E19\u0E15\u0E2D\u0E19\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),Lt=c(),m(le.$$.fragment),Gt=c(),Me=n("p"),ga=r("\u0E08\u0E32\u0E01\u0E19\u0E31\u0E49\u0E19\u0E40\u0E23\u0E32\u0E01\u0E47\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32\u0E21\u0E35\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49:"),Nt=c(),m(oe.$$.fragment),Ht=c(),Ue=n("p"),ja=r("\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E40\u0E23\u0E32\u0E17\u0E33\u0E02\u0E31\u0E49\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E41\u0E25\u0E49\u0E27 \u0E40\u0E23\u0E32\u0E01\u0E47\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14 dataloaders \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22\u0E14\u0E32\u0E22 \u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),It=c(),m(ne.$$.fragment),Bt=c(),Fe=n("p"),wa=r("\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E30\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E23\u0E27\u0E14\u0E40\u0E23\u0E47\u0E27\u0E27\u0E48\u0E32\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E2D\u0E07\u0E40\u0E23\u0E35\u0E22\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 batch \u0E2B\u0E19\u0E36\u0E48\u0E07\u0E21\u0E32\u0E14\u0E39\u0E44\u0E14\u0E49\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),Rt=c(),m(ie.$$.fragment),Jt=c(),m(pe.$$.fragment),Yt=c(),L=n("p"),za=r("\u0E04\u0E27\u0E23\u0E23\u0E30\u0E27\u0E31\u0E07\u0E44\u0E27\u0E49\u0E27\u0E48\u0E32 shape \u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E2D\u0E32\u0E08\u0E08\u0E30\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E44\u0E1B\u0E08\u0E32\u0E01\u0E19\u0E35\u0E49\u0E40\u0E25\u0E47\u0E01\u0E19\u0E49\u0E2D\u0E22 \u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32\u0E43\u0E2B\u0E49 training dataloader \u0E21\u0E35\u0E01\u0E32\u0E23\u0E17\u0E33 "),nt=n("code"),Ea=r("shuffle=True"),qa=r(" \u0E41\u0E25\u0E30\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E40\u0E15\u0E34\u0E21\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E43\u0E2B\u0E49\u0E22\u0E32\u0E27\u0E40\u0E17\u0E48\u0E32\u0E01\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E15\u0E31\u0E27\u0E17\u0E35\u0E48\u0E22\u0E32\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14\u0E43\u0E19 batch"),Qt=c(),Le=n("p"),ya=r("\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E01\u0E47\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E41\u0E25\u0E49\u0E27 (\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E19\u0E31\u0E01\u0E1B\u0E0F\u0E34\u0E1A\u0E31\u0E15\u0E34 ML \u0E41\u0E25\u0E49\u0E27\u0E19\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E35\u0E48\u0E19\u0E48\u0E32\u0E1E\u0E36\u0E07\u0E1E\u0E2D\u0E43\u0E08\u0E17\u0E35\u0E40\u0E14\u0E35\u0E22\u0E27 \u0E41\u0E15\u0E48\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E43\u0E2B\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2D\u0E30\u0E44\u0E23\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E23\u0E39\u0E1B\u0E18\u0E23\u0E23\u0E21\u0E19\u0E30) \u0E25\u0E2D\u0E07\u0E01\u0E25\u0E31\u0E1A\u0E21\u0E32\u0E14\u0E39\u0E17\u0E35\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E01\u0E31\u0E19 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E21\u0E40\u0E14\u0E25\u0E02\u0E36\u0E49\u0E19\u0E21\u0E32\u0E41\u0E1A\u0E1A\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E1A\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E17\u0E33\u0E43\u0E19 section \u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27:"),Kt=c(),m(ce.$$.fragment),Vt=c(),Ge=n("p"),Aa=r("\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E43\u0E2B\u0E49\u0E41\u0E19\u0E48\u0E43\u0E08\u0E27\u0E48\u0E32\u0E17\u0E38\u0E01\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E08\u0E30\u0E17\u0E33\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49\u0E23\u0E32\u0E1A\u0E23\u0E37\u0E48\u0E19\u0E15\u0E25\u0E2D\u0E14\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E25\u0E2D\u0E07\u0E2A\u0E48\u0E07 batch \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E19\u0E35\u0E49\u0E14\u0E39:"),Xt=c(),m(de.$$.fragment),Zt=c(),m(me.$$.fragment),es=c(),G=n("p"),Ca=r("\u0E42\u0E21\u0E40\u0E14\u0E25 \u{1F917} Transformers \u0E17\u0E38\u0E01\u0E15\u0E31\u0E27\u0E08\u0E30\u0E43\u0E2B\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E04\u0E48\u0E32 loss \u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E14\u0E49\u0E27\u0E22\u0E16\u0E49\u0E32\u0E2B\u0E32\u0E01\u0E40\u0E23\u0E32\u0E43\u0E2A\u0E48\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 "),it=n("code"),Pa=r("labels"),Da=r(" \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22 \u0E41\u0E25\u0E30\u0E40\u0E23\u0E32\u0E22\u0E31\u0E07\u0E44\u0E14\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 logits (\u0E44\u0E14\u0E49\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 2 \u0E04\u0E48\u0E32\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E41\u0E15\u0E48\u0E25\u0E30 input \u0E43\u0E19 batch \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32 \u0E14\u0E31\u0E07\u0E19\u0E31\u0E49\u0E19 logits \u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19 tensor \u0E17\u0E35\u0E48\u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 8 x 2)"),ts=c(),z=n("p"),Sa=r("\u0E40\u0E23\u0E32\u0E40\u0E01\u0E37\u0E2D\u0E1A\u0E08\u0E30\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E40\u0E02\u0E35\u0E22\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E41\u0E25\u0E49\u0E27! \u0E40\u0E23\u0E32\u0E41\u0E04\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E2D\u0E35\u0E01\u0E2A\u0E2D\u0E07\u0E2A\u0E34\u0E48\u0E07\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19\u0E40\u0E2D\u0E07: optimizer (\u0E15\u0E31\u0E27\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E43\u0E2B\u0E49\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E23\u0E32\u0E1A\u0E23\u0E37\u0E48\u0E19\u0E02\u0E36\u0E49\u0E19) \u0E41\u0E25\u0E30 learning rate scheduler (\u0E15\u0E31\u0E27\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32 learning rate \u0E15\u0E32\u0E21\u0E40\u0E27\u0E25\u0E32) \u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E1E\u0E22\u0E32\u0E22\u0E32\u0E21\u0E08\u0E30\u0E40\u0E25\u0E35\u0E22\u0E19\u0E41\u0E1A\u0E1A\u0E2A\u0E34\u0E48\u0E07\u0E17\u0E35\u0E48 "),pt=n("code"),xa=r("Trainer"),Ta=r(" \u0E17\u0E33\u0E44\u0E27\u0E49 \u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E19 \u0E42\u0E14\u0E22\u0E15\u0E31\u0E27 optimizer \u0E17\u0E35\u0E48 "),ct=n("code"),Oa=r("Trainer"),Wa=r(" \u0E43\u0E0A\u0E49\u0E04\u0E37\u0E2D "),dt=n("code"),Ma=r("AdamW"),Ua=r(" \u0E0B\u0E36\u0E48\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E31\u0E27\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19\u0E01\u0E31\u0E1A Adam \u0E41\u0E15\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E1E\u0E25\u0E34\u0E01\u0E41\u0E1E\u0E25\u0E07\u0E43\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E02\u0E2D\u0E07 weight decay regularization (\u0E14\u0E39\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21\u0E17\u0E35\u0E48 "),ue=n("a"),Fa=r("\u201CDecoupled Weight Decay Regularization\u201D"),La=r(" \u0E42\u0E14\u0E22 Ilya Loshchilov and Frank Hutter):"),ss=c(),m(fe.$$.fragment),as=c(),N=n("p"),Ga=r("\u0E40\u0E23\u0E32\u0E01\u0E47\u0E21\u0E32\u0E16\u0E36\u0E07\u0E02\u0E31\u0E49\u0E19\u0E15\u0E2D\u0E19\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E15\u0E31\u0E27 learning rate scheduler \u0E0B\u0E36\u0E48\u0E07\u0E21\u0E35\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E43\u0E2B\u0E49 learningrate \u0E21\u0E35\u0E01\u0E32\u0E23 decay \u0E41\u0E1A\u0E1A\u0E40\u0E0A\u0E34\u0E07\u0E40\u0E2A\u0E49\u0E19 \u0E42\u0E14\u0E22\u0E21\u0E35\u0E01\u0E32\u0E23\u0E25\u0E14\u0E04\u0E48\u0E32\u0E08\u0E32\u0E01\u0E04\u0E48\u0E32 learning rate \u0E17\u0E35\u0E48\u0E2A\u0E39\u0E07\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14 (5e-5) \u0E44\u0E1B\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E22 \u0E46 \u0E08\u0E19\u0E21\u0E35\u0E04\u0E48\u0E32\u0E40\u0E1B\u0E47\u0E19 0 \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E30\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32\u0E43\u0E2B\u0E49\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E27\u0E48\u0E32\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E04\u0E23\u0E31\u0E49\u0E07\u0E19\u0E35\u0E49\u0E21\u0E35\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E31\u0E49\u0E07\u0E2A\u0E34\u0E49\u0E19\u0E01\u0E35\u0E48 step \u0E0B\u0E36\u0E48\u0E07\u0E04\u0E33\u0E19\u0E27\u0E13\u0E44\u0E14\u0E49\u0E08\u0E32\u0E01\u0E08\u0E33\u0E19\u0E27\u0E19 epochs \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E40\u0E17\u0E23\u0E19 \u0E04\u0E39\u0E13\u0E14\u0E49\u0E27\u0E22\u0E08\u0E33\u0E19\u0E27\u0E19 training batches (\u0E0B\u0E36\u0E48\u0E07\u0E01\u0E47\u0E04\u0E37\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27\u0E02\u0E2D\u0E07 training dataloader \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32) \u0E42\u0E14\u0E22\u0E15\u0E31\u0E27 "),mt=n("code"),Na=r("Trainer"),Ha=r(" \u0E21\u0E35\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E17\u0E35\u0E48 3 epochs \u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E22\u0E36\u0E14\u0E15\u0E32\u0E21\u0E04\u0E48\u0E32\u0E19\u0E35\u0E49:"),rs=c(),m(_e.$$.fragment),ls=c(),m(he.$$.fragment),os=c(),be=n("h3"),Ia=r("\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19"),ns=c(),H=n("p"),Ba=r("\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E23\u0E04\u0E33\u0E19\u0E36\u0E07\u0E16\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22: \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 GPU \u0E16\u0E49\u0E32\u0E2B\u0E32\u0E01\u0E40\u0E23\u0E32\u0E21\u0E35\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E44\u0E27\u0E49 (\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E40\u0E17\u0E23\u0E19\u0E1A\u0E19 CPU \u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E2B\u0E25\u0E32\u0E22\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07\u0E41\u0E17\u0E19\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E27\u0E25\u0E32\u0E44\u0E21\u0E48\u0E01\u0E35\u0E48\u0E19\u0E32\u0E17\u0E35) \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E43\u0E2B\u0E49\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 GPU \u0E17\u0E38\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07\u0E17\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E44\u0E1B\u0E44\u0E14\u0E49 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14 "),ut=n("code"),Ra=r("device"),Ja=r(" \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E2A\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E41\u0E25\u0E30 batches \u0E02\u0E2D\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E25\u0E07\u0E44\u0E1B\u0E44\u0E14\u0E49\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),is=c(),m($e.$$.fragment),ps=c(),m(ve.$$.fragment),cs=c(),I=n("p"),Ya=r("\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E01\u0E47\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E08\u0E30\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E41\u0E25\u0E49\u0E27! \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E1E\u0E2D\u0E04\u0E32\u0E14\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E19\u0E32\u0E19\u0E40\u0E17\u0E48\u0E32\u0E44\u0E23 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E41\u0E16\u0E1A\u0E41\u0E2A\u0E14\u0E07\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32\u0E15\u0E32\u0E21\u0E08\u0E33\u0E19\u0E27\u0E19 step \u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19 \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E44\u0E25\u0E1A\u0E23\u0E32\u0E23\u0E35\u0E48 "),ft=n("code"),Qa=r("tqdm"),Ka=r(" \u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),ds=c(),m(ke.$$.fragment),ms=c(),Ne=n("p"),Va=r("\u0E04\u0E38\u0E13\u0E08\u0E30\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E2B\u0E47\u0E19\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32\u0E41\u0E01\u0E48\u0E19\u0E02\u0E2D\u0E07\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E19\u0E31\u0E49\u0E19\u0E01\u0E47\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E1A\u0E15\u0E31\u0E27\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E41\u0E2A\u0E14\u0E07\u0E43\u0E2B\u0E49\u0E14\u0E39\u0E43\u0E19\u0E1A\u0E17\u0E19\u0E33 \u0E40\u0E23\u0E32\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E43\u0E2B\u0E49\u0E21\u0E35\u0E01\u0E32\u0E23\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E04\u0E48\u0E32\u0E43\u0E14 \u0E46 \u0E2D\u0E2D\u0E01\u0E21\u0E32 \u0E14\u0E31\u0E07\u0E19\u0E31\u0E49\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E15\u0E31\u0E27\u0E19\u0E35\u0E49\u0E08\u0E36\u0E07\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E1A\u0E2D\u0E01\u0E2D\u0E30\u0E44\u0E23\u0E40\u0E23\u0E32\u0E40\u0E25\u0E22\u0E27\u0E48\u0E32\u0E42\u0E21\u0E40\u0E14\u0E25\u0E21\u0E35\u0E1B\u0E23\u0E30\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E20\u0E32\u0E1E\u0E40\u0E1B\u0E47\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E44\u0E23 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E08\u0E33\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E02\u0E35\u0E22\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E1C\u0E25\u0E42\u0E21\u0E40\u0E14\u0E25 (evaluation loop) \u0E14\u0E49\u0E27\u0E22"),us=c(),W=n("h3"),B=n("a"),_t=n("span"),m(ge.$$.fragment),Xa=c(),ht=n("span"),Za=r("\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E1C\u0E25\u0E42\u0E21\u0E40\u0E14\u0E25 (evaluation loop)"),fs=c(),y=n("p"),er=r("\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E1A\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E17\u0E33\u0E44\u0E27\u0E49\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 metric \u0E08\u0E32\u0E01\u0E44\u0E25\u0E1A\u0E23\u0E32\u0E23\u0E35\u0E48 \u{1F917} Evaluate \u0E44\u0E14\u0E49\u0E40\u0E25\u0E22 \u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E40\u0E2B\u0E47\u0E19\u0E40\u0E21\u0E18\u0E2D\u0E14 "),bt=n("code"),tr=r("metric.compute()"),sr=r(" \u0E21\u0E32\u0E41\u0E25\u0E49\u0E27 \u0E41\u0E15\u0E48 metrics \u0E22\u0E31\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E23\u0E27\u0E1A\u0E23\u0E27\u0E21\u0E1C\u0E25\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 batches \u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22 \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E40\u0E21\u0E18\u0E2D\u0E14 "),$t=n("code"),ar=r("add_batch()"),rr=r(" \u0E42\u0E14\u0E22\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E40\u0E23\u0E32\u0E23\u0E27\u0E1A\u0E23\u0E27\u0E21\u0E1C\u0E25\u0E21\u0E32\u0E08\u0E32\u0E01\u0E17\u0E38\u0E01 batches \u0E41\u0E25\u0E49\u0E27 \u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E04\u0E33\u0E19\u0E27\u0E13\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E40\u0E21\u0E18\u0E2D\u0E14 "),vt=n("code"),lr=r("metric.compute()"),or=r(" \u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E17\u0E38\u0E01\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E01\u0E25\u0E48\u0E32\u0E27\u0E21\u0E32\u0E19\u0E35\u0E49\u0E43\u0E19\u0E25\u0E39\u0E1B\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E1C\u0E25\u0E42\u0E21\u0E40\u0E14\u0E25:"),_s=c(),m(je.$$.fragment),hs=c(),m(we.$$.fragment),bs=c(),He=n("p"),nr=r("\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E2D\u0E32\u0E08\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E44\u0E1B\u0E40\u0E25\u0E47\u0E01\u0E19\u0E49\u0E2D\u0E22\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E21\u0E35\u0E01\u0E32\u0E23\u0E2A\u0E38\u0E48\u0E21\u0E04\u0E48\u0E32 weight \u0E15\u0E2D\u0E19\u0E2A\u0E23\u0E49\u0E32\u0E07 model head \u0E41\u0E25\u0E30\u0E21\u0E35\u0E01\u0E32\u0E23\u0E2A\u0E25\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E41\u0E1A\u0E1A\u0E2A\u0E38\u0E48\u0E21 \u0E41\u0E15\u0E48\u0E1C\u0E25\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E01\u0E47\u0E04\u0E27\u0E23\u0E08\u0E30\u0E43\u0E01\u0E25\u0E49\u0E40\u0E04\u0E35\u0E22\u0E07\u0E01\u0E31\u0E19"),$s=c(),m(R.$$.fragment),vs=c(),M=n("h3"),J=n("a"),kt=n("span"),m(ze.$$.fragment),ir=c(),gt=n("span"),pr=r("\u0E40\u0E23\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E40\u0E23\u0E47\u0E27\u0E43\u0E2B\u0E49\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22 \u{1F917} Accelerate"),ks=c(),m(Ee.$$.fragment),gs=c(),Y=n("p"),cr=r("\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E02\u0E36\u0E49\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49\u0E17\u0E33\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49\u0E14\u0E35\u0E1A\u0E19 CPU \u0E2B\u0E23\u0E37\u0E2D GPU \u0E15\u0E31\u0E27\u0E40\u0E14\u0E35\u0E22\u0E27 \u0E41\u0E15\u0E48\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E44\u0E25\u0E1A\u0E23\u0E32\u0E23\u0E35\u0E48 "),qe=n("a"),dr=r("\u{1F917} Accelerate"),mr=r(" \u0E41\u0E25\u0E30\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E31\u0E1A\u0E04\u0E48\u0E32\u0E2D\u0E35\u0E01\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E40\u0E25\u0E47\u0E01\u0E19\u0E49\u0E2D\u0E22 \u0E08\u0E30\u0E0A\u0E48\u0E27\u0E22\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E17\u0E23\u0E19\u0E1A\u0E19 distributed setup \u0E17\u0E35\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 GPUs \u0E2B\u0E23\u0E37\u0E2D TPUs \u0E2B\u0E25\u0E32\u0E22\u0E15\u0E31\u0E27\u0E44\u0E14\u0E49 \u0E42\u0E14\u0E22\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 training \u0E41\u0E25\u0E30 validation dataloaders \u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E41\u0E1A\u0E1A manual \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E21\u0E35\u0E25\u0E31\u0E01\u0E29\u0E13\u0E30\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),js=c(),m(ye.$$.fragment),ws=c(),Ie=n("p"),ur=r("\u0E41\u0E25\u0E30\u0E15\u0E48\u0E2D\u0E44\u0E1B\u0E19\u0E35\u0E49\u0E04\u0E37\u0E2D\u0E2A\u0E34\u0E48\u0E07\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E1B\u0E23\u0E31\u0E1A\u0E41\u0E01\u0E49:"),zs=c(),m(Ae.$$.fragment),Es=c(),A=n("p"),fr=r("\u0E42\u0E04\u0E49\u0E14\u0E1A\u0E23\u0E23\u0E17\u0E31\u0E14\u0E41\u0E23\u0E01\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E02\u0E49\u0E32\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E02\u0E2D\u0E07\u0E01\u0E32\u0E23 import \u0E42\u0E14\u0E22\u0E1A\u0E23\u0E23\u0E17\u0E31\u0E14\u0E17\u0E35\u0E48\u0E2A\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C "),jt=n("code"),_r=r("Accelerator"),hr=r(" \u0E17\u0E35\u0E48\u0E08\u0E30\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A environment \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07 distributed setup \u0E17\u0E35\u0E48\u0E40\u0E2B\u0E21\u0E32\u0E30\u0E2A\u0E21\u0E02\u0E36\u0E49\u0E19\u0E21\u0E32\u0E43\u0E2B\u0E49 \u0E42\u0E14\u0E22 \u{1F917} Accelerate \u0E08\u0E30\u0E0A\u0E48\u0E27\u0E22\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 device \u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13 \u0E04\u0E38\u0E13\u0E08\u0E36\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E2D\u0E32\u0E42\u0E04\u0E49\u0E14\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E43\u0E2A\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19 device \u0E2D\u0E2D\u0E01\u0E44\u0E14\u0E49 (\u0E2B\u0E23\u0E37\u0E2D\u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E04\u0E07\u0E44\u0E27\u0E49 \u0E01\u0E47\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E08\u0E32\u0E01 "),wt=n("code"),br=r("device"),$r=r(" \u0E40\u0E1B\u0E47\u0E19 "),zt=n("code"),vr=r("accelerator.device"),kr=r(")"),qs=c(),g=n("p"),gr=r("\u0E08\u0E32\u0E01\u0E19\u0E31\u0E31\u0E49\u0E19\u0E01\u0E47\u0E21\u0E35\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E2B\u0E25\u0E31\u0E01 \u0E46 \u0E43\u0E19\u0E1A\u0E23\u0E23\u0E17\u0E31\u0E14\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E07 dataloaders, \u0E42\u0E21\u0E40\u0E14\u0E25 \u0E41\u0E25\u0E30 optimizer \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E17\u0E35\u0E48 "),Et=n("code"),jr=r("accelerator.prepare()"),wr=r(" \u0E0B\u0E36\u0E48\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23 wrap \u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19 container \u0E17\u0E35\u0E48\u0E40\u0E2B\u0E21\u0E32\u0E30\u0E2A\u0E21 \u0E41\u0E25\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E41\u0E19\u0E48\u0E43\u0E08\u0E27\u0E48\u0E32 distributed training \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E17\u0E33\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49\u0E15\u0E32\u0E21\u0E17\u0E35\u0E48\u0E15\u0E31\u0E49\u0E07\u0E43\u0E08\u0E44\u0E27\u0E49 \u0E01\u0E32\u0E23\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E04\u0E37\u0E2D\u0E01\u0E32\u0E23\u0E40\u0E2D\u0E32\u0E42\u0E04\u0E49\u0E14\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E43\u0E2A\u0E48 batch \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19 "),qt=n("code"),zr=r("device"),Er=r(" \u0E2D\u0E2D\u0E01 (\u0E41\u0E25\u0E30\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07 \u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E04\u0E07\u0E44\u0E27\u0E49 \u0E01\u0E47\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E08\u0E32\u0E01 "),yt=n("code"),qr=r("device"),yr=r(" \u0E40\u0E1B\u0E47\u0E19 "),At=n("code"),Ar=r("accelerator.device"),Cr=r(" \u0E41\u0E25\u0E30\u0E41\u0E01\u0E49\u0E08\u0E32\u0E01 "),Ct=n("code"),Pr=r("loss.backward()"),Dr=r(" \u0E40\u0E1B\u0E47\u0E19 "),Pt=n("code"),Sr=r("accelerator.backward(loss)"),xr=r(")"),ys=c(),m(Q.$$.fragment),As=c(),Be=n("p"),Tr=r("\u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E07\u0E41\u0E25\u0E30\u0E27\u0E32\u0E07\u0E42\u0E04\u0E49\u0E14\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E14\u0E25\u0E2D\u0E07\u0E14\u0E39 \u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07\u0E19\u0E35\u0E49\u0E04\u0E37\u0E2D\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E02\u0E2D\u0E07\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 \u{1F917} Accelerate \u0E41\u0E1A\u0E1A\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C:"),Cs=c(),m(Ce.$$.fragment),Ps=c(),K=n("p"),Or=r("\u0E01\u0E32\u0E23\u0E43\u0E2A\u0E48\u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E1A\u0E19\u0E19\u0E35\u0E49\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19\u0E2A\u0E04\u0E23\u0E34\u0E1B\u0E15\u0E4C "),Dt=n("code"),Wr=r("train.py"),Mr=r(" \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E2A\u0E04\u0E23\u0E34\u0E1B\u0E15\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E23\u0E31\u0E19\u0E44\u0E14\u0E49\u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E08\u0E30\u0E21\u0E35 distributed setup \u0E40\u0E1B\u0E47\u0E19\u0E41\u0E1A\u0E1A\u0E43\u0E14\u0E01\u0E47\u0E15\u0E32\u0E21 \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E30\u0E25\u0E2D\u0E07\u0E1A\u0E19 distributed setup \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13 \u0E43\u0E2B\u0E49\u0E23\u0E31\u0E19\u0E04\u0E33\u0E2A\u0E31\u0E48\u0E07\u0E19\u0E35\u0E49:"),Ds=c(),m(Pe.$$.fragment),Ss=c(),Re=n("p"),Ur=r("\u0E0B\u0E36\u0E48\u0E07\u0E08\u0E30\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13\u0E15\u0E2D\u0E1A\u0E04\u0E33\u0E16\u0E32\u0E21 2-3 \u0E02\u0E49\u0E2D \u0E41\u0E25\u0E30\u0E43\u0E2A\u0E48\u0E04\u0E33\u0E15\u0E2D\u0E1A\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E25\u0E07\u0E44\u0E1B\u0E43\u0E19\u0E44\u0E1F\u0E25\u0E4C configuration \u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E43\u0E19\u0E04\u0E33\u0E2A\u0E31\u0E48\u0E07\u0E19\u0E35\u0E49:"),xs=c(),m(De.$$.fragment),Ts=c(),Je=n("p"),Fr=r("\u0E0B\u0E36\u0E48\u0E07\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E41\u0E1A\u0E1A distributed"),Os=c(),V=n("p"),Lr=r("\u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E25\u0E2D\u0E07\u0E42\u0E04\u0E49\u0E14\u0E19\u0E35\u0E49\u0E1A\u0E19 Notebook (\u0E40\u0E0A\u0E48\u0E19 \u0E17\u0E14\u0E25\u0E2D\u0E07\u0E01\u0E31\u0E1A TPUs \u0E1A\u0E19 Colab) \u0E41\u0E04\u0E48\u0E27\u0E32\u0E07\u0E42\u0E04\u0E49\u0E14\u0E19\u0E35\u0E49\u0E25\u0E07\u0E44\u0E1B\u0E43\u0E19 "),St=n("code"),Gr=r("training_function()"),Nr=r(" \u0E41\u0E25\u0E30\u0E23\u0E31\u0E19 cell \u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22\u0E42\u0E04\u0E49\u0E14\u0E19\u0E35\u0E49:"),Ws=c(),m(Se.$$.fragment),Ms=c(),xe=n("p"),Hr=r("\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E28\u0E36\u0E01\u0E29\u0E32\u0E08\u0E32\u0E01\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E2D\u0E37\u0E48\u0E19 \u0E46 \u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21 \u0E44\u0E14\u0E49\u0E43\u0E19 "),Te=n("a"),Ir=r("\u{1F917} Accelerate repo"),this.h()},l(e){const a=Zl('[data-svelte="svelte-1phssyn"]',document.head);$=i(a,"META",{name:!0,content:!0}),a.forEach(t),w=d(e),j=i(e,"H1",{id:!0});var xt=p(j);te=l(xt,"\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E09\u0E1A\u0E31\u0E1A\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C"),xt.forEach(t),U=d(e),u(q.$$.fragment,e),C=d(e),u(D.$$.fragment,e),Tt=d(e),F=i(e,"P",{});var Oe=p(F);Qs=l(Oe,"\u0E04\u0E23\u0E32\u0E27\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E08\u0E30\u0E21\u0E32\u0E14\u0E39\u0E01\u0E31\u0E19\u0E27\u0E48\u0E32\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E2D\u0E22\u0E32\u0E01\u0E40\u0E02\u0E35\u0E22\u0E19\u0E42\u0E04\u0E49\u0E14\u0E43\u0E2B\u0E49\u0E44\u0E14\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E41\u0E1A\u0E1A\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19\u0E01\u0E31\u0E1A\u0E43\u0E19 section \u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27\u0E42\u0E14\u0E22\u0E44\u0E21\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 "),Ve=i(Oe,"CODE",{});var Jr=p(Ve);Ks=l(Jr,"Trainer"),Jr.forEach(t),Vs=l(Oe," class \u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E44\u0E23 \u0E40\u0E23\u0E32\u0E2A\u0E31\u0E19\u0E19\u0E34\u0E29\u0E10\u0E32\u0E19\u0E27\u0E48\u0E32\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E43\u0E19 section 2 \u0E21\u0E32\u0E41\u0E25\u0E49\u0E27 \u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E38\u0E1B\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E22\u0E48\u0E2D\u0E04\u0E23\u0E2D\u0E1A\u0E04\u0E25\u0E38\u0E21\u0E16\u0E36\u0E07\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E17\u0E38\u0E01\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E08\u0E33\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33:"),Oe.forEach(t),Ot=d(e),u(se.$$.fragment,e),Wt=d(e),ae=i(e,"H3",{id:!0});var Yr=p(ae);Xs=l(Yr,"\u0E40\u0E15\u0E23\u0E35\u0E22\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E01\u0E48\u0E2D\u0E19\u0E40\u0E17\u0E23\u0E19"),Yr.forEach(t),Mt=d(e),S=i(e,"P",{});var Ye=p(S);Zs=l(Ye,"\u0E01\u0E48\u0E2D\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E40\u0E02\u0E35\u0E22\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E1A\u0E32\u0E07\u0E15\u0E31\u0E27\u0E01\u0E48\u0E2D\u0E19 \u0E42\u0E14\u0E22\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E0A\u0E38\u0E14\u0E41\u0E23\u0E01\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E01\u0E47\u0E04\u0E37\u0E2D dataloaders (\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E42\u0E2B\u0E25\u0E14\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25) \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E43\u0E19\u0E01\u0E32\u0E23\u0E42\u0E2B\u0E25\u0E14\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E17\u0E33\u0E0B\u0E49\u0E33\u0E01\u0E31\u0E1A\u0E2B\u0E25\u0E32\u0E22 \u0E46 batch \u0E02\u0E2D\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E41\u0E15\u0E48\u0E01\u0E48\u0E2D\u0E19\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E08\u0E30\u0E01\u0E33\u0E2B\u0E19\u0E14 dataloaders \u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23 postprocessing \u0E1A\u0E32\u0E07\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E31\u0E1A "),Xe=i(Ye,"CODE",{});var Qr=p(Xe);ea=l(Qr,"tokenized_datasets"),Qr.forEach(t),ta=l(Ye," \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E01\u0E48\u0E2D\u0E19 \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E1A\u0E32\u0E07\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E35\u0E48 "),Ze=i(Ye,"CODE",{});var Kr=p(Ze);sa=l(Kr,"Trainer"),Kr.forEach(t),aa=l(Ye," \u0E44\u0E14\u0E49\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E42\u0E14\u0E22\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34 \u0E0B\u0E36\u0E48\u0E07\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19\u0E44\u0E14\u0E49\u0E41\u0E01\u0E48:"),Ye.forEach(t),Ut=d(e),x=i(e,"UL",{});var Qe=p(x);O=i(Qe,"LI",{});var Ke=p(O);ra=l(Ke,"\u0E25\u0E1A\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E44\u0E21\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 (\u0E40\u0E0A\u0E48\u0E19 \u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C "),et=i(Ke,"CODE",{});var Vr=p(et);la=l(Vr,"sentence1"),Vr.forEach(t),oa=l(Ke," \u0E41\u0E25\u0E30  "),tt=i(Ke,"CODE",{});var Xr=p(tt);na=l(Xr,"sentence2"),Xr.forEach(t),ia=l(Ke,")"),Ke.forEach(t),pa=d(Qe),P=i(Qe,"LI",{});var X=p(P);ca=l(X,"\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E0A\u0E37\u0E48\u0E2D\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C "),st=i(X,"CODE",{});var Zr=p(st);da=l(Zr,"label"),Zr.forEach(t),ma=l(X," \u0E40\u0E1B\u0E47\u0E19 "),at=i(X,"CODE",{});var el=p(at);ua=l(el,"labels"),el.forEach(t),fa=l(X," (\u0E40\u0E1E\u0E23\u0E32\u0E30\u0E27\u0E48\u0E32\u0E42\u0E21\u0E40\u0E14\u0E25\u0E04\u0E32\u0E14\u0E2B\u0E27\u0E31\u0E07\u0E2D\u0E32\u0E01\u0E34\u0E27\u0E40\u0E21\u0E19\u0E15\u0E4C\u0E0A\u0E37\u0E48\u0E2D\u0E27\u0E48\u0E32 "),rt=i(X,"CODE",{});var tl=p(rt);_a=l(tl,"labels"),tl.forEach(t),ha=l(X,")"),X.forEach(t),ba=d(Qe),lt=i(Qe,"LI",{});var sl=p(lt);$a=l(sl,"\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E02\u0E2D\u0E07 datasets \u0E43\u0E2B\u0E49\u0E2A\u0E48\u0E07\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 PyTorach tensors \u0E41\u0E17\u0E19\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19 lists"),sl.forEach(t),Qe.forEach(t),Ft=d(e),re=i(e,"P",{});var Br=p(re);ot=i(Br,"CODE",{});var al=p(ot);va=l(al,"tokenized_datasets"),al.forEach(t),ka=l(Br," \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E21\u0E35\u0E40\u0E21\u0E18\u0E2D\u0E14\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E41\u0E15\u0E48\u0E25\u0E30\u0E02\u0E31\u0E49\u0E19\u0E15\u0E2D\u0E19\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),Br.forEach(t),Lt=d(e),u(le.$$.fragment,e),Gt=d(e),Me=i(e,"P",{});var rl=p(Me);ga=l(rl,"\u0E08\u0E32\u0E01\u0E19\u0E31\u0E49\u0E19\u0E40\u0E23\u0E32\u0E01\u0E47\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32\u0E21\u0E35\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49:"),rl.forEach(t),Nt=d(e),u(oe.$$.fragment,e),Ht=d(e),Ue=i(e,"P",{});var ll=p(Ue);ja=l(ll,"\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E40\u0E23\u0E32\u0E17\u0E33\u0E02\u0E31\u0E49\u0E19\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E41\u0E25\u0E49\u0E27 \u0E40\u0E23\u0E32\u0E01\u0E47\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14 dataloaders \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22\u0E14\u0E32\u0E22 \u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),ll.forEach(t),It=d(e),u(ne.$$.fragment,e),Bt=d(e),Fe=i(e,"P",{});var ol=p(Fe);wa=l(ol,"\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E30\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E23\u0E27\u0E14\u0E40\u0E23\u0E47\u0E27\u0E27\u0E48\u0E32\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E2D\u0E07\u0E40\u0E23\u0E35\u0E22\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 batch \u0E2B\u0E19\u0E36\u0E48\u0E07\u0E21\u0E32\u0E14\u0E39\u0E44\u0E14\u0E49\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),ol.forEach(t),Rt=d(e),u(ie.$$.fragment,e),Jt=d(e),u(pe.$$.fragment,e),Yt=d(e),L=i(e,"P",{});var Fs=p(L);za=l(Fs,"\u0E04\u0E27\u0E23\u0E23\u0E30\u0E27\u0E31\u0E07\u0E44\u0E27\u0E49\u0E27\u0E48\u0E32 shape \u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E2D\u0E32\u0E08\u0E08\u0E30\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E44\u0E1B\u0E08\u0E32\u0E01\u0E19\u0E35\u0E49\u0E40\u0E25\u0E47\u0E01\u0E19\u0E49\u0E2D\u0E22 \u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32\u0E43\u0E2B\u0E49 training dataloader \u0E21\u0E35\u0E01\u0E32\u0E23\u0E17\u0E33 "),nt=i(Fs,"CODE",{});var nl=p(nt);Ea=l(nl,"shuffle=True"),nl.forEach(t),qa=l(Fs," \u0E41\u0E25\u0E30\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E40\u0E15\u0E34\u0E21\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E43\u0E2B\u0E49\u0E22\u0E32\u0E27\u0E40\u0E17\u0E48\u0E32\u0E01\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E15\u0E31\u0E27\u0E17\u0E35\u0E48\u0E22\u0E32\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14\u0E43\u0E19 batch"),Fs.forEach(t),Qt=d(e),Le=i(e,"P",{});var il=p(Le);ya=l(il,"\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E01\u0E47\u0E17\u0E33\u0E01\u0E23\u0E30\u0E1A\u0E27\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E21\u0E27\u0E25\u0E1C\u0E25\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E41\u0E25\u0E49\u0E27 (\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E19\u0E31\u0E01\u0E1B\u0E0F\u0E34\u0E1A\u0E31\u0E15\u0E34 ML \u0E41\u0E25\u0E49\u0E27\u0E19\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E35\u0E48\u0E19\u0E48\u0E32\u0E1E\u0E36\u0E07\u0E1E\u0E2D\u0E43\u0E08\u0E17\u0E35\u0E40\u0E14\u0E35\u0E22\u0E27 \u0E41\u0E15\u0E48\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E43\u0E2B\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2D\u0E30\u0E44\u0E23\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E23\u0E39\u0E1B\u0E18\u0E23\u0E23\u0E21\u0E19\u0E30) \u0E25\u0E2D\u0E07\u0E01\u0E25\u0E31\u0E1A\u0E21\u0E32\u0E14\u0E39\u0E17\u0E35\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E01\u0E31\u0E19 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E21\u0E40\u0E14\u0E25\u0E02\u0E36\u0E49\u0E19\u0E21\u0E32\u0E41\u0E1A\u0E1A\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E1A\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E17\u0E33\u0E43\u0E19 section \u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27:"),il.forEach(t),Kt=d(e),u(ce.$$.fragment,e),Vt=d(e),Ge=i(e,"P",{});var pl=p(Ge);Aa=l(pl,"\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E43\u0E2B\u0E49\u0E41\u0E19\u0E48\u0E43\u0E08\u0E27\u0E48\u0E32\u0E17\u0E38\u0E01\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E08\u0E30\u0E17\u0E33\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49\u0E23\u0E32\u0E1A\u0E23\u0E37\u0E48\u0E19\u0E15\u0E25\u0E2D\u0E14\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E25\u0E2D\u0E07\u0E2A\u0E48\u0E07 batch \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E19\u0E35\u0E49\u0E14\u0E39:"),pl.forEach(t),Xt=d(e),u(de.$$.fragment,e),Zt=d(e),u(me.$$.fragment,e),es=d(e),G=i(e,"P",{});var Ls=p(G);Ca=l(Ls,"\u0E42\u0E21\u0E40\u0E14\u0E25 \u{1F917} Transformers \u0E17\u0E38\u0E01\u0E15\u0E31\u0E27\u0E08\u0E30\u0E43\u0E2B\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E04\u0E48\u0E32 loss \u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E14\u0E49\u0E27\u0E22\u0E16\u0E49\u0E32\u0E2B\u0E32\u0E01\u0E40\u0E23\u0E32\u0E43\u0E2A\u0E48\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 "),it=i(Ls,"CODE",{});var cl=p(it);Pa=l(cl,"labels"),cl.forEach(t),Da=l(Ls," \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E14\u0E49\u0E27\u0E22 \u0E41\u0E25\u0E30\u0E40\u0E23\u0E32\u0E22\u0E31\u0E07\u0E44\u0E14\u0E49\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 logits (\u0E44\u0E14\u0E49\u0E2D\u0E2D\u0E01\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 2 \u0E04\u0E48\u0E32\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E41\u0E15\u0E48\u0E25\u0E30 input \u0E43\u0E19 batch \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32 \u0E14\u0E31\u0E07\u0E19\u0E31\u0E49\u0E19 logits \u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19 tensor \u0E17\u0E35\u0E48\u0E21\u0E35\u0E02\u0E19\u0E32\u0E14 8 x 2)"),Ls.forEach(t),ts=d(e),z=i(e,"P",{});var T=p(z);Sa=l(T,"\u0E40\u0E23\u0E32\u0E40\u0E01\u0E37\u0E2D\u0E1A\u0E08\u0E30\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E40\u0E02\u0E35\u0E22\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E41\u0E25\u0E49\u0E27! \u0E40\u0E23\u0E32\u0E41\u0E04\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E2D\u0E35\u0E01\u0E2A\u0E2D\u0E07\u0E2A\u0E34\u0E48\u0E07\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19\u0E40\u0E2D\u0E07: optimizer (\u0E15\u0E31\u0E27\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E43\u0E2B\u0E49\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E23\u0E32\u0E1A\u0E23\u0E37\u0E48\u0E19\u0E02\u0E36\u0E49\u0E19) \u0E41\u0E25\u0E30 learning rate scheduler (\u0E15\u0E31\u0E27\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32 learning rate \u0E15\u0E32\u0E21\u0E40\u0E27\u0E25\u0E32) \u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E1E\u0E22\u0E32\u0E22\u0E32\u0E21\u0E08\u0E30\u0E40\u0E25\u0E35\u0E22\u0E19\u0E41\u0E1A\u0E1A\u0E2A\u0E34\u0E48\u0E07\u0E17\u0E35\u0E48 "),pt=i(T,"CODE",{});var dl=p(pt);xa=l(dl,"Trainer"),dl.forEach(t),Ta=l(T," \u0E17\u0E33\u0E44\u0E27\u0E49 \u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E19 \u0E42\u0E14\u0E22\u0E15\u0E31\u0E27 optimizer \u0E17\u0E35\u0E48 "),ct=i(T,"CODE",{});var ml=p(ct);Oa=l(ml,"Trainer"),ml.forEach(t),Wa=l(T," \u0E43\u0E0A\u0E49\u0E04\u0E37\u0E2D "),dt=i(T,"CODE",{});var ul=p(dt);Ma=l(ul,"AdamW"),ul.forEach(t),Ua=l(T," \u0E0B\u0E36\u0E48\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E31\u0E27\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19\u0E01\u0E31\u0E1A Adam \u0E41\u0E15\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E1E\u0E25\u0E34\u0E01\u0E41\u0E1E\u0E25\u0E07\u0E43\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E02\u0E2D\u0E07 weight decay regularization (\u0E14\u0E39\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21\u0E17\u0E35\u0E48 "),ue=i(T,"A",{href:!0,rel:!0});var fl=p(ue);Fa=l(fl,"\u201CDecoupled Weight Decay Regularization\u201D"),fl.forEach(t),La=l(T," \u0E42\u0E14\u0E22 Ilya Loshchilov and Frank Hutter):"),T.forEach(t),ss=d(e),u(fe.$$.fragment,e),as=d(e),N=i(e,"P",{});var Gs=p(N);Ga=l(Gs,"\u0E40\u0E23\u0E32\u0E01\u0E47\u0E21\u0E32\u0E16\u0E36\u0E07\u0E02\u0E31\u0E49\u0E19\u0E15\u0E2D\u0E19\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E15\u0E31\u0E27 learning rate scheduler \u0E0B\u0E36\u0E48\u0E07\u0E21\u0E35\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E43\u0E2B\u0E49 learningrate \u0E21\u0E35\u0E01\u0E32\u0E23 decay \u0E41\u0E1A\u0E1A\u0E40\u0E0A\u0E34\u0E07\u0E40\u0E2A\u0E49\u0E19 \u0E42\u0E14\u0E22\u0E21\u0E35\u0E01\u0E32\u0E23\u0E25\u0E14\u0E04\u0E48\u0E32\u0E08\u0E32\u0E01\u0E04\u0E48\u0E32 learning rate \u0E17\u0E35\u0E48\u0E2A\u0E39\u0E07\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14 (5e-5) \u0E44\u0E1B\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E22 \u0E46 \u0E08\u0E19\u0E21\u0E35\u0E04\u0E48\u0E32\u0E40\u0E1B\u0E47\u0E19 0 \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E30\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32\u0E43\u0E2B\u0E49\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E23\u0E39\u0E49\u0E27\u0E48\u0E32\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E04\u0E23\u0E31\u0E49\u0E07\u0E19\u0E35\u0E49\u0E21\u0E35\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E31\u0E49\u0E07\u0E2A\u0E34\u0E49\u0E19\u0E01\u0E35\u0E48 step \u0E0B\u0E36\u0E48\u0E07\u0E04\u0E33\u0E19\u0E27\u0E13\u0E44\u0E14\u0E49\u0E08\u0E32\u0E01\u0E08\u0E33\u0E19\u0E27\u0E19 epochs \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E40\u0E17\u0E23\u0E19 \u0E04\u0E39\u0E13\u0E14\u0E49\u0E27\u0E22\u0E08\u0E33\u0E19\u0E27\u0E19 training batches (\u0E0B\u0E36\u0E48\u0E07\u0E01\u0E47\u0E04\u0E37\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27\u0E02\u0E2D\u0E07 training dataloader \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32) \u0E42\u0E14\u0E22\u0E15\u0E31\u0E27 "),mt=i(Gs,"CODE",{});var _l=p(mt);Na=l(_l,"Trainer"),_l.forEach(t),Ha=l(Gs," \u0E21\u0E35\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E17\u0E35\u0E48 3 epochs \u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E22\u0E36\u0E14\u0E15\u0E32\u0E21\u0E04\u0E48\u0E32\u0E19\u0E35\u0E49:"),Gs.forEach(t),rs=d(e),u(_e.$$.fragment,e),ls=d(e),u(he.$$.fragment,e),os=d(e),be=i(e,"H3",{id:!0});var hl=p(be);Ia=l(hl,"\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19"),hl.forEach(t),ns=d(e),H=i(e,"P",{});var Ns=p(H);Ba=l(Ns,"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E23\u0E04\u0E33\u0E19\u0E36\u0E07\u0E16\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22: \u0E40\u0E23\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 GPU \u0E16\u0E49\u0E32\u0E2B\u0E32\u0E01\u0E40\u0E23\u0E32\u0E21\u0E35\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E44\u0E27\u0E49 (\u0E16\u0E49\u0E32\u0E40\u0E23\u0E32\u0E40\u0E17\u0E23\u0E19\u0E1A\u0E19 CPU \u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E2B\u0E25\u0E32\u0E22\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07\u0E41\u0E17\u0E19\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E27\u0E25\u0E32\u0E44\u0E21\u0E48\u0E01\u0E35\u0E48\u0E19\u0E32\u0E17\u0E35) \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E43\u0E2B\u0E49\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 GPU \u0E17\u0E38\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07\u0E17\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E44\u0E1B\u0E44\u0E14\u0E49 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14 "),ut=i(Ns,"CODE",{});var bl=p(ut);Ra=l(bl,"device"),bl.forEach(t),Ja=l(Ns," \u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E08\u0E30\u0E43\u0E2A\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E41\u0E25\u0E30 batches \u0E02\u0E2D\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E25\u0E07\u0E44\u0E1B\u0E44\u0E14\u0E49\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),Ns.forEach(t),is=d(e),u($e.$$.fragment,e),ps=d(e),u(ve.$$.fragment,e),cs=d(e),I=i(e,"P",{});var Hs=p(I);Ya=l(Hs,"\u0E15\u0E2D\u0E19\u0E19\u0E35\u0E49\u0E40\u0E23\u0E32\u0E01\u0E47\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E08\u0E30\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E41\u0E25\u0E49\u0E27! \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E1E\u0E2D\u0E04\u0E32\u0E14\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E08\u0E30\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E19\u0E32\u0E19\u0E40\u0E17\u0E48\u0E32\u0E44\u0E23 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E41\u0E16\u0E1A\u0E41\u0E2A\u0E14\u0E07\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32\u0E15\u0E32\u0E21\u0E08\u0E33\u0E19\u0E27\u0E19 step \u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19 \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E44\u0E25\u0E1A\u0E23\u0E32\u0E23\u0E35\u0E48 "),ft=i(Hs,"CODE",{});var $l=p(ft);Qa=l($l,"tqdm"),$l.forEach(t),Ka=l(Hs," \u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),Hs.forEach(t),ds=d(e),u(ke.$$.fragment,e),ms=d(e),Ne=i(e,"P",{});var vl=p(Ne);Va=l(vl,"\u0E04\u0E38\u0E13\u0E08\u0E30\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E2B\u0E47\u0E19\u0E44\u0E14\u0E49\u0E27\u0E48\u0E32\u0E41\u0E01\u0E48\u0E19\u0E02\u0E2D\u0E07\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E19\u0E31\u0E49\u0E19\u0E01\u0E47\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E1A\u0E15\u0E31\u0E27\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E41\u0E2A\u0E14\u0E07\u0E43\u0E2B\u0E49\u0E14\u0E39\u0E43\u0E19\u0E1A\u0E17\u0E19\u0E33 \u0E40\u0E23\u0E32\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E43\u0E2B\u0E49\u0E21\u0E35\u0E01\u0E32\u0E23\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E04\u0E48\u0E32\u0E43\u0E14 \u0E46 \u0E2D\u0E2D\u0E01\u0E21\u0E32 \u0E14\u0E31\u0E07\u0E19\u0E31\u0E49\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E15\u0E31\u0E27\u0E19\u0E35\u0E49\u0E08\u0E36\u0E07\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E1A\u0E2D\u0E01\u0E2D\u0E30\u0E44\u0E23\u0E40\u0E23\u0E32\u0E40\u0E25\u0E22\u0E27\u0E48\u0E32\u0E42\u0E21\u0E40\u0E14\u0E25\u0E21\u0E35\u0E1B\u0E23\u0E30\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E20\u0E32\u0E1E\u0E40\u0E1B\u0E47\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E44\u0E23 \u0E40\u0E23\u0E32\u0E08\u0E36\u0E07\u0E08\u0E33\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E02\u0E35\u0E22\u0E19\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E1C\u0E25\u0E42\u0E21\u0E40\u0E14\u0E25 (evaluation loop) \u0E14\u0E49\u0E27\u0E22"),vl.forEach(t),us=d(e),W=i(e,"H3",{class:!0});var Is=p(W);B=i(Is,"A",{id:!0,class:!0,href:!0});var kl=p(B);_t=i(kl,"SPAN",{});var gl=p(_t);u(ge.$$.fragment,gl),gl.forEach(t),kl.forEach(t),Xa=d(Is),ht=i(Is,"SPAN",{});var jl=p(ht);Za=l(jl,"\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E1C\u0E25\u0E42\u0E21\u0E40\u0E14\u0E25 (evaluation loop)"),jl.forEach(t),Is.forEach(t),fs=d(e),y=i(e,"P",{});var Z=p(y);er=l(Z,"\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19\u0E01\u0E31\u0E1A\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E17\u0E33\u0E44\u0E27\u0E49\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49 \u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 metric \u0E08\u0E32\u0E01\u0E44\u0E25\u0E1A\u0E23\u0E32\u0E23\u0E35\u0E48 \u{1F917} Evaluate \u0E44\u0E14\u0E49\u0E40\u0E25\u0E22 \u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E40\u0E2B\u0E47\u0E19\u0E40\u0E21\u0E18\u0E2D\u0E14 "),bt=i(Z,"CODE",{});var wl=p(bt);tr=l(wl,"metric.compute()"),wl.forEach(t),sr=l(Z," \u0E21\u0E32\u0E41\u0E25\u0E49\u0E27 \u0E41\u0E15\u0E48 metrics \u0E22\u0E31\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E23\u0E27\u0E1A\u0E23\u0E27\u0E21\u0E1C\u0E25\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19 batches \u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22 \u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E40\u0E21\u0E18\u0E2D\u0E14 "),$t=i(Z,"CODE",{});var zl=p($t);ar=l(zl,"add_batch()"),zl.forEach(t),rr=l(Z," \u0E42\u0E14\u0E22\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E40\u0E23\u0E32\u0E23\u0E27\u0E1A\u0E23\u0E27\u0E21\u0E1C\u0E25\u0E21\u0E32\u0E08\u0E32\u0E01\u0E17\u0E38\u0E01 batches \u0E41\u0E25\u0E49\u0E27 \u0E40\u0E23\u0E32\u0E01\u0E47\u0E08\u0E30\u0E04\u0E33\u0E19\u0E27\u0E13\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E40\u0E21\u0E18\u0E2D\u0E14 "),vt=i(Z,"CODE",{});var El=p(vt);lr=l(El,"metric.compute()"),El.forEach(t),or=l(Z," \u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E17\u0E38\u0E01\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E01\u0E25\u0E48\u0E32\u0E27\u0E21\u0E32\u0E19\u0E35\u0E49\u0E43\u0E19\u0E25\u0E39\u0E1B\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E1C\u0E25\u0E42\u0E21\u0E40\u0E14\u0E25:"),Z.forEach(t),_s=d(e),u(je.$$.fragment,e),hs=d(e),u(we.$$.fragment,e),bs=d(e),He=i(e,"P",{});var ql=p(He);nr=l(ql,"\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E2D\u0E32\u0E08\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E44\u0E1B\u0E40\u0E25\u0E47\u0E01\u0E19\u0E49\u0E2D\u0E22\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E21\u0E35\u0E01\u0E32\u0E23\u0E2A\u0E38\u0E48\u0E21\u0E04\u0E48\u0E32 weight \u0E15\u0E2D\u0E19\u0E2A\u0E23\u0E49\u0E32\u0E07 model head \u0E41\u0E25\u0E30\u0E21\u0E35\u0E01\u0E32\u0E23\u0E2A\u0E25\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E41\u0E1A\u0E1A\u0E2A\u0E38\u0E48\u0E21 \u0E41\u0E15\u0E48\u0E1C\u0E25\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E01\u0E47\u0E04\u0E27\u0E23\u0E08\u0E30\u0E43\u0E01\u0E25\u0E49\u0E40\u0E04\u0E35\u0E22\u0E07\u0E01\u0E31\u0E19"),ql.forEach(t),$s=d(e),u(R.$$.fragment,e),vs=d(e),M=i(e,"H3",{class:!0});var Bs=p(M);J=i(Bs,"A",{id:!0,class:!0,href:!0});var yl=p(J);kt=i(yl,"SPAN",{});var Al=p(kt);u(ze.$$.fragment,Al),Al.forEach(t),yl.forEach(t),ir=d(Bs),gt=i(Bs,"SPAN",{});var Cl=p(gt);pr=l(Cl,"\u0E40\u0E23\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E40\u0E23\u0E47\u0E27\u0E43\u0E2B\u0E49\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22 \u{1F917} Accelerate"),Cl.forEach(t),Bs.forEach(t),ks=d(e),u(Ee.$$.fragment,e),gs=d(e),Y=i(e,"P",{});var Rs=p(Y);cr=l(Rs,"\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E02\u0E36\u0E49\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49\u0E17\u0E33\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49\u0E14\u0E35\u0E1A\u0E19 CPU \u0E2B\u0E23\u0E37\u0E2D GPU \u0E15\u0E31\u0E27\u0E40\u0E14\u0E35\u0E22\u0E27 \u0E41\u0E15\u0E48\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E44\u0E25\u0E1A\u0E23\u0E32\u0E23\u0E35\u0E48 "),qe=i(Rs,"A",{href:!0,rel:!0});var Pl=p(qe);dr=l(Pl,"\u{1F917} Accelerate"),Pl.forEach(t),mr=l(Rs," \u0E41\u0E25\u0E30\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E31\u0E1A\u0E04\u0E48\u0E32\u0E2D\u0E35\u0E01\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E40\u0E25\u0E47\u0E01\u0E19\u0E49\u0E2D\u0E22 \u0E08\u0E30\u0E0A\u0E48\u0E27\u0E22\u0E43\u0E2B\u0E49\u0E40\u0E23\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E17\u0E23\u0E19\u0E1A\u0E19 distributed setup \u0E17\u0E35\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49 GPUs \u0E2B\u0E23\u0E37\u0E2D TPUs \u0E2B\u0E25\u0E32\u0E22\u0E15\u0E31\u0E27\u0E44\u0E14\u0E49 \u0E42\u0E14\u0E22\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07 training \u0E41\u0E25\u0E30 validation dataloaders \u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E41\u0E1A\u0E1A manual \u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E21\u0E35\u0E25\u0E31\u0E01\u0E29\u0E13\u0E30\u0E14\u0E31\u0E07\u0E19\u0E35\u0E49:"),Rs.forEach(t),js=d(e),u(ye.$$.fragment,e),ws=d(e),Ie=i(e,"P",{});var Dl=p(Ie);ur=l(Dl,"\u0E41\u0E25\u0E30\u0E15\u0E48\u0E2D\u0E44\u0E1B\u0E19\u0E35\u0E49\u0E04\u0E37\u0E2D\u0E2A\u0E34\u0E48\u0E07\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E1B\u0E23\u0E31\u0E1A\u0E41\u0E01\u0E49:"),Dl.forEach(t),zs=d(e),u(Ae.$$.fragment,e),Es=d(e),A=i(e,"P",{});var ee=p(A);fr=l(ee,"\u0E42\u0E04\u0E49\u0E14\u0E1A\u0E23\u0E23\u0E17\u0E31\u0E14\u0E41\u0E23\u0E01\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E02\u0E49\u0E32\u0E21\u0E32\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E02\u0E2D\u0E07\u0E01\u0E32\u0E23 import \u0E42\u0E14\u0E22\u0E1A\u0E23\u0E23\u0E17\u0E31\u0E14\u0E17\u0E35\u0E48\u0E2A\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C "),jt=i(ee,"CODE",{});var Sl=p(jt);_r=l(Sl,"Accelerator"),Sl.forEach(t),hr=l(ee," \u0E17\u0E35\u0E48\u0E08\u0E30\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A environment \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07 distributed setup \u0E17\u0E35\u0E48\u0E40\u0E2B\u0E21\u0E32\u0E30\u0E2A\u0E21\u0E02\u0E36\u0E49\u0E19\u0E21\u0E32\u0E43\u0E2B\u0E49 \u0E42\u0E14\u0E22 \u{1F917} Accelerate \u0E08\u0E30\u0E0A\u0E48\u0E27\u0E22\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 device \u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13 \u0E04\u0E38\u0E13\u0E08\u0E36\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E2D\u0E32\u0E42\u0E04\u0E49\u0E14\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E43\u0E2A\u0E48\u0E42\u0E21\u0E40\u0E14\u0E25\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19 device \u0E2D\u0E2D\u0E01\u0E44\u0E14\u0E49 (\u0E2B\u0E23\u0E37\u0E2D\u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E04\u0E07\u0E44\u0E27\u0E49 \u0E01\u0E47\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E08\u0E32\u0E01 "),wt=i(ee,"CODE",{});var xl=p(wt);br=l(xl,"device"),xl.forEach(t),$r=l(ee," \u0E40\u0E1B\u0E47\u0E19 "),zt=i(ee,"CODE",{});var Tl=p(zt);vr=l(Tl,"accelerator.device"),Tl.forEach(t),kr=l(ee,")"),ee.forEach(t),qs=d(e),g=i(e,"P",{});var E=p(g);gr=l(E,"\u0E08\u0E32\u0E01\u0E19\u0E31\u0E31\u0E49\u0E19\u0E01\u0E47\u0E21\u0E35\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E2B\u0E25\u0E31\u0E01 \u0E46 \u0E43\u0E19\u0E1A\u0E23\u0E23\u0E17\u0E31\u0E14\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E07 dataloaders, \u0E42\u0E21\u0E40\u0E14\u0E25 \u0E41\u0E25\u0E30 optimizer \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E17\u0E35\u0E48 "),Et=i(E,"CODE",{});var Ol=p(Et);jr=l(Ol,"accelerator.prepare()"),Ol.forEach(t),wr=l(E," \u0E0B\u0E36\u0E48\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23 wrap \u0E2D\u0E2D\u0E1E\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19 container \u0E17\u0E35\u0E48\u0E40\u0E2B\u0E21\u0E32\u0E30\u0E2A\u0E21 \u0E41\u0E25\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E41\u0E19\u0E48\u0E43\u0E08\u0E27\u0E48\u0E32 distributed training \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E17\u0E33\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49\u0E15\u0E32\u0E21\u0E17\u0E35\u0E48\u0E15\u0E31\u0E49\u0E07\u0E43\u0E08\u0E44\u0E27\u0E49 \u0E01\u0E32\u0E23\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E04\u0E37\u0E2D\u0E01\u0E32\u0E23\u0E40\u0E2D\u0E32\u0E42\u0E04\u0E49\u0E14\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E43\u0E2A\u0E48 batch \u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19 "),qt=i(E,"CODE",{});var Wl=p(qt);zr=l(Wl,"device"),Wl.forEach(t),Er=l(E," \u0E2D\u0E2D\u0E01 (\u0E41\u0E25\u0E30\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07 \u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E04\u0E07\u0E44\u0E27\u0E49 \u0E01\u0E47\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E08\u0E32\u0E01 "),yt=i(E,"CODE",{});var Ml=p(yt);qr=l(Ml,"device"),Ml.forEach(t),yr=l(E," \u0E40\u0E1B\u0E47\u0E19 "),At=i(E,"CODE",{});var Ul=p(At);Ar=l(Ul,"accelerator.device"),Ul.forEach(t),Cr=l(E," \u0E41\u0E25\u0E30\u0E41\u0E01\u0E49\u0E08\u0E32\u0E01 "),Ct=i(E,"CODE",{});var Fl=p(Ct);Pr=l(Fl,"loss.backward()"),Fl.forEach(t),Dr=l(E," \u0E40\u0E1B\u0E47\u0E19 "),Pt=i(E,"CODE",{});var Ll=p(Pt);Sr=l(Ll,"accelerator.backward(loss)"),Ll.forEach(t),xr=l(E,")"),E.forEach(t),ys=d(e),u(Q.$$.fragment,e),As=d(e),Be=i(e,"P",{});var Gl=p(Be);Tr=l(Gl,"\u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E07\u0E41\u0E25\u0E30\u0E27\u0E32\u0E07\u0E42\u0E04\u0E49\u0E14\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E17\u0E14\u0E25\u0E2D\u0E07\u0E14\u0E39 \u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E25\u0E48\u0E32\u0E07\u0E19\u0E35\u0E49\u0E04\u0E37\u0E2D\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E02\u0E2D\u0E07\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49 \u{1F917} Accelerate \u0E41\u0E1A\u0E1A\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C:"),Gl.forEach(t),Cs=d(e),u(Ce.$$.fragment,e),Ps=d(e),K=i(e,"P",{});var Js=p(K);Or=l(Js,"\u0E01\u0E32\u0E23\u0E43\u0E2A\u0E48\u0E42\u0E04\u0E49\u0E14\u0E02\u0E49\u0E32\u0E07\u0E1A\u0E19\u0E19\u0E35\u0E49\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1B\u0E43\u0E19\u0E2A\u0E04\u0E23\u0E34\u0E1B\u0E15\u0E4C "),Dt=i(Js,"CODE",{});var Nl=p(Dt);Wr=l(Nl,"train.py"),Nl.forEach(t),Mr=l(Js," \u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E2A\u0E04\u0E23\u0E34\u0E1B\u0E15\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E23\u0E31\u0E19\u0E44\u0E14\u0E49\u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E08\u0E30\u0E21\u0E35 distributed setup \u0E40\u0E1B\u0E47\u0E19\u0E41\u0E1A\u0E1A\u0E43\u0E14\u0E01\u0E47\u0E15\u0E32\u0E21 \u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E30\u0E25\u0E2D\u0E07\u0E1A\u0E19 distributed setup \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13 \u0E43\u0E2B\u0E49\u0E23\u0E31\u0E19\u0E04\u0E33\u0E2A\u0E31\u0E48\u0E07\u0E19\u0E35\u0E49:"),Js.forEach(t),Ds=d(e),u(Pe.$$.fragment,e),Ss=d(e),Re=i(e,"P",{});var Hl=p(Re);Ur=l(Hl,"\u0E0B\u0E36\u0E48\u0E07\u0E08\u0E30\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13\u0E15\u0E2D\u0E1A\u0E04\u0E33\u0E16\u0E32\u0E21 2-3 \u0E02\u0E49\u0E2D \u0E41\u0E25\u0E30\u0E43\u0E2A\u0E48\u0E04\u0E33\u0E15\u0E2D\u0E1A\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E25\u0E07\u0E44\u0E1B\u0E43\u0E19\u0E44\u0E1F\u0E25\u0E4C configuration \u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E43\u0E19\u0E04\u0E33\u0E2A\u0E31\u0E48\u0E07\u0E19\u0E35\u0E49:"),Hl.forEach(t),xs=d(e),u(De.$$.fragment,e),Ts=d(e),Je=i(e,"P",{});var Il=p(Je);Fr=l(Il,"\u0E0B\u0E36\u0E48\u0E07\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E41\u0E1A\u0E1A distributed"),Il.forEach(t),Os=d(e),V=i(e,"P",{});var Ys=p(V);Lr=l(Ys,"\u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E25\u0E2D\u0E07\u0E42\u0E04\u0E49\u0E14\u0E19\u0E35\u0E49\u0E1A\u0E19 Notebook (\u0E40\u0E0A\u0E48\u0E19 \u0E17\u0E14\u0E25\u0E2D\u0E07\u0E01\u0E31\u0E1A TPUs \u0E1A\u0E19 Colab) \u0E41\u0E04\u0E48\u0E27\u0E32\u0E07\u0E42\u0E04\u0E49\u0E14\u0E19\u0E35\u0E49\u0E25\u0E07\u0E44\u0E1B\u0E43\u0E19 "),St=i(Ys,"CODE",{});var Bl=p(St);Gr=l(Bl,"training_function()"),Bl.forEach(t),Nr=l(Ys," \u0E41\u0E25\u0E30\u0E23\u0E31\u0E19 cell \u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22\u0E42\u0E04\u0E49\u0E14\u0E19\u0E35\u0E49:"),Ys.forEach(t),Ws=d(e),u(Se.$$.fragment,e),Ms=d(e),xe=i(e,"P",{});var Rr=p(xe);Hr=l(Rr,"\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E28\u0E36\u0E01\u0E29\u0E32\u0E08\u0E32\u0E01\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E2D\u0E37\u0E48\u0E19 \u0E46 \u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21 \u0E44\u0E14\u0E49\u0E43\u0E19 "),Te=i(Rr,"A",{href:!0,rel:!0});var Rl=p(Te);Ir=l(Rl,"\u{1F917} Accelerate repo"),Rl.forEach(t),Rr.forEach(t),this.h()},h(){k($,"name","hf:doc:metadata"),k($,"content",JSON.stringify(lo)),k(j,"id",""),k(ae,"id",""),k(ue,"href","https://arxiv.org/abs/1711.05101"),k(ue,"rel","nofollow"),k(be,"id",""),k(B,"id","evaluation-loop"),k(B,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),k(B,"href","#evaluation-loop"),k(W,"class","relative group"),k(J,"id","accelerate"),k(J,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),k(J,"href","#accelerate"),k(M,"class","relative group"),k(qe,"href","https://github.com/huggingface/accelerate"),k(qe,"rel","nofollow"),k(Te,"href","https://github.com/huggingface/accelerate/tree/main/examples"),k(Te,"rel","nofollow")},m(e,a){s(document.head,$),o(e,w,a),o(e,j,a),s(j,te),o(e,U,a),f(q,e,a),o(e,C,a),f(D,e,a),o(e,Tt,a),o(e,F,a),s(F,Qs),s(F,Ve),s(Ve,Ks),s(F,Vs),o(e,Ot,a),f(se,e,a),o(e,Wt,a),o(e,ae,a),s(ae,Xs),o(e,Mt,a),o(e,S,a),s(S,Zs),s(S,Xe),s(Xe,ea),s(S,ta),s(S,Ze),s(Ze,sa),s(S,aa),o(e,Ut,a),o(e,x,a),s(x,O),s(O,ra),s(O,et),s(et,la),s(O,oa),s(O,tt),s(tt,na),s(O,ia),s(x,pa),s(x,P),s(P,ca),s(P,st),s(st,da),s(P,ma),s(P,at),s(at,ua),s(P,fa),s(P,rt),s(rt,_a),s(P,ha),s(x,ba),s(x,lt),s(lt,$a),o(e,Ft,a),o(e,re,a),s(re,ot),s(ot,va),s(re,ka),o(e,Lt,a),f(le,e,a),o(e,Gt,a),o(e,Me,a),s(Me,ga),o(e,Nt,a),f(oe,e,a),o(e,Ht,a),o(e,Ue,a),s(Ue,ja),o(e,It,a),f(ne,e,a),o(e,Bt,a),o(e,Fe,a),s(Fe,wa),o(e,Rt,a),f(ie,e,a),o(e,Jt,a),f(pe,e,a),o(e,Yt,a),o(e,L,a),s(L,za),s(L,nt),s(nt,Ea),s(L,qa),o(e,Qt,a),o(e,Le,a),s(Le,ya),o(e,Kt,a),f(ce,e,a),o(e,Vt,a),o(e,Ge,a),s(Ge,Aa),o(e,Xt,a),f(de,e,a),o(e,Zt,a),f(me,e,a),o(e,es,a),o(e,G,a),s(G,Ca),s(G,it),s(it,Pa),s(G,Da),o(e,ts,a),o(e,z,a),s(z,Sa),s(z,pt),s(pt,xa),s(z,Ta),s(z,ct),s(ct,Oa),s(z,Wa),s(z,dt),s(dt,Ma),s(z,Ua),s(z,ue),s(ue,Fa),s(z,La),o(e,ss,a),f(fe,e,a),o(e,as,a),o(e,N,a),s(N,Ga),s(N,mt),s(mt,Na),s(N,Ha),o(e,rs,a),f(_e,e,a),o(e,ls,a),f(he,e,a),o(e,os,a),o(e,be,a),s(be,Ia),o(e,ns,a),o(e,H,a),s(H,Ba),s(H,ut),s(ut,Ra),s(H,Ja),o(e,is,a),f($e,e,a),o(e,ps,a),f(ve,e,a),o(e,cs,a),o(e,I,a),s(I,Ya),s(I,ft),s(ft,Qa),s(I,Ka),o(e,ds,a),f(ke,e,a),o(e,ms,a),o(e,Ne,a),s(Ne,Va),o(e,us,a),o(e,W,a),s(W,B),s(B,_t),f(ge,_t,null),s(W,Xa),s(W,ht),s(ht,Za),o(e,fs,a),o(e,y,a),s(y,er),s(y,bt),s(bt,tr),s(y,sr),s(y,$t),s($t,ar),s(y,rr),s(y,vt),s(vt,lr),s(y,or),o(e,_s,a),f(je,e,a),o(e,hs,a),f(we,e,a),o(e,bs,a),o(e,He,a),s(He,nr),o(e,$s,a),f(R,e,a),o(e,vs,a),o(e,M,a),s(M,J),s(J,kt),f(ze,kt,null),s(M,ir),s(M,gt),s(gt,pr),o(e,ks,a),f(Ee,e,a),o(e,gs,a),o(e,Y,a),s(Y,cr),s(Y,qe),s(qe,dr),s(Y,mr),o(e,js,a),f(ye,e,a),o(e,ws,a),o(e,Ie,a),s(Ie,ur),o(e,zs,a),f(Ae,e,a),o(e,Es,a),o(e,A,a),s(A,fr),s(A,jt),s(jt,_r),s(A,hr),s(A,wt),s(wt,br),s(A,$r),s(A,zt),s(zt,vr),s(A,kr),o(e,qs,a),o(e,g,a),s(g,gr),s(g,Et),s(Et,jr),s(g,wr),s(g,qt),s(qt,zr),s(g,Er),s(g,yt),s(yt,qr),s(g,yr),s(g,At),s(At,Ar),s(g,Cr),s(g,Ct),s(Ct,Pr),s(g,Dr),s(g,Pt),s(Pt,Sr),s(g,xr),o(e,ys,a),f(Q,e,a),o(e,As,a),o(e,Be,a),s(Be,Tr),o(e,Cs,a),f(Ce,e,a),o(e,Ps,a),o(e,K,a),s(K,Or),s(K,Dt),s(Dt,Wr),s(K,Mr),o(e,Ds,a),f(Pe,e,a),o(e,Ss,a),o(e,Re,a),s(Re,Ur),o(e,xs,a),f(De,e,a),o(e,Ts,a),o(e,Je,a),s(Je,Fr),o(e,Os,a),o(e,V,a),s(V,Lr),s(V,St),s(St,Gr),s(V,Nr),o(e,Ws,a),f(Se,e,a),o(e,Ms,a),o(e,xe,a),s(xe,Hr),s(xe,Te),s(Te,Ir),Us=!0},p(e,[a]){const xt={};a&2&&(xt.$$scope={dirty:a,ctx:e}),R.$set(xt);const Oe={};a&2&&(Oe.$$scope={dirty:a,ctx:e}),Q.$set(Oe)},i(e){Us||(_(q.$$.fragment,e),_(D.$$.fragment,e),_(se.$$.fragment,e),_(le.$$.fragment,e),_(oe.$$.fragment,e),_(ne.$$.fragment,e),_(ie.$$.fragment,e),_(pe.$$.fragment,e),_(ce.$$.fragment,e),_(de.$$.fragment,e),_(me.$$.fragment,e),_(fe.$$.fragment,e),_(_e.$$.fragment,e),_(he.$$.fragment,e),_($e.$$.fragment,e),_(ve.$$.fragment,e),_(ke.$$.fragment,e),_(ge.$$.fragment,e),_(je.$$.fragment,e),_(we.$$.fragment,e),_(R.$$.fragment,e),_(ze.$$.fragment,e),_(Ee.$$.fragment,e),_(ye.$$.fragment,e),_(Ae.$$.fragment,e),_(Q.$$.fragment,e),_(Ce.$$.fragment,e),_(Pe.$$.fragment,e),_(De.$$.fragment,e),_(Se.$$.fragment,e),Us=!0)},o(e){h(q.$$.fragment,e),h(D.$$.fragment,e),h(se.$$.fragment,e),h(le.$$.fragment,e),h(oe.$$.fragment,e),h(ne.$$.fragment,e),h(ie.$$.fragment,e),h(pe.$$.fragment,e),h(ce.$$.fragment,e),h(de.$$.fragment,e),h(me.$$.fragment,e),h(fe.$$.fragment,e),h(_e.$$.fragment,e),h(he.$$.fragment,e),h($e.$$.fragment,e),h(ve.$$.fragment,e),h(ke.$$.fragment,e),h(ge.$$.fragment,e),h(je.$$.fragment,e),h(we.$$.fragment,e),h(R.$$.fragment,e),h(ze.$$.fragment,e),h(Ee.$$.fragment,e),h(ye.$$.fragment,e),h(Ae.$$.fragment,e),h(Q.$$.fragment,e),h(Ce.$$.fragment,e),h(Pe.$$.fragment,e),h(De.$$.fragment,e),h(Se.$$.fragment,e),Us=!1},d(e){t($),e&&t(w),e&&t(j),e&&t(U),b(q,e),e&&t(C),b(D,e),e&&t(Tt),e&&t(F),e&&t(Ot),b(se,e),e&&t(Wt),e&&t(ae),e&&t(Mt),e&&t(S),e&&t(Ut),e&&t(x),e&&t(Ft),e&&t(re),e&&t(Lt),b(le,e),e&&t(Gt),e&&t(Me),e&&t(Nt),b(oe,e),e&&t(Ht),e&&t(Ue),e&&t(It),b(ne,e),e&&t(Bt),e&&t(Fe),e&&t(Rt),b(ie,e),e&&t(Jt),b(pe,e),e&&t(Yt),e&&t(L),e&&t(Qt),e&&t(Le),e&&t(Kt),b(ce,e),e&&t(Vt),e&&t(Ge),e&&t(Xt),b(de,e),e&&t(Zt),b(me,e),e&&t(es),e&&t(G),e&&t(ts),e&&t(z),e&&t(ss),b(fe,e),e&&t(as),e&&t(N),e&&t(rs),b(_e,e),e&&t(ls),b(he,e),e&&t(os),e&&t(be),e&&t(ns),e&&t(H),e&&t(is),b($e,e),e&&t(ps),b(ve,e),e&&t(cs),e&&t(I),e&&t(ds),b(ke,e),e&&t(ms),e&&t(Ne),e&&t(us),e&&t(W),b(ge),e&&t(fs),e&&t(y),e&&t(_s),b(je,e),e&&t(hs),b(we,e),e&&t(bs),e&&t(He),e&&t($s),b(R,e),e&&t(vs),e&&t(M),b(ze),e&&t(ks),b(Ee,e),e&&t(gs),e&&t(Y),e&&t(js),b(ye,e),e&&t(ws),e&&t(Ie),e&&t(zs),b(Ae,e),e&&t(Es),e&&t(A),e&&t(qs),e&&t(g),e&&t(ys),b(Q,e),e&&t(As),e&&t(Be),e&&t(Cs),b(Ce,e),e&&t(Ps),e&&t(K),e&&t(Ds),b(Pe,e),e&&t(Ss),e&&t(Re),e&&t(xs),b(De,e),e&&t(Ts),e&&t(Je),e&&t(Os),e&&t(V),e&&t(Ws),b(Se,e),e&&t(Ms),e&&t(xe)}}}const lo={local:"",sections:[{local:"",title:"\u0E40\u0E15\u0E23\u0E35\u0E22\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E01\u0E48\u0E2D\u0E19\u0E40\u0E17\u0E23\u0E19"},{local:"",title:"\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19"},{local:"evaluation-loop",title:"\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E1C\u0E25\u0E42\u0E21\u0E40\u0E14\u0E25 (evaluation loop)"},{local:"accelerate",title:"\u0E40\u0E23\u0E48\u0E07\u0E04\u0E27\u0E32\u0E21\u0E40\u0E23\u0E47\u0E27\u0E43\u0E2B\u0E49\u0E25\u0E39\u0E1B\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E14\u0E49\u0E27\u0E22 \u{1F917} Accelerate"}],title:"\u0E01\u0E32\u0E23\u0E40\u0E17\u0E23\u0E19\u0E42\u0E21\u0E40\u0E14\u0E25\u0E09\u0E1A\u0E31\u0E1A\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C"};function oo(We){return eo(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class fo extends Kl{constructor($){super();Vl(this,$,oo,ro,Xl,{})}}export{fo as default,lo as metadata};
