메인 콘텐츠로 건너뛰기
Model은 (구성, 학습된 모델 가중치, 기타 정보 등을 포함할 수 있는) 데이터와 모델이 동작하는 방식을 정의하는 코드의 조합입니다. 코드를 이 API와 호환되도록 구조화하면, 애플리케이션 버전을 체계적으로 버전 관리할 수 있어 실험을 더 시스템적으로 추적할 수 있습니다.
Weave에서 모델을 생성하려면 다음이 필요합니다:
  • weave.Model을 상속하는 클래스
  • 모든 매개변수에 대한 타입 정의
  • @weave.op() 데코레이터가 적용된 타입 지정 predict 함수
from weave import Model
import weave

class YourModel(Model):
    attribute1: str
    attribute2: int

    @weave.op()
    def predict(self, input_data: str) -> dict:
        # 모델 로직을 이곳에 작성합니다
        prediction = self.attribute1 + ' ' + input_data
        return {'pred': prediction}
일반적인 방식으로 모델을 호출할 수 있습니다:
import weave
weave.init('intro-example')

model = YourModel(attribute1='hello', attribute2=5)
model.predict('world')
이렇게 하면 predict를 호출할 때마다 모델 설정과 함께 입력과 출력이 모두 추적됩니다.

모델 자동 버전 관리

모델을 정의하는 매개변수나 코드를 변경하면, 이러한 변경 사항이 기록되고 버전이 업데이트됩니다. 이를 통해 모델의 서로 다른 버전 간 예측 결과를 비교할 수 있습니다. 이를 사용해 프롬프트를 반복적으로 개선하거나 최신 LLM을 시도하고, 다양한 설정에서 예측을 비교할 수 있습니다.예를 들어, 여기서는 새 모델을 생성합니다:
import weave
weave.init('intro-example')

model = YourModel(attribute1='howdy', attribute2=10)
model.predict('world')
이 호출 후 UI에서 이 Model의 버전이 두 개가 생긴 것을 확인할 수 있고, 각각 다른 호출 내역이 추적되어 있습니다.

모델 서빙

모델을 서빙하기 위해, 다음을 호출하여 FastAPI 서버를 쉽게 실행할 수 있습니다:
weave serve <your model ref>
추가 안내는 serve를 참고하세요.

프로덕션 호출 추적

프로덕션 호출을 분리하기 위해, UI나 API에서 쉽게 필터링할 수 있도록 예측에 추가 속성을 부여할 수 있습니다.
with weave.attributes({'env': 'production'}):
    model.predict('world')