Како да се оптимизираат моделите со вештачка интелигенција

Како да се оптимизираат моделите со вештачка интелигенција

Краток одговор: За да ги оптимизирате моделите на вештачка интелигенција, изберете едно примарно ограничување (латентност, цена, меморија, квалитет, стабилност или пропусен опсег), а потоа снимете доверлива основна линија пред да промените нешто. Прво отстранете ги тесните грла во цевководот, а потоа применете придобивки со низок ризик како што се мешана прецизност и групирање; ако квалитетот се одржува, преминете на алатки за компајлер/извршување и дури потоа намалете ја големината на моделот преку квантизација или дестилација кога е потребно.

Клучни заклучоци:

Ограничување : Изберете една или две целни метрики; оптимизацијата е пејзаж на компромиси, а не на бесплатни добивки.

Мерење : Профилирање на реални работни оптоварувања со p50/p95/p99, пропусност, искористеност и врвови на меморијата.

Цевковод : Поправете ги токенизацијата, вчитувачите на податоци, претходната обработка и групирањето пред да го допрете моделот.

Сервирање : Користете кеширање, намерно групирање, истовремено подесување и внимателно следете ја латенцијата на опашката.

Заштитни огради : Извршувајте златни инструкции, метрики на задачи и проверки на случај по секоја промена на перформансите.

Инфографик за тоа како да се оптимизираат моделите со вештачка интелигенција

🔗 Како ефикасно да се евалуираат моделите со вештачка интелигенција
Клучни критериуми и чекори за праведно и сигурно оценување на моделите.

🔗 Како да се измерат перформансите на вештачката интелигенција со реални метрики
Користете реперни точки, латентност, трошоци и сигнали за квалитет за споредба.

🔗 Како да се тестираат моделите со вештачка интелигенција пред производство
Практичен работен тек за тестирање: поделби на податоци, стрес случаи и следење.

🔗 Како да се користи вештачка интелигенција за креирање содржина
Претворете ги идеите во нацрти побрзо со структурирани инструкции и итерации.


1) Што значи „оптимизирај“ во пракса (бидејќи секој го користи различно) 🧠

Кога луѓето велат „оптимизирај модел на вештачка интелигенција“, тие можеби мислат на следново:

  • Направете го побрзо (помала латентност)

  • Направете го поевтино (помалку GPU часови, помала потрошувачка во облак)

  • Намалете го (мемориска површина, распоредување на рабовите)

  • Направете го попрецизно (подобрувања на квалитетот, помалку халуцинации)

  • Направете го постабилен (помала варијација, помалку грешки во производството)

  • Олеснување на сервисирањето (проточност, групирање, предвидливи перформанси)

Еве ја малку досадната вистина: не можете да ги максимизирате сите овие одеднаш. Оптимизацијата е како стискање балон - турнете едната страна навнатре, а другата страна излегува. Не секогаш, но доволно често за да треба да планирате компромиси.

Значи, пред да допрете нешто, изберете го вашето примарно ограничување :

  • Ако им служите на корисниците во живо, ве интересира латентноста на p95 ( перцентили на AWS CloudWatch ) и перформансите на опашката ( најдобра практика за „латенција на опашката“ ) 📉

  • Ако тренирате, важно ви е времето потребно за квалитет и искористеноста на графичката картичка 🔥

  • Ако инсталирате на уреди, ви е грижа за RAM меморијата и напојувањето 🔋


2) Како изгледа добра верзија на оптимизација на моделот со вештачка интелигенција ✅

