- 코드 캡처 - Weave는 Op의 소스 코드를 표현한 내용을 캡처합니다. 여기에는 인라인 주석이 포함되며, 호출된 변수의 값이나 Op가 아닌 함수의 소스도 재귀적으로 캡처합니다. 코드 캡처를 사용하면 변경 사항이 소스 제어 시스템에 저장되지 않았더라도 함수가 무엇을 하고 있었는지 확인할 수 있습니다. 코드 캡처는 Op 버전 관리의 일부로 사용되므로, 시간에 따라 코드 평가가 어떻게 달라졌는지 이해하는 데 도움이 됩니다. 코드 캡처가 비활성화되면 대신 해시 값이 사용됩니다.
- 함수 이름, inputs, outputs - 함수 이름은 캡처되지만 재정의할 수 있습니다. inputs와 outputs의 JSON 기반 표현도 캡처됩니다. inputs의 경우 값뿐 아니라 argument 이름도 함께 캡처됩니다. Weave에서는 inputs와 outputs의 로깅을 사용자 지정할 수 있습니다. 즉, 로깅할 내용을 추가, 제거, 수정하는 함수를 지정할 수 있습니다.
- Op call 계층 구조 - Op가 다른 Op의 실행 컨텍스트 내에서 호출되면, 중간에 Op가 아닌 함수가 실행되는 경우에도 이 관계가 캡처됩니다. Op call 간의 이러한 관계는 “트레이스 트리”를 제공하는 데 사용됩니다.
- 실행 상태 및 예외 - Weave는 함수가 실행 중인지, 완료되었는지, 또는 오류가 발생했는지 추적합니다. 실행 중 예외가 발생하면 오류 메시지와 스택 트레이스가 기록됩니다.
- 시스템 정보 - Weave는 클라이언트가 실행 중인 운영 체제와 자세한 버전 정보 등을 캡처할 수 있습니다.
- 클라이언트 정보 - Weave는 사용 중인 프로그래밍 언어와 해당 언어 및 Weave 클라이언트 라이브러리의 자세한 버전 정보처럼 Weave 클라이언트 자체에 대한 정보를 캡처할 수 있습니다.
- 타이밍 - 실행 시작 시간과 종료 시간이 캡처되며, 지연 시간 계산에도 사용됩니다.
- 토큰 사용량 - 일부 인테그레이션에서는 LLM 토큰 사용량이 자동으로 로깅될 수 있습니다.
- 사용자 및 run 컨텍스트 - 로깅은 W&B 사용자 계정과 연결됩니다. 해당 정보는 wandb Run 컨텍스트와 함께 캡처됩니다.
- 파생 정보 - Weave는 로깅된 원시 정보로부터 파생 정보를 계산할 수 있습니다. 예를 들어, 토큰 사용량과 사용된 모델 정보를 바탕으로 비용 추정치를 계산할 수 있습니다. Weave는 calls 전반에 걸쳐 일부 정보도 집계합니다.
-
직접 선택한 추가 정보 - custom metadata를
weave.attributes와 함께 로깅하여 call의 일부로 포함하거나, call에 피드백을 첨부하도록 선택할 수 있습니다.
데이터 수집 코드 수집 클라이언트 정보 시스템 정보