Explorações de algumas técnicas recentes em torno da decodificação especulativa
Também tenho algumas ideias próprias que tentarei compartilhar neste repositório, se funcionarem. O objetivo é usá-lo inicialmente para acelerar o decodificador de texto para semântico no Spear-TTS
no esquema de saída antecipada, armazena em cache a camada oculta durante a decodificação de especificações, já que modelos pequenos e grandes compartilham as mesmas primeiras camadas
para saída antecipada, permita uma cabeça extra do bloco do transformador (separada da haste do transformador principal)
descobrir a decodificação de especificações em lote - linhas diferentes podem avançar em taxas diferentes
otimizar ainda mais a decodificação de especificações em lote, pois perde algum desempenho de toda a indexação - parece que será necessário algum trabalho para que esta técnica seja realmente utilizável
fazer com que a decodificação de especificações em lote funcione com estratégia de saída antecipada
amostragem especulativa completa com a ideia do transformador profeta - parece funcionar bem! ?
obtenha alguns gráficos wandb e veja como o profeta se compara à estratégia de saída antecipada, compartilhe no repositório
também execute experimentos para ver se o transformador profeta traz algum benefício para a perda do modelo principal. o artigo original do profeta fez apenas uma projeção linear simples
para estratégia de saída antecipada, tente somar aleatoriamente a última incorporação em cache de volta ao mesmo modelo (a la reciclagem alphafold2), cortada aleatoriamente ao longo do comprimento da sequência e treinar a perda de saída antecipada dessa maneira. veja se é possível melhorar o gama desta forma
dedique uma manhã às microotimizações
@inproceedings { Leviathan2022FastIF ,
title = { Fast Inference from Transformers via Speculative Decoding } ,
author = { Yaniv Leviathan and Matan Kalman and Y. Matias } ,
booktitle = { International Conference on Machine Learning } ,
year = { 2022 } ,
url = { https://api.semanticscholar.org/CorpusID:254096365 }
}
@inproceedings { sun2023spectr ,
title = { SpecTr: Fast Speculative Decoding via Optimal Transport } ,
author = { Ziteng Sun and Ananda Theertha Suresh and Jae Hun Ro and Ahmad Beirami and Himanshu Jain and Felix Yu and Michael Riley and Sanjiv Kumar } ,
booktitle = { Workshop on Efficient Systems for Foundation Models @ ICML2023 } ,
year = { 2023 } ,
url = { https://openreview.net/forum?id=d0mGsaheuT }
}
@article { Chen2023AcceleratingLL ,
title = { Accelerating Large Language Model Decoding with Speculative Sampling } ,
author = { Charlie Chen and Sebastian Borgeaud and Geoffrey Irving and Jean-Baptiste Lespiau and L. Sifre and John M. Jumper } ,
journal = { ArXiv } ,
year = { 2023 } ,
volume = { abs/2302.01318 } ,
url = { https://api.semanticscholar.org/CorpusID:256503945 }
}
@article { Yan2020ProphetNetPF ,
title = { ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training } ,
author = { Yu Yan and Weizhen Qi and Yeyun Gong and Dayiheng Liu and Nan Duan and Jiusheng Chen and Ruofei Zhang and Ming Zhou } ,
journal = { ArXiv } ,
year = { 2020 } ,
volume = { abs/2001.04063 } ,
url = { https://api.semanticscholar.org/CorpusID:210164665 }
}
@article { Zhang2023DraftV ,
title = { Draft & Verify: Lossless Large Language Model Acceleration via Self-Speculative Decoding } ,
author = { Jinchao Zhang and Jue Wang and Huan Li and Lidan Shou and Ke Chen and Gang Chen and Sharad Mehrotra } ,
journal = { ArXiv } ,
year = { 2023 } ,
volume = { abs/2309.08168 } ,
url = { https://api.semanticscholar.org/CorpusID:262013673 }
}
@misc { medusa ,
author = { Tianle Cai and Yuhong Li and Zhengyang Geng and Hongwu Peng and Tri Dao } ,
title = { Medusa: Simple Framework for Accelerating LLM Generation with Multiple Decoding Heads } ,
year = { 2023 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/FasterDecoding/Medusa} } ,
}