Skip to main content
これはインタラクティブなノートブックです。ローカルで実行することも、以下のリンクを使用することもできます。

前提条件

まず、必要なライブラリをインストールし、APIキーを設定して、W&B にログインし、新しい W&B プロジェクトを作成します。
  1. pip を使って、weavepandasunslothwandblitellmpydantictorchfaiss-gpu をインストールします。
  1. 環境内の必要なAPIキーを追加します。
  1. W&B にログインし、新しいプロジェクトを作成します。

Models Registry から ChatModel をダウンロードし、UnslothLoRAChatModel を実装する

このシナリオでは、Llama-3.2 モデルはすでに Model Team によって unsloth ライブラリを使用してパフォーマンス最適化向けにファインチューニングされており、W&B Models Registry で利用できます。この step では、Registry からファインチューニング済みの ChatModel を取得し、RagModel と互換性を持たせるために weave.Model に変換します。
以下で参照している RagModel は、完全な RAG application と見なせるトップレベルの weave.Model です。これには ChatModel、ベクトルデータベース、プロンプトが含まれます。ChatModelweave.Model であり、W&B Registry から artifact をダウンロードするコードを含んでいます。ChatModel は、RagModel の一部として他の種類の LLM チャットモデルにも対応できるよう、モジュール単位で変更できます。詳細については、Weave でモデルを表示してください。
ChatModel をロードするには、アダプター付きの unsloth.FastLanguageModel または peft.AutoPeftModelForCausalLM を使用し、アプリに効率的にインテグレーションできます。Registry からモデルをダウンロードした後、model_post_init method を使用して初期化と予測ロジックを設定できます。この step に必要なコードは Registry の Use タブで利用でき、そのまま実装にコピーできます。 以下のコードは、W&B Models Registry から取得したファインチューニング済み Llama-3.2 モデルを管理、初期化、使用するための UnslothLoRAChatModel クラスを定義しています。UnslothLoRAChatModel は、最適化された 推論 のために unsloth.FastLanguageModel を使用します。model_post_init method はモデルのダウンロードと設定を処理し、predict method はユーザーのクエリを処理してレスポンスを生成します。コードをユースケースに合わせて調整するには、MODEL_REG_URL をファインチューニングしたモデルの正しい Registry パスに更新し、max_seq_lengthdtype などのパラメーターをハードウェアや要件に基づいて調整してください。

新しい ChatModel バージョンを RagModel に統合する

ファインチューニングしたチャットモデルを基に RAG アプリケーションを構築すると、パイプライン全体を作り直さなくても、用途に合わせて調整したコンポーネントを使用して対話型 AI を改善できます。この step では、Weave プロジェクトから既存の RagModel を取得し、その ChatModel を更新して、新たにファインチューニングしたモデルを使用するようにします。このシームレスな差し替えにより、ベクトルデータベース (VDB) やプロンプトなどの他のコンポーネントには手を加えず、アプリケーション全体の構造を維持したままパフォーマンスを向上できます。 以下のコードは、Weave プロジェクトの参照を使用して RagModel オブジェクトを取得します。次に、RagModelchat_model 属性を更新し、前の step で作成した新しい UnslothLoRAChatModel インスタンスを使用するようにします。その後、更新した RagModel を公開して新しいバージョンを作成します。最後に、更新した RagModel を使用してサンプルの予測クエリを実行し、新しいチャットモデルが使用されていることを確認します。

weave.Evaluation を実行する

次の step では、既存の weave.Evaluation を使用して、更新した RagModel のパフォーマンスを評価します。このプロセスにより、新たにファインチューニングしたチャットモデルが、RAG アプリケーション内で期待どおりに動作していることを確認できます。インテグレーションを簡素化し、Models チームと Apps チームのコラボレーションを可能にするため、評価結果をモデルの W&B run と Weave Workspace の両方にログします。 Models では:
  • 評価 summary は、ファインチューニング済みチャットモデルのダウンロードに使用した W&B run にログされます。これには、分析用の workspace view に表示される summary メトリクスとグラフが含まれます。
  • 評価のトレース ID は run の設定に追加され、Model Team が追跡しやすいように Weave ページへ直接リンクされます。
Weave では:
  • ChatModel の artifact または Registry へのリンクが、RagModel への入力として保存されます。
  • W&B run ID は、コンテキストをわかりやすくするために、評価トレースの追加列として保存されます。
以下のコードは、評価オブジェクト を取得し、更新した RagModel を使用して評価を実行し、その結果を W&B と Weave の両方にログする方法を示しています。評価 reference (WEAVE_EVAL) がプロジェクトの設定と一致していることを確認してください。

新しい RAG Model を Registry に保存

更新した RagModel を Models チームと Apps チームの両方が今後使用できるようにするため、参照 artifact として W&B Models Registry にプッシュします。 以下のコードでは、更新した RagModelweave オブジェクトのバージョンと名を取得し、それらを使用して参照リンクを作成します。続いて、モデルの Weave URL を含むメタデータを持つ新しい artifact を W&B に作成します。この artifact は W&B Registry にログされ、指定した registry path にリンクされます。 コードを実行する前に、ENTITY 変数と PROJECT 変数がご利用の W&B 環境に合っていること、および対象の registry path が正しく指定されていることを確認してください。このプロセスにより、新しい RagModel が W&B エコシステムに公開され、共同作業や再利用をしやすくしたうえで workflow が完了します。