Exploraciones de algunas técnicas recientes en torno a la decodificación especulativa.
También tengo algunas ideas propias que intentaré compartir en este repositorio, si funcionan. El objetivo es utilizarlo inicialmente para acelerar el decodificador de texto a semántico en Spear-TTS.
en el esquema de salida temprana, almacene en caché la capa oculta durante la decodificación de especificaciones, ya que los modelos pequeños y grandes comparten las mismas primeras capas
para una salida temprana, permita una cabeza de bloque de transformador adicional (separada del vástago del transformador principal)
descubrir la decodificación de especificaciones por lotes: diferentes filas pueden avanzar a diferentes velocidades
optimizar aún más la decodificación de especificaciones por lotes, ya que se pierde algo de rendimiento de toda la indexación; parece que se necesitará algo de trabajo para que esta técnica sea realmente utilizable
hacer que la decodificación de especificaciones por lotes funcione con una estrategia de salida anticipada
Muestreo especulativo completo con la idea del transformador profeta: ¡parece funcionar bien! ?
obtenga algunos gráficos de wandb y vea cómo se compara el profeta con la estrategia de salida temprana, compártalos en el repositorio
También realice experimentos para ver si el transformador profeta aporta algún beneficio a la pérdida del modelo principal. El artículo original del profeta solo hizo una proyección lineal simple.
para una estrategia de salida temprana, intente sumar aleatoriamente la última incrustación almacenada en caché en el mismo modelo (reciclaje al estilo alphafold2), recorte aleatoriamente a lo largo de la longitud de la secuencia y entrene la pérdida de salida temprana de esta manera. ver si se puede mejorar la gamma de esta manera
dedicar una mañana a las microoptimizaciones
@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} } ,
}