メインコンテンツへスキップ
LoRA(Low-Rank Adaptation)を使うと、新しいモデル全体を学習・保存する代わりに、軽量な「アドオン」だけを学習・保存することで、大規模言語モデルをパーソナライズできます。これにより、カスタマイズが高速かつ低コストになり、デプロイも容易になります。 ベースモデルに対して LoRA を学習するかアップロードすることで、カスタマーサポートやクリエイティブライティング、特定の技術分野への特化といった新しい能力を持たせることができます。これにより、モデル全体を再学習・再デプロイすることなく、モデルの振る舞いを調整できます。

なぜ LoRA に W&B Inference を使うのか?

  • 一度アップロードするだけで即座にデプロイ可能 — サーバーの管理は不要です。
  • アーティファクトのバージョニングにより、どのバージョンが稼働中かを正確に追跡できます。
  • モデルの全重みではなく小さな LoRA ファイルを差し替えるだけで、数秒でモデルを更新できます。

ワークフロー

  1. LoRA の重みを W&B のアーティファクトとしてアップロードします
  2. API でモデル名としてアーティファクト URI を指定します
  3. 推論時に W&B が動的に重みを読み込みます
以下は、W&B Inference を使ってカスタム LoRA モデルを呼び出す例です。
from openai import OpenAI

model_name = f"wandb-artifact:///{WB_TEAM}/{WB_PROJECT}/qwen_lora:latest"

client = OpenAI(
    base_url="https://api.inference.wandb.ai/v1",
    api_key=API_KEY,
    project=f"{WB_TEAM}/{WB_PROJECT}",
)

resp = client.chat.completions.create(
    model=model_name,
    messages=[{"role": "user", "content": "Say 'Hello World!'"}],
)
print(resp.choices[0].message.content)
LoRA の作成方法と、それをアーティファクトとして W&B にアップロードする方法をインタラクティブに試せる 入門用ノートブック を参照してください。

前提条件

次のものが必要です:

LoRA を追加して使う方法

LoRA を W&B アカウントに追加して使い始めるには、次の 2 つの方法があります。
独自のカスタム LoRA ディレクトリを W&B アーティファクトとしてアップロードします。ローカル環境、クラウドプロバイダ、パートナーサービスなど、別の環境で LoRA を学習した場合に最適です。次の Python コードは、ローカルに保存されている LoRA の重みをバージョン付きアーティファクトとして W&B にアップロードします。必要なメタデータ(ベースモデルとストレージリージョン)を含む lora タイプのアーティファクトを作成し、ローカルディレクトリから LoRA ファイルを追加して、推論で利用できるように W&B プロジェクトにログします。
import wandb

run = wandb.init(entity=WB_TEAM, project=WB_PROJECT)

artifact = wandb.Artifact(
    "qwen_lora",
    type="lora",
    metadata={"wandb.base_model": "OpenPipe/Qwen3-14B-Instruct"},
    storage_region="coreweave-us",
)

artifact.add_dir("<path-to-lora-weights>")
run.log_artifact(artifact)

重要な要件

独自の LoRA を Inference で使用するには、次の要件を満たす必要があります。
  • LoRA は、サポートされているベースモデル に記載されているいずれかのモデルを使って学習されている必要があります。
  • PEFT 形式で保存された LoRA を、W&B アカウント内で lora タイプのアーティファクトとして保存していること。
  • サポートされる最大ランクは 16 です。
  • 低レイテンシのため、LoRA は storage_region="coreweave-us" に保存されている必要があります。
  • アップロード時には、学習に使用したベースモデル名(例: meta-llama/Llama-3.1-8B-Instruct)を含めてください。これにより、W&B が正しいモデルで読み込めるようになります。
LoRA がアーティファクトとしてプロジェクトに追加されたら、推論リクエストでそのアーティファクトの URI を次のように使用します。
# 学習が完了したら、アーティファクトを直接使用する
model_name = f"wandb-artifact:///{WB_TEAM}/{WB_PROJECT}/your_trained_lora:latest"

サポートされているベースモデル

Inference は現在、以下の LLM 向けに構成されています(wandb.base_model には、これらとまったく同じ文字列を使用する必要があります)。今後、さらに多くのモデルが追加される予定です。
  • meta-llama/Llama-3.1-70B-Instruct
  • meta-llama/Llama-3.1-8B-Instruct
  • OpenPipe/Qwen3-14B-Instruct
  • Qwen/Qwen3-30B-A3B-Instruct-2507
  • Qwen/Qwen2.5-14B-Instruct

料金

Serverless LoRA Inference はシンプルでコスト効率に優れています。常時稼働のサーバーや専用 GPU インスタンスではなく、ストレージと実際に実行した推論分に対してのみ支払います。
  • Storage - 特に自前の GPU インフラを維持する場合と比べて、LoRA の重みを保存するコストは低く抑えられます。
  • Inference usage - LoRA アーティファクトを利用するリクエストは、標準モデル推論と同じレートで課金されます。カスタム LoRA を提供しても、追加料金はかかりません。