Moteur d'inférence PAI BladeLLM : contexte ultra long, performances supérieures

BladeLLM est un moteur d'inférence de grands modèles fourni par la plateforme Alibaba Cloud PAI. Il s'engage à permettre aux utilisateurs de déployer facilement des services de grands modèles de langage hautes performances et à faible coût. BladeLLM a procédé à une optimisation approfondie des performances et à une optimisation de l'ingénierie sur l'ensemble du lien entre l'inférence et les services LLM afin de garantir que les différents modèles atteignent des performances optimales en termes de coûts sur différents appareils.

En plus de l'optimisation extrême des performances sous des longueurs de contexte conventionnelles, BladeLLM dépasse également la limite de longueur de contexte des systèmes de raisonnement LLM existants et peut prendre en charge des longueurs d'entrée et de génération de texte plus longues, permettant à LLM de débloquer davantage de scénarios d'application. dans un contexte ultra-long et présente des avantages de performances significatifs par rapport aux autres systèmes de services d'inférence LLM.

Cet article présente principalement les avantages de BladeLLM dans les contextes ultra-longs, y compris la longueur maximale du contexte prise en charge et les performances de raisonnement des contextes ultra-longs.

arrière-plan

Le contexte ultra-long est une tendance inévitable dans le développement du LLM

La capacité de raisonnement contextuel ultra-long est l'une des capacités émergentes importantes de LLM. Cette capacité a donné naissance à une série de scénarios d'application avec une valeur potentielle énorme, notamment des robots de discussion personnalisés (Character.AI), des outils de création littéraire (Jasper) et des résumés d'articles. Outils (ChatPaper), etc. Les chatbots personnalisés continueront d'interagir avec les utilisateurs et de leur fournir une aide dans le travail, les émotions, l'apprentissage et d'autres aspects. LLM mémorisera le contenu complet du chat pendant le processus de communication et la longueur de saisie du modèle augmentera progressivement, formant une séquence de texte de saisie ultra-longue après plusieurs interactions. Les outils de création littéraire utilisent la capacité de LLM à générer par lots des textes longs, tels que des romans, des histoires. , et des scripts. Par rapport au processus de création manuel traditionnel, les outils de création littéraire LLM peuvent générer un grand nombre d'arrière-plans, d'intrigues et de dialogues en peu de temps, améliorant considérablement l'efficacité créative des écrivains et scénaristes tout en offrant aux lecteurs un matériel de lecture plus riche et plus diversifié. La capacité de raisonnement contextuelle ultra-longue issue du LLM est considérée comme la seule voie vers l'AGI. L'importance de cette capacité se reflète principalement dans les aspects suivants :

  1. Explorez davantage de scénarios d'application : la prise en charge de la génération de texte ultra-long permet d'appliquer le LLM à davantage de scénarios d'application, tels que des chatbots personnalisés, la génération de romans, de documents techniques, d'articles universitaires, etc. Ces scénarios d'application nécessitent généralement la génération d'un contenu textuel plus long.
  2. Générer un texte plus cohérent sur le plan contextuel : l'objectif de LLM est de générer un texte en langage naturel pertinent pour un contexte donné. Lorsque la limite de séquence de génération est courte, cela peut conduire à une cohérence insuffisante entre le texte généré et le contexte, affectant la qualité du texte généré. LLM prend en charge la génération de texte ultra-long, ce qui permet de mieux maintenir l'intégrité du contexte et de rendre le texte généré plus cohérent, améliorant ainsi la qualité du texte généré.
  3. Améliorer la diversité du texte généré : des séquences générées plus longues peuvent fournir plus d'espace pour explorer différentes possibilités de texte, améliorant ainsi la diversité du texte généré. LLM prend en charge la génération de texte ultra-long, qui peut mieux capturer les changements subtils de contexte et générer un contenu textuel plus diversifié et plus riche.