Добрата верзија на оптимизација не е само „примени квантизација и моли се“. Тоа е систем. Најдобрите поставувања обично имаат:

  • Основна линија на која можете да и верувате.
    Ако не можете да ги репродуцирате вашите тековни резултати, не можете да знаете дека сте подобриле нешто. Едноставно… но луѓето го прескокнуваат. Потоа се менуваат во спирала.

  • Јасна целна метрика
    „Побрзо“ е нејасна. „Намалување на латенцијата на p95 од 900ms на 300ms со ист резултат за квалитет“ е вистинска цел.

  • Заштитни огради за квалитет
    Секоја победа во перформансите ризикува тивка регресија на квалитетот. Потребни ви се тестови, евалуации или барем комплет за разумност.

  • Свест за хардверот
    „Брз“ модел на една графичка картичка може да се „ползи“ на друга. Процесорите се свој посебен вид хаос.

  • Итеративни промени, а не големо преработување.
    Кога менувате пет работи одеднаш и перформансите се подобруваат, не знаете зошто. Што е… вознемирувачко.

Оптимизацијата треба да се чувствува како штимање гитара - мали прилагодувања, слушајте внимателно, повторувајте 🎸. Ако се чувствувате како жонглирање со ножеви, нешто не е во ред.


3) Табела за споредба: Популарни опции за оптимизирање на моделите со вештачка интелигенција 📊

Подолу е прикажана брза и малку неуредна споредбена табела на вообичаени алатки/пристапи за оптимизација. Не, не е сосема „фер“ - ниту реалниот живот не е.

Алатка / Опција Публика Цена Зошто функционира
PyTorch torch.compile ( PyTorch документација ) Луѓе од PyTorch Бесплатно Триковите за снимање графикони + компајлер можат да ги намалат трошоците… понекогаш е магија ✨
ONNX Runtime ( документи за ONNX Runtime ) Тимови за распоредување Бесплатно Силни оптимизации за инференција, широка поддршка, добро за стандардизирано сервисирање
TensorRT ( документи за NVIDIA TensorRT ) NVIDIA распоредување Платени вибрации (честопати во пакет) Агресивна фузија на јадрото + прецизно ракување, многу брзо кога ќе кликне
DeepSpeed ​​( документи од ZeRO ) Тренинг тимови Бесплатно Оптимизации на меморија + проток (Zero итн.). Може да се почувствува како млазен мотор
FSDP (PyTorch) ( документи за PyTorch FSDP ) Тренинг тимови Бесплатно Параметрите/градиентите на фрагментите ги прават големите модели помалку застрашувачки
квантизација на битови и бајти ( битови и бајти ) LLM мајстори за тенкирање Бесплатно Мала тежина на битови, огромна заштеда на меморија - квалитетот зависи, но уф 😬
Дестилација ( Хинтон и др., 2015 ) Тимови на производи „Временски трошок“ Помалиот студентски модел наследува однесување, обично најдобар поврат на инвестицијата долгорочно
Кастрење ( туторијал за кастрење со PyTorch ) Истражување + производство Бесплатно Ги отстранува мртвите килограми. Работи подобро кога е во комбинација со преквалификација
Flash Attention / споени јадра ( хартија FlashAttention ) Перформансни штребери Бесплатно Побрзо внимание, подобро памтење. Вистинска победа за трансформерите
Сервер за инференција Тритон ( динамично групирање ) Оперативен систем/инфраструктура Бесплатно Производство, сериско производство, повеќемоделски цевководи - се чувствува како претпријатие

Исповед за необичноста на форматирањето: „Цената“ е неуредна бидејќи отворениот код сепак може да ве чини викенд дебагирање, што е… цена. 😵💫


4) Започнете со мерење: Профил како да го мислите тоа 🔍

Ако правите само едно нешто од целото ова упатство, направете го ова: мерете правилно.

Во моето сопствено тестирање, најголемите „откритија во оптимизацијата“ дојдоа од откривањето на нешто засрамувачки едноставно како:

  • вчитувачот на податоци го „осиромашува“ графичкиот процесор

  • Тесно грло за претходна обработка на процесорот

  • мали големини на серии што предизвикуваат оптоварување при стартување на јадрото

  • бавна токенизација (токенизерите можат да бидат тивки негативци)

  • фрагментација на меморијата ( белешки за алокатор на меморија PyTorch CUDA )

  • еден слој доминира во пресметувањето

