RagModel existant suivi dans Weave, évaluez l’application mise à jour avec weave.Evaluation, puis publiez le nouveau modèle RAG dans le Registre. Ce flux de travail s’adresse aux équipes qui entraînent et affinent des modèles avec W&B Models et souhaitent les intégrer dans des applications LLM suivies et évaluées avec Weave.
Il s’agit d’un notebook interactif. Vous pouvez l’exécuter en local ou utiliser les liens suivants :
Prérequis
- Installez
weave,pandas,unsloth,wandb,litellm,pydantic,torchetfaiss-gpuà l’aide depip.
- Ajoutez les clés API requises depuis votre environnement.
- Connectez-vous à W&B, puis créez un nouveau projet.
Télécharger ChatModel depuis Models registre et implémenter UnslothLoRAChatModel
unsloth pour optimiser les performances, et le modèle est disponible dans le W&B Models Registry. Dans cette étape, vous récupérez le ChatModel affiné depuis le registre et le convertissez en weave.Model pour le rendre compatible avec le RagModel.
Le
RagModel mentionné dans le code suivant est un weave.Model de premier niveau qui peut être considéré comme une application RAG complète. Il contient un ChatModel, une base de données vectorielle et un prompt. Le ChatModel est lui aussi un weave.Model, qui contient le code nécessaire pour télécharger un artifact depuis le W&B registre. ChatModel peut être remplacé de manière modulaire pour prendre en charge n’importe quel autre type de modèle de chat LLM au sein du RagModel. Pour plus d’informations, voir le modèle dans Weave.ChatModel, utilisez unsloth.FastLanguageModel ou peft.AutoPeftModelForCausalLM avec adaptateurs, ce qui permet une intégration efficace dans l’application. Après avoir téléchargé le modèle depuis le registre, configurez la logique d’initialisation et de prédiction à l’aide de la méthode model_post_init. Le code requis pour cette étape est disponible dans l’onglet Use du registre, et vous pouvez le copier directement dans votre implémentation.
Le code suivant définit la classe UnslothLoRAChatModel pour gérer, initialiser et utiliser le modèle Llama-3.2 affiné récupéré depuis le W&B Models Registry. UnslothLoRAChatModel utilise unsloth.FastLanguageModel pour une inférence optimisée. La méthode model_post_init télécharge et configure le modèle, tandis que la méthode predict traite les requêtes des utilisateurs et génère des réponses. Pour adapter le code à votre cas d’usage, mettez à jour MODEL_REG_URL avec le bon chemin du registre pour votre modèle affiné et ajustez des paramètres comme max_seq_length ou dtype en fonction de votre matériel ou de vos requirements.
Intégrer la nouvelle version de ChatModel dans RagModel
RagModel existant dans votre projet Weave et mettez à jour son ChatModel pour utiliser le modèle affiné. Remplacer le modèle de chat par le nouveau laisse les autres composants, comme la base de données vectorielle et les prompts, inchangés, ce qui préserve la structure globale de l’application tout en améliorant les performances.
Le code suivant récupère l’objet RagModel à l’aide d’une référence du projet Weave. L’attribut chat_model du RagModel est ensuite mis à jour pour utiliser la nouvelle instance UnslothLoRAChatModel créée à l’étape précédente. Ensuite, le RagModel mis à jour est publié afin de créer une nouvelle version. Enfin, le code exécute un exemple de requête de prédiction avec le RagModel mis à jour, afin de vérifier qu’il utilise bien le nouveau modèle de chat.
Exécuter une weave.Evaluation
RagModel mis à jour publié, l’étape suivante consiste à confirmer que le nouveau modèle de chat affiné se comporte comme prévu dans l’application. À cette étape, vous évaluez les performances du RagModel mis à jour à l’aide d’une weave.Evaluation existante. Ce processus garantit que le nouveau modèle de chat affiné se comporte comme prévu dans l’application RAG. Pour simplifier l’intégration et permettre la collaboration entre les équipes Models et Apps, vous enregistrez les résultats de l’évaluation à la fois dans le run W&B du modèle et dans le workspace Weave.
Dans Models :
- Le résumé de l’évaluation est enregistré dans le run W&B utilisé pour télécharger le modèle de chat affiné. Cela inclut des métriques de synthèse et des graphiques affichés dans une vue Workspace pour l’analyse.
- L’ID de trace de l’évaluation est ajouté à la configuration du run, avec un lien direct vers la page Weave afin d’améliorer la traçabilité pour la Model Team.
- Le lien vers l’artifact ou le registre du
ChatModelest stocké comme entrée duRagModel. - L’ID du run W&B est enregistré comme colonne supplémentaire dans les traces d’évaluation pour fournir davantage de contexte.
RagModel mis à jour, puis enregistrer les résultats à la fois dans W&B et dans Weave. Assurez-vous que la référence de l’évaluation (WEAVE_EVAL) correspond à la configuration de votre projet.
Enregistrer le nouveau modèle RAG dans le registre
RagModel mis à jour, l’étape finale consiste à le publier dans le W&B Models Registry afin que d’autres équipes puissent le découvrir et le réutiliser. Pour rendre le RagModel mis à jour disponible pour une utilisation ultérieure par les équipes Models et Apps, nous le publions dans le W&B Models Registry en tant qu’artifact de référence.
Le code suivant récupère la version et le nom de l’objet weave du RagModel mis à jour, puis les utilise pour créer des liens de référence. Le code crée ensuite un nouvel artifact dans W&B avec des métadonnées contenant l’URL Weave du modèle. Le code enregistre cet artifact dans le registre W&B et le lie à un chemin de registre spécifié.
Avant d’exécuter le code, assurez-vous que les variables ENTITY et PROJECT correspondent à votre configuration W&B, et spécifiez le chemin de registre cible correct. Ce processus finalise le flux de travail en publiant le nouveau RagModel dans l’écosystème W&B pour la collaboration et la réutilisation.
Après avoir exécuté le code de cette section, votre RagModel mis à jour est disponible dans le W&B Models Registry en tant qu’artifact référencé, ce qui achève l’aller-retour entre W&B Models et Weave.