메인 콘텐츠로 건너뛰기
이 페이지에서는 W&B Weave에서 버전 관리되는 객체를 게시, 가져오기, 삭제, 참조하는 방법을 설명합니다. 여러 run과 시간의 흐름에 걸쳐 데이터셋, 모델 또는 prompt와 같은 구조화된 데이터를 추적해야 할 때 사용하세요.

객체

객체는 버전 관리되는 직렬화 가능한 데이터입니다. Weave는 객체가 변경되면 자동으로 버전을 관리하고 변경 불가능한 이력을 생성합니다. 객체에는 다음이 포함됩니다.
  • Datasets: 평가를 위한 예제 모음
  • Models: LLM 로직의 설정 및 파라미터
  • Prompts: 버전 관리되는 프롬프트 템플릿
dataset = weave.Dataset(
    name="test-cases",
    rows=[
        {"input": "What is 2+2?", "expected": "4"},
        {"input": "What is the capital of France?", "expected": "Paris"},
    ]
)
weave.publish(dataset)

객체 게시

Weave의 직렬화 계층은 객체를 저장하고 버전을 관리합니다.
import weave
weave.init("your-team-name/your-project-name")
# 목록을 저장하고 이름을 'cat-names'로 지정합니다
weave.publish(['felix', 'jimbo', 'billie'], 'cat-names')
이름을 지정해 객체를 저장하면, 해당 객체가 아직 없을 경우 Weave가 그 객체의 첫 번째 버전을 생성합니다.

객체 다시 가져오기

게시한 후에는 레퍼런스를 사용해 저장된 객체를 가져올 수 있습니다.
weave.publish()는 Ref를 반환합니다. 어떤 Ref에서든 .get()을 호출해 해당 객체를 다시 가져올 수 있습니다.Ref를 생성한 다음 객체를 다시 가져올 수 있습니다.
weave.init("your-team-name/your-project-name")
cat_names = weave.ref('cat-names').get()

객체 삭제

객체의 특정 버전이 더 이상 필요하지 않다면, 해당 ref를 사용해 제거할 수 있습니다.
객체 버전을 삭제하려면 객체의 ref에서 .delete()를 호출하세요.
weave.init("your-team-name/your-project-name")
cat_names_ref = weave.ref('cat-names:v1')
cat_names_ref.delete()
삭제된 객체에 접근하면 오류가 발생합니다. 삭제된 객체를 참조하는 객체를 resolve하면, 삭제된 객체 대신 DeletedRef가 반환됩니다.

객체 ref 만들기

ref는 저장된 객체와 버전을 고유하게 식별합니다. 다음 섹션에서는 URI 구조와 ref를 구성하는 방법을 설명합니다. Weave에서 완전 수식된 객체 ref URI는 다음과 같습니다.
weave:///[YOUR-TEAM-NAME]/[YOUR-PROJECT-NAME]/object/[OBJECT-NAME]:[OBJECT-VERSION]
  • [YOUR-TEAM-NAME]: W&B entity(사용자 이름 또는 팀 이름)
  • [YOUR-PROJECT-NAME]: W&B 프로젝트
  • [OBJECT-NAME]: 객체 이름
  • [OBJECT-VERSION]: 버전 해시, v0 또는 v1 같은 string, 또는 :latest 같은 별칭입니다. 모든 객체에는 :latest 별칭이 있습니다.
몇 가지 방식으로 ref를 구성할 수 있습니다:
  • weave.ref([NAME]): 객체의 :latest 버전을 가져옵니다. weave.init(...)를 호출해야 합니다.
  • weave.ref([NAME]:[VERSION]): 지정한 버전의 객체를 가져옵니다. weave.init(...)를 호출해야 합니다.
  • weave.ref([FULLY-QUALIFIED-REF-URI]): 지정한 정규화된 객체 ref URI에 있는 객체를 가져옵니다. weave.init()를 호출할 필요가 없습니다.