Што да се измери (минимален сет)

  • Латентност (p50, p95, p99) ( SRE на перцентили на латентност )

  • Проток (токени/секунда, барања/секунда)

  • Искористеност на графичкиот процесор (пресметка + меморија)

  • Врвови на VRAM / RAM

  • Цена по 1000 токени (или по инференција)

Практичен начин на размислување за профилирање

  • Напишете едно сценарио што ви е важно (не е играчка-поттик).

  • Запишувај сè во мал „дневник за перформанси“.
    Да, досадно е… но те спасува од претерување со перформансот подоцна.

(Ако сакате конкретна алатка за почеток: PyTorch Profiler ( torch.profiler docs ) и Nsight Systems ( NVIDIA Nsight Systems ) се вообичаените осомничени.)


5) Оптимизација на податоци + обука: Тивката супермоќ 📦🚀

Луѓето се опседнати со архитектурата на моделите и забораваат на цевководот. Во меѓувреме, цевководот тивко согорува половина од графичкиот процесор.

Лесни победи што се појавуваат брзо

  • Користете мешана прецизност (FP16/BF16 каде што е стабилно) ( PyTorch AMP / torch.amp )
    Обично побрзо, честопати во ред - но внимавајте на нумерички необичности.

  • Акумулација на градиент кога големината на серијата е ограничена ( 🤗 Водич за забрзување )
    Ја одржува оптимизацијата стабилна без да експлодира меморијата.

  • Градиентно контролно поставување ( torch.utils.checkpoint )
    Врши пресметка за меморија - ги прави поголемите контексти изводливи.

  • Ефикасна токенизација ( 🤗 Токенизери )
    Токенизацијата може да стане тесно грло во голем обем. Не е гламурозна; важна е.

  • Подесување на вчитувачот на податоци
    Повеќе работници, закачена меморија, претходно преземање - непривлечно, но ефикасно 😴➡️💪 ( Водич за подесување на перформансите на PyTorch )

Параметарски ефикасно фино подесување

Ако ги дотерувате големите модели, PEFT методите (како адаптерите во стилот на LoRA) можат значително да ги намалат трошоците за обука, а воедно да останат изненадувачки силни ( 🤗 PEFT водич за Transformers , LoRA труд ). Ова е еден од оние моменти „зошто не го направивме ова порано?“.


6) Оптимизација на ниво на архитектура: Соодветна големина на моделот 🧩

Понекогаш најдобриот начин за оптимизација е… да престанете да користите модел кој е преголем за задачата. Знам, светогрдие 😄.

Направете повик за неколку основни работи:

  • Одлучете дали ви требаат целосни вибрации од општа разузнавачка служба или специјалист.

  • Чувајте го контекстуалниот прозорец онолку голем колку што е потребно, не поголем.

  • Користете модел обучен за работата што ја работите (модели на класификација за класификациска работа и така натаму).

Практични стратегии за правилно одредување на големината

  • Префрлете се на помал систем за повеќето барања.
    Потоа насочете ги „тешките барања“ кон поголем модел.

  • Користете двостепена поставеност.
    Брзи нацрти на модели, посилни проверки или уредувања на модели.
    Тоа е како да пишувате со пријател кој е пребирлив - досадно, но ефикасно.

  • Намалување на должината на излезот.
    Излезните токени чинат пари и време. Ако вашиот модел се талка, вие плаќате за талкањето.

Видов тимови како драматично ги намалуваат трошоците со спроведување на пократки резултати. Се чини безначајно. Функционира.


7) Компајлер + Оптимизации на графикони: Од каде доаѓа брзината 🏎️

Ова е слојот „направи компјутерот да прави попаметни компјутерски работи“.

Вообичаени техники:

Едноставно кажано: вашиот модел може да биде математички брз, но оперативно бавен. Компајлерите поправаат дел од тоа.

Практични белешки (т.е. лузни)

  • Овие оптимизации можат да бидат чувствителни на промените во обликот на моделот.

  • Некои модели многу забрзуваат, некои едвај се помрднуваат.

  • Понекогаш добиваш забрзување и загадочен баг - како вселен гремлин 🧌

