සිංහල පුවත්සඳුදා, 16 නොවැම්බර් 2026
නවතමකේප් යෝර්ක් උණුසුම දිගටම: වෙයිපා නගරයෙන් නව වාර්තා

FlashAttention පරිමාණනය, බහු-GPU පුහුණුව සහ බර ක්වොන්ටීකරණය

FlashAttention පරිමාණනය, බහු-GPU පුහුණුව සහ බර ක්වොන්ටීකරණය

නවීන AI යටිතල පහසුකම් අතිවිශාල මාදිලි කාර්යක්ෂමව පුහුණු කිරීමට සහ සේවය සැපයීමට දෘඩාංග ගැන දැනුවත් attention කර්නල්, බෙදාහැරුණු බහු-GPU සමාන්තරතාව සහ අඩු-bit ක්වොන්ටීකරණය මත රඳා පවතී. මෙම ක්‍රම තුන න්‍යායික මාදිලි පරිමාණය සහ GPU වල භෞතික සීමා අතර පරතරය පියවයි.

1. Hopper (H100) GPU මත FlashAttention-2 සහ FlashAttention-3

මුල් FlashAttention විසින් මතක කලාප පළලේ බාධකය විසඳුවද, නවීන GPU වල අමු ගණන හැකියාවෙන් සැලකිය යුතු ප්‍රමාණයක් තවමත් භාවිත නොවී පැවතුණි. FlashAttention-2 (2023) සහ FlashAttention-3 (2024) විසින් GPU ත්‍රෙඩ් සහ දෘඩාංග එන්ජින් සම්බන්ධීකරණය වන ආකාරය නැවත සකස් කරන ලදී.

  • FlashAttention-2 (වැඩ වඩා හොඳින් බෙදා වෙන් කිරීම).
  • Matmul නොවන මෙහෙයුම් අඩු කිරීම. GPU Tensor Cores මගින් න්‍යාස ගුණ කිරීම් (matmul) සිදු කරන වේගය, සම්මත CUDA cores මගින් Softmax යළි පරිමාණනය වැනි අදිශ මෙහෙයුම් සිදු කරන වේගයට වඩා දළ වශයෙන් 16× වැඩිය. FlashAttention-2 විසින් online Softmax ගණිතය නැවත ලියා, යළි පරිමාණනය අභ්‍යන්තර ලූපයේ අවසානය දක්වා කල් දමා, මන්දගාමී matmul නොවන උපදෙස් අඩු කරන ලදී.
  • අනුක්‍රම දිග ඔස්සේ සමාන්තරකරණය. මුල් අනුවාදය වැඩ ප්‍රධාන වශයෙන් batch ප්‍රමාණය සහ attention heads අතර සමාන්තර කළ අතර, දිගු අනුක්‍රම සහ කුඩා batch ප්‍රමාණ සමඟ පුහුණු කරන විට GPU cores නිෂ්ක්‍රීයව පැවතුණි. FlashAttention-2 අනුක්‍රම දිග මානය ඔස්සේ සමාන්තරතාව එකතු කර ලූප අනුපිළිවෙළ මාරු කරයි (බාහිර ලූපය Q blocks මත, අභ්‍යන්තර ලූපය K සහ V මත), එමගින් මන්දගාමී හවුල් මතක ලිවීම් අවම කරයි.
  • FlashAttention-3 (Hopper H100 දෘඩාංග ප්‍රයෝජනයට ගැනීම).
  • අසමකාලීන දත්ත ගෙනයාම (TMA). NVIDIA හි Hopper ගෘහනිර්මාණය Tensor Memory Accelerator (TMA) හඳුන්වා දුන්නේය. එය ගණනය කරන ත්‍රෙඩ් අවහිර නොකර ගෝලීය HBM සහ චිපය මත SRAM අතර දත්ත පිටපත් කරන විශේෂිත දෘඩාංග ඒකකයකි.
  • Warp විශේෂීකරණය (නිෂ්පාදක-පාරිභෝගික ආකෘතිය). FlashAttention-3 GPU warps (ත්‍රෙඩ් 32ක කණ්ඩායම්) විශේෂිත භූමිකාවලට බෙදයි. නිෂ්පාදක warps, TMA භාවිතයෙන් K සහ V හි ඉදිරි tiles කල්තියා SRAM වෙත ගෙන එන අතර, පාරිභෝගික warps වත්මන් tiles Tensor Cores වෙත සපයයි (WGMMA උපදෙස්). මෙය මතක හුවමාරු, න්‍යාස ගණිතය සහ Softmax ගණනය කිරීම් එකවර අතිච්ඡාදනය කරයි.
  • FP8 අඩු නිරවද්‍යතා සහාය. FlashAttention-3 Hopper හි FP8 Tensor Cores භාවිතයට විවෘත කරමින් FP16 ට සාපේක්ෂව අමු ප්‍රතිදාන වේගය දෙගුණ කරයි. FP8 තුළ අසාමාන්‍ය activation නිසා නිරවද්‍යතාව නැතිවීම වැළැක්වීමට එය block ක්වොන්ටීකරණය (කුඩා tiles ස්වාධීනව පරිමාණනය කිරීම) සහ අසංගත සැකසුම (ක්වොන්ටීකරණයට පෙර අන්ත අගයන් සුමට කිරීමට Q සහ K අහඹු ලම්බක න්‍යාසවලින් ගුණ කිරීම) භාවිත කරයි.

2. බහු-GPU පරිමාණන උපායමාර්ග (3D සමාන්තරතාව)

මාදිලියකට පරාමිති බිලියන දස ගණනක් හෝ සිය ගණනක් ඇති විට, එහි බර, gradients සහ optimizer තත්ත්ව එක් GPU එකක VRAM ඉක්මවයි. මහා පරිමාණ පුහුණුව වෙනස් සමාන්තරකරණ උපායමාර්ග තුනක් ඒකාබද්ධ කරන අතර එය බොහෝ විට 3D සමාන්තරතාව ලෙස හැඳින්වේ.

උපායමාර්ගයවැඩ බෙදන ආකාරයසන්නිවේදන බාධකයවඩාත් සුදුසු භාවිතය
දත්ත සමාන්තරතාව (DP / FSDP)GPU අතර මාදිලිය ප්‍රතිවලිත කරයි; එක් එක් GPU වෙනස් දත්ත batch එකක් සකසයි.GPU අතර gradients සහ කොටස් කළ බර සඳහා All-Reduce / All-Gather.ස්තර එක් උපාංගයකට ගැළපෙන විට GPU සිය ගණනක් හරහා පුහුණු ප්‍රතිදාන වේගය වැඩි කිරීම.
ටෙන්සර් සමාන්තරතාව (TP)තනි බර න්‍යාස (ස්තර) GPU අතර සිරස්ව හෝ තිරස්ව බෙදයි.සෑම Transformer ස්තරයකටම පසු All-Reduce (ඉතා වේගවත් NVLink අවශ්‍යය).එක් GPU එකකට නොගැළපෙන විශාල ස්තර, දැඩිව එක් 8-GPU සේවාදායක node එකක් තුළ තබා ගැනීම.
පයිප්ලයින් සමාන්තරතාව (PP)මාදිලිය ගැඹුර අනුව බෙදා, අනුක්‍රමික ස්තර කණ්ඩායම් වෙනස් GPU මත තබයි.පයිප්ලයින් අදියර අතර Point-to-Point (P2P) activation හුවමාරු.මන්දගාමී InfiniBand/Ethernet ජාල මගින් සම්බන්ධ බහු සේවාදායක nodes හරහා පරිමාණනය.
  • දත්ත සමාන්තරතාව & ZeRO / FSDP. සම්මත දත්ත සමාන්තරතාවේදී සෑම GPU එකක්ම මාදිලියේ සම්පූර්ණ පිටපතක් තබාගෙන මතකය නාස්ති කරයි. නවීන frameworks, ZeRO (Zero Redundancy Optimizer) හෝ PyTorch FSDP (Fully Sharded Data Parallel) භාවිත කරයි. එය පරාමිති, gradients සහ optimizer තත්ත්ව සියලු GPU අතර කොටස් කර, ගණනයට අවශ්‍ය මොහොතේම එක් එක් ස්තරයේ බර රැස් කරයි.
  • ටෙන්සර් සමාන්තරතාව (ස්තරය ඇතුළත). අතිවිශාල feed-forward න්‍යාස ගුණනයක් වන Y = XW අනුපිටපත් කිරීම වෙනුවට, ටෙන්සර් සමාන්තරතාව W තීරු අනුව GPU අතර බෙදයි (W = [W_1, W_2]). සෑම GPU එකක්ම ප්‍රතිදානයේ තම අර්ධය එකවර ගණනය කර අධිවේගී NVLink හරහා අර්ධ ප්‍රතිඵල හුවමාරු කරයි (H100s මත 900 GB/s).
  • පයිප්ලයින් සමාන්තරතාව (ස්තර අතර). ස්තර 1–8 GPU 1 මතත්, ස්තර 9–16 GPU 2 මතත් පිහිටයි; ඉදිරියටද එසේමය. පෙර ස්තර අවසන් වන තෙක් බලා සිටින පසුපස GPU නිෂ්ක්‍රීය වීම ("pipeline bubble") වැළැක්වීමට, frameworks එක් එක් පුහුණු batch එක කුඩා micro-batches වලට බෙදයි. එවිට සියලු GPU එකලස් කිරීමේ රේඛාවක් මෙන් කාර්යබහුලව පවතී.

3. ක්වොන්ටීකරණය (GPTQ, AWQ) සහ ක්ෂණික ප්‍රතික්වොන්ටීකරණ කර්නල්

