weave.init()이 호출된 후 ChatNVIDIA 라이브러리를 통해 이루어지는 LLM 호출을 자동으로 추적하고 로그를 남깁니다.
Tracing
개발 단계와 프로덕션 환경 모두에서 LLM 애플리케이션의 트레이스(trace)를 중앙 데이터베이스에 저장하는 것은 매우 중요합니다. 이러한 트레이스는 디버깅에 사용될 뿐만 아니라, 애플리케이션을 개선하는 과정에서 성능을 평가하기 위한 까다로운 예시 데이터셋을 구축하는 데에도 도움이 됩니다.- Python
- TypeScript
Weave는 ChatNVIDIA python library에 대한 트레이스를 자동으로 캡처할 수 있습니다.원하는 프로젝트 이름을 입력하여
weave.init(<project-name>)을 호출하면 캡처가 시작됩니다.
직접 만든 op 추적하기
- Python
- TypeScript
함수를 Weave로 이동하여 UI에서
@weave.op로 감싸면 입력, 출력 및 앱 로직을 캡처하기 시작하여 앱 전체에서 데이터가 어떻게 흐르는지 디버깅할 수 있습니다. op를 깊게 중첩하여 추적하려는 함수들의 트리를 구축할 수 있습니다. 또한 실험을 진행하면서 아직 git에 커밋되지 않은 임시 세부 사항들을 캡처하기 위해 코드 버전을 자동으로 생성하기 시작합니다.단순히 @weave.op 데코레이터가 적용된 함수를 생성하고 그 안에서 ChatNVIDIA python library를 호출하면 됩니다.아래 예시에는 op로 감싸진 2개의 함수가 있습니다. 이를 통해 RAG 앱의 검색(retrieval) 단계와 같은 중간 단계가 앱의 행동에 어떤 영향을 미치는지 확인할 수 있습니다.get_pokemon_data를 클릭하면 해당 단계의 입력과 출력을 확인할 수 있습니다.
더 쉬운 실험을 위한 Model 생성
- Python
- TypeScript
수많은 구성 요소가 움직일 때는 실험을 체계화하기가 어렵습니다.
Model 클래스를 사용하면 시스템 프롬프트나 사용 중인 모델과 같은 앱의 실험적 세부 사항을 캡처하고 정리할 수 있습니다. 이는 앱의 다양한 반복(iteration) 단계를 구성하고 비교하는 데 도움이 됩니다.Model은 코드의 버전 관리 및 입력/출력 캡처 외에도 애플리케이션의 행동을 제어하는 구조화된 파라미터를 캡처하므로, 어떤 파라미터가 가장 효과적이었는지 쉽게 찾을 수 있습니다. 또한 Weave Models를 serve 및 Evaluation과 함께 사용할 수도 있습니다.아래 예시에서는 model과 system_message를 사용하여 실험할 수 있습니다. 이 중 하나를 변경할 때마다 GrammarCorrectorModel의 새로운 _버전_이 생성됩니다.
사용 정보
ChatNVIDIA 인테그레이션은invoke, stream 및 해당 비동기 변체를 지원합니다. 또한 도구 사용(tool use)도 지원합니다.
ChatNVIDIA는 다양한 유형의 모델과 함께 사용되도록 설계되었으므로 함수 호출(function calling)은 지원하지 않습니다.