Сепак, кога функционира, тоа е една од најчистите победи.


8) Квантизација, кастрење, дестилација: Помали без плачење (премногу) 🪓📉

Ова е делот што луѓето го сакаат… затоа што звучи како бесплатна изведба. Може да биде, но мора да се третира како операција.

Квантизација (тежини/активации со помала прецизност)

  • Одлично за брзина на заклучување и меморија

  • Ризик: пад на квалитетот, особено на куќиштата на рабовите

  • Најдобра практика: оценување на вистински тест сет, а не на вибрации

Вообичаени вкусови за кои ќе чуете:

Кастрење (отстранување на параметри)

  • Отстранува „неважни“ тежини или структури ( туторијал за кастрење со PyTorch )

  • Обично е потребна преквалификација за да се врати квалитетот

  • Работи подобро отколку што луѓето мислат… кога се прави внимателно

Дестилација (ученикот учи од наставникот)

Ова е мојот личен омилен долгорочен лост. Дестилацијата може да произведе помал модел кој се однесува слично и често е постабилен од екстремната квантизација ( Дестилирање на знаењето во невронска мрежа ).

Несовршена метафора: дестилацијата е како да се истури комплицирана супа низ филтер и да се добие… помала супа. Супата не функционира така, но ја сфаќате идејата 🍲.


9) Сервирање и инференција: Вистинската бојна зона 🧯

Можете да „оптимизирате“ модел, а сепак да го прикажувате лошо. Сервирањето е местото каде што латенцијата и трошоците стануваат реални.

Сервирањето победи е важно

  • Групирањето
    го подобрува протокот. Но, ја зголемува латенцијата ако претерате. Избалансирајте го. ( Тритон динамичко групирање )

  • Кеширање.
    Кеширањето на брзата содржина и повторната употреба на KV-кешот можат да бидат огромни за повторени контексти. ( објаснување на KV кешот )

  • Корисниците
    сметаат дека е побрзо дури и ако вкупното време е слично. Перцепцијата е важна 🙂.

  • Намалување на режиските трошоци за токен по токен.
    Некои стекови вршат дополнителна работа по токен. Намалете ги тие режиски трошоци и добивате голема добивка.

Внимавајте на латенцијата на опашката

Вашиот просек може да изгледа одлично, додека вашиот p99 е катастрофа. За жал, корисниците живеат во опашката. ( „Латенција на опашката“ и зошто просеците лажат )


10) Оптимизација свесна за хардверот: Усогласете го моделот со машината 🧰🖥️

Оптимизирањето без познавање на хардверот е како штимување тркачки автомобил без проверка на гумите. Секако, можете да го направите тоа, но малку е глупаво.

Размислувања за графичкиот процесор

  • Пропусниот опсег на меморијата е често ограничувачки фактор, а не суровото пресметување

  • Поголемите серии можат да помогнат, сè додека не престанат

  • Фузијата на јадрото и оптимизациите на вниманието се огромни за трансформаторите ( FlashAttention: точно внимание свесно за IO )

Размислувања за процесорот

  • Нишкањето, векторизацијата и локалитетот на меморијата се многу важни

  • Трошоците за токенизација можат да доминираат ( 🤗 „Брзи“ токенизери )

  • Можеби ќе ви бидат потребни различни стратегии за квантизација отколку на графичкиот процесор

Размислувања за Edge / Mobile

  • Меморискиот отпечаток станува приоритет број еден

  • Варијацијата на латенцијата е важна бидејќи уредите се… нерасположени

  • Помалите, специјализирани модели честопати ги победуваат големите општи модели


11) Квалитетни заштитни огради: Не се „оптимизирајте“ во грешка 🧪

Секоја победа во брзина треба да доаѓа со проверка на квалитетот. Во спротивно, ќе славите, ќе испраќате, а потоа ќе добиете порака како „зошто асистентот одеднаш зборува како пират?“ 🏴☠️