අනුමානනයේදී (ටෝකන එකින් එක ජනනය කිරීමේදී), විශාල භාෂා මාදිලි සීමා වන්නේ මතක කලාප පළලෙන් මිස ගණන හැකියාවෙන් නොවේ. එක් ටෝකනයක් ජනනය කිරීමට පමණක් VRAM වෙතින් 16-bit පරාමිති බිලියන 70ක් (140 GB) පූරණය කිරීමෙන් Tensor Cores මතක හුවමාරු බලා සිටී. ක්වොන්ටීකරණය බර 16-bit floats සිට 4-bit පූර්ණ සංඛ්‍යා (INT4) දක්වා සංකෝචනය කරමින් මතක ප්‍රමාණය සහ හුවමාරු කාලය ආසන්න වශයෙන් 4× අඩු කරයි.

  • GPTQ (Hessian ක්‍රමාංකනය මගින් පුහුණුවෙන් පසු ක්වොන්ටීකරණය).
  • 16-bit බර සරලව 4-bit පූර්ණ සංඛ්‍යාවලට වට කිරීම මාදිලියේ නිවැරදිභාවය විනාශ කරයි. GPTQ කුඩා ක්‍රමාංකන දත්ත කට්ටලයක් මාදිලිය හරහා යවා, එක් එක් බර කොතරම් සංවේදීදැයි මැනීමට දෙවැනි පෙළ ගණිතය (ප්‍රතිලෝම Hessian න්‍යාසය) භාවිත කරයි.
  • එය බර තීරුවෙන් තීරුව ක්වොන්ටීකරණය කරයි; බරක් වට කිරීමෙන් දෝෂයක් ඇති වන සෑම විටම, එම දෝෂය අවලංගු කිරීමට GPTQ එම පේළියේ ඉතිරි ක්වොන්ටීකරණය නොකළ බර ගණිතමය වශයෙන් සකසයි.
  • AWQ (Activation ගැන දැනුවත් බර ක්වොන්ටීකරණය).
  • බර නාලිකාවලින් දළ වශයෙන් 0.1% සිට 1% දක්වා ප්‍රමාණයක්, විශාල activation අගයන් සමඟ ගුණ වන නිසා අනෙක්වාට වඩා බෙහෙවින් වැදගත් බව පර්යේෂකයෝ සොයා ගත්හ.
  • එම තීරණාත්මක බර 16-bit ලෙස තබා ගැනීම වෙනුවට (එය අවුල් සහගත, මන්දගාමී මිශ්‍ර නිරවද්‍යතා මතක සැලසුම් ඇති කරයි), AWQ ක්වොන්ටීකරණයට පෙර එම ප්‍රමුඛ බර නාලිකා ඉහළට පරිමාණනය කර, ධාවන වේලාවේ අදාළ ආදාන activations පහළට පරිමාණනය කරයි. එමගින් බරවලින් 100%ක් එකම 4-bit ආකෘතියේ තබාගෙන නිවැරදිභාවය රැක ගනී.
  • අභිරුචි CUDA කර්නල් ක්ෂණිකව ප්‍රතික්වොන්ටීකරණය කරන ආකාරය (W4A16).
  • GPU වලට 16-bit activation එකක් (FP16), 4-bit පූර්ණ සංඛ්‍යා බරකින් (INT4) සෘජුව ගුණ කළ නොහැක. ඒ වෙනුවට විශේෂිත අනුමානන කර්නල් (Marlin හෝ ExLlama වැනි) W4A16 (4-bit බර, 16-bit activations) ක්‍රියාත්මක කරයි:
  • 1. සංකෝචිත HBM කියවීම: කර්නලය මන්දගාමී ගෝලීය VRAM වෙතින් ඇසුරුම් කළ 4-bit බර (එක් 32-bit පූර්ණ සංඛ්‍යාවක් තුළ ඇසුරුම් කළ INT4 අගයන් අටක්) පූරණය කරමින් මතක කලාප පළල භාවිතය 4× අඩු කරයි.
  • 2. රෙජිස්ටර් මට්ටමේ දිගහැරීම: GPU හි අතිවේගී රෙජිස්ටර් තුළ CUDA කර්නලය වේගවත් bitwise shifts (>>) සහ bitmasks (&) භාවිතයෙන් INT4 පූර්ණ සංඛ්‍යා දිගහැර, ගබඩා කළ scale/zero-point සාධක යොදා ඒවා එවෙලේම FP16 අගයන් බවට යළි පරිවර්තනය කරයි.
  • 3. ක්ෂණික Tensor Core ගණිතය: අලුතින් දිගහැරුණු FP16 බර FP16 activations සමඟ කෙළින්ම Tensor Cores වෙත යැවේ. පුළුල් කළ 16-bit බර කිසි විටෙක නැවත VRAM වෙත ලියන්නේ නැත.

තවත් AI පුවත්