Déploiement des points de terminaison d'inférence LLM et optimisation de la sortie avec RAG

DEV - 26/09
Introduction Avec l'émergence de GenAI et des services qui lui sont associés tels que ChatGPT,...

Introduction

Avec l’émergence de GenAI et des services qui lui sont associés tels que ChatGPT, les entreprises ressentent la pression de sauter dans le train GenAI et de s’assurer qu’elles ne sont pas laissées pour compte dans la ruée vers l’adoption de l’IA.

L’adoption de l’IA a été un parcours semé d’embûches pour de nombreuses organisations en raison de la sous-estimation du temps, des efforts et des coûts généralement nécessaires pour mettre en production des LLM efficaces, fiables et robustes.

Ce blog passera par les étapes permettant d'opérationnaliser facilement les modèles LLM et de mettre en place des mesures pour garantir l'intégrité du modèle, ainsi que les éléments de base en matière de sécurité, de confidentialité et de conformité pour éviter les résultats tels que la toxicité, les hallucinations, etc. à l'aide de RAG (Retrieval-Augmented Generation). .

Déploiement LLM à Wallaroo

La taille des modèles LLM peut varier de quelques centaines de mégaoctets à plus de centaines de gigaoctets, nécessitant souvent des ressources GPU. Pour cette raison, il est important de configurer l'environnement de production LLM pour garantir le fonctionnement et les performances du modèle pour des éléments tels que la latence et la précision de sortie.

La pré-production pour le développement et les tests de modèles LLM permet de comprendre les exigences système nécessaires au déploiement en production pour des performances optimales. Par exemple, les modèles Standard Llama 3 8B ou Llama 3 70B auraient besoin d'au moins un GPU. Vous pouvez également profiter d'un LLM quantifié. Cela peut réduire la taille du LLM en ajustant la précision de leurs poids en mappant les valeurs sur un ensemble plus petit de valeurs discrètes. Cela contribue à rendre le modèle plus efficace en termes d'utilisation de la mémoire, de matériel CPU et de vitesse de calcul sans renoncer à la précision sur une tâche connue spécifique.

En dehors de cela, le déploiement de LLM vers des points de terminaison d'inférence dans Wallaroo est le même que pour tout autre cadre de modèle tel que les modèles CV, de prévision ou de Python arbitraire personnalisé.

Examinons le déploiement d'un LLM en production à l'aide du SDK Wallaroo et du processus suivant. Cet exemple exploite la bibliothèque llamacpp.

Par souci de concision, nous ignorerons les étapes d’importation et de téléchargement du modèle. Vous pouvez suivre le processus dans ce lien du didacticiel de déploiement LLM.

Déploiement LLM

Les LLM sont déployés via le SDK Wallaroo via le processus suivant :

  • Une fois le modèle téléchargé, obtenez la référence du modèle LLM auprès de Wallaroo.
  • Créez ou utilisez un pipeline Wallaroo existant et attribuez le LLM comme étape du modèle de pipeline.
  • Définissez la configuration du déploiement pour attribuer les ressources, notamment le nombre de processeurs, la quantité de RAM, etc. pour le déploiement LLM.
  • Déployez le LLM avec la configuration de déploiement.

Les LLM précédemment téléchargés sur Wallaroo peuvent être récupérés sans retélécharger le LLM via la méthode Wallaroo SDKwallaroo.client.Client.get_model(nom:String, version:String)qui prend les paramètres suivants :

nom:Le nom du modèle.

La méthodewallaroo.client.get_model(nom)récupère la version de modèle la plus récente dans l'espace de travail actuel qui correspond au nom de modèle fourni, sauf si une version spécifique est demandée.

Ce qui suit montre comment récupérer un LLM téléchargé et le stocker dans la variable model_version.

Une fois le modèle importé et téléchargé, nous créons notre pipeline et ajoutons le LLM comme étape du pipeline, comme le montre le code ci-d...
[Courte citation de 8% de l'article original]

Loading...