Прагматични заштитни огради:

  • Златни инструкции (фиксен сет на инструкции што секогаш ги тестирате)

  • Метрики на задачите (точност, F1, BLEU, што и да одговара)

  • Човечки проверки на лице место (да, сериозно)

  • Прагови на регресија („дозволено е опаѓање од не повеќе од X%“)

Исто така, следете ги режимите на дефекти:

  • отстапување од форматирањето

  • промени во однесувањето на одбивање

  • фреквенција на халуцинации

  • инфлација на должината на одговорот

Оптимизацијата може да го промени однесувањето на изненадувачки начини. Чудно. Иритирачки. Предвидливо, гледано од денешна перспектива.


12) Контролна листа: Како да се оптимизираат моделите со вештачка интелигенција чекор по чекор ✅🤖

Ако сакате јасен редослед на операции за „ Како да се оптимизираат моделите со вештачка интелигенција“ , еве го работниот тек што има тенденција да ги одржува луѓето нормални:

  1. Дефинирајте успех
    Изберете 1-2 примарни метрики (латентност, цена, пропусност, квалитет).

  2. Мерење на
    реални работни оптоварувања на основниот профил, евидентирање на p50/p95, меморија, трошоци. ( PyTorch Profiler )

  3. Поправка на тесните грла во цевководот.
    Вчитување на податоци, токенизација, претходна обработка, групирање.

  4. Примена на добивки во пресметките со низок ризик.
    Мешана прецизност, оптимизации на јадрото, подобро групирање.

  5. Пробајте оптимизации за компајлер/извршување.
    Снимање на графикони, извршување на инференции, фузија на оператори. ( туторијал за torch.compile , документи за ONNX Runtime )

  6. Намалете ги трошоците за моделот.
    Внимателно квантизирајте, дестилирајте ако можете, а доколку е соодветно, кастрете.

  7. Подесување на сервисирање
    Кеширање, истовременост, тестирање на оптоварување, поправки на латентност на опашката.

  8. Потврдете го квалитетот.
    Извршете регресивни тестови и споредете ги резултатите еден до друг.

  9. Итерирајте
    Мали промени, јасни белешки, повторувајте. Непривлечно - ефикасно.

И да, ова е сè уште Како да се оптимизираат моделите со вештачка интелигенција, дури и ако повеќе звучи како „Како да се спречи газењето по гребла“. Истото.


13) Чести грешки (за да не ги повторувате како сите нас) 🙃

  • Оптимизирање пред мерење
    Ќе губите време. А потоа самоуверено ќе ја оптимизирате погрешната работа…

  • Бркање на еден единствен репер
    Реперните вредности лажат поради изоставување. Вашето работно оптоварување е вистината.

  • Игнорирање на меморијата
    Проблемите со меморијата предизвикуваат забавувања, падови и треперење. ( Разбирање на употребата на CUDA меморијата во PyTorch )

  • Прерано прекумерно квантизирање.
    Нискобитното квантирање може да биде неверојатно, но прво започнете со побезбедни чекори.

  • Нема план за враќање на претходната состојба.
    Ако не можете брзо да се вратите на претходната состојба, секое распоредување станува стресно. Стресот создава грешки.


Заклучоци: Човечкиот начин за оптимизација 😌⚡

„Како да се оптимизираат моделите со вештачка интелигенција“ не е еден трик. Тоа е повеќеслоен процес: мерење, поправување на цевководот, користење компајлери и време на извршување, прилагодување на сервисирањето, потоа намалување на моделот со квантизација или дестилација доколку е потребно. Правете го тоа чекор по чекор, одржувајте квалитетни заштитни огради и не верувајте во „се чувствува побрзо“ како метрика (вашите чувства се прекрасни, вашите чувства не се профилер).

Ако сакате најкраткото јадење за носење:

  • Прво измери 🔍

  • Оптимизирај го цевководот следно 🧵

  • Потоа оптимизирајте го моделот 🧠

  • Потоа оптимизирајте го сервирањето 🏗️

  • Секогаш проверувајте го квалитетот ✅

