Il s’agit d’un notebook interactif. Vous pouvez l’exécuter en local ou utiliser les liens ci-dessous :
Prérequis
- Installez
weave,pandas,unsloth,wandb,litellm,pydantic,torchetfaiss-gpuà l’aide depip.
- Ajoutez les clés API nécessaires à partir de 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 est disponible dans le W&B Models registre. Dans cette étape, nous allons récupérer le ChatModel affiné depuis le registre et le convertir en weave.Model pour le rendre compatible avec le RagModel.
Le
RagModel mentionné ci-dessous 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, unsloth.FastLanguageModel ou peft.AutoPeftModelForCausalLM avec adaptateurs sont utilisés, ce qui permet une intégration efficace dans l’application. Après avoir téléchargé le modèle depuis le registre, vous pouvez configurer 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 peut être copié directement dans votre implémentation
Le code ci-dessous 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 registre. UnslothLoRAChatModel utilise unsloth.FastLanguageModel pour une inférence optimisée. La méthode model_post_init gère le téléchargement et la configuration du 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 notre projet Weave et mettons à jour son ChatModel pour utiliser le modèle nouvellement affiné. Ce remplacement transparent signifie que les autres composants, comme la base de données vectorielle (VDB) et les prompts, restent inchangés, ce qui préserve la structure globale de l’application tout en améliorant les performances.
Le code ci-dessous 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 RagModel mis à jour sert à exécuter un exemple de requête de prédiction, afin de vérifier que le nouveau modèle de chat est bien utilisé.
Exécuter une weave.Evaluation
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, nous consignons 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 consigné 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 de faciliter 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 consigner 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 disponible pour une utilisation ultérieure par les équipes Models et Apps, nous le publions dans le registre Models de W&B en tant qu’artifact de référence.
Le code ci-dessous 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. Un nouvel artifact est ensuite créé dans W&B avec des métadonnées contenant l’URL Weave du modèle. Cet artifact est enregistré dans le registre W&B et lié à 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 que le chemin de registre cible est correctement spécifié. Ce processus finalise le flux de travail en publiant le nouveau RagModel dans l’écosystème W&B afin de faciliter la collaboration et la réutilisation.