시작하기
weave.init()을 호출하세요. 그러면 Weave가 초기화되고, 이후의 모든 LlamaIndex 호출에 대한 트레이스 수집이 시작됩니다. weave.init()의 인수는 프로젝트 이름으로, 트레이스를 체계적으로 정리하는 데 도움이 됩니다.
트레이스
원클릭 관측성
WeaveCallbackHandler()를 llama_index.core.global_handler로 자동 설정합니다. 따라서 LlamaIndex와 Weave 사용자라면 weave.init([NAME_OF_PROJECT])로 Weave run만 초기화하면 됩니다.
더 쉬운 실험을 위한 Model 만들기
weave.Model을 사용하면 system 프롬프트나 사용하는 모델 같은 실험 세부 정보를 캡처하고 정리할 수 있어, 여러 반복 버전을 비교하는 데 도움이 됩니다.
다음 예시에서는 weave/data 폴더에서 찾을 수 있는 데이터를 사용해 WeaveModel에서 LlamaIndex 쿼리 엔진을 구축하는 방법을 보여줍니다:
weave.Model을 상속한 SimpleRAGPipeline 클래스는 이 RAG 파이프라인의 핵심 파라미터를 정리합니다. query 방법을 weave.op()으로 데코레이팅하면 트레이싱을 사용할 수 있습니다. 이 구조를 갖추면 이제 Weave에서 RAG 파이프라인의 다양한 설정을 버전 관리하고, 비교하고, 평가할 수 있습니다.
weave.Evaluation으로 평가하기
weave.Evaluation 클래스를 사용하면 특정 작업이나 데이터셋에서 모델이 얼마나 잘 수행되는지 파악할 수 있으며, 이를 통해 서로 다른 모델과 애플리케이션의 여러 반복 버전을 비교할 수 있습니다. 다음 예제는 이전 섹션에서 만든 모델을 평가하는 방법을 보여줍니다:
weave.Evaluation을 사용해 평가하려면 평가 데이터셋, 스코어러 함수, 그리고 weave.Model이 필요합니다. 이러한 요구 사항은 세 가지 핵심 컴포넌트에 적용됩니다:
- 평가 샘플 dict의 키는 스코어러 함수의 인자와
weave.Model의predict방법의 인자와 일치해야 합니다. weave.Model에는predict,infer, 또는forward라는 이름의 방법이 있어야 합니다. 트레이싱을 위해 이 방법에weave.op()를 데코레이션해야 합니다.- 스코어러 함수는
weave.op()로 데코레이션되어 있어야 하며,output이라는 명명된 인자를 가져야 합니다.
Weave를 LlamaIndex와 인테그레이션하면 LLM 애플리케이션에 대해 포괄적인 로깅과 모니터링을 수행할 수 있으며, 이를 통해 평가를 통한 디버깅과 성능 최적화가 간소화됩니다.