И ако помага, потсетете се: целта не е „совршен модел“. Целта е модел кој е доволно брз, достапен и сигурен за да можете да спиете ноќе… повеќето ноќи 😴.

Најчесто поставувани прашања

Што значи оптимизирање на модел на вештачка интелигенција во пракса

„Оптимизирање“ обично значи подобрување на едно примарно ограничување: латентност, цена, мемориски отпечаток, точност, стабилност или проток на сервисирање. Тешкиот дел се компромисите - поместувањето на една област може да влијае негативно на друга. Практичен пристап е да се избере јасна цел (како латентност на p95 или време до постигнување квалитет) и да се оптимизира кон неа. Без цел, лесно е да се „подобри“, а сепак да се изгуби.

Како да се оптимизираат моделите со вештачка интелигенција без тивко да се намали квалитетот

Третирајте ја секоја промена на брзината или цената како потенцијална тивка регресија. Користете заштитни огради како што се златни инструкции, метрики за задачи и брзи човечки проверки. Поставете јасен праг за прифатливо отстапување од квалитетот и споредете ги резултатите еден до друг. Ова го спречува „побрзо е“ да се претвори во „зошто одеднаш стана чудно во производството?“ откако ќе го испратите.

Што да измерите пред да започнете со оптимизација

Започнете со проценти на латентност (p50, p95, p99), пропусен опсег (токени/сек или барања/сек), искористеност на графичката картичка и врвен VRAM/RAM. Следете ја цената по инференција или по 1.000 токени ако цената е ограничување. Направете профил на вистинско сценарио што го прикажувате, а не играчка-потсетник. Водењето мал „дневник за перформанси“ ви помага да избегнете нагаѓање и повторување на грешките.

Брзи победи со низок ризик за перформанси на тренинг

Мешаната прецизност (FP16/BF16) е често најбрзата прва лост, но внимавајте на нумеричките необичности. Ако големината на серијата е ограничена, акумулацијата на градиент може да ја стабилизира оптимизацијата без да ја троши меморијата. Градиентното контролно поставување ја заменува дополнителната пресметка за помала меморија, овозможувајќи поголеми контексти. Не ја игнорирајте токенизацијата и подесувањето на вчитувачот на податоци - тие можат тивко да го исцрпат графичкиот процесор.

Кога да се користи torch.compile, ONNX Runtime или TensorRT

Овие алатки се насочени кон оперативни оптоварувања: снимање графикони, фузија на јадро и оптимизации на графикони за време на извршување. Тие можат да испорачаат чисти забрзувања на инференцијата, но резултатите варираат во зависност од обликот на моделот и хардверот. Некои поставувања се чувствуваат како магија; други едвај се движат. Очекувајте чувствителност на промени во обликот и повремени „гремлин“ грешки - мерете пред и потоа на вашето вистинско работно оптоварување.

Дали квантизацијата вреди и како да се избегне претерување

Квантизацијата може да ја намали меморијата и да го забрза инференцијата, особено со INT8, но квалитетот може да се намали во екстремни случаи. Опциите со пониски битови (како INT4/k-бит) носат поголеми заштеди со поголем ризик. Најбезбедната навика е да се оценува на вистински тест сет и да се споредуваат излезите, а не интуицијата. Прво започнете со побезбедни чекори, а потоа одете со помала прецизност само доколку е потребно.

Разликата помеѓу кастрење и дестилација за намалување на големината на моделот

Кастрењето ги отстранува параметрите на „мртва тежина“ и честопати е потребна преквалификација за да се врати квалитетот, особено кога се прави агресивно. Дестилацијата го обучува помалиот модел на ученик да го имитира однесувањето на поголем наставник, а може да биде посилен долгорочен поврат на инвестицијата од екстремната квантизација. Ако сакате помал модел кој се однесува слично и останува стабилен, дестилацијата е често почистиот пат.

