트레이싱
개발 단계와 프로덕션 환경 모두에서 언어 모델 애플리케이션의 트레이스를 한곳에 모아 저장하는 것이 중요합니다. 이러한 트레이스는 디버깅에 유용할 뿐 아니라, 애플리케이션 개선에 도움이 되는 데이터셋으로도 활용할 수 있습니다. Weave는 Instructor의 트레이스를 자동으로 캡처합니다. 추적을 시작하려면weave.init(project_name="[YOUR-WANDB-PROJECT-NAME]")를 호출한 다음 평소처럼 라이브러리를 사용하세요.
직접 만든 Op 추적하기
함수를@weave.op로 래핑하면 입력, 출력, 앱 로직이 캡처되기 시작하므로 앱에서 데이터가 어떻게 흐르는지 디버그할 수 있습니다. Op을 깊게 중첩해 추적하려는 함수의 트리를 구축할 수도 있습니다. 또한 실험하는 동안 코드 버전 관리가 자동으로 시작되어, 아직 Git에 커밋하지 않은 임시 변경 사항도 캡처됩니다.
@weave.op로 데코레이트한 함수를 만드세요.
다음 예시에서 extract_person 함수는 @weave.op로 래핑한 메트릭 함수입니다. 이렇게 하면 OpenAI Chat Completion 호출과 같은 중간 단계를 확인할 수 있습니다.
더 쉽게 실험할 수 있도록 Model 만들기
구성 요소가 많으면 실험을 체계적으로 관리하기 어렵습니다. Model 클래스를 사용하면 system 프롬프트나 사용 중인 모델 같은 앱의 실험 세부 정보를 캡처하고 정리할 수 있습니다. 이를 통해 앱의 여러 반복 버전을 정리하고 비교할 수 있습니다.
Model은 코드 버전 관리와 입력 및 출력 캡처뿐만 아니라 애플리케이션의 동작을 제어하는 구조화된 매개변수도 캡처하므로, 어떤 매개변수가 가장 효과적이었는지 확인할 수 있습니다. Weave Model은 serve 및 Evaluation과 함께 사용할 수도 있습니다.
다음 예시에서는 PersonExtractor로 실험할 수 있습니다. 이 중 하나를 변경할 때마다 PersonExtractor의 새 버전이 생성됩니다.
Weave Model 서빙하기
weave.Model을 저장한 후에는 FastAPI 엔드포인트로 서빙하여 노트북 외부에서 테스트하거나 다른 애플리케이션과 통합할 수 있습니다. weave.Model 객체의 Weave 레퍼런스만 있으면 FastAPI 서버를 시작하고 모델을 serve할 수 있습니다.
모델을 서빙하려면 터미널에서 다음 명령을 실행하세요.



