これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます:
前提条件
まず、必要なライブラリをインストールし、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エコシステムに公開し、簡単なコラボレーションと再利用を可能にするワークフローが完了します。