Како да се намалат трошоците за инференција и латенцијата преку подобрувања на сервисирањето

Сервирањето е местото каде што оптимизацијата станува опиплива: групирањето го зголемува протокот, но може да ја намали латенцијата ако се претера, затоа внимателно прилагодете го. Кеширањето (брзо кеширање и повторна употреба на KV-кешот) може да биде масивно кога контекстите се повторуваат. Излезот од стриминг ја подобрува перцепираната брзина дури и ако вкупното време е слично. Исто така, внимавајте на оптоварувањето од токен по токен во вашиот стек - малата работа по токен брзо се собира.

Зошто латенцијата на опашката е толку важна при оптимизирање на моделите на вештачка интелигенција

Просеците можат да изгледаат одлично, додека p99 е катастрофа, а корисниците имаат тенденција да живеат во опашката. Латенцијата на опашката често доаѓа од треперење: фрагментација на меморијата, скокови во претходната обработка на процесорот, забавување на токенизацијата или лошо однесување при групирање. Затоа упатството нагласува процентили и реални работни оптоварувања. Ако го оптимизирате само p50, сепак можете да испорачате искуство кое „случајно се чувствува бавно“

Референци

  1. Amazon Web Services (AWS) - перцентили на AWS CloudWatch (дефиниции за статистика) - docs.aws.amazon.com

  2. Google - Опашката на размер (најдобра практика за латентност на опашката) - sre.google

  3. Google - Цели на ниво на услуга (SRE Book) - перцентили на латентност - sre.google

  4. PyTorch - torch.compile - docs.pytorch.org

  5. PyTorch - FullyShardedDataParallel (FSDP) - docs.pytorch.org

  6. PyTorch - PyTorch Profiler - docs.pytorch.org

  7. PyTorch - CUDA семантика: управување со меморијата (белешки за CUDA алокатор на меморија) - docs.pytorch.org

  8. PyTorch - Автоматска мешана прецизност (torch.amp / AMP) - docs.pytorch.org

  9. PyTorch - torch.utils.checkpoint - docs.pytorch.org

  10. PyTorch - Водич за подесување на перформансите - docs.pytorch.org

  11. PyTorch - Упатство за кастрење - docs.pytorch.org

  12. PyTorch - Разбирање на употребата на CUDA меморијата во PyTorch - docs.pytorch.org

  13. PyTorch - упатство / преглед за torch.compile - docs.pytorch.org

  14. ONNX Runtime - Документација за ONNX Runtime - onnxruntime.ai

  15. NVIDIA - TensorRT документација - docs.nvidia.com

  16. NVIDIA - TensorRT квантизирани типови - docs.nvidia.com

  17. NVIDIA - Nsight Systems - developer.nvidia.com

  18. NVIDIA - Triton Inference Server - динамичко групирање - docs.nvidia.com

  19. DeepSpeed ​​- документација за ZeRO Stage 3 - deepspeed.readthedocs.io

  20. bitsandbytes (fondation-bitsandbytes) - bitsandbytes - github.com

  21. Гушкање на лице - Забрзување: Водич за акумулација на градиент - huggingface.co

  22. Гушкачко лице - Документација за токенизери - huggingface.co

  23. Гушкачко лице - Трансформери: PEFT водич - huggingface.co

  24. Гушкачко лице - објаснување за Трансформерс: KV кеш - huggingface.co

  25. Гушкачко лице - Трансформери: „Брзи“ токенизери (класи за токенизери) - huggingface.co

  26. arXiv - Дестилирање на знаењето во невронска мрежа (Hinton et al., 2015) - arxiv.org

  27. arXiv - LoRA: Нискорангирана адаптација на големи јазични модели - arxiv.org

  28. arXiv - FlashAttention: Брзо и ефикасно меморирање, прецизно внимание со IO-Awareness - arxiv.org

Пронајдете ја најновата вештачка интелигенција во официјалната продавница за асистенти за вештачка интелигенција

За нас

Назад кон блогот