Premiers pas
Pour commencer, appelezweave.init() au début de votre script. Cela initialise Weave et commence à capturer les traces de tous les appels LlamaIndex qui suivent. L’argument de weave.init() est un nom de projet qui vous aide à organiser vos traces.
Traces
Cette section explique comment Weave capture des flux de travail LlamaIndex en plusieurs étapes, comme les pipelines RAG. LlamaIndex est connu pour sa facilité à connecter des données à des LLM. Une application RAG simple nécessite une étape d’embedding, une étape de récupération et une étape de synthèse de la réponse. À mesure que la complexité augmente, il devient important de stocker, dans une base de données centrale, les traces de chaque étape, aussi bien en développement qu’en production. Ces traces sont essentielles pour déboguer et améliorer votre application. Weave suit automatiquement tous les appels effectués via la bibliothèque LlamaIndex, y compris les modèles de prompt, les appels LLM, les outils et les étapes de l’agent. Vous pouvez consulter les traces dans l’interface web de Weave. L’exemple suivant montre un pipeline RAG de base tiré du Tutoriel de démarrage (OpenAI) de LlamaIndex :
Observabilité en un clic
Cette section explique comment l’intégration Weave s’insère dans le système d’observabilité intégré de LlamaIndex, afin que vous n’ayez pas à configurer manuellement les gestionnaires. LlamaIndex propose une observabilité en un clic pour vous permettre de créer des applications LLM rigoureuses en production. L’intégration Weave exploite cette fonctionnalité de LlamaIndex et affecte automatiquementWeaveCallbackHandler() à llama_index.core.global_handler. Ainsi, si vous utilisez LlamaIndex et Weave, il vous suffit d’initialiser un run Weave avec weave.init([NAME_OF_PROJECT]).
Créez un Model pour faciliter l’expérimentation
Organiser et évaluer des LLM dans des applications pour divers cas d’usage peut s’avérer difficile lorsque vous avez plusieurs composants, tels que des prompts, des configurations de modèle et des paramètres d’inférence. Avec weave.Model, vous pouvez capturer et organiser des détails expérimentaux, comme les prompts système ou les modèles que vous utilisez, ce qui vous aide à comparer différentes itérations.
L’exemple suivant montre comment créer un moteur de requête LlamaIndex dans un WeaveModel, à l’aide de données que vous pouvez trouver dans le dossier weave/data :
SimpleRAGPipeline, qui hérite de weave.Model, organise les paramètres importants de ce pipeline RAG. Décorer la méthode query avec weave.op() permet le traçage. Une fois cette structure en place, vous pouvez désormais versionner, comparer et évaluer différentes configurations de votre pipeline RAG dans Weave.
Évaluer avec weave.Evaluation
Cette section montre comment mesurer les performances de votre modèle sur un jeu de données fixe afin de pouvoir comparer quantitativement les itérations.
Les évaluations vous aident à mesurer les performances de vos applications. Avec la classe weave.Evaluation, vous pouvez capturer les performances de votre modèle sur des tâches ou des jeux de données spécifiques, ce qui vous aide à comparer différents modèles et différentes itérations de votre application. L’exemple suivant montre comment évaluer le modèle créé dans la section précédente :
weave.Evaluation, vous avez besoin d’un jeu de données d’évaluation, d’une fonction de scorer et d’un weave.Model. Ces exigences s’appliquent à trois composants clés :
- Les clés des
dictd’échantillons d’évaluation doivent correspondre aux arguments de la fonction de scorer et de la méthodepredictduweave.Model. - Le
weave.Modeldoit avoir une méthode nomméepredict,inferouforward. Vous devez décorer cette méthode avecweave.op()pour le traçage. - La fonction de scorer doit être décorée avec
weave.op()et doit avoiroutputcomme argument nommé.
En intégrant Weave à LlamaIndex, vous pouvez assurer une journalisation et une surveillance complètes de vos applications LLM, ce qui rationalise le débogage et l’optimisation des performances grâce à l’évaluation.