Avec la propagation des scénarios d'application associés, des modèles prenant en charge des contextes ultra-longs émergent les uns après les autres, notamment MPT StoryWriter qui prend en charge le contexte 84K, Claude 2 avec un contexte de 200K, LongLLaMA avec un contexte de 256K, etc. (voir la figure ci-dessous). Au niveau système, même si certains frameworks (comme DeepSpeed) supportent et optimisent déjà les contextes ultra-longs, ils restent concentrés sur la phase de formation. Au stade de l'inférence, les cadres populaires sont tous confrontés au problème que les entrées et sorties ultra longues ne peuvent pas fonctionner ou fonctionnent de manière inefficace.On peut dire que l'entrée et la sortie de textes ultra longs posent de nouveaux défis aux moteurs d'inférence de grands modèles.

Le défi des contextes très longs

Tout d'abord, les moteurs d'inférence LLM existants sont difficiles à répondre aux besoins des grands modèles de traitement d'informations contextuelles ultra longues. La configuration des ressources de stockage et la conception des opérateurs informatiques dans ces systèmes limiteront considérablement la longueur maximale d'entrée et de sortie du modèle. Par conséquent, la prise en charge du contexte à grande échelle nécessite des stratégies de stockage et de calcul plus efficaces ; de plus, des informations contextuelles plus longues entraînent une augmentation spectaculaire du temps d'inférence, entraînant une augmentation des coûts et une diminution de l'expérience utilisateur. Ce problème est particulièrement évident dans le LLM existant. moteur d'inférence. . La principale raison de l'augmentation du temps de raisonnement est le mécanisme d'attention de LLM, qui doit calculer l'importance relative entre chaque jeton et les autres jetons. À mesure que la longueur du contexte augmente, le calcul de l'attention doit traiter plus de jetons, ce qui entraîne un temps de calcul plus long. . , une méthode de calcul de l'attention plus rapide et plus efficace est donc la clé pour accélérer la génération de texte ultra-long LLM.

En prenant le modèle HuggingFace Llama2-13B comme exemple, à mesure que la longueur du contexte augmente, le temps de génération d'un jeton augmente considérablement. La tendance de croissance spécifique est illustrée dans la figure ci-dessous. Lorsque la longueur du contexte est de 34 Ko, le temps nécessaire au modèle open source HuggingFace pour générer un jeton est 3,5 fois plus long que lorsque la longueur du contexte est de 1 Ko.

Solutions techniques

Voici le schéma d'architecture technique du moteur d'inférence BladeLLM, qui contient de nombreux composants de base. Cet article présente principalement RaggedAttention et AutoTuner basé sur DNN.

RaggedAttention

Récemment, il y a eu deux travaux influents sur le calcul de l'attention multi-têtes du Transformer, à savoir FlashAttention et PagedAttention, qui ont eu un impact profond sur le paradigme de conception des systèmes de formation et d'inférence LLM.

PagedAttention s'inspire des idées de mémoire virtuelle et de pagination dans le système d'exploitation, et stocke les clés et les valeurs continues dans un espace de mémoire vidéo discontinu. PagedAttention divise le cache kv de chaque séquence en blocs, et chaque bloc contient les clés et les valeurs ​​d'un nombre fixe de jetons. Étant donné que ces blocs ne doivent pas nécessairement être consécutifs dans la mémoire vidéo, la fragmentation de la mémoire vidéo est considérablement réduite et il n'est pas nécessaire de réserver une grande quantité de mémoire vidéo à l'avance pour chaque séquence, de sorte que les précieuses ressources de la mémoire vidéo soient pleinement utilisées. L'utilisation ultime de la mémoire combinée au traitement par lots contigus améliore considérablement le débit du service d'inférence LLM. En conséquence, cela présente également un inconvénient : les blocs de mémoire vidéo discontinus affectent dans une certaine mesure l'efficacité de l'accès à la mémoire du noyau, affectant ainsi les performances.

Bien que le problème à résoudre par RaggedAttention développé par BladeLLM au cours de la même période soit similaire à celui de PagedAttention, il existe certaines différences dans les méthodes de mise en œuvre. Plus précisément, il existe différents compromis entre les performances du noyau et l'utilisation de la mémoire vidéo.

