메인 콘텐츠로 건너뛰기
Model 은 데이터 (설정, 학습된 모델 가중치 또는 기타 정보 포함)와 모델의 작동 방식을 정의하는 코드의 조합입니다. 코드를 이 API와 호환되도록 구조화하면, 애플리케이션의 버전을 관리하는 구조적인 방식의 이점을 얻을 수 있으며 더욱 체계적으로 실험 (Experiments)을 추적할 수 있습니다.
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 를 호출할 때마다 입력 및 출력과 함께 모델 설정이 로그로 기록됩니다.

모델의 자동 버전 관리

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

model = YourModel(attribute1='howdy', attribute2=10)
model.predict('world')
이를 호출한 후 UI를 확인하면, 각각 서로 다른 호출 기록이 추적된 두 개의 Model 버전이 생성된 것을 볼 수 있습니다.

모델 서빙 (Serve models)

모델을 서빙하려면, 다음을 호출하여 FastAPI 서버를 쉽게 구동할 수 있습니다:
weave serve <your model ref>
추가 안내 사항은 serve 를 참조하세요.

프로덕션 호출 추적

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