transformers/docs/source/hi/accelerate.md
Karthik Vallamsetla 33868a057c
[i18n-HI] Translated accelerate page to Hindi (#34443)
* [i18n-HI] Translated accelerate page to Hindi

* Update docs/source/hi/accelerate.md

Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

* Update docs/source/hi/accelerate.md

Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

* Update docs/source/hi/accelerate.md

Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

* Update docs/source/hi/accelerate.md

Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

---------

Co-authored-by: Kay <kay@Kays-MacBook-Pro.local>
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
2024-11-01 08:26:45 -07:00

7.6 KiB

рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд╕рд╛рде ЁЯдЧ Accelerate

рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдореЙрдбрд▓ рдмрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рд╕реАрдорд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдмрдбрд╝реЗ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреА рдЧрддрд┐ рдХреЛ рдХрдИ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдгрдиреАрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрднрд░реА рд╣реИред рд╣рдЧрд┐рдВрдЧ рдлреЗрд╕ рдореЗрдВ, рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрдЯрдЕрдк рдкрд░ ЁЯдЧ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░реНрд╕ рдореЙрдбрд▓ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ЁЯдЧ Accelerate рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдпрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рдорд╢реАрди рдкрд░ рдХрдИ GPU рд╣реЛрдВ рдпрд╛ рдХрдИ рдорд╢реАрдиреЛрдВ рдореЗрдВ рдХрдИ GPUред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдЬрд╛рдиреЗрдВ рдХрд┐ рдЕрдкрдиреЗ рдореВрд▓ PyTorch рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реВрдк рдХреЛ рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рд╡рд┐рддрд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХреЗред

рд╕реЗрдЯрдЕрдк

ЁЯдЧ Accelerate рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

pip install accelerate

рдлрд┐рд░ рдПрдХ [~accelerate.Accelerator] рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдмрдирд╛рдПрдВред [~accelerate.Accelerator] рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрдЯрдЕрдк рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдЧрд╛ред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдореЙрдбрд▓ рдХреЛ рдХрд┐рд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

>>> from accelerate import Accelerator

>>> accelerator = Accelerator()

рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреА рддреИрдпрд╛рд░реА

рдЕрдЧрд▓рд╛ рдХрджрдо рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╡рд╕реНрддреБрдУрдВ рдХреЛ [~accelerate.Accelerator.prepare] рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди DataLoaders, рдПрдХ рдореЙрдбрд▓ рдФрд░ рдПрдХ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

рдмреИрдХрд╡рд░реНрдб

рдЕрдВрддрд┐рдо рдЬреЛрдбрд╝ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реВрдк рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп loss.backward() рдХреЛ ЁЯдЧ Accelerate рдХреЗ [~accelerate.Accelerator.backward] рд╡рд┐рдзрд┐ рд╕реЗ рдмрджрд▓реЗрдВ:

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

...         optimizer.step()
...         lr_scheduler.step()
...         optimizer.zero_grad()
...         progress_bar.update(1)

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рдЪрд╛рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!

+ 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)

рдкреНрд░рд╢рд┐рдХреНрд╖рдг

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдиреЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝ рджреА рд╣реИрдВ, рддреЛ рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдХреЛрд▓реИрдмреЛрд░реЗрдЯрд░реА рдЬреИрд╕реЗ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢рд┐рдХреНрд╖рдг

рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЕрдкрдирд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

accelerate config

рдлрд┐рд░ рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рдЗрд╕ рддрд░рд╣ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:

accelerate launch train.py

рдиреЛрдЯрдмреБрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢рд┐рдХреНрд╖рдг

ЁЯдЧ Accelerate рдПрдХ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рднреА рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк Colaboratory рдХреЗ TPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕рднреА рдХреЛрдб рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ, рдФрд░ рдЗрд╕реЗ [~accelerate.notebook_launcher] рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ:

>>> from accelerate import notebook_launcher

>>> notebook_launcher(training_function)

ЁЯдЧ Accelerate рдФрд░ рдЗрд╕рдХреА рд╕рдореГрджреНрдз рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВред