weave.init()이 호출된 이후부터 ChatNVIDIA 라이브러리를 통해 수행된 LLM 호출을 자동으로 추적하고 로깅합니다.
트레이싱
- Python
- TypeScript
Weave는 ChatNVIDIA Python 라이브러리의 트레이스를 자동으로 수집할 수 있습니다.원하는 프로젝트 이름을 넣어
weave.init(<project-name>)를 호출해 캡처를 시작합니다.
나만의 op 추적하기
- Python
- TypeScript
@weave.op으로 함수를 래핑하면 입력, 출력, 앱 로직을 모두 캡처하기 시작하므로, 데이터가 앱을 통해 어떻게 흐르는지 디버깅할 수 있습니다. op를 깊게 중첩해서 추적하고 싶은 함수들의 트리를 만들 수 있습니다. 또한 실험하는 동안 git에 커밋되지 않은 즉흥적인 변경 사항까지 캡처할 수 있도록 코드를 자동으로 버전 관리하기 시작합니다.ChatNVIDIA Python 라이브러리를 호출하는 @weave.op 데코레이터가 적용된 함수를 하나 만들면 됩니다.아래 예시에서는 op로 래핑된 함수가 2개 있습니다. 이를 통해 RAG 앱의 검색 단계 같은 중간 단계가 앱 동작에 어떤 영향을 주는지 확인할 수 있습니다.get_pokemon_data를 클릭하면 해당 단계의 입력과 출력을 확인할 수 있습니다.
더 쉬운 실험을 위한 Model 생성
- Python
- TypeScript
많은 요소가 얽혀 있을 때 실험을 체계적으로 구성하기는 어렵습니다.
Model 클래스를 사용하면 시스템 프롬프트나 사용 중인 모델처럼 앱의 실험 관련 세부 정보를 캡처하고 정리할 수 있습니다. 이를 통해 앱의 다양한 반복 버전을 체계적으로 관리하고 서로 비교할 수 있습니다.코드 버전 관리와 입력/출력 캡처에 더해, Model은 애플리케이션 동작을 제어하는 구조화된 파라미터를 캡처하여 어떤 파라미터 조합이 가장 잘 동작했는지 쉽게 찾을 수 있게 해 줍니다. 또한 Weave Models를 serve 및 Evaluation과 함께 사용할 수도 있습니다.아래 예제에서는 model과 system_message를 바꿔가며 실험할 수 있습니다. 이들 중 하나를 변경할 때마다 GrammarCorrectorModel의 새로운 _버전_이 생성됩니다.
사용 정보
invoke, stream 및 각각의 비동기 버전을 지원합니다. 또한 도구 사용도 지원합니다.
ChatNVIDIA는 다양한 유형의 모델과 함께 사용하도록 설계되었기 때문에, 함수 호출은 지원하지 않습니다.