これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます:
前提条件
まず、必要なライブラリをインストールし、APIキーを設定し、W&Bにログインして、新しいW&Bプロジェクトを作成します。- インストール
weave、pandas、unsloth、wandb、litellm、pydantic、torch、およびfaiss-gpuを使用してpip。
- 環境から必要なAPIキーを追加します。
- W&Bにログインし、新しいプロジェクトを作成します。
ダウンロード ChatModel をModels Registryから実装 UnslothLoRAChatModel
このシナリオでは、Llama-3.2モデルはすでにModel Teamによって unsloth ライブラリを使用してパフォーマンス最適化のためにファインチューニングされており、W&B Models Registryで利用可能です。このステップでは、Registryからファインチューニングされた ChatModel を取得し、weave.Model に変換して RagModel と互換性を持たせます。
以下で参照される
RagModel は、完全なRAGアプリケーションと見なすことができるトップレベルの weave.Model です。これには ChatModel、ベクトルデータベース、およびプロンプトが含まれています。ChatModel も weave.Model であり、W&B Registryからアーティファクトをダウンロードするコードが含まれています。ChatModel は、RagModel の一部として他の種類のLLMチャットモデルをサポートするようにモジュラーに変更できます。詳細については、Weaveでモデルを表示してください。ChatModel、unsloth.FastLanguageModel または peft.AutoPeftModelForCausalLM とアダプターが使用され、アプリへの効率的な統合が可能になります。Registryからモデルをダウンロードした後、model_post_init メソッドを使用して初期化と予測ロジックを設定できます。このステップに必要なコードは Use タブのRegistryで利用可能で、実装に直接コピーできます
以下のコードは UnslothLoRAChatModel クラスを定義して、W&B Models Registryから取得したファインチューニングされたLlama-3.2モデルを管理、初期化、使用します。UnslothLoRAChatModel は unsloth.FastLanguageModel を最適化された推論に使用します。model_post_init メソッドはモデルのダウンロードとセットアップを処理し、predict メソッドはユーザークエリを処理し、応答を生成します。ユースケースに合わせてコードを適応させるには、MODEL_REG_URL をファインチューニングされたモデルの正しいRegistryパスで更新し、max_seq_length や dtype などのパラメータをハードウェアや要件に基づいて調整します。
新しい ChatModel バージョンを RagModel
に統合するRagModel をWeaveプロジェクトから取得し、その ChatModel を更新して新しくファインチューニングされたモデルを使用します。このシームレスな交換により、ベクトルデータベース(VDB)やプロンプトなどの他のコンポーネントは変更されず、アプリケーションの全体的な構造を維持しながらパフォーマンスを向上させることができます。
以下のコードは、Weaveプロジェクトからの参照を使用して RagModel オブジェクトを取得します。chat_model 属性の RagModel は、前のステップで作成された新しい UnslothLoRAChatModel インスタンスを使用するように更新されます。その後、更新された RagModel が公開され、新しいバージョンが作成されます。最後に、更新された RagModel を使用してサンプル予測クエリを実行し、新しいチャットモデルが使用されていることを確認します。
実行 weave.Evaluation
次のステップでは、既存の RagModel を使用して更新された weave.Evaluation のパフォーマンスを評価します。このプロセスにより、新しくファインチューニングされたチャットモデルがRAGアプリケーション内で期待通りに機能していることを確認します。ModelsチームとAppsチーム間の統合とコラボレーションを効率化するために、評価結果をモデルのW&B実行の一部としてもWeaveワークスペースの一部としても記録します。
Modelsでは:
- 評価の概要は、ファインチューニングされたチャットモデルをダウンロードするために使用されたW&B実行に記録されます。これには、分析のための workspace view に表示される要約メトリクスとグラフが含まれます。
- 評価トレースIDが実行の構成に追加され、Modelチームによるトレーサビリティを容易にするためにWeaveページに直接リンクします。
- アーティファクトまたはレジストリリンク
ChatModelはRagModelへの入力として保存されます。 - W&B実行IDは、より良いコンテキストのために評価トレースの追加列として保存されます。
RagModel を使用して評価を実行し、結果をW&BとWeaveの両方に記録する方法を示しています。評価参照(WEAVE_EVAL)がプロジェクト設定と一致していることを確認してください。
新しいRAGモデルをRegistryに保存する
更新されたRagModel をModelsチームとAppsチームの両方が将来使用できるようにするために、参照アーティファクトとしてW&B Models Registryにプッシュします。
以下のコードは、更新された weave オブジェクトのバージョンと名前を取得し、RagModel を使用して参照リンクを作成します。次に、モデルのWeave URLを含むメタデータを持つ新しいアーティファクトがW&Bで作成されます。このアーティファクトはW&B Registryに記録され、指定されたレジストリパスにリンクされます。
コードを実行する前に、ENTITY と PROJECT 変数がW&B設定と一致し、ターゲットレジストリパスが正しく指定されていることを確認してください。このプロセスにより、新しい RagModel をW&Bエコシステムに公開し、簡単なコラボレーションと再利用を可能にするワークフローが完了します。