в качестве упражнения решила пройтись по принятым статьям на недавно прошедшей конфе NAACL и выделить интересные работы по тематикам, которые на данный момент мне близки
💼 и первое, о чем поговорим, - ускорение инференса ллм через декодинг. сюда можно причислить ранние выходы из генерации, генерацию сразу нескольких токенов, но центральную часть займет спекулятивное декодирование
о нем уже
писал Илья Гусев, но если хочется подробнее и в видео формате, то могу посоветовать такой
обобщенный разбор статей от DeepMind и Google по этой теме. а если совсем кратко и текстом, то идея спекулятивного декодирования заключается в том, чтобы ускорять инференс больших языковых моделей, предлагая кандидатов генераций от более маленьких моделек, с условием такой же токенизации и работой быстрее, чем генерация большой модели. она в свою очередь за один проход подсчитывает вероятности предложенных токенов и принимает/отвергает их
😱 в первом случае мы ускоряем инференс на m токенов (сколько большая модель подтвердила), а во втором ничего особо и не теряем, просто продолжаем семплить из большой модели. наверняка вы слышали про
Medusa, в ней отказались от маленькой модели, а стали обучать дополнительные головы для генерации. следующим крутым развитием становится multi-token prediction, подробнее об этом
писала Милана. теперь, посмотрим, что интересного предлагают на А-конференции
😎 REST: Retrieval-Based Speculative Decoding
а что если нам не нужна маленькая модель для генерации кандидатов и можно, например, использовать готовую базу и подкидывать токены по контексту из нее? простая и быстрая в имплементации идея (код есть, ничего дообучать не надо). тестировали алгоритм на моделях CodeLLama и Vicuna, результаты very promising, speed up относительно обычной генерации в лучшем случае 2.36. идем пробовать. собственно, это единственная статья из категории long paper, далее будут findings и industrial track без кода, но с большими амбициями
статьякод😎 SLiM: Speculative Decoding with Hypothesis Reduction
авторы статьи плотно взялись за ваши флопсы во время того самого спекулятивного декодинга. говорят, что новые методы предлагают генерацию большого количества гипотез, а обрабатываются они неэффективно. для этого после фазы спекуляции, они предлагают добавить еще одну, которая бы заранее оценила гипотезы и взяла в оборот лучшие k на основе постериарного распределения
статья😎 Investigating Acceleration of LLaMA Inference by Enabling Intermediate Layer Decoding via Instruction Tuning with ‘LITE’
early exit’s going decoders. вообще, там описано интересное замечание о том, что генеративные модели обученные на инструкциях способны “выдавать” правильный токен только на последнем слое, до этого совсем никак. для того, чтобы это стало возможным они предлагают обучать ллм на инструкциях с видоизмененной кросс энтропией. выходить предлагают на фиксированном слое, от его выбора будет зависеть и ускорение, и деградация в качестве ответов
статья😎 Lossless Acceleration of Large Language Model via Adaptive N-gram Parallel Decodingработа очень похожа на самую первую, такой же plug-and-play подход, то есть не нужно дообучать модель. отличие заключается в том, что тут нет заранее записанной базы, она строится на основе текущего промпта и инпута (выводы сделаны на основе приложенного псевдокода). у метода есть свой пустой репозиторий, но опять же, судя по приложенному коду в статье (и это даже не в аппендиксе!), когда он там появится, можно будет легко потестировать, добавив всего две строчки кода
статьяsoon to be codeесли вас заинтересовала тема спекулятивного декодинга, подробнее ее можно изучить с этим
awesome листом. относительно конференции скажу, что статей по теме не густо, но есть еще ряд интересных работ про декодирование в контексте борьбы с галлюцинациями, может до них дойду тоже
😋