Tracing
개발 단계와 production 환경 모두에서 언어 모델 애플리케이션의 trace를 중앙 위치에 저장하는 것이 중요합니다. 이러한 trace는 디버깅에 유용하며, 애플리케이션을 개선하는 데 도움이 되는 데이터셋으로 활용될 수 있습니다. Weave 는 Instructor 에 대한 trace를 자동으로 캡처합니다. 추적을 시작하려면weave.init(project_name="<YOUR-WANDB-PROJECT-NAME>") 을 호출하고 평소처럼 라이브러리를 사용하세요.
![]() |
|---|
| 이제 Weave 가 Instructor를 사용하여 이루어진 모든 LLM 호출을 추적하고 로그를 남깁니다. Weave 웹 인터페이스에서 trace를 확인할 수 있습니다. |
직접 만든 op 추적하기
함수를@weave.op 로 래핑하면 입력, 출력 및 애플리케이션 로직 캡처가 시작되어 애플리케이션을 통해 데이터가 어떻게 흐르는지 디버깅할 수 있습니다. op를 깊게 중첩하여 추적하고자 하는 함수들의 트리를 구축할 수 있습니다. 또한 실험을 진행함에 따라 git에 커밋되지 않은 임시 세부 사항들을 캡처하기 위해 자동으로 코드의 버전 관리를 시작합니다.
단순히 @weave.op 데코레이터가 적용된 함수를 생성하면 됩니다.
아래 예시에서는 @weave.op 로 래핑된 메트릭 함수인 extract_person 함수가 있습니다. 이를 통해 OpenAI chat completion 호출과 같은 중간 단계가 어떻게 이루어지는지 확인할 수 있습니다.
![]() |
|---|
extract_person 함수에 @weave.op 데코레이터를 추가하면 입력, 출력 및 함수 내부에서 이루어진 모든 내부 LM 호출을 추적합니다. 또한 Weave 는 Instructor에 의해 생성된 구조화된 오브젝트를 자동으로 추적하고 버전을 관리합니다. |
더 쉬운 실험을 위해 Model 만들기
움직이는 부분이 많을 때 실험을 체계화하는 것은 어렵습니다. Model 클래스를 사용하면 시스템 프롬프트나 사용 중인 모델과 같은 애플리케이션의 실험적 세부 사항을 캡처하고 정리할 수 있습니다. 이는 애플리케이션의 서로 다른 반복(iteration)을 정리하고 비교하는 데 도움이 됩니다.
코드 버전 관리 및 입력/출력 캡처 외에도, Model 은 애플리케이션의 행동을 제어하는 구조화된 파라미터를 캡처하여 어떤 파라미터가 가장 잘 작동했는지 쉽게 찾을 수 있게 해줍니다. 또한 Weave Models를 serve (아래 참조) 및 Evaluation 와 함께 사용할 수 있습니다.
아래 예시에서는 PersonExtractor 로 실험을 할 수 있습니다. 이 중 하나를 변경할 때마다 PersonExtractor 의 새로운 버전 이 생성됩니다.
![]() |
|---|
Model 을 사용한 호출 추적 및 버전 관리 |
Weave Model 서빙하기
weave.Model 오브젝트에 대한 weave reference가 주어지면, fastapi 서버를 띄우고 이를 serve 할 수 있습니다.
터미널에서 다음 코맨드를 사용하여 모델을 서빙할 수 있습니다:



