LLM Playground를 사용하면 별도 설정 없이 Weave에서 OpenAI 모델을 바로 실험해 볼 수 있습니다.
트레이싱
LLM 애플리케이션의 트레이스를 중앙 데이터베이스에 저장해 두면 개발 단계와 프로덕션 단계 모두에서 유용합니다. 트레이스는 디버깅에 활용할 수 있고, 애플리케이션을 개선하면서 평가에 사용할 까다로운 예시를 모아 데이터셋을 구축하는 데에도 도움이 됩니다. Weave는openai Python 라이브러리의 트레이스를 자동으로 캡처할 수 있습니다.
캡처를 시작하려면 원하는 프로젝트 이름을 지정해 weave.init("[PROJECT_NAME]")을 호출하세요. Weave는 OpenAI를 임포트하는 시점과 관계없이 자동으로 패치하므로, 이후의 모든 OpenAI Call이 트레이싱됩니다.
weave.init()을 호출할 때 CoreWeave Forge 팀을 지정하지 않으면 Weave는 기본 entity를 사용합니다. 기본 entity를 확인하거나 변경하려면 Weights & Biases Models 문서의 User Settings를 참고하세요.
자동 패치
OpenAI를weave.init() 이전에 임포트하든 이후에 임포트하든 Weave가 자동으로 패치합니다. 다음 예시는 Call 트레이싱을 시작하는 데 필요한 최소한의 설정을 보여 줍니다.
선택 사항: 명시적 패치
패치가 적용되는 시점을 세밀하게 제어하려면 자동 동작에 의존하지 말고 OpenAI를 명시적으로 패치하세요.구조화된 출력
Weave는 OpenAI 구조화된 출력의 트레이싱을 지원합니다. 구조화된 출력은 LLM 응답이 특정 형식을 반드시 따르도록 해야 할 때 유용합니다. 다음 예시는 사용자 메시지에서 유형이 지정된UserDetail 객체를 추출하는 Call을 트레이스합니다.
비동기 지원
Weave는 비동기 OpenAI Call의 트레이싱을 지원합니다. 따라서AsyncOpenAI를 사용하는 애플리케이션에서도 동기 애플리케이션과 동일한 가시성을 확보할 수 있습니다.
스트리밍 지원
Weave는 OpenAI 스트리밍 응답의 트레이싱을 지원합니다. 캡처된 트레이스에는 스트리밍된 완료 결과 전체가 반영되므로, 최종 출력과 요청 매개변수를 함께 검토할 수 있습니다.함수 호출 트레이싱
도구를 사용하면 Weave가 OpenAI의 함수 호출을 트레이스합니다. 이를 통해 모델이 각 도구를 어떤 방식으로, 어떤 인수와 함께 호출했는지 파악할 수 있습니다.Batch API
Weave는 OpenAI Batch API를 지원합니다. 이 API를 사용하면 여러 요청을 비동기로 처리하면서도 각 요청을 Weave 트레이스에 그대로 캡처할 수 있습니다.Assistants API
Weave는 OpenAI Assistants API를 지원합니다. 따라서 assistant, 스레드, run을 중심으로 구축한 대화형 AI 애플리케이션을 트레이스할 수 있습니다.비용 추적
Weave는 OpenAI API 호출 비용을 자동으로 추적하므로 성능과 함께 비용을 모니터링할 수 있습니다. 비용 세부 내역은 Weights & Biases UI에서 확인할 수 있습니다.비용 추적은 모든 OpenAI 모델에서 사용 가능하며, Weave는 OpenAI가 공개한 가격을 기준으로 비용을 계산합니다.
맞춤형 함수 트레이싱
OpenAI Call을 자체 애플리케이션 로직 단위로 묶으려면 OpenAI를 사용하는 맞춤형 함수에@weave.op 데코레이터를 적용해 트레이스하세요. 그러면 해당 함수의 상위 트레이스가 생성되고, 내부에서 실행된 OpenAI Call이 그 아래에 중첩됩니다.
다음 단계
OpenAI 트레이싱을 설정했으므로 이제 애플리케이션의 Call을 Weave에서 확인할 수 있습니다. 여기서 다음 작업을 진행할 수 있습니다.- Weights & Biases UI에서 트레이스 보기: Weave 프로젝트로 이동하여 OpenAI Call의 트레이스를 확인하세요.
- 평가 만들기: 트레이스를 활용해 평가 데이터셋을 구축하세요.
- 성능 모니터링: 지연 시간, 비용 및 기타 메트릭을 추적하세요.
- 문제 디버깅: 트레이스를 사용하여 LLM 애플리케이션 내부에서 어떤 일이 일어나는지 파악하세요.