Le nom RaggedAttention est inspiré de RaggedTensor dans le framework Tensorflow. Ragged signifie irrégulier, ce qui signifie que le cache kv de RaggedAttention n'est pas un Tensor régulier, mais permet à la longueur de chaque séquence d'être différente, afin qu'elle puisse coopérer efficacement avec Contiguous Batching pour améliorer le débit du système. Cependant, contrairement à PagedAttention, RaggedAttention garantit que le cache de clé et de valeur de la même séquence est stocké en continu, ce qui peut améliorer l'efficacité de l'accès à la mémoire du noyau et ainsi améliorer les performances. De même, le stockage continu entraînera certains problèmes de fragmentation de la mémoire vidéo et de réservation de la mémoire vidéo, affectant ainsi l'utilisation de la mémoire vidéo. Il s'agit d'un compromis d'ingénierie typique, et il n'y a pas de réponse standard, car différents ratios de puissance de calcul et de mémoire, différentes longueurs d'entrée et de sortie, et même différentes exigences commerciales en matière de retard entraîneront des différences dans les goulots d'étranglement du système. En tant que plate-forme d'IA, BladeLLM s'engage à trouver de manière automatisée la configuration la plus adaptée à différents modèles, différents appareils, différentes charges de travail et différents scénarios commerciaux.

Par exemple, pour des longueurs de contexte qui varient considérablement, avec l'aide d'AutoTuner, qui sera présenté dans la section suivante, RaggedAttention peut maintenir un calcul et un accès mémoire efficaces sous différentes longueurs de contexte. Nous avons mesuré que la longueur du contexte change de 1 à 512 000, et RaggedAttention peuvent obtenir des performances ultimes. 

AutoTuner basé sur DNN

L'inférence LLM est un scénario typique de forme dynamique forte. Non seulement la dimension de la taille du lot changera dynamiquement, mais la dimension de la longueur de la séquence changera également de manière encore plus spectaculaire. L'une des principales méthodes pour atteindre les performances ultimes du noyau dans le scénario de forme dynamique consiste à effectuer un réglage en fonction de la taille d'exécution réelle, c'est-à-dire que pour chaque ensemble spécifique de tailles d'entrée, le meilleur calendrier est sélectionné via l'exécution et la mesure réelles. Les travaux utilisant cette méthode incluent AutoTVM, Ansor et al. Bien que cette méthode puisse atteindre des performances extrêmes, elle pose le problème d'une surcharge de réglage élevée. En particulier, les résultats du réglage ne peuvent être appliqués qu'à une forme spécifique, ce qui est très peu convivial pour les scénarios de forme dynamique : si toutes les formes possibles sont réglées à l'avance hors ligne, Le temps de réglage et les ressources informatiques nécessaires sont très énormes ; si chaque nouvel ensemble de formes est réglé en ligne en temps réel, cela entraînera de graves perturbations des performances en ligne.

En réponse aux problèmes ci-dessus, BladeLLM utilise AutoTuner basé sur DNN, qui s'appuie entièrement sur les résultats prédits par le modèle DNN sans réellement exécuter de mesures pour sélectionner le meilleur calendrier. Nous avons fait beaucoup de travail dans la collecte de données de formation, la structure du modèle , extraction de fonctionnalités, conception de fonctions de perte, etc. Explorez et essayez d'améliorer continuellement la précision de prédiction du modèle DNN. Actuellement, les performances moyennes des opérateurs gourmands en calcul GPU basés sur l'AutoTuner basé sur DNN atteignent 99,39 % des performances de réglage basées sur sur des mesures de course réelles.

