Technický PRŮVODCE

Smíšený trénink přesnosti

Trénink smíšené přesnosti urychluje trénování neuronové sítě a snižuje spotřebu paměti tím, že většinu matematiky provádí v 16bitové pohyblivé řádové čárce namísto 32bitové.

2 minuty čteníNaposledy aktualizováno

Přehled

It lets the same GPU train bigger models faster with almost no loss in accuracy.

Hluboký ponor

Tradiční trénink ukládá váhy a spouští matematiku ve 32bitové pohyblivé řádové čárce (FP32). Smíšená přesnost používá 16bitové formáty s nižší přesností (FP16 nebo bfloat16) pro násobení těžkých matic, přičemž zachovává 32bitovou „hlavní kopii“ vah pro stabilní aktualizace. Protože 16bitová čísla mají poloviční velikost, více se vejdou do paměti GPU a jádra Tensor je zpracovávají zhruba 2-8x rychleji. Háček je v úzkém dosahu FP16: malé gradienty mohou podtékat až k nule. Standardní opravou je škálování ztrát, které vynásobí ztrátu velkým faktorem před zpětným šířením, takže malé gradienty zůstanou reprezentativní, a poté ji vydělí zpět před aktualizací váhy. NVIDIA Apex a vestavěný AMP (Automatic Mixed Precision) v PyTorch a TensorFlow to automatizují.

Technický přehled

FP16 má pouze 5 exponentních bitů, což dává malý dynamický rozsah, který způsobuje podtečení gradientu. Bfloat16 si ponechává 8 exponentních bitů (odpovídající rozsahu FP32), ale méně bitů mantisy, takže zřídka potřebuje škálování ztrát – hlavní důvod, proč ho Google TPU a moderní GPU preferují. Tensor Cores urychlují práci tím, že násobí 16bitové operandy, ale akumulují částečné součty v FP32, čímž zachovávají přesnost tam, kde by se jinak sčítaly chyby.

Strategický dopad

Cena a rozpočet

Rozhodnutí o architektuře zvyšují výkon a provozní náklady po mnoho let.

Jasnější rozhodnutí

Technické vzdělání pomáhá týmům vybrat ten správný stack, nejen ten nejnovější.

Kontrola kvality

Lepší konstrukční volby snižují výskyt problémů se spolehlivostí ve výrobě.

Budoucnost smíšeného přesného tréninku

Přesnost stále klesá. Školení FP8, podporované na GPU NVIDIA Hopper a Blackwell, se stává standardem pro hraniční modely a výzkum FP4 a formátů microscaling (MXFP) posouvá dále. Očekávejte, že rámce budou automaticky vybírat přesnost na vrstvě, hardware bude nativně zpracovávat stále užší formáty a školení s ohledem na kvantizaci, které smaže hranici mezi trénováním s nízkou přesností a odvozením, čímž se sníží náklady na trénování modelů s biliony parametrů.

Real-World Implementace

PyTorch's torch.cuda.amp.autocast zabaluje tréninkovou smyčku zhruba na polovinu paměti a zdvojnásobuje propustnost na jediném GPU

Školení velkých jazykových modelů, jako jsou transformátory ve stylu GPT, v bfloat16 na TPU, aby se zabránilo ladění škálování ztrát

Přizpůsobení větší velikosti dávky na spotřebitelský GPU RTX přepnutím tréninku obrazu ResNet z FP32 na FP16

Smíšená přesnost FP8 na GPU NVIDIA H100 pro snížení nákladů na přípravu modelů v hraničním měřítku

Rizika a zábradlí

Optimalizace jednoho benchmarku může skrýt širší systémové slabiny.

Náklady na infrastrukturu a údržbu jsou často podceňovány.

Mezery v zabezpečení a pozorovatelnosti se mohou zvětšovat, jak se systémy stávají složitějšími.

Plán implementace

1

Před implementací definujte cíle latence, kvality a nákladů.

2

Benchmark za realistických podmínek zatížení a dat.

3

Monitorování chyb, posunu a dopadu na uživatele.

4

Před škálováním připravte cesty vrácení zpět a reakce na incidenty.

Pokračujte v objevování

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Mixed Precision Training quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Spustit kvíz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Další průvodce

Pseudooznačování a autoškolení

Často kladené otázky

What is Mixed Precision Training?

Trénink smíšené přesnosti urychluje trénování neuronové sítě a snižuje spotřebu paměti tím, že většinu matematiky provádí v 16bitové pohyblivé řádové čárce namísto 32bitové. Umožňuje stejnému GPU trénovat větší modely rychleji a téměř bez ztráty přesnosti.

Proč si smíšený přesný trénink uchovává 32bitovou „hlavní kopii“ závaží?

Aktualizace hmotnosti jsou často velmi malé; jejich shromažďování v 16bitové verzi by ztratilo přesnost, takže plně přesná hlavní kopie udržuje aktualizace přesné.

Jaký problém řeší škálování ztrát v tréninku FP16?

FP16 má omezený dynamický rozsah, takže malé gradienty se mohou zaokrouhlit na nulu; znásobením ztráty před backprop je udrží reprezentativní.

Jakou výhodu má bfloat16 oproti FP16?

Bfloat16 zachovává 8 exponentních bitů jako FP32, takže jeho dynamický rozsah je velký a gradientní podtečení je vzácné.

Jak si jádra Tensor zachovávají přesnost při použití 16bitových vstupů?

Tensor Cores násobí 16bitové operandy, ale akumulují se v 32bitových, což zabraňuje skládání součtových chyb.

Jaká je hlavní výhoda používání 16bitových hodnot namísto 32bitových během školení?

Čísla poloviční velikosti vejdou do paměti GPU více dat a umožňují specializovanému hardwaru zpracovat matici několikanásobně rychleji.