Tous les exemples de code présentés sur cette page sont en Python.
Aperçu
Hugging Face Hub est une plateforme de machine learning pour les créateurs et les collaborateurs, qui propose une grande collection de modèles préentraînés et de Datasets pour de nombreux types de projets. La bibliothèque Pythonhuggingface_hub fournit une interface unifiée pour exécuter l’inférence sur plusieurs services pour les modèles hébergés sur le Hub. Vous pouvez appeler ces modèles à l’aide de InferenceClient.
Weave capture automatiquement les traces pour InferenceClient. Pour commencer le suivi, appelez weave.init() et utilisez la bibliothèque normalement.
Prérequis
Avant de commencer, effectuez les étapes de configuration suivantes pour installer les bibliothèques requises et configurer l’accès au Hugging Face Hub :-
Avant de pouvoir utiliser
huggingface_hubavec Weave, vous devez installer les bibliothèques nécessaires ou les mettre à jour vers leur dernière version. La commande suivante installe ou met à jourhuggingface_hubetweavevers la dernière version, s’ils sont déjà installés, tout en réduisant la sortie d’installation. -
Pour utiliser l’inférence avec un modèle sur le Hugging Face Hub, configurez votre User Access Token. Vous pouvez définir ce token depuis votre page Settings de Hugging Face Hub ou par programmation. L’exemple de code suivant vous invite à saisir votre
HUGGINGFACE_TOKENet définit ce token comme variable d’environnement.
Traçage de base
Stocker les traces des applications basées sur des modèles de langage dans un emplacement centralisé est essentiel pendant le développement comme en production. Ces traces facilitent le débogage et constituent des Datasets pour améliorer votre application. Weave capture automatiquement les traces de l’InferenceClient. Pour commencer le suivi, initialisez Weave en appelant weave.init(), puis utilisez la bibliothèque comme d’habitude.
L’exemple suivant montre comment consigner les appels d’inférence vers le Hugging Face Hub à l’aide de Weave :


Tracer une fonction
Pour mieux comprendre comment les données circulent dans votre application, vous pouvez utiliser@weave.op pour suivre les appels de fonction. Cela enregistre les entrées, les sorties et la logique d’exécution, ce qui facilite le débogage et l’analyse des performances.
En imbriquant plusieurs ops, vous pouvez créer une arborescence structurée de fonctions suivies. Weave versionne aussi automatiquement votre code, en conservant les états intermédiaires au fil de vos expérimentations, même avant que vous ne validiez vos modifications dans Git.
Pour commencer le suivi, ajoutez le décorateur @weave.op aux fonctions que vous souhaitez suivre.
Dans l’exemple suivant, Weave suit trois fonctions : generate_image, check_image_correctness et generate_image_and_check_correctness. Ces fonctions génèrent une image et vérifient si elle correspond à un prompt donné.
@weave.op, ce qui vous permet d’analyser les détails d’exécution dans la Weave UI.

Utilisez des Models pour l’expérimentation
La gestion des expériences avec des LLM peut être complexe lorsque plusieurs composants entrent en jeu. La classe Weave Model permet de capturer et d’organiser les détails expérimentaux, comme les prompts système et les configurations de modèle, vous permettant de comparer différentes itérations.
En plus de la gestion des versions du code et de la capture des entrées et des sorties, un Model stocke des paramètres structurés qui contrôlent le comportement de l’application. Cela vous aide à suivre quelles configurations ont produit les meilleurs résultats. Vous pouvez également intégrer un Model Weave à Weave Serve et aux Évaluations pour obtenir des informations supplémentaires.
L’exemple suivant définit un modèle CityVisitRecommender pour des recommandations de voyage. Chaque modification de ses paramètres génère une nouvelle version, favorisant une expérimentation itérative.
