Explorations de certaines techniques récentes entourant le décodage spéculatif
J'ai également quelques idées personnelles que j'essaierai de partager dans ce référentiel, si elles fonctionnent. Le but est de l'utiliser dans un premier temps pour accélérer le décodeur texte-sémantique dans Spear-TTS
dans le schéma de sortie anticipée, met en cache la couche cachée pendant le décodage des spécifications, car les petits et grands modèles partagent les mêmes premières couches
pour une sortie anticipée, prévoyez une tête de bloc de transformateur supplémentaire (séparée de la tige principale du transformateur)
comprendre le décodage des spécifications par lots - différentes lignes peuvent avancer à des rythmes différents
optimiser davantage le décodage des spécifications par lots, en perdant certaines performances de toute l'indexation - il semble qu'il faudra un certain travail pour que cette technique soit réellement utilisable
faire fonctionner le décodage des spécifications par lots avec une stratégie de sortie anticipée
échantillonnage spéculatif complet avec l'idée du transformateur Prophète - semble bien fonctionner ! ?
obtenez des graphiques wandb et voyez comment Prophet se compare à la stratégie de sortie anticipée, partagez-les sur le référentiel
effectuez également des expériences pour voir si le transformateur Prophète apporte un avantage à la perte du modèle principal. le papier prophète original ne faisait qu'une simple projection linéaire
pour une stratégie de sortie anticipée, essayez de résumer aléatoirement la dernière intégration mise en cache dans le même modèle (recyclage à la alphafold2), recadrée de manière aléatoire le long de la longueur de la séquence, et entraînez la perte de sortie anticipée de cette façon. voir si on peut améliorer le gamma de cette façon
consacrer une matinée aux microoptimisations
@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} } ,
}