La création de LLM : une réalité grâce à Snowflake et NVIDIA
Snowflake a récemment annoncé sa collaboration avec NVIDIA afin de faciliter l’exécution directe des charges de travail de calcul accélérées de NVIDIA dans les comptes Snowflake. Parmi les cas d’usage intéressants, citons l’entraînement, la personnalisation et le déploiement de grands modèles de langage (LLM) de manière sécurisée dans Snowflake. Tout cela a été rendu possible grâce à nos nouveaux Snowpark Container Services, actuellement en private preview, et à l’IA de NVIDIA.
Nombre de nos clients souhaiteraient exécuter des LLM dans Snowflake afin de les utiliser avec leurs données Snowflake, sans devoir faire appel à des API externes. Outre la simple utilisation des LLM, nos clients souhaiteraient également régler les LLM pré-entraînés, notamment les modèles disponibles dans le framework NeMo de NVIDIA et les modèles Llama de Meta, avec leurs propres données et leurs données Snowflake. Dans cet article de blog, nous discuterons des possibilités que cela ouvre pour nos clients, détaillerons le fonctionnement de ce processus et présenterons quelques-uns des cas d'usage que nous explorons avec les utilisateurs de la première heure.
SnowparkContainerServices: exécution des calculs de GPU NVIDIA dans Snowflake
Notre nouvelle fonctionnalité Snowpark Container Services vous permet d’exécuter des conteneurs Docker dans Snowflake, notamment les conteneurs accélérés avec les GPU NVIDIA. NVIDIA fournit des conteneurs Docker gratuits et préconçus pour différentes charges de travail d’IA, y compris celles utilisant le framework NeMo pour les LLM.
En lançant simplement dans Snowpark Container Services l’une des images de conteneur NVIDIA AI Enterprise incluses avec cette licence d’évaluation de 90 jours, vous pouvez les exécuter de manière sécurisée et directe dans votre compte Snowflake, sur vos données Snowflake. Le conteneur s’exécutant dans Snowflake, les entreprises sont en mesure de fournir aux utilisateurs des fonctions définies par l’utilisateur qui peuvent être activées depuis SQL pour exécuter un traitement avancé dans le conteneur, sans surcharge opérationnelle.
La flexibilité apportée par Snowpark Container Services est quasi illimitée, vous permettant ainsi d’exécuter des outils de développement open source, tels que les notebooks Jupyter, qui offrent un moyen pratique de tester et de régler les LLM.
Pré-entraînement et réglage des LLM dans Snowflake
Les LLM prêts à l’emploi sont également connus sous le nom de « modèles pré-entraînés », ce qui signifie qu’un grand volume de données d’entraînement a été regroupé et que le modèle a été entraîné à l’avance. Généralement, ces modèles, tels que le framework NeMo de NVIDIA et les modèles Llama de Meta, sont généralistes : ils maîtrisent parfaitement l’anglais et d’autres langues, et ont des niveaux de connaissances variables sur différents sujets. Ainsi, dans une certaine mesure, ils peuvent avoir des connaissances sur votre secteur d’activité et son jargon, ses processus et ses besoins, mais de manière non approfondie. Et ils ne connaissent généralement pas ou peu votre entreprise en particulier, vos politiques, vos produits ou vos clients.
Ils sont également souvent optimisés pour réaliser certains types de tâches : répondre à des questions, faire un résumé, rédiger un texte, discuter de sujets généraux, etc. Polyvalents, ils sont utiles globalement, mais n’ont souvent pas assez de connaissances pour appliquer des cas d'usage d’entreprise que vous pourriez envisager avec un niveau élevé de précision et de compétences.
C’est là que le pré-entraînement et le réglage des LLM entrent en jeu. Le pré-entraînement implique généralement l’entraînement d’un LLM de bout en bout à partir d’un vaste ensemble de données d’entraînement, que vous pouvez conserver, afin de produire un modèle qui connaît les éléments importants pour vous. Certains modèles pré-entraînés peuvent être « encore plus entraînés » pour approfondir leurs connaissances dans un certain domaine : on appelle cela le réglage, ou fine-tuning.
Ce réglage sur Snowflake est possible grâce au framework NeMo de NVIDIA, inclus avec la plateforme logicielle NVIDIA AI Enterprise. Notez que le pré-entraînement peut être très gourmand en données et ressources et que, souvent, le réglage de modèles existants génère des résultats satisfaisants. Il existe différentes techniques de réglage prises en charge par le framework NeMo, qui vont du réglage complet au réglage d’un seul paramètre (PEFT, Parameter-Efficient Fine-Tuning). Parmi les techniques de réglage complet prises en charge, on peut citer la supervision du réglage et le renforcement de l’apprentissage grâce à une intervention humaine (RLHF, Reinforcement Learning with Human Feedback). Quant aux techniques PEFT prises en charge, elles incluent l’apprentissage immédiat, impliquant le réglage immédiat et le réglage d’un paramètre, les adaptateurs, l’adaptation au rang inférieur et l’IA3.
Sécurisez le réglage avec les données de votre entreprise
Le réglage d’un modèle est utile pour lui apprendre à réaliser une nouvelle tâche ou ajuster la manière dont il réalise une tâche existante, mais l’utilité est moindre pour lui apprendre de nouvelles connaissances de base. Si vous avez besoin d’apporter au LLM de nouvelles connaissances de base et que vous ne souhaitez pas pré-entraîner un nouveau LLM, vous avez également la possibilité d’explorer des approches de génération augmentée de récupération, à l’instar de celles présentées dans cet article à propos de notre exemple de chatbot Frosty.
Toutefois, le réglage reste une bonne solution pour modifier la façon dont un LLM conçoit ses réponses ou pour l’adapter à de nouvelles tâches. Par exemple, si vous créez un chatbot de service client et souhaitez qu’il agisse et écrive d’une certaine manière, vous pouvez l’entraîner dans ce but. Cela consiste à prendre des données dans votre compte Snowflake, à créer un ensemble d’entraînement d’exemples d’actions et de phrases correctes, puis à appliquer le processus de réglage afin de créer un nouveau modèle.
Vous pourrez alors tester le nouveau modèle par rapport au modèle de base pour vous assurer qu’il fonctionne comme vous le souhaitez. Le réglage de modèles est généralement assez rapide : quelques heures suffisent avec les GPU NVIDIA H100, A100 ou A10 Tensor Core, en fonction de la taille du modèle de base et du volume d’exemples de réglage. Ainsi, vous pouvez tester et voir ce qui fonctionne le mieux. En comparaison, le pré-entraînement d’un modèle de bout en bout peut prendre des jours ou des semaines, et nécessiter l’exécution simultanée de plusieurs flottes de GPU.
Obtenir des données d’entraînement dans Snowflake pour le réglage
Ce qui prend du temps dans le processus de réglage, c’est la création de l’ensemble d’entraînement pour le réglage, c’est-à-dire les exemples de la manière dont vous souhaitez que le LLM entraîné réponde dans certaines situations. Des exemples d’ensembles de réglage existent. Toutefois, si vous voulez un modèle sur mesure, il vous faudra un ensemble de réglage sur mesure. Pour certains cas d'usage, vous pouvez obtenir ce type de données de réglage depuis votre compte Snowflake. Par exemple, si vous avez conservé d’anciennes discussions de service client, des transcriptions, ou des échanges par e-mail avec vos clients dans Snowflake, vous pouvez cibler le réglage sur les exemples existants qui sont les mieux notés ou qui génèrent les meilleurs résultats.
Comme le réglage se fait directement sur les nœuds de GPU exécutés sur les containers de Snowpark dans votre compte Snowflake, vos données d’entraînement confidentielles ne quittent jamais votre compte. Elles restent dans les tables ou les fichiers de stockage temporaire Snowflake, où elles se trouvent. En outre, le modèle créé, dont les apprentissages sont tirés de vos informations confidentielles, reste également dans Snowflake dans une zone sécurisée, et peut être utilisé depuis les containers Snowpark.
En conservant le pré-entraînement; le réglage et le stockage de bout en bout des modèles créés, ainsi que l’utilisation du modèle au sein même de Snowflake, vous pouvez tirer parti des toutes dernières technologies de LLM open source de NVIDIA et d’autres, sans que vos données quittent votre entreprise.
Consultez l’article Medium et découvrez un aperçu technique du fonctionnement du réglage d’un paramètre à l’aide de NeMo sur Snowpark Container Services.
Une multitude de cas d’usage possibles
Alors que nombre de nos clients ont commencé à tester les LLM, certains commencent désormais à entraîner et régler les LLM. Voici quelques cas d'usage qui pourraient vous intéresser :
- Tri du service client, génération de réponses, expériences de discussions quasi totales, comme décrit ci-dessus
- Génération de publicités créatives personnalisées pour chaque client, à partir de toutes les informations sur le client collectées dans Snowflake
- Chatbots d’analyse de données pour la création de SQL et de réponses aux questions, basés sur vos données et schémas Snowflake
- Assistance aux représentants commerciaux, pour les aider à comprendre leurs clients et prospects et à créer des communications et des campagnes de vente plus efficaces
- Formation et réponses aux questions pour les employés, nouveaux et existants, à partir des documents d’entreprise, des politiques, de l’historique et des données Snowflake
- Intégration et compréhension des données et rapports financiers pour répondre à des questions d’ordre financier en aval
- Modèle de découverte médicale dans Snowpark pour générer différentes combinaisons de molécules et protéines
- Conservation d’un LLM multimodal pour vos nombreuses applications
Nous sommes ravis de collaborer avec NVIDIA pour proposer ces applications de LLM (et tant d’autres) à nos clients via le Data Cloud. Alors que l’aventure ne fait que commencer pour la majorité, nous sommes impatients de commencer à travailler avec nos clients pour transformer ces cas d'usage en réalité.