Après avoir résolu le problème de la précision des prédictions, la réduction du temps d'exécution et des ressources informatiques occupées par le modèle de prédiction DNN est devenue un défi clé pour que cette technologie soit appliquée à des scénarios de raisonnement en ligne en temps réel. L'utilisation directe de frameworks et de moteurs existants (tels que PyTorch, TorchScript, OnnxRuntime, etc.) pour créer des modèles de prédiction ne peut pas répondre aux besoins élevés en temps réel du service. Grâce à l'optimisation conjointe du système de modèles, nous avons réduit la prédiction du modèle AutoTuner DNN délai à 2us. Optimisation ultime du système Par rapport aux modèles construits avec PyTorch, TorchScript et OnnxRuntime, les performances du modèle de prédiction sont améliorées respectivement de 36 fois, 19,5 fois et 4,3 fois (voir la figure ci-dessous), et les ressources système occupées par le processus d'inférence sont extrêmement faibles. Le modèle de prédiction n'utilise qu'un seul cœur de processeur. Des ressources non GPU pour garantir qu'il n'y a pas d'interférence avec les performances du modèle GPU du service lui-même. En raison d'une faible latence de prédiction de l'ordre de la microseconde et d'une précision de prédiction de plus de 99 %, AutoTuner est non seulement utilisé dans les services d'inférence en ligne LLM, mais sert également avec succès les scénarios commerciaux Dynamic Shape, notamment la promotion de la recherche, la reconnaissance vocale, la diffusion stable et d'autres scénarios commerciaux Dynamic Shape. .

Résultats comparatifs

Nous prenons comme exemples la longueur maximale de génération de texte et le temps de génération correspondant pour comparer la longueur maximale de contexte prise en charge et les performances correspondantes des différents systèmes de raisonnement LLM. Les résultats sont les suivants :

  • lmDeploy (basé sur FasterTransformer) se bloquera après avoir généré une longueur supérieure à 10 Ko
  • vLLM obtient une erreur d'adresse illégale après que la longueur de génération dépasse 12 Ko
  • Les MOO du modèle de lama original de Huggingface après que la longueur générée dépasse 34 Ko
  • La longueur maximale de génération de LightLLM (67K) est proche de celle de BladeLLM (70K), mais le temps requis est 3 fois supérieur à celui de BladeLLM.

Remarque : Afin de rendre la comparaison équitable, les résultats ci-dessus sont basés sur les mesures de poids fp16 et de cache kv fp16. BladeLLM prend désormais en charge la quantification du cache kv, ce qui peut encore augmenter la longueur de contexte maximale prise en charge d'une seule carte à 280 Ko ; tout ce qui précède les mesures ne sont pas spéculatives. Échantillonnage ; les mesures ci-dessus ont été achevées en août. Actuellement, les moteurs d’inférence LLM dans l’industrie se développent encore rapidement. Nous attendons avec impatience les comparaisons de résultats mises à jour. Dans le même temps, le développement d’une nouvelle version de BladeLLM qui prend en charge un contexte plus long et des performances plus élevées sont également en voie d'achèvement. Avec le nouveau, nous continuerons à partager les résultats avec vous.

Résumer

Le contexte ultra-long est une tendance inévitable dans le développement du LLM. Cependant, la longueur du contexte prise en charge par les moteurs d'inférence et de service LLM actuels et les performances de raisonnement du contexte ultra-long sont loin d'être suffisantes. prise en charge du contexte ultra-long et du contexte ultra-long.Performance de raisonnement en contexte long, tout le monde est invité à communiquer et à discuter. De plus, en plus de se concentrer sur des scénarios de contexte ultra-longs, BladeLLM continuera également à se concentrer sur plusieurs directions techniques de raisonnement, notamment la compression de quantification à bits faibles, le dialogue à plusieurs tours, l'optimisation extrême du noyau, l'optimisation de la compilation, etc. Nous aurons également plus de technologies à partager avec le monde extérieur à l'avenir. Ouvert au public, tout le monde est invité à continuer à y prêter attention !

Amende de 200 yuans et plus d'un million de yuans confisqués You Yuxi : L'importance des documents chinois de haute qualité Le serveur de migration hard-core de Musk Solon pour JDK 21, les fils virtuels sont incroyables ! ! ! Le contrôle de la congestion TCP sauve Internet Flutter pour OpenHarmony est là La période LTS du noyau Linux sera restaurée de 6 ans à 2 ans Go 1.22 corrigera l'erreur de variable de boucle for Google fête son 25e anniversaire Svelte a construit une "nouvelle roue" - runes
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/5583868/blog/10111879
conseillé
Classement