메인 콘텐츠로 건너뛰기
LoRA(Low-Rank Adaptation)는 전체 새 모델을 다시 학습하는 대신, 가벼운 ‘애드온(add-on)’만 학습하고 저장함으로써 대규모 언어 모델을 개인화할 수 있게 해줍니다. 이를 통해 커스터마이징을 더 빠르고 저렴하게 수행하고, 배포도 더 쉽게 할 수 있습니다. 고객 지원, 창의적 글쓰기, 특정 기술 분야에 특화하는 등 기본(base) 모델에 새로운 기능을 부여하기 위해 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를 추가하고 사용하는 방법

W&B 계정에 LoRA를 추가하고 사용하는 방법은 두 가지입니다:
다른 곳에서 학습한 사용자 정의 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)

필수 조건

Inference에서 사용자 LoRA를 사용하려면:
  • LoRA는 Supported Base Models 섹션에 나열된 모델 중 하나를 사용해 학습되어야 합니다.
  • W&B 계정에 lora 타입 아티팩트로 저장된 PEFT 포맷의 LoRA여야 합니다.
  • 지원되는 최대 rank(랭크) 값은 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를 제공하는 데 추가 요금은 없습니다.