시작하기
weave.init()만 호출하면 됩니다. weave.init()에 전달하는 인수는 트레이스를 정리하는 데 도움이 되는 프로젝트 이름입니다.
트레이싱
원클릭 observability 🔭
WeaveCallbackHandler()를 llama_index.core.global_handler로 자동 설정합니다. 따라서 LlamaIndex와 Weave를 함께 사용하는 경우, Weave run만 초기화하면 됩니다: weave.init(<name-of-project>)
더 쉬운 실험을 위한 Model 생성
weave.Model을 사용하면 시스템 프롬프트나 사용하는 모델과 같은 실험 관련 세부 정보를 캡처하고 정리하여, 서로 다른 반복 버전을 더 쉽게 비교할 수 있습니다.
다음 예시는 weave/data 폴더에 있는 데이터를 사용하여 WeaveModel 안에 LlamaIndex 쿼리 엔진을 빌드하는 방법을 보여줍니다:
weave.Model에서 상속한 이 SimpleRAGPipeline 클래스는 이 RAG 파이프라인의 핵심 파라미터들을 한데 모아 관리합니다. query 메서드에 weave.op() 데코레이터를 적용하면 트레이싱을 수행할 수 있습니다.
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 애플리케이션에 대한 포괄적인 로깅과 모니터링을 구성할 수 있어, 평가를 통해 디버깅과 성능 최적화를 더 쉽게 수행할 수 있습니다.