Imọ Itọsọna

Ikojọpọ Gradient

Ikojọpọ Gradient jẹ ki o ṣe adaṣe iwọn ipele nla kan lori iranti GPU ti o lopin nipa pipọ awọn gradients lori ọpọlọpọ awọn ipele kekere kekere ṣaaju mimu dojuiwọn awọn iwọn.

Gbọ si itọsọna yiiAI-ṣe afihan · ~2 min

Lori iwe yi2 min ka
  1. Akopọ
  2. Jin Dive
  3. Real-World imuse
  4. Ojo iwaju ti ikojọpọ Gradient
  5. Fifi o sinu iwa
  6. Tesiwaju Ṣiṣawari
  7. Awọn ibeere ti a beere nigbagbogbo

Akopọ

O jẹ adaṣe boṣewa fun ikẹkọ awọn awoṣe nla nigbati iranti jẹ igo.

Jin Dive

Ni deede igbesẹ ikẹkọ kan ṣe ilana ipele kan, ṣe iṣiro awọn gradients, ati ṣe imudojuiwọn awọn ayeraye lẹsẹkẹsẹ. Pẹlu ikojọpọ gradient, o ṣiṣe ọpọlọpọ siwaju ati sẹhin kọja lori awọn batches bulọọgi kekere, fifi awọn gradients wọn papọ ni awọn buffers paramita, ati pe nikan ni igbesẹ olupilẹṣẹ (ati odo awọn gradients) lẹhin N micro-batches. Iwọn ipele ti o munadoko di awọn akoko iwọn micro-ipele N, botilẹjẹpe iranti tente oke nikan ni o ni idaduro micro-ipele ti awọn iṣẹ ṣiṣe. Eyi ṣe pataki nitori ọpọlọpọ awọn ilana ikẹkọ gba awọn ipele nla fun awọn iṣiro iduroṣinṣin, ati nitori awọn awoṣe bii awọn oluyipada nla ko le baamu ipele ibi-afẹde ni kikun lori ẹrọ kan. Awọn apeja: ipele-normalization statistiki ti wa ni iṣiro fun bulọọgi-ipele, ki Layer iwuwasi tabi ẹgbẹ iwuwasi bata dara pẹlu ikojọpọ, ati awọn ti o gbọdọ asekale awọn pipadanu ti tọ lati tọju awọn munadoko eko oṣuwọn ọtun.

Real-World imuse

Titunse awoṣe ede nla kan lori GPU olumulo kan nipa ikojọpọ ju 8 tabi 16 micro-batches lati de ipele ti o munadoko ti awọn ọgọọgọrun.

Ikẹkọ iran ti o ga-giga tabi awọn awoṣe ipin nibiti paapaa ipele ti 2 baamu, ṣugbọn ohunelo nilo ipele ti o munadoko ti 32.

Olukọni Oju Famọra ati Imọlẹ PyTorch ṣe afihan eto gradient_accumulation_steps ti a lo nigbagbogbo ni awọn iṣeto VRAM lopin.

Atunse awọn abajade ipele nla ti iwe kan lori ohun elo kekere nipasẹ ibaamu iwọn ipele ti o munadoko nipasẹ ikojọpọ.

Ojo iwaju ti ikojọpọ Gradient

Ikojọpọ Gradient yoo duro lefa aiyipada bi awọn iwọn awoṣe ṣe ju iranti ẹrọ ẹyọkan lọ. O npọpọ pọ si pẹlu pipe ti o dapọ, ṣiṣayẹwo imuṣiṣẹ, ZeRO sharding, ati afiwera opo gigun ti epo ni awọn ilana bii DeepSpeed ​​ati FSDP. Reti adaṣe adaṣe ti o muna nibiti awọn igbesẹ ikojọpọ adaṣe-tune awọn ile-ikawe si isuna iranti kan, ati pe o tẹsiwaju pataki fun iṣatunṣe awọn awoṣe nla lori ohun elo iwọntunwọnsi, pẹlu awọn GPU alabara nibiti o ti ṣii ikẹkọ ti bibẹẹkọ ko ṣeeṣe.

Fifi o sinu iwa

Kini idi ti o ṣe pataki

  • Iye owo ati isuna. Awọn ipinnu faaji ṣe awakọ iṣẹ ati idiyele iṣẹ fun awọn ọdun.
  • Awọn ipinnu diẹ sii. Ẹkọ imọ-ẹrọ ṣe iranlọwọ fun awọn ẹgbẹ lati yan akopọ to tọ, kii ṣe ọkan tuntun nikan.
  • Iṣakoso didara. Awọn yiyan imọ-ẹrọ to dara julọ dinku awọn iṣẹlẹ igbẹkẹle ni iṣelọpọ.

Ṣọra fun

  • Ṣiṣepe ala-ilẹ kan le tọju awọn ailagbara eto ti o gbooro.
  • Awọn ohun elo amayederun ati awọn idiyele itọju nigbagbogbo ni aibikita.
  • Aabo ati awọn ela akiyesi le dagba bi awọn eto ṣe di eka sii.

Next awọn igbesẹ

  1. Ṣetumo lairi, didara, ati awọn ibi-afẹde idiyele ṣaaju imuse.
  2. Aṣepari labẹ ẹru ojulowo ati awọn ipo data.
  3. Abojuto ohun elo fun awọn aṣiṣe, fiseete, ati ipa olumulo.
  4. Mura ipadasẹhin pada ati awọn ipa ọna esi iṣẹlẹ ṣaaju iwọn.

Tesiwaju Ṣiṣawari

Ìwé ìròyìn ọfẹ

Gba ìkànìyàn AI ojoojúmọ́

Ìtàn AI mẹta tó jẹ́rìí ní gbogbo owurọ́ ọjọ́ iṣẹ́, kọ́wé ní Gẹ̀ẹ́sì tó rọrùn. Ọfẹ́ fún gbogbo àkókò, kò sí ìpolówó.

Ìmeèlì kan ní gbogbo ọjọ́ iṣẹ́. Yọkúrò ní ìkànìyàn ní ìkànìyàn kan. A kò ta tàbí pín àdírẹ́sì rẹ.

Ṣe idanwo fun ara rẹ

Take the Gradient Accumulation quiz

Ìdáhùn lẹ́sẹ̀kẹsẹ̀ lórí gbogbo ìdáhùn, àti iwe-ẹ̀rí tó lè pin pẹ̀lú ID tó lè jẹ́rìí lẹ́yìn tí o bá kọ́ ẹ̀kọ́.

Bẹrẹ adanwo

Ṣe àtìlẹ́yìn ẹ̀kọ́ AI ọfẹ́. AI Understanding jẹ́ àjọ àìní èrè 501(c)(3) — kò sí ìpolówó, kò sí àkúnya owó, ní gbogbo àkókò. Ṣe ẹbun kan

Awọn ibeere ti a beere nigbagbogbo

Kini ikojọpọ Gradient?

Ikojọpọ Gradient jẹ ki o ṣe adaṣe iwọn ipele nla kan lori iranti GPU ti o lopin nipa pipọ awọn gradients lori ọpọlọpọ awọn ipele kekere kekere ṣaaju mimu dojuiwọn awọn iwọn. O jẹ adaṣe boṣewa fun ikẹkọ awọn awoṣe nla nigbati iranti jẹ igo.

Kini ikojọpọ gradient nipataki jẹ ki o ṣe?

Nipa pipọ awọn gradients lori ọpọlọpọ awọn ipele kekere ṣaaju ṣiṣe imudojuiwọn, o ṣe afiwe ipele nla kan laisi idaduro gbogbo rẹ ni iranti ni ẹẹkan.

With an accumulation factor N, when should optimizer.step() and zero_grad() occur?

Accumulate gradients across N micro-batches, call optimizer.step() once for the effective batch, then clear gradients before the next window; begin training with cleared buffers.

Eyi ti normalization Layer orisii diẹ mọ pẹlu gradient ikojọpọ?

Batch-norm ṣe iṣiro awọn iṣiro fun ipele kekere, nitorinaa Layer tabi iwuwasi ẹgbẹ yago fun ibaamu pẹlu awọn ipele kekere kekere.

Why may four micro-batches with BatchNorm behave differently from one physical batch of the same total size?

Batch-dependent forward computations